Справка по миграции (1.x)
Только референс
2.0 — это greenfield. Эта страница фиксирует, что делает текущий (1.x) agentfy, для вдохновения и чтобы понимать, что мы заменяем — это не план порта.
Текущий стек 1.x
| Слой | 1.x | 2.0 |
|---|---|---|
| LLM | AWS Bedrock (Claude), Groq fallback, openai (deprecated) | system/llm — Claude API |
| Исполнение | Lambda-хэндлеры (streams.ts, tasks.ts) + Step Functions | эфемерные k8s Jobs + worker app |
| Очередь/события | EventBridge cron + Step Functions | BullMQ на Redis + Redis pub/sub |
| Реляционная БД | Postgres (Prisma) | Postgres (Prisma) |
| Чаты/доки/задачи | DynamoDB | → Postgres |
| Знания / RAG | кастомный LightRAG-паттерн (OpenSearch + Neo4j Louvain + Cohere + unstructured-api) | библиотека LightRAG сервисом |
| Auth | AWS Cognito | своя JWT (issuer = Core) |
| Биллинг | PayPal + квота по символам | generic usage-метеринг (+ Stripe?) |
| Object storage | S3 | infra/storage (S3 / R2 / Hetzner OS) |
| IaC | cdktf → AWS | k8s-манифесты (Hetzner) |
Где живёт код 1.x
agentfy/agentfy/ — api/src/slices (NestJS), app + admin (Nuxt), runner (Docker Claude-Code PoC), sdk (embed-виджет). ~28 API-слайсов, включая зрелый слайс MCP server и слайсы LightRAG-паттерна knowledges/sources/vectors/neo4j.
Контраст моделей исполнения
1.x — request-centric и stateless: агент это конфиг-шаблон; запрос на POST /streams/bedrock грузит конфиг, делает vector-search, гоняет Bedrock tool-loop в процессе, стримит чанки, пишет в DynamoDB. Запущенного инстанса агента нет.
2.0 сохраняет «агент = конфиг + состояние», но добавляет эфемерный рантайм: мозг (api) думает и роутит; тул-работа уходит в worker по запросу; всё в очереди (BullMQ), стримится (events) и метерится (usage). См. Модель рантайма.
Что переносится концептуально
Зрелый MCP server, подход LightRAG к знаниям и модель user/team — это здравые идеи, которые мы пересобираем заново, а не файлы, которые копируем.