DopeAgent
활발히 개발 중개인용 에이전트 OS — 로컬 데몬 하나에 여러 개의 얇은 클라이언트.
Rust 컨트롤 플레인이 로컬에서 실행되며 런타임, LLM 프로바이더, 채널 커넥터, 저장소, 이벤트를 담당합니다. 클라이언트는 얇게 유지됩니다: React 웹 UI, 전체 화면 Rust TUI, 채팅 채널 커넥터, TypeScript SDK — 모두 동일한 JSON Schema 계약을 따릅니다.
개요
제품의 본체는 데몬입니다. 정확해야 하는 모든 것 — 세션 상태, 프로바이더 라우팅, 툴 하네스, 이벤트 로그 — 이 하나의 Rust 워크스페이스에 모여 로컬 HTTP API 뒤에 있습니다. 클라이언트는 그 위의 뷰일 뿐입니다. 데몬 바이너리는 `dope-cli`, HTTP API는 `dope-api`입니다.
언어 간 계약은 `schemas/`에 JSON Schema로 존재하며 API, 이벤트, 설정의 유일한 기준입니다. Rust 데몬과 TypeScript 클라이언트는 관례로 맞추는 대신 같은 정의에서 생성됩니다.
명시된 전제는 오래 사는 에이전트 상태가 관측 가능하고 재생 가능하며 안전하게 진화할 수 있어야 한다는 것입니다. 컨텍스트 엔지니어링, 메모리, 계획, 인계, 정책은 임시방편이 아니라 재설계 대상입니다.
무엇을 하나
- Rust 컨트롤 플레인: 런타임, LLM 프로바이더, 채널/커넥터, 스토어, 이벤트, HTTP API, 하네스를 하나의 워크스페이스에 통합.
- 하나의 데몬 위에 세 가지 인터페이스: React 19 + Vite 웹 UI, 전체 화면 Rust TUI(`dope-tui`), 채팅 채널 커넥터.
- 공유 JSON Schema 계약에서 생성되는 TypeScript 클라이언트 SDK(`@dope/client`).
- 테스트와 프로덕션 환경 분리 — `~/.dope-test`는 19192 포트, `~/.dope`는 19191 포트. 테스트에서는 실제 커넥터가 기본 비활성화.
- 이전 Go 데몬은 Rust 워크스페이스로 완전히 대체되었으며 마이그레이션 기록은 `crates/MIGRATION.md`에 있습니다.