DopeAgent
En desarrollo activoUn sistema operativo personal de agentes: un daemon local y muchos clientes ligeros.
Un plano de control en Rust se ejecuta localmente y se encarga del runtime, los proveedores de LLM, los conectores de canal, el almacenamiento y los eventos. Los clientes son ligeros: una interfaz web en React, una TUI de pantalla completa en Rust, conectores de chat y un SDK de TypeScript, todos hablando los mismos contratos JSON Schema.
Resumen
El daemon es el producto. Todo lo que debe ser correcto —el estado de sesión, el enrutado de proveedores, el harness de herramientas, el registro de eventos— vive en un único workspace de Rust detrás de una API HTTP local, de modo que un cliente nunca es más que una vista sobre él. El binario del daemon es `dope-cli`; la API HTTP es `dope-api`.
Los contratos entre lenguajes viven en `schemas/` como JSON Schema y son la fuente de verdad para la API, los eventos y la configuración: el daemon en Rust y los clientes en TypeScript se generan a partir de las mismas definiciones en lugar de mantenerse sincronizados por convención.
Una premisa explícita del proyecto es que el estado de agente de larga vida debe ser observable, reproducible y seguro de evolucionar; la ingeniería de contexto, la memoria, la planificación, los traspasos y las políticas se rediseñan en lugar de parchearse.
Qué hace
- Plano de control en Rust: runtime, proveedores de LLM, canales y conectores, almacenamiento, eventos, API HTTP y harness en un solo workspace.
- Tres superficies sobre un mismo daemon: interfaz web con React 19 + Vite, TUI de pantalla completa en Rust (`dope-tui`) y conectores de canales de chat.
- SDK de cliente en TypeScript (`@dope/client`) generado a partir de los contratos JSON Schema compartidos.
- Entornos de prueba y producción separados: `~/.dope-test` en el puerto 19192 frente a `~/.dope` en el 19191, con los conectores reales desactivados por defecto en pruebas.
- El antiguo daemon en Go fue sustituido por completo por el workspace de Rust; la migración está documentada en `crates/MIGRATION.md`.