How evermind-ai/raven works
Raven is a multi-agent host that accepts a task through local, web, protocol, or channel surfaces, assembles a runtime, delegates work to specialized agents, and returns an integrated result. The main execution path is represented by the engine, agent loop, subagent/DAG machinery, and domain agents. Memory delivery and the separate Evolver are additional layers. The tree and excerpts support the central runtime and several capabilities; some plugin wiring is documented but not directly sampled.
Main entry points: manager.py Subagent Manager · main.py Agent Loop · engine_stack.py Engine Assembly · hook.py Design Agent
Components 21
User Surfaces
- Mochat Channel
raven/channels/adapters/mochat/pipeline.py - Terminal UI
ui-tui/src/app/useInputHandlers.ts - Web Session UI
ui-web/src/state/session/pipeline.ts - ACP Server
raven/acp/server.py
Runtime Orchestration
- Engine Assembly
raven/core/engine_stack.py - Agent Loop
raven/agent/loop/main.py - Subagent Manager
raven/agent/subagent/manager.py - DAG Runner
raven/agent/subagent/dag_runner.py
Specialized Agents
- Research Agent
agents/raven-research/plugins/research-flow/research_flow/flow.py - Code Agent
agents/raven-code/plugins/code-flow/code_flow/flow.py - Design Agent
plugins-dist/design-engine/raven_design/plugin/hook.py - Oncall Agent
agents/raven-oncall/plugins/oncall-flow/oncall_flow/flow.py
Persistence And Output
- Memory Delivery
raven/memory_engine/store_pipeline.py - Render Pipeline
plugins-dist/design-engine/raven_design/rendering/pipeline.py - PPT Ingestion
plugins-dist/ppt-engine/raven_ppt/services/ingest/pipeline.py
Harness Evolution
- Evolver Orchestrator
evolver/orchestrator/loop.py - Evaluation Judge
evolver/judge/llm_client.py - Promotion Gates
evolver/orchestrator/gates/pipeline.py
Other components
- User
- Model Provider
- Memory Backend
Connections 21
- User → Terminal UI: enters task
- User → Web Session UI: enters task
- User → ACP Server: sends task
- Mochat Channel → Engine Assembly: delivers messages
- Terminal UI → Engine Assembly: uses runtime
- ACP Server → Engine Assembly: serves runtime
- Engine Assembly → Agent Loop: builds loop
- Agent Loop → Subagent Manager: delegates work
- Subagent Manager → DAG Runner: runs DAGs
- Subagent Manager → Research Agent: dispatches research
- Subagent Manager → Code Agent: dispatches coding
- Subagent Manager → Design Agent: dispatches design
- Subagent Manager → Oncall Agent: dispatches automation
- Design Agent → Render Pipeline: renders assets
- Design Agent → PPT Ingestion: ingests sources
- Agent Loop → Memory Delivery: queues turns
- Memory Delivery → Memory Backend: writes memory
- Agent Loop → User: returns result
- Evolver Orchestrator → Evaluation Judge: evaluates runs
- Evaluation Judge → Model Provider: calls models
- Evolver Orchestrator → Promotion Gates: seeks promotion