docs: expand lint scope batch51 (2 files)

This commit is contained in:
Apple
2026-02-16 07:47:45 -08:00
parent 1721b60401
commit 3c11d243c5
3 changed files with 141 additions and 139 deletions

View File

@@ -16,7 +16,7 @@
---
# 1. Базові принципи
## 1. Базові принципи
1. Агент — це **чиста функція + конфіг**.
@@ -38,7 +38,7 @@
---
# 2. Інтерфейси агента
## 2. Інтерфейси агента
```ts
export type AgentRole =
@@ -59,7 +59,7 @@ export interface AgentConfig {
modelHint?: string; // підказка для modelRouter
tools?: string[]; // назви інструментів, які дозволені
}
```
```text
Повідомлення:
@@ -72,11 +72,11 @@ export interface AgentMessage {
toolName?: string; // якщо role === "tool"
ts?: string;
}
```
```text
---
# 3. Runtime-контекст агента
## 3. Runtime-контекст агента
```ts
export interface AgentContext {
@@ -94,11 +94,11 @@ export interface AgentContext {
memory: AgentMemoryAdapter;
llm: AgentLLMAdapter;
}
```
```text
---
# 4. Інтерфейси Memory та LLM
## 4. Інтерфейси Memory та LLM
## 4.1. AgentMemoryAdapter
@@ -109,11 +109,11 @@ export interface AgentMemoryAdapter {
saveTurn(ctx: AgentContext, turn: AgentMessage): Promise<void>;
appendFact(ctx: AgentContext, fact: string): Promise<void>;
}
```
```text
* `short-term` — останні N ходів діалогу;
- `short-term` — останні N ходів діалогу;
* `long-term` — узагальнені знання про команду/проект.
- `long-term` — узагальнені знання про команду/проект.
## 4.2. AgentLLMAdapter
@@ -125,13 +125,13 @@ export interface AgentLLMAdapter {
options?: { modelHint?: string }
): Promise<string>;
}
```
```text
Фактична реалізація використовує `openaiClient` + `modelRouter` з `11_llm_integration.md`.
---
# 5. Інструменти (Tools)
## 5. Інструменти (Tools)
```ts
export type ToolFn = (ctx: AgentContext, args: any) => Promise<any>;
@@ -139,23 +139,23 @@ export type ToolFn = (ctx: AgentContext, args: any) => Promise<any>;
export interface ToolRegistry {
[name: string]: ToolFn;
}
```
```text
Приклади tools:
* `create_followup`
- `create_followup`
* `create_task`
- `create_task`
* `get_project_summary`
- `get_project_summary`
* `get_channel_history`
- `get_channel_history`
Інструменти не викликаються напряму з UI, тільки через агентський runtime.
---
# 6. Головна функція: runAgentTurn
## 6. Головна функція: runAgentTurn
```ts
export interface AgentTurnResult {
@@ -209,11 +209,11 @@ export async function runAgentTurn(ctx: AgentContext): Promise<AgentTurnResult>
return { reply, toolCalls };
}
```
```text
---
# 7. buildLLMMessages: як формується промпт
## 7. buildLLMMessages: як формується промпт
```ts
function buildLLMMessages(
@@ -240,43 +240,43 @@ function buildLLMMessages(
return [system, memoryMsg, ...shortTerm, userInput];
}
```
```text
Надалі:
* можна додати Co-Memory / RAG (витягнути релевантні факти з векторної БД);
- можна додати Co-Memory / RAG (витягнути релевантні факти з векторної БД);
* можна додати структуровані інструкції для tools.
- можна додати структуровані інструкції для tools.
---
# 8. Життєвий цикл одного запиту агента (end-to-end)
## 8. Життєвий цикл одного запиту агента (end-to-end)
1. UI (`AgentChatWindow` або `AgentOnboardingChat`) відправляє `/agents/{id}/chat`:
* `agentId`,
- `agentId`,
* `channelId`,
- `channelId`,
* `userId`,
- `userId`,
* `input` (текст користувача).
- `input` (текст користувача).
2. Backend:
* дістає `AgentConfig` з БД;
- дістає `AgentConfig` з БД;
* формує `AgentContext`:
- формує `AgentContext`:
* agent, teamId, channelId, userId,
- agent, teamId, channelId, userId,
* history (опційно),
- history (опційно),
* memory adapter,
- memory adapter,
* llm adapter,
- llm adapter,
* tools.
- tools.
3. Викликає `runAgentTurn(ctx)`.
@@ -288,15 +288,15 @@ function buildLLMMessages(
---
# 9. Інтеграція з SML / локальними моделями
## 9. Інтеграція з SML / локальними моделями
У майбутньому:
* `AgentLLMAdapter.complete` може:
- `AgentLLMAdapter.complete` може:
* для простих задач (класифікація, короткі відповіді) викликати локальний SML,
- для простих задач (класифікація, короткі відповіді) викликати локальний SML,
* для складних — OpenAI/велику LLM.
- для складних — OpenAI/велику LLM.
Псевдокод:
@@ -308,63 +308,63 @@ export async function complete(ctx, messages, options) {
return callLLM(messages, pickModel(ctx.agent.role));
}
}
```
```text
---
# 10. Використання для різних типів агентів
## 10. Використання для різних типів агентів
### Guide Agent (онбординг)
* той самий runtime,
- той самий runtime,
* інший `systemPrompt`,
- інший `systemPrompt`,
* інший набір tools:
- інший набір tools:
* `create_team`
- `create_team`
* `update_team_mode`
- `update_team_mode`
* `create_channel`
- `create_channel`
* `create_agent`
- `create_agent`
### Team Assistant
* general-purpose агент,
- general-purpose агент,
* має tools:
- має tools:
* `create_followup`
- `create_followup`
* `create_task`
- `create_task`
* `get_summary`
- `get_summary`
* `search_memory`
- `search_memory`
### Evolution Meta-Agent
* використовує:
- використовує:
* `conversation_log` як input,
- `conversation_log` як input,
* інший systemPrompt,
- інший systemPrompt,
* tools:
- tools:
* `create_improvement_proposal`
- `create_improvement_proposal`
* `update_agent_rules`
- `update_agent_rules`
---
# 11. Структура файлів
## 11. Структура файлів
## 11.1. Core Runtime
```
```text
src/agent-runtime/
core/
types.ts # AgentConfig, AgentContext, AgentMessage
@@ -379,18 +379,18 @@ src/agent-runtime/
createFollowup.ts # Інструмент створення follow-up
createTask.ts # Інструмент створення задачі
getSummary.ts # Інструмент отримання підсумку
```
```text
## 11.2. Контролери
```
```text
src/controllers/
agentsController.ts # HTTP endpoint /agents/{id}/chat
```
```text
---
# 12. Реалізація адаптерів
## 12. Реалізація адаптерів
## 12.1. Memory Adapter
@@ -447,7 +447,7 @@ export class DatabaseMemoryAdapter implements AgentMemoryAdapter {
});
}
}
```
```text
## 12.2. LLM Adapter
@@ -474,11 +474,11 @@ export class OpenAILLMAdapter implements AgentLLMAdapter {
return await callLLM(openaiMessages, model);
}
}
```
```text
---
# 13. Реєстр інструментів
## 13. Реєстр інструментів
```ts
import { ToolRegistry, ToolFn } from "./types";
@@ -506,11 +506,11 @@ export function getAvailableTools(agent: AgentConfig): ToolRegistry {
}
return registry;
}
```
```text
---
# 14. Парсинг викликів інструментів
## 14. Парсинг викликів інструментів
```ts
export function parseToolCalls(replyText: string): Array<{ name: string; args: any }> {
@@ -533,13 +533,13 @@ export function parseToolCalls(replyText: string): Array<{ name: string; args: a
return calls;
}
```
```text
Альтернативно, можна використовувати structured outputs або function calling API OpenAI.
---
# 15. HTTP Endpoint
## 15. HTTP Endpoint
```ts
import { Request, Response } from "express";
@@ -610,11 +610,11 @@ export async function chatWithAgent(req: Request, res: Response) {
res.status(500).json({ error: "Agent failed to respond" });
}
}
```
```text
---
# 16. Тестування
## 16. Тестування
## 16.1. Unit Tests
@@ -648,15 +648,15 @@ describe("runAgentTurn", () => {
expect(mockLLM.complete).toHaveBeenCalled();
});
});
```
```text
---
# 17. Завдання для Cursor
## 17. Завдання для Cursor
Приклад промта:
```
```text
You are a senior backend engineer.
Implement the Agent Runtime Core for MicroDAO using:
@@ -682,25 +682,24 @@ Output:
- list of modified files
- diff
- summary
```
```text
---
# 18. Результат
## 18. Результат
Після впровадження цього ядра:
* усі агенти MicroDAO працюють через єдиний runtime;
- усі агенти MicroDAO працюють через єдиний runtime;
* легко додавати нові типи агентів;
- легко додавати нові типи агентів;
* пам'ять, LLM і tools чітко відокремлені;
- пам'ять, LLM і tools чітко відокремлені;
* інтеграція з SML і DAGI стає питанням конфігурації, а не переписування коду.
- інтеграція з SML і DAGI стає питанням конфігурації, а не переписування коду.
---
**Готово.**
Це **повна специфікація Agent Runtime Core**, готова до використання в Cursor.

View File

@@ -2,11 +2,14 @@
Агент-проєктний менеджер для команд і спільнот
Цей документ описує агентський модуль "Проєкти" у MicroDAO — систему управління роботою, яка повністю працює через агентів. Проєкти, задачі, дедлайни, фоллоуапи та прогрес — це не просто дані, а живий простір, у якому взаємодіють люди та агенти microDAO.
Цей документ описує агентський модуль "Проєкти" у MicroDAO — систему
управління роботою, яка повністю працює через агентів. Проєкти, задачі,
дедлайни, фоллоуапи та прогрес — це не просто дані, а живий простір, у якому
взаємодіють люди та агенти microDAO.
---
# 1. Ідея
## 1. Ідея
Проєкт у MicroDAO — це:
@@ -19,7 +22,7 @@
---
# 2. Ролі агентів у модулі
## 2. Ролі агентів у модулі
## 2.1. Projects Agent (основний)
@@ -52,7 +55,7 @@
---
# 3. Структура проєкту
## 3. Структура проєкту
Проєкт складається з:
@@ -80,7 +83,7 @@
---
# 4. Модель задачі
## 4. Модель задачі
Задача (`task`) має:
@@ -101,7 +104,7 @@
---
# 5. Основні спроможності Projects Agent
## 5. Основні спроможності Projects Agent
## 5.1. Авто-створення задач з діалогів
@@ -160,7 +163,7 @@ Projects Agent може:
---
# 6. Tools для Projects Agent
## 6. Tools для Projects Agent
У форматі, що сумісний з Runtime Core (12).
@@ -194,7 +197,7 @@ Projects Agent може:
---
# 7. Інтеграція з Runtime Core (12)
## 7. Інтеграція з Runtime Core (12)
Projects Agent — звичайний агент:
@@ -215,57 +218,57 @@ const projectsAgentConfig: AgentConfig = {
"auto_followup"
],
};
```
```text
Projects Agent працює з:
* памʼяттю (13),
* каналами (14),
* еволюційним агентом (09),
* LLM (11).
- памʼяттю (13),
- каналами (14),
- еволюційним агентом (09),
- LLM (11).
---
# 8. Інтеграція з памʼяттю (13)
## 8. Інтеграція з памʼяттю (13)
Projects Agent використовує:
### 8.1. Short-Term Memory
* поточні обговорення задач у каналі проєкту.
- поточні обговорення задач у каналі проєкту.
### 8.2. Long-Term Memory
* ключові рішення команди,
* визначення задач і стандартів,
* історія пріоритетів.
- ключові рішення команди,
- визначення задач і стандартів,
- історія пріоритетів.
### 8.3. Mid-Term Memory
* summary спринтів,
* переліки завершених задач,
* звіти про прогрес.
- summary спринтів,
- переліки завершених задач,
- звіти про прогрес.
Projects Agent додає факти в памʼять:
* "Задачу X завершено 12 жовтня."
* "Проєкт переходить до етапу тестування."
- "Задачу X завершено 12 жовтня."
- "Проєкт переходить до етапу тестування."
---
# 9. Інтеграція з Messenger Agent (14)
## 9. Інтеграція з Messenger Agent (14)
Messenger Agent допомагає Projects Agent:
* показувати списки задач у чатах,
* формувати треди для задач,
* робити дайджести по каналах.
- показувати списки задач у чатах,
- формувати треди для задач,
- робити дайджести по каналах.
Projects Agent може викликати Messenger Agent через tools або через делегацію.
---
# 10. API для проєктів та задач
## 10. API для проєктів та задач
### 10.1. Projects
@@ -285,46 +288,46 @@ Projects Agent може викликати Messenger Agent через tools аб
---
# 11. UI інтеграція
## 11. UI інтеграція
## 11.1. Sidebar → Projects
У лівому сайдбарі в блоці "Простори" відображаються:
* список проєктів,
* кнопка "Створити проєкт".
- список проєктів,
- кнопка "Створити проєкт".
## 11.2. Right Sidebar → Project Context
Коли користувач знаходиться у каналі проєкту:
* правий сайдбар показує:
- правий сайдбар показує:
* назву проєкту,
* короткий опис,
* задачі по статусам,
* кнопку "Нова задача".
- назву проєкту,
- короткий опис,
- задачі по статусам,
- кнопку "Нова задача".
## 11.3. Task Panel
Клік по задачі відкриває:
* повну картку задачі,
* чат-тред задачі,
* дії:
- повну картку задачі,
- чат-тред задачі,
- дії:
* змінити статус,
* призначити,
* додати опис,
* переглянути памʼять.
- змінити статус,
- призначити,
- додати опис,
- переглянути памʼять.
---
# 12. Інструкції для Cursor
## 12. Інструкції для Cursor
Приклад промта:
```
```text
Implement the Projects Agent module using:
- 15_projects_agent_module.md
@@ -359,18 +362,16 @@ Output:
- list of changed files
- diff
- summary
```
```text
---
# 13. Результат
## 13. Результат
Після впровадження цього модуля:
* MicroDAO отримує повноцінний агентський менеджмент проєктів;
* задачі створюються з діалогів, а не через форму;
* агенти синхронізують роботу між каналами й людьми;
* зʼявляється можливість планувати спринти, отримувати прогрес і формувати дайджести;
* Projects Agent стає центральним "організатором роботи" у кожному microDAO.
- MicroDAO отримує повноцінний агентський менеджмент проєктів;
- задачі створюються з діалогів, а не через форму;
- агенти синхронізують роботу між каналами й людьми;
- зʼявляється можливість планувати спринти, отримувати прогрес і формувати дайджести;
- Projects Agent стає центральним "організатором роботи" у кожному microDAO.

View File

@@ -131,3 +131,5 @@ docs/cursor/11_llm_integration.md
docs/cursor/17_comemory_knowledge_space.md
docs/cursor/23_domains_wallet_dao_deepdive.md
docs/cursor/14_messenger_agent_module.md
docs/cursor/15_projects_agent_module.md
docs/cursor/12_agent_runtime_core.md