Перейти к содержимому
dopejs
Все проекты

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`.