DopeAgent
Активная разработкаЛичная ОС для агентов — один локальный демон и много тонких клиентов.
Управляющий слой на Rust работает локально и отвечает за среду выполнения, LLM-провайдеров, коннекторы каналов, хранилище и события. Клиенты остаются тонкими: веб-интерфейс на React, полноэкранный TUI на Rust, коннекторы чатов и TypeScript SDK — все они говорят на одних и тех же контрактах JSON Schema.
Обзор
Продукт — это демон. Всё, что обязано быть корректным: состояние сессии, маршрутизация провайдеров, harness инструментов, журнал событий — живёт в одном Rust-воркспейсе за локальным HTTP API, поэтому клиент всегда лишь представление поверх него. Бинарник демона — `dope-cli`, HTTP API — `dope-api`.
Межъязыковые контракты лежат в `schemas/` в виде JSON Schema и являются источником истины для API, событий и конфигурации: демон на Rust и клиенты на TypeScript генерируются из одних определений, а не синхронизируются по договорённости.
Заявленное рабочее допущение: долгоживущее состояние агента должно быть наблюдаемым, воспроизводимым и безопасным для эволюции. Работа с контекстом, память, планирование, передача задач и политики переосмысливаются заново, а не латаются.
Что он делает
- Управляющий слой на Rust: среда выполнения, LLM-провайдеры, каналы и коннекторы, хранилище, события, HTTP API и harness в одном воркспейсе.
- Три интерфейса поверх одного демона: веб-интерфейс на React 19 + Vite, полноэкранный TUI на Rust (`dope-tui`) и коннекторы чат-каналов.
- TypeScript SDK (`@dope/client`), сгенерированный из общих контрактов JSON Schema.
- Разделённые тестовая и боевая среды — `~/.dope-test` на порту 19192 против `~/.dope` на 19191, причём в тесте реальные коннекторы по умолчанию отключены.
- Прежний демон на Go полностью заменён Rust-воркспейсом; миграция описана в `crates/MIGRATION.md`.