Phase 2 resolved: per-project memory + viewer role
This commit is contained in:
parent
a3416315c5
commit
bf3149fdd0
@ -22,24 +22,42 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Фаза 2: Память агента (ТРЕБУЕТ РЕСЕРЧ)
|
## Фаза 2: Память агента ✅ РЕШЕНО
|
||||||
|
|
||||||
### Вопросы для исследования
|
### Структура (двухуровневая, per-project)
|
||||||
- [ ] **Per-project vs shared memory?** — стоит ли разделять память по проектам? Агент работает на нескольких проектах — смешивать или изолировать?
|
```
|
||||||
- [ ] **Структура памяти** — как организовать memory/:
|
agents/{slug}/
|
||||||
- `memory/global/` — общие знания, уроки
|
AGENT.md # инструкции (статичные)
|
||||||
- `memory/projects/{slug}/` — контекст конкретного проекта
|
memory/
|
||||||
- `memory/sessions/` — автокомпакция сессий
|
agent.md # личные уроки, стиль (грузится ВСЕГДА)
|
||||||
- [ ] **Загрузка контекста** — как агент выбирает какую память загружать? По текущему проекту? По задаче? Всю?
|
projects/
|
||||||
- [ ] **Размер контекста** — лимиты на bootstrap context (сейчас 15K chars). Как масштабировать при росте памяти?
|
{slug}/
|
||||||
- [ ] **Компакция** — автоматическая очистка старой памяти? Суммаризация?
|
context.md # архитектура, решения (грузится per-task)
|
||||||
- [ ] **Shared knowledge** — если два агента работают на одном проекте, должны ли они видеть память друг друга?
|
recent.md # последние действия (rolling window, ~20 записей)
|
||||||
|
```
|
||||||
|
|
||||||
### Возможные решения
|
### Загрузка контекста
|
||||||
- **Вариант A:** Flat memory — всё в `memory/`, агент сам разбирается (текущее)
|
1. Task приходит с `project_slug`
|
||||||
- **Вариант B:** Per-project dirs — `memory/projects/{slug}/`, загружается по контексту задачи
|
2. Bootstrap: `AGENT.md` + `memory/agent.md` + `memory/projects/{slug}/context.md` + `recent.md`
|
||||||
- **Вариант C:** Semantic search — агент ищет по памяти через embeddings (тяжёлое решение)
|
3. Итого ~7K chars вместо 15K (экономия ~50%)
|
||||||
- **Вариант D:** Project files as memory — документы проекта на трекере = общая память команды
|
4. Кросс-проектная инфа — on-demand через MCP-тулзы, НЕ в bootstrap
|
||||||
|
|
||||||
|
### Компакция
|
||||||
|
- После завершения задачи: LLM суммаризирует сессию → 3-5 строк → append `recent.md`
|
||||||
|
- `recent.md`: rolling window, последние ~20 записей, старые вытесняются
|
||||||
|
- Weekly: LLM ревьюит `recent.md` → обновляет `context.md` (long-term)
|
||||||
|
- Сырые JSONL сессии: удалять через 7 дней (суммаризация уже произошла)
|
||||||
|
|
||||||
|
### Кросс-проектный доступ
|
||||||
|
- Агент = **member** в своём проекте, **viewer** в связанных
|
||||||
|
- Viewer = read-only (list_tasks, list_project_files через REST)
|
||||||
|
- Viewer НЕ получает WS push-события (экономия токенов)
|
||||||
|
- Три уровня контроля: AGENT.md → MCP-тулзы → API (403)
|
||||||
|
|
||||||
|
### Shared knowledge
|
||||||
|
- Project docs (README, ARCHITECTURE) = shared, живут в трекере/репо
|
||||||
|
- Personal memory = agent-only, не шарится между агентами
|
||||||
|
- Координация — через project docs или чат, не через чужую память
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -59,3 +77,7 @@
|
|||||||
| Трекер = source of truth для routing/orchestration | 2026-02-25 |
|
| Трекер = source of truth для routing/orchestration | 2026-02-25 |
|
||||||
| Агент не раскрывает api_key трекеру | 2026-02-25 |
|
| Агент не раскрывает api_key трекеру | 2026-02-25 |
|
||||||
| Directory mode для мульти-агент (уже работает) | 2026-02-25 |
|
| Directory mode для мульти-агент (уже работает) | 2026-02-25 |
|
||||||
|
| Per-project память: agent.md (always) + projects/{slug}/ (per-task) | 2026-02-25 |
|
||||||
|
| Viewer-роль: read-only доступ к чужим проектам | 2026-02-25 |
|
||||||
|
| Viewer без WS push — только REST pull | 2026-02-25 |
|
||||||
|
| Shared knowledge через project docs, не через чужую память | 2026-02-25 |
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user