Add architecture package and application skeleton
This commit is contained in:
@@ -1,68 +1,73 @@
|
||||
# AI Orchestrator
|
||||
|
||||
Отдельный проект для серверного AI-orchestrator, который управляет задачами, моделями, MCP-tools и local workers.
|
||||
Серверный runtime для AI-задач, моделей, MCP-tools и local workers.
|
||||
Проект отделен от `Local LLM Platform` и строится как самостоятельное orchestration-ядро.
|
||||
|
||||
## Главная идея
|
||||
|
||||
Этот проект не является частью `Local LLM Platform`.
|
||||
|
||||
`Local LLM Platform` отвечает за:
|
||||
- локальные модели;
|
||||
- inference;
|
||||
- registry;
|
||||
- GPU profiles;
|
||||
- model deployment;
|
||||
- smoke tests моделей.
|
||||
## Цели
|
||||
|
||||
`AI Orchestrator` отвечает за:
|
||||
- общение с пользователем;
|
||||
- построение плана/графа выполнения;
|
||||
- вызов моделей;
|
||||
- вызов MCP-инструментов;
|
||||
- работу с local worker;
|
||||
- подтверждения действий;
|
||||
- логи;
|
||||
|
||||
- прием пользовательских задач;
|
||||
- построение execution graph;
|
||||
- вызов моделей через model router;
|
||||
- вызов MCP tools;
|
||||
- dispatch команд в local worker;
|
||||
- policy-driven подтверждения;
|
||||
- event log, audit и progress stream;
|
||||
- fallback между weak/strong/vision моделями.
|
||||
|
||||
## Ключевой принцип
|
||||
## Принципы
|
||||
|
||||
В коде нет жестких запретов на действия.
|
||||
- никаких hardcoded bans;
|
||||
- все ограничения идут через project policy;
|
||||
- worker не планирует задачу и не принимает интеллектуальных решений;
|
||||
- 1С не попадает в ядро и подключается только через MCP;
|
||||
- локальный Docker не используется как обязательный dev path.
|
||||
|
||||
Система должна работать через настраиваемую политику проекта:
|
||||
## Архитектура
|
||||
|
||||
- `full_auto` — выполнять без подтверждений;
|
||||
- `confirm` — спрашивать подтверждение для действий, отмеченных политикой;
|
||||
- `manual` — всегда показывать план и ждать запуска;
|
||||
- `disabled` — компонент отключен настройкой.
|
||||
Проект разбит на 4 слоя:
|
||||
|
||||
Важно: `disabled` — это не hardcoded ban, а выбранная настройка проекта.
|
||||
- `domain` — сущности, state machines, policy/value objects, события;
|
||||
- `application` — use cases и orchestration services;
|
||||
- `infrastructure` — storage, config, policy adapter, provider gateways;
|
||||
- `delivery` — HTTP API, SSE, worker transport adapters.
|
||||
|
||||
## Базовая схема
|
||||
Подробные решения зафиксированы в:
|
||||
|
||||
```text
|
||||
User UI / API
|
||||
↓
|
||||
Conversation Manager
|
||||
↓
|
||||
Server Orchestrator
|
||||
↓
|
||||
Execution Graph
|
||||
├─ Planner
|
||||
├─ Workers
|
||||
├─ Reviewer
|
||||
└─ Finalizer
|
||||
↓
|
||||
Model Router
|
||||
├─ weak model: local
|
||||
├─ strong model: local or external
|
||||
└─ vision model: local or external
|
||||
↓
|
||||
Tools
|
||||
├─ MCP client
|
||||
├─ remote MCP servers
|
||||
└─ local worker protocol
|
||||
- [ADR](docs/adr/001-runtime-stack.md)
|
||||
- [Domain model](docs/architecture/04_domain_model.md)
|
||||
- [State machines](docs/architecture/05_state_machines.md)
|
||||
- [Storage schema](docs/storage/01_schema.md)
|
||||
|
||||
## Текущий статус
|
||||
|
||||
В репозитории уже собраны:
|
||||
|
||||
- архитектурный пакет с ADR;
|
||||
- доменная модель и state machines;
|
||||
- draft persistent storage schema;
|
||||
- внутренние порты orchestrator;
|
||||
- кодовый каркас `src/ai_orchestrator`;
|
||||
- базовый FastAPI delivery layer;
|
||||
- in-memory adapters для безопасного старта;
|
||||
- unit tests на базовые состояния и policy.
|
||||
|
||||
## Быстрый запуск
|
||||
|
||||
```bash
|
||||
python -m pip install -e .[dev]
|
||||
python -m uvicorn ai_orchestrator.main:app --host 127.0.0.1 --port 8080
|
||||
```
|
||||
|
||||
## Что должен сделать Codex
|
||||
## Структура
|
||||
|
||||
Начать с документа `docs/codex/CODEX_TASK.md`.
|
||||
```text
|
||||
src/ai_orchestrator/
|
||||
domain/
|
||||
application/
|
||||
infrastructure/
|
||||
delivery/
|
||||
```
|
||||
|
||||
Исходные папки `src/orchestrator`, `src/policy` и другие пока остаются как legacy-концептуальные маркеры из исходного blueprint.
|
||||
|
||||
Reference in New Issue
Block a user