How zeyuw/flow-agent works
Flow Agent is a multi-channel assistant service. A user message enters through a channel adapter, is handled as a passive conversational turn, and produces a response for outbound delivery. The turn can use the shared agent loop, model and tool capabilities, session history, and retrieved memory. Separate runtime branches support proactive checks, scheduled automation, delegated agents, and management through a local API and dashboard. The README documents these broader capabilities; some subsystem wiring is represented only at directory level because its implementation was not sampled.
Main entry points: pipeline.py Passive Turn · channels Channel Adapters · loop.py Agent Loop · registry.py Tool Registry
Components 22
Service and Channels
- Service Lifecycle
backend/src/bootstrap/main.py - Channel Adapters
backend/src/interfaces/channels
Conversation Runtime
- Passive Turn
backend/src/application/passive/app/pipeline.py - Agent Loop
backend/src/application/agent/app/loop.py - Session History
backend/src/application/passive/infra/session_manager.py - Memory Retrieval
backend/src/application/memory/app/engine.py
Agent Capabilities
- LLM Client
backend/src/application/capabilities/llm/client.py - Tool Registry
backend/src/application/capabilities/tools/registry.py - Plugin Runtime
backend/src/application/capabilities/plugins/plugin_runtime.py - MCP Connectors
backend/src/application/capabilities/mcp - Skill Catalog
backend/src/application/capabilities/skills
Background Work
- Proactive Pipeline
backend/src/application/proactive/app/pipeline.py - Drift Execution
backend/src/application/proactive/app/drift_pipeline.py - Automation Runtime
backend/src/application/automation/app/runtime.py - Schedule Runtime
backend/src/application/schedule/app/runtime.py - Subagent Manager
backend/src/application/delegation/app/manager.py - Task Store
backend/src/application/delegation/infra/store.py
Management Console
- Admin API
backend/src/interfaces/admin/router.py - Capability Query
backend/src/application/capabilities/app/capability_query.py - Dashboard
frontend/src/app/page.tsx - API Client
frontend/src/lib/api/client.ts
Other components
- User
Connections 22
- Service Lifecycle → Channel Adapters: starts
- User → Channel Adapters: sends message
- Channel Adapters → Passive Turn: routes inbound
- Passive Turn → Agent Loop: runs reasoning
- Passive Turn → Session History: reads/writes history
- Passive Turn → Memory Retrieval: retrieves context
- Agent Loop → LLM Client: requests completion
- Agent Loop → Tool Registry: dispatches tools
- Tool Registry → Plugin Runtime: uses extensions
- Tool Registry → MCP Connectors: invokes connector tools
- Skill Catalog → Agent Loop: provides skills
- Passive Turn → Channel Adapters: delivers response
- Proactive Pipeline → Drift Execution: runs fallback
- Proactive Pipeline → Channel Adapters: delivers message
- Automation Runtime → Subagent Manager: delegates task
- Subagent Manager → Task Store: persists task
- User → Dashboard: manages service
- Dashboard → API Client: calls API
- API Client → Admin API: sends requests
- Admin API → Capability Query: queries capabilities
- Capability Query → Skill Catalog: lists skills
- Capability Query → MCP Connectors: lists connectors