How 2356222374/deer-flow works
DeerFlow is a super-agent harness for research and other multi-step work, exposed through a web/API gateway and messaging channels. The principal workflow is a user request entering the gateway or a channel, becoming an agent run, and using skills, tools, memory, subagents, and sandboxes to produce a response or artifacts. The graph also preserves scheduled tasks, MCP tasks, and extension capabilities documented or represented in the repository. Some subsystem links are dashed because their implementation was not sampled; source-index references and the README support only the cited relationships.
Main entry points: agent.py Lead agent · app.py API gateway · manager.py Run manager · routers Conversation routes
Components 22
User entrypoints
- API gateway
backend/app/gateway/app.py - Conversation routes
backend/app/gateway/routers - Messaging channels
backend/app/channels/manager.py
Agent runtime
- Lead agent
backend/packages/harness/deerflow/agents/lead_agent/agent.py - Agent assembly
backend/packages/harness/deerflow/agents/factory.py - Agent middleware
backend/packages/harness/deerflow/agents/middlewares
Agent capabilities
- Skills
backend/packages/harness/deerflow/skills/storage/skill_storage.py - Long-term memory
backend/packages/harness/deerflow/agents/memory/manager.py - DeerMem storage
backend/packages/harness/deerflow/agents/memory/backends/deermem/deermem/core/storage.py - Subagents
backend/packages/harness/deerflow/subagents/batch_service.py - Sandbox tools
backend/packages/harness/deerflow/community/aio_sandbox/aio_sandbox.py - Search and web tools
backend/packages/harness/deerflow/community - Extensions
backend/packages/harness/deerflow/extensions/manager.py
Runs and operations
- Run manager
backend/packages/harness/deerflow/runtime/runs/manager.py - Run store
backend/packages/harness/deerflow/runtime/runs/store/base.py - Task scheduler
backend/app/scheduler/service.py - Scheduled task API
backend/app/gateway/routers/scheduled_tasks.py - MCP task service
backend/app/mcp_tasks/service.py
Identity and persistence
- Authentication
backend/app/gateway/auth_disabled.py - SQL database
backend/packages/harness/deerflow/persistence/engine.py
Other components
- User
- Model and tool providers
Connections 24
- User → API gateway: sends request
README.md - User → Messaging channels: sends message
README.md - API gateway → Conversation routes: routes requests
backend/app/gateway/app.py - API gateway → Authentication: configures auth
backend/app/gateway/app.py - Messaging channels → API gateway: creates runs
backend/app/channels/manager.py - Conversation routes → Run manager: starts runs
- API gateway → Run manager: initializes runtime
- Agent assembly → Lead agent: assembles
- Lead agent → Agent middleware: uses
- Lead agent → Skills: uses skills
README.md - Lead agent → Long-term memory: uses memory
README.md - Long-term memory → DeerMem storage: stores facts
backend/packages/harness/deerflow/agents/memory/manager.py - Lead agent → Subagents: delegates work
README.md - Lead agent → Sandbox tools: executes in
README.md - Lead agent → Search and web tools: invokes tools
README.md - Lead agent → Extensions: loads extensions
README.md - Lead agent → Model and tool providers: requests inference
README.md - Run manager → Run store: persists runs
backend/packages/harness/deerflow/runtime/runs/manager.py - Scheduled task API → Task scheduler: manages schedules
backend/app/gateway/routers/scheduled_tasks.py - Task scheduler → Run manager: launches runs
backend/app/scheduler/service.py - API gateway → MCP task service: starts service
backend/app/gateway/app.py - MCP task service → Run manager: reads run state
backend/app/mcp_tasks/service.py - API gateway → SQL database: initializes storage
backend/app/gateway/app.py - Run manager → SQL database: uses persistence
backend/packages/harness/deerflow/persistence/engine.py