- Category
- AI Agents
- Rank
- No. 3099Tools index
Previous survey · No. 2978 ·
- Type
- TOOL
- Interfaces
- Web
- GitHub
- 6.2k stars
- Latest release
- v0.2.7
- Date
About
Raven is described by its authors as a trusted, persistent, self-evolving multi-agent ecosystem for all-domain collaboration, built for recursive self-improvement. The repository includes agents, benchmarks, an evolver component, terminal and web UIs, plugins and skills.
What it does
Raven is a host agent: you hand it a large job, it breaks the work into a task graph and hands pieces to specialist agents, its own or third-party ones. Four ship with it, covering research reports, coding, visual design and unattended on-call automation. It runs from a terminal command, a terminal UI, a web UI, or inside a code editor that launches it as a child process. A memory plugin keeps context between sessions, and a separate tool tests proposed changes to how the agents plan against benchmarks before adopting them.
Why it's ranked here
The case rests on engineering visible in the source, not on the showcase. The agent loop carries measured guards against runaway turns, the local control channels require secret tokens, and the build demands coverage on changed lines. Apache 2.0 licensed and installable as a single command. Against that, the authors call it pre-alpha and warn that interfaces and configuration may change quickly, and the headline results, a game built over four days and a training run improved by 5.8%, are self-reported showcase claims.
What's good
Stuck-loop handling is specific: when one call returns the identical answer eight times in a turn the agent is nudged, at twelve the call is refused, and after three refusals the turn ends. When an editor runs it, commands with outside effects such as pushing code or installing packages ask first, and that rule also reaches delegated sub-agents. The local message channels bind to the loopback address, check a per-boot secret before anything else, and cap frames at 1 MiB. Memory backends are found by reading manifests only, so a broken optional backend cannot stop startup.
Tradeoffs
The surface is very wide for a pre-alpha project: a dozen chat channel adapters, a sandbox, browser control, agent-to-agent protocols, a knowledge store and a tracing viewer all sit in one repository, and the core install already pulls a vector database and a model-routing layer. It needs Python 3.12 or newer. The sandbox extra is unavailable on Windows, and browser driving is opt-in because it downloads its own browser. Some design documents are dated records that describe layouts later replaced, so reading the docs needs care.
How to use it well
Fit it to long, multi-step jobs where splitting work across research, code and design agents pays off, and where you can watch a pre-alpha tool closely. Run it inside your editor if you want each risky command shown for approval. Add only the extras you need, such as one chat channel or the sandbox. Use the separate evolution tool only with a registered benchmark: it validates the setup with a check command and keeps sealed test numbers hidden until you finalize, which cannot be undone.
Technical notes+
pyproject.toml declares package raven, Apache-2.0, requires-python >=3.12, classifier Alpha, console script raven = raven.cli.commands:run, with extras channel-* (telegram, slack, discord, whatsapp, matrix, feishu, wecom, mochat, qq, dingtalk, email, weixin), sandbox (boxlite, not win32), browser (playwright) and dev; uv workspace members under plugins-dist/*. raven/agent/loop/main.py: AgentLoop sets _TOOL_RESULT_MAX_CHARS 16000, _LOOP_BREAK_THRESHOLD 2, _NO_PROGRESS_THRESHOLD 8, _NO_PROGRESS_REFUSE 12, _NO_PROGRESS_REFUSALS_MAX 3, _MAX_HOOK_ROLLBACKS 8. raven/acp/server.py serves ACP over stdio, one engine per process, calls declare_default_families before building the stack, SHUTDOWN_GRACE_S 5.0. raven/rpc/server.py: JSON-RPC 2.0 over TCP loopback, auth token line within 10s, MAX_FRAME_BYTES 1 MiB. bridge/src/server.ts binds 127.0.0.1, requires BRIDGE_TOKEN, rejects Origin headers. evolver/cli.py exposes run, check, status, finalize. Makefile sets COVERAGE_DIFF_THRESHOLD 90.
Observed
- License
- Apache-2.0 (declared in pyproject.toml and package.json)
- Language
- Python (requires 3.12 or newer), with TypeScript terminal UI, web UI and WhatsApp bridge
- Install surface
- Python package with a raven console command; optional extras for chat channels, sandbox, browser and tools
- Interfaces
- CLI, terminal UI, web UI, ACP editor agent over stdio, JSON-RPC over loopback, MCP and A2A client dependencies
- Maturity
- README states pre-alpha; pyproject classifier is Development Status Alpha
- Platform support
- Sandbox extra excluded on Windows; Docker build and compose targets in the Makefile
- Testing
- pytest suite with branch coverage and a changed-line coverage gate in the Makefile
Read from README.md, pyproject.toml, package.json, Makefile, raven/__main__.py, raven/agent/loop/main.py, raven/acp/server.py, raven/rpc/server.py, bridge/src/server.ts, evolver/cli.py, docs/README.md, docs/memory-plugin-architecture.md.
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.