Agent Librarian
Управляет памятью системы. Индексирует, курирует, обслуживает RAG.
Аналог: Knowledge Manager.
Ответственности
- Индексирование — новые artifacts → agent_memory + embeddings
- RAG обслуживание — semantic search по запросу агентов
- Дедупликация — merge дубликатов или mark as duplicate
- Relevance decay — снижение relevance неиспользуемых записей
- Promotion — часто-используемые записи →
scope=global - Vault sync — индексация Obsidian vault при git push
Что НЕ делает
- Не интерпретирует содержимое (только chunks, не анализ)
- Не отвечает по существу вопроса (возвращает релевантные записи)
- Не удаляет без запроса — только архивирует (
relevance → 0)
Модель: Haiku 4.5
Задача механическая: embedding → classify → dedupe → index. Reasoning минимален, скорость и cost критичны (Librarian вызывается часто).
Входы
Action: index
{
"action": "index",
"artifact_id": "uuid",
"content": "text content",
"scope": "department",
"agent": "Agent-CompetitorScout",
"meta": {
"task_id": "uuid",
"type": "competitor_report",
"date": "2026-04-14"
}
}Action: search
{
"action": "search",
"query": "TikTok seeding competitors pricing UAE",
"top_k": 5,
"filter": {
"scope": ["department", "global"],
"type": "competitor_report",
"min_relevance": 0.3
}
}Выходы (search)
{
"results": [
{
"id": "uuid",
"content": "relevant chunk...",
"score": 0.87,
"meta": {
"agent": "Agent-CompetitorScout",
"date": "2026-04-10",
"task_id": "uuid"
}
}
],
"total_found": 12,
"returned": 5
}Инструменты
| Tool | Описание |
|---|---|
embedding.generate | Генерация embedding для текста |
pgvector.query | Semantic search по embeddings |
memory.write | Запись в agent_memory |
memory.read | Чтение из agent_memory |
vault.parse | Парсинг Obsidian markdown файлов |
Бюджет per operation
| Операция | Tokens | Time | Cost |
|---|---|---|---|
| Index | ~2,000 | < 5 sec | $0.01 |
| Search | ~5,000 | < 10 sec | $0.02 |
| Vault sync (per file) | ~1,000 | < 3 sec | $0.005 |
Vault Sync (при git push)
git push to manifest repo
→ webhook notification
→ Librarian получает список изменённых файлов
→ Парсит каждый .md:
- Извлекает frontmatter (type, tags, status)
- Разбивает на chunks (по ## заголовкам)
- Генерирует embeddings для каждого chunk
→ Upsert в agent_memory (scope=global, agent='vault')
→ Старые версии: superseded=true (не удаляются)
→ Логирует: N files processed, N chunks indexed
Время полной переиндексации vault (50 файлов) — < 1 минуты.
Политика ретенции
| Scope | Retention | Архив |
|---|---|---|
self | 90 дней active | → cold storage |
department | 1 год active | → cold storage |
global | Бессрочно | Versioned |
corporate (vault) | Бессрочно | Git versioned |
Decay механизм
- Каждое обращение к записи обновляет
accessed_at - Записи без обращений за 30 дней:
relevance -= 0.1 relevance < 0.1→ перемещение в archive- Archive доступен для explicit search, но не включается в default RAG
Критерии качества
| Метрика | Цель |
|---|---|
| Search precision | > 0.7 на eval set |
| Index latency | < 10 sec per artifact |
| No duplicates in global | 0 exact duplicates |
| Vault sync time | < 1 min after push |
| Embedding freshness | < 24h lag for vault changes |
Связанные документы
- Memory-Model — архитектура памяти (Layer 2, Layer 3)
- Observability — логирование обращений к памяти
- _Roles-Index — реестр агентов
- Tech-Stack — pgvector, embedding model