本文へスキップ
dopejs
すべてのプロジェクト

DopeAgent

活発に開発中

個人向けエージェント OS — ローカルのデーモン 1 つと、複数の薄いクライアント。

Rust 製のコントロールプレーンがローカルで動き、ランタイム、LLM プロバイダー、チャネルコネクター、ストレージ、イベントを担います。クライアントは薄いまま:React 製 Web UI、フルスクリーンの Rust TUI、チャットチャネルコネクター、TypeScript SDK — すべてが同じ JSON Schema の契約に従います。

概要

プロダクトの本体はデーモンです。正しさが求められるもの — セッション状態、プロバイダーのルーティング、ツールハーネス、イベントログ — はすべて 1 つの Rust ワークスペースに収まり、ローカル HTTP API 越しに公開されます。クライアントはその上のビューにすぎません。デーモンのバイナリは `dope-cli`、HTTP API は `dope-api` です。

言語をまたぐ契約は `schemas/` に JSON Schema として置かれ、API・イベント・設定の唯一の情報源になります。Rust デーモンと TypeScript クライアントは同じ定義から生成され、慣習で手作業に同期させることはありません。

明示された前提として、長寿命のエージェント状態は観測可能・再生可能で、安全に進化できなければなりません。コンテキスト設計、記憶、計画、引き継ぎ、ポリシーは小手先の修正ではなく再設計の対象です。

できること

  • Rust のコントロールプレーン:ランタイム、LLM プロバイダー、チャネル/コネクター、ストア、イベント、HTTP API、ハーネスを 1 つのワークスペースに集約。
  • 1 つのデーモンに対する 3 つの入口:React 19 + Vite の Web UI、フルスクリーンの Rust TUI(`dope-tui`)、チャットチャネルコネクター。
  • 共有の JSON Schema 契約から生成される TypeScript クライアント SDK(`@dope/client`)。
  • テスト環境と本番環境を分離 — `~/.dope-test` はポート 19192、`~/.dope` は 19191。テストでは実際のコネクターは既定で無効。
  • 以前の Go 製デーモンは Rust ワークスペースに完全に置き換えられ、その記録は `crates/MIGRATION.md` にあります。