Files
microdao-daarion/docs/cursor/09_evolutionary_agent.md
2026-02-16 07:38:52 -08:00

550 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 09 — Evolutionary Agent (Self-Improving AI) for MicroDAO
Цей документ описує архітектуру та принципи роботи самонавчального агента MicroDAO.
Агент вміє:
- аналізувати свої відповіді,
- виявляти помилки і прогалини,
- створювати пропозиції покращень,
- еволюціонувати через зміни правил, FAQ, мікро-навичок,
- вчитись на поведінці клієнтів та спільноти,
- надавати журнали змін (версії),
- взаємодіяти з DAGI через анонімізований Train-to-Earn.
---
## 1. Мета
Створити **особистого eволюційного агента** для кожної microDAO:
- приватного,
- адаптивного,
- підконтрольного користувачу,
- який стає розумнішим з часом,
- але не змінює глобальну LLM-модель,
- а накопичує *власний досвід*: правила, пам'ять, патерни, мікро-навички.
Це перетворює microDAO на **живий цифровий організм**, який виростає з досвіду команди.
---
## 2. Архітектура (3 рівні мозку)
Еволюційний агент складається з трьох шарів.
## 2.1. Рівень 0 — Базова LLM (Frozen Model)
- GPT/Claude/локальна модель.
- Не модифікується.
- Відповідає за мовні і логічні здібності.
## 2.2. Рівень 1 — Пам'ять та контекст
- Контекст сесій.
- Векторна пам'ять (Co-Memory microDAO).
- Профіль агента (тон, роль, лексика, мова).
- Налаштування приватності та доступу.
Працює як «довгострокова кора».
## 2.3. Рівень 2 — Meta-Agent (Self-Improvement Layer)
Це ядро еволюції.
Включає:
- аналіз діалогів,
- фідбеки користувачів,
- пошук недоліків,
- генерацію покращень,
- контроль застосування,
- трекінг версій.
---
## 3. Компоненти Meta-Agent
## 3.1. Feedback Collector
Збирає сигнали якості:
1. 👍 / 👎
2. Правки користувача (коли людина переписує відповідь)
3. Маркери:
- «не по темі»
- «неправильна відповідь»
- «занадто загально»
- «довго»
4. Explicit Correction
Користувач каже:
> «Замість цього говори так…»
Усе це зберігається як *мета-телеметрія*.
---
## 3.2. Pattern Analyzer
Раз на N діалогів/годин agent запускає self-review job.
Він виявляє:
- повторювані типи питань,
- категорії помилок,
- патерни, де агент слабкий,
- пропущені інструкції.
---
## 3.3. Improvement Generator
Генерує пропозиції змін:
Типи змін:
1. Нове правило (instruction)
2. Новий шаблон відповіді
3. FAQ-елементи
4. Новий «skill»
(регулярний патерн → мікро-інструмент / chain)
5. Мета-тести
(питання, з якими агент має справлятися)
Приклади:
- «Додавати приклади у відповідях команді design.»
- «Уникай надто формального тону в каналi #marketing
- «Коли питають про дедлайни — уточнюй контекст.»
---
## 3.4. User Approval Layer (Manual Control)
Агент НІКОЛИ не застосовує зміни сам.
Формує список пропозицій у вигляді:
```text
• Пропозиція №17
Тип: Нове правило
Текст: "Якщо user → українська, відповідай українською."
Джерело: 13 подібних ситуацій.
[Прийняти] [Відхилити] [Редагувати]
```text
Це ключова відмінність MicroDAO від централізованих систем:
**користувач контролює еволюцію інтелекту.**
---
## 3.5. Versioning Engine
Веде історію еволюції:
- v0 — чистий агент
- v1 — після перших 20 діалогів
- v2 — після 100 діалогів
- …
Кожна версія містить:
- список правил,
- diff памʼяті,
- список навичок,
- історію змін.
UI показує «дерево еволюції».
---
## 4. UI/UX модуля "Еволюція агента"
## 4.1. Вкладка 1 — Огляд
Показує:
- версію агента,
- скільки правил застосовано,
- скільки покращень очікує.
---
## 4.2. Вкладка 2 — Памʼять
Показує:
- які факти агент зберіг,
- що він знає про команду,
- ключові поняття та терміни.
Кнопка:
- «Очистити коротку пам'ять»
- «Показати довгострокові факти»
---
## 4.3. Вкладка 3 — Самонавчання
Перемикачі:
- `[x] Самонавчання увімкнено`
- Рівень:
- `Базовий`
- `Розширений`
- Джерела:
- `[x] Діалоги в цій спільноті`
- `[ ] Всі мої microDAO`
- `[ ] Анонімізований внесок у DAGI (Train-to-Earn)`
---
## 4.4. Вкладка 4 — Пропозиції покращень (Actionable Insights)
Список:
```text
• Пропозиція №23
Тип: FAQ
Тема: «Як додати нового учасника?»
Згенеровано: Meta-Agent
→ [Прийняти] [Відхилити] [Редагувати]
```text
---
## 4.5. Вкладка 5 — Журнал Еволюції (Versions)
Хронологічне дерево змін.
---
## 5. Логіка самонавчання (алгоритм)
## 5.1. Тригер self-review
Self-review запускається коли:
- кожні 50 повідомлень,
- або щогодини,
- або вручну.
## 5.2. Self-review pipeline
1. витягує останні діалоги
2. фільтрує по негативних сигналах
3. кластеризує помилки
4. генерує пропозиції
5. оцінює важливість
6. показує користувачу для схвалення
---
## 6. API для еволюційного агента
Додаємо нові ендпоїнти:
### GET /agents/{id}/evolution
Історія еволюції.
### GET /agents/{id}/suggestions
Список пропозицій meta-agent.
### POST /agents/{id}/suggestions/{sid}/accept
Застосувати пропозицію.
### POST /agents/{id}/suggestions/{sid}/reject
Відхилити.
### POST /agents/{id}/suggestions/{sid}/edit
Внести зміну вручну.
### POST /agents/{id}/memory/update
Оновити довгострокову памʼять агента.
---
## 7. Як працює Train-to-Earn
Коли користувач вмикає цю опцію:
- meta-agent генерує анонімізовані патерни
- агрегує їх (без текстів, без персональних даних)
- відправляє в DAGI
- DAGI оцінює їхню цінність
- видає винагороду у вигляді 1T або іншого токена
- microDAO отримує reward
Користувач бачить:
```text
Ми використали 3 нові патерни вашої спільноти.
Винагорода: +17 1T
```text
---
## 8. MVP того, що реально зробити зараз
### MVP-версія
- збір фідбеків (👍/👎),
- ручний запуск self-review,
- генерація 13 пропозицій правил,
- вручну додане рев'ю у UI,
- зберігання версій у JSON.
### Наступні етапи
- кластеризація помилок,
- автоматичні тест-кейси,
- DAGI-підключення,
- мікромоделі LoRA.
---
## 9. Завдання для Cursor (шаблон)
```text
You are a senior React/TS and backend engineer.
Implement the Self-Improving Agent module using:
* 09_evolutionary_agent.md
* 03_api_core_snapshot.md
* 05_coding_standards.md
Tasks:
1. Create UI: Agent → Evolution tab.
2. Show suggestions list (stub data).
3. Implement actions: accept/reject/edit (client-only).
4. Add version history (client-only).
5. Add feedback buttons 👍/👎 to agent messages.
Output:
* list of files
* diff
* summary
```text
---
## 10. Інтеграція з існуючим кодом
## 10.1. Використання API клієнтів
Розширити існуючий `src/api/agents.ts` для підтримки нових ендпоїнтів:
```ts
// Додати до agents.ts
export async function getAgentEvolution(agentId: string) {
return apiClient.get(`/agents/${agentId}/evolution`);
}
export async function getAgentSuggestions(agentId: string) {
return apiClient.get(`/agents/${agentId}/suggestions`);
}
export async function acceptSuggestion(agentId: string, suggestionId: string) {
return apiClient.post(`/agents/${agentId}/suggestions/${suggestionId}/accept`);
}
```text
## 10.2. Компоненти UI
Створити нову структуру:
```text
src/features/agent-evolution/
AgentEvolutionTab.tsx
SuggestionsList.tsx
VersionHistory.tsx
MemoryView.tsx
FeedbackButtons.tsx
hooks/
useAgentEvolution.ts
useSuggestions.ts
```text
## 10.3. State Management
Використовувати React Query для кешування та синхронізації:
```ts
const { data: suggestions } = useQuery({
queryKey: ['agent-suggestions', agentId],
queryFn: () => getAgentSuggestions(agentId),
});
```text
---
## 11. Типи даних
## 11.1. Suggestion
```ts
interface Suggestion {
id: string;
type: 'rule' | 'faq' | 'skill' | 'template';
title: string;
description: string;
source: {
type: 'feedback' | 'pattern' | 'explicit';
count: number;
examples: string[];
};
status: 'pending' | 'accepted' | 'rejected' | 'edited';
createdAt: string;
}
```text
## 11.2. AgentVersion
```ts
interface AgentVersion {
version: string;
createdAt: string;
rules: Rule[];
skills: Skill[];
memoryDiff: MemoryDiff;
changes: Change[];
}
```text
## 11.3. Feedback
```ts
interface Feedback {
id: string;
messageId: string;
type: 'positive' | 'negative' | 'correction';
content?: string; // для explicit correction
createdAt: string;
}
```text
---
## 12. Тестування
## 12.1. Unit Tests
- Тести для `FeedbackCollector`
- Тести для `PatternAnalyzer`
- Тести для `ImprovementGenerator`
- Тести для парсингу фідбеків
## 12.2. Integration Tests
- Тестування повного циклу: фідбек → аналіз → пропозиція → застосування
- Тестування версіонування
- Тестування API інтеграції
## 12.3. E2E Tests
- Користувач ставить 👍 → з'являється пропозиція → приймає → агент оновлюється
- Перевірка відображення історії версій
- Перевірка UI вкладок еволюції
---
## 13. Безпека та приватність
## 13.1. Контроль доступу
- Тільки власник/адміністратор microDAO може застосовувати зміни
- Фідбек може залишати будь-який учасник
- Історія еволюції доступна тільки для адмінів
## 13.2. Анонімізація для DAGI
Перед відправкою в DAGI:
- Видаляти персональні дані
- Видаляти конкретні тексти діалогів
- Залишати тільки патерни та структури
- Агрегувати дані
## 13.3. Валідація змін
- Перевірка на шкідливий контент
- Перевірка на порушення правил спільноти
- Модерація перед застосуванням
---
## 14. Продуктивність
## 14.1. Оптимізація self-review
- Запускати в фоні
- Кешувати результати аналізу
- Обмежувати кількість одночасних аналізів
## 14.2. Оптимізація пам'яті
- Архівувати старі версії
- Стискати дані
- Використовувати векторні БД для ефективного пошуку
---
## 15. Майбутні покращення
## 15.1. Розширений аналіз
- Використання LLM для кластеризації помилок
- Автоматичне виявлення патернів
- Предиктивне покращення
## 15.2. LoRA Fine-tuning
- Створення мікромоделей для конкретних спільнот
- Локальне навчання без зміни базової моделі
- Персоналізація на рівні моделі
## 15.3. Спільне навчання
- Обмін анонімізованими патернами між microDAO
- Колективна еволюція
- Рейтинг найкращих практик
---
## 16. Результат
Еволюційний агент стає серцем MicroDAO:
він вчиться, адаптується, росте — і належить спільноті.
Кожна microDAO отримує унікального інтелектуального помічника, який:
- розуміє контекст спільноти,
- адаптується до стилю комунікації,
- покращується з часом,
- залишається під повним контролем користувача,
- може співпрацювати з глобальною мережею через DAGI.
---
**Готово.**
Це **повна специфікація еволюційного агента**, готова до використання в Cursor.