Duragent — A durable, self-contained runtime for AI agents.
Sessions survive crashes. Agents are just files. One binary, zero dependencies.
Use it as a personal AI assistant, or as the foundation for agent-powered products.
| Concept | Description |
|---|---|
| Session | Durable conversation context; survives crashes/disconnects; attach/detach like tmux |
| on_disconnect | continue (agent keeps working) or pause (waits for reconnect) |
| Core gateways | CLI, HTTP REST, SSE — built into Duragent |
| Platform gateways | Telegram, Discord — subprocess plugins via Gateway Protocol |
| Tools | bash, CLI tools, web search/fetch, scheduled tasks, background processes |
| Skills | Modular Markdown-based capabilities with frontmatter metadata |
| Memory | Per-agent recall/remember/reflect + shared world knowledge |
| Context management | Token budgeting, history truncation, priority-based rendering |
| Sandbox | Trust mode (no isolation) |
| Duragent Format | YAML + Markdown agent definitions |
- Sandbox isolation: bubblewrap (Linux), Docker (cross-platform)
- MCP tool integration
- Structured logging / metrics (OpenTelemetry)
See Project Status for the full roadmap.
- README
- Duragent Guide — user-facing documentation (source:
book/) - Project status / roadmap
- Project Charter
- Architecture
- API Reference
- Deployment
- Duragent Format
- Example skill
- Rust 2024 Edition
- HTTP: Axum
- Streaming: SSE
- Config/spec: YAML (structured) + Markdown (prose)
- Persistence: JSONL (events), JSON (snapshots), Markdown (prose)
- Tool ecosystem: built-in, CLI tools, dynamic discovery from
tools/directories - Sandbox: trust mode
- Error handling: Use
anyhowfor application errors,thiserrorfor library errors - Async: Tokio runtime, async traits via
async_trait - Config:
serdefor YAML/JSON, environment variables via${VAR}syntax - Logging:
tracingcrate with structured spans - Tests: Unit tests inline, integration tests in
tests/
- Update
Cargo.toml— bumpversion = "0.x.0" - Update
CHANGELOG.md:- Move items from
[Unreleased]to new[0.x.0] - YYYY-MM-DDsection - Add comparison link at bottom
- Move items from
- Update
PROJECT_STATUS.md— mark milestone complete, update recent accomplishments - Commit —
git commit -m "Release v0.x.0" - Tag —
git tag v0.x.0 - Push —
git push && git push --tags