How qwenaudio/qwen-audio-agent works
Qwen Audio Agent is a realtime voice runtime for persistent conversation alongside asynchronous Agent work. A user connects through Web, mobile, terminal, or desktop; the Gateway connects the voice frontend, handles conversation and tools, delegates sustained work to a backend Agent, and returns task progress and results to the conversation. The README documents this workflow and the broader capabilities shown here; sampled source confirms selected transport, task, delivery, and client behaviors, but not every subsystem’s internal wiring.
Main entry points: frontend-tool-loop.mjs Frontend tools · gateway-application.mjs Gateway application · task-manager.mjs Task manager · realtime-session-runtime.mjs Voice session
Components 21
User clients
- Web UI
web/src/App.jsx - Mobile UI
mobile/src/main.jsx - Terminal UI
tui/src/index.mjs - Desktop app
desktop/src/main.mjs
Gateway runtime
- Gateway transport
web/src/gateway-transport.js - Gateway application
server/src/app/gateway-application.mjs - HTTP routes
server/src/app/gateway-http-routes.mjs - Client protocol
server/src/transport/gateway-client-protocol-session.mjs
Realtime voice
- Voice session
server/src/voice/realtime-session-runtime.mjs - Voice providers
server/src/voice/providers/registry.mjs - WebRTC transport
server/src/transport/webrtc/routes.mjs
Agent work
- Task coordinator
server/src/orchestration/session-task-coordinator.mjs - Backend adapters
server/src/backend/adapters/acp/backend-adapter.mjs - Task manager
server/src/task/task-manager.mjs - Task state store
server/src/task/task-store.mjs - Task announcements
server/src/voice/announcement/announcement-manager.mjs
Tools and context
- Frontend tools
server/src/frontend/tools/frontend-tool-loop.mjs - Web retrieval
server/src/frontend/retrieval/frontend-retrieval-runtime.mjs - Long-term memory
server/src/memory/runtime.mjs - Knowledge library
server/src/knowledge/runtime.mjs
Other components
- User
Connections 23
- User → Web UI: uses
- User → Mobile UI: uses
- User → Terminal UI: uses
- User → Desktop app: uses
- Web UI → Gateway transport: configures
- Mobile UI → Gateway transport: configures
- Gateway transport → Gateway application: connects
- Gateway application → HTTP routes: mounts
- Gateway application → Client protocol: serves clients
- Gateway application → Voice session: runs sessions
- Voice providers → Voice session: provide voice
- HTTP routes → WebRTC transport: exposes
- Voice session → Frontend tools: invokes tools
- Frontend tools → Web retrieval: supports search
- Frontend tools → Long-term memory: supports memory
- Frontend tools → Knowledge library: supports library
- Frontend tools → Task coordinator: delegates work
- Task coordinator → Backend adapters: dispatches tasks
- Task coordinator → Task manager: manages tasks
- Task manager → Task state store: persists state
- Task manager → Task announcements: reports completion
- Task announcements → Voice session: delivers updates
- Task manager → HTTP routes: streams status