Проблема
Разработка становится сложнее: контекст разбросан, рутинные действия повторяются, а классические ассистенты реагируют только на ручной prompt.
Local-first • Event-driven • Extensible
Yodoca — self-evolving AI agent platform, который работает локально, запоминает важное и проактивно выполняет задачи между диалогами.
Разработка становится сложнее: контекст разбросан, рутинные действия повторяются, а классические ассистенты реагируют только на ручной prompt.
Product demo
Сообщение приходит из CLI, Telegram или Web канала.
Context providers добавляют память, факты и релевантные сущности.
Оркестратор выбирает tools/agents и исполняет цепочку действий.
События записываются в SQLite journal для надежности и аудита.
Core features
Memory v2 хранит факты, эпизоды и процедуры как узлы/связи. Поиск гибридный: FTS5 + sqlite-vec + graph traversal + RRF.
SQLite journal работает как очередь и аудит-лог: pending → processing → done/failed, c at-least-once доставкой и correlation IDs.
Канал, tool, scheduler, context, service, setup, агент — все реализуется расширениями. Core остаётся минимальным.
Нового агента можно объявить через manifest.yaml без написания Python-кода в ядре.
Агент реагирует не только на чат: события от scheduler/service/extensions запускают фоновые сценарии автоматически.
Supervisor — единственная точка входа. Автоперезапуск, backoff и безопасные restart-флаги для загрузки новых расширений.
Memory
Память вынесена в отдельное расширение (`memory`) и работает как граф знаний: типизированные узлы (`fact`, `episode`, `procedure`, `opinion`), связи и сущности. Запись усиливается консолидацией и reinforcement-механикой по Ebbinghaus decay.
Retrieval-пайплайн комбинирует FTS5, vector search через sqlite-vec и graph traversal, затем объединяет кандидатов через Reciprocal Rank Fusion. За векторизацию отвечает отдельное расширение `embedding`, что упрощает замену провайдеров.
Подход Yodoca совпадает с современными практиками memory-augmented агентных систем: hybrid retrieval, knowledge graph representation, long-term memory consolidation и event-driven обновление контекста. При этом архитектура остаётся локальной и прозрачной за счёт SQLite-first runtime.
Architecture
Расширение `memory` хранит knowledge graph: типизированные узлы (`fact`, `episode`, `procedure`, `opinion`), связи и entities. Retrieval объединяет полнотекстовый и векторный поиск с графовым обходом, после чего ранжирует результат через Reciprocal Rank Fusion.
Шина событий реализована как durable SQLite journal. Это и очередь для асинхронной обработки, и полная трассировка “что произошло” для отладки/аудита. Доставка at-least-once требует идемпотентных handler-ов.
Каждое расширение лежит в sandbox/extensions/<id>/ и определяется
manifest.yaml + main.py.
Capabilities обнаруживаются по протоколам (`Channel`, `Tool`, `Agent`, `Service`, `Scheduler`,
`Context`, `Setup`).
Use cases
Integrations
Social proof
Apache 2.0, публичный репозиторий, понятные ADR и docs.
Без внешней БД: события, память и потоки живут в SQLite на вашей машине.
Новые возможности добавляются расширениями, не ломая ядро.
Install & run
git clone https://github.com/VitalyOborin/yodoca
cd yodoca
uv sync
uv run python -m supervisor Начните с базового Supervisor runtime, подключите extensions и настройте memory-driven workflows.