Failed to authenticate. API Error: 401 Invalid authentication credentials
[2026-05-19] vault sync
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
---
|
||||
namespace: work
|
||||
tags:
|
||||
- architecture
|
||||
- agent
|
||||
- executor
|
||||
- orchestrator
|
||||
created: '2026-05-19'
|
||||
updated: '2026-05-19'
|
||||
type: concept
|
||||
confidence: 0.85
|
||||
sources:
|
||||
- personal/projects/personal-os/executor-orchestrator-redesign.md
|
||||
---
|
||||
# Executor-as-Worker — Orchestrator Pattern
|
||||
|
||||
Архитектурный паттерн для запуска задач: Eagle как orchestrator спавнит Executor как отдельный worker-процесс с собственной Zulip-идентичностью.
|
||||
|
||||
## Проблема
|
||||
|
||||
Текущий режим (inline execution):
|
||||
- Eagle берёт задачу прямо в разговорном треде
|
||||
- Спрашивает разрешения у Alex в середине задачи — блокирует поток
|
||||
- Тесная связность между conversational layer и execution layer
|
||||
|
||||
## Целевая архитектура
|
||||
|
||||
```
|
||||
Alex → Eagle (orchestrator, Zulip topic)
|
||||
↓ spawn
|
||||
Executor (worker, отдельный Hermes-профиль)
|
||||
↓ пишет в #executor
|
||||
Eagle мониторит #executor (2-мин cron)
|
||||
↓ auto-approve безопасные действия
|
||||
↓ эскалирует неоднозначные → @mention Alex
|
||||
```
|
||||
|
||||
## Протокол сообщений (Executor → Eagle)
|
||||
|
||||
```
|
||||
[STATUS: investigation] Analysing bug GID 123456...
|
||||
[REQUEST: create_worktree] Branch: fix/tab-preview-stuck
|
||||
[REQUEST: run_tests] Scheme: macOS UI Tests CI
|
||||
[STATUS: pr_open] Draft PR: https://github.com/...
|
||||
[DONE: pr_ready] PR #1234 opened, CI green
|
||||
[ESCALATE: scope_expansion] Found unrelated issue — should I fix it?
|
||||
```
|
||||
|
||||
## Таблица auto-approve (Eagle)
|
||||
|
||||
| Тип сообщения | Действие |
|
||||
|---|---|
|
||||
| `[REQUEST: create_worktree]` | ✅ auto-approve |
|
||||
| `[REQUEST: run_build]` | ✅ auto-approve |
|
||||
| `[REQUEST: run_tests]` | ✅ auto-approve |
|
||||
| `[REQUEST: open_draft_pr]` | ✅ auto-approve |
|
||||
| `[REQUEST: push_branch]` | ✅ auto-approve |
|
||||
| `[REQUEST: post_asana_comment]` | ⚠️ показать Alex, ждать |
|
||||
| `[REQUEST: merge_pr]` | ❌ всегда эскалация |
|
||||
| `[ESCALATE: *]` | ⚠️ всегда эскалация |
|
||||
| `[ESCALATE: scope_expansion]` | ❌ deny + notify Alex |
|
||||
|
||||
## Реализация через Hermes Profiles
|
||||
|
||||
- **Механизм**: Hermes Profiles → `~/.hermes/profiles/executor/` с SOUL.md, отдельным Zulip bot token, отдельным gateway.
|
||||
- **Команда**: `hermes profile create executor --clone`
|
||||
- **Bot identity**: "Исполнитель" (не Eagle)
|
||||
|
||||
## Мониторинг Eagle
|
||||
|
||||
Eagle **не** запускает непрерывный процесс мониторинга. Вместо этого:
|
||||
- Hermes cron каждые 2 мин → читает последние 20 сообщений из `#executor` по текущему `executor_run_id`
|
||||
- Structured messages → O(1) парсинг без LLM
|
||||
- Sliding window — не полный тред
|
||||
|
||||
## GTD-фреймворк оркестрации (идея, 2026-05-18)
|
||||
|
||||
> Eagle как orchestrator должен управлять очередью задач по GTD-принципам: capture all inputs → clarify → organize → execute. Это высвободит ручную координацию (~2-4ч/день).
|
||||
|
||||
## Шаги реализации
|
||||
|
||||
1. Определить message protocol (structured tags)
|
||||
2. Добавить Zulip sender в executor worker prompts
|
||||
3. Создать Eagle monitoring cron (2 мин, `#executor` stream)
|
||||
4. Реализовать auto-approval logic в monitoring prompt
|
||||
5. Добавить `@mention Alex` на эскалацию
|
||||
6. Тест с dry-run executor run
|
||||
|
||||
## Open Questions
|
||||
|
||||
- Как Executor «спавнится» как отдельный bot? (Profile A vs отдельный gateway vs `hermes run -p executor-worker.md`)
|
||||
- Concurrent runs: нужен `run_id` в каждом сообщении
|
||||
|
||||
## Связанные страницы
|
||||
|
||||
- [[personal-os-architecture]] — полная карта агентов и executor modes (v2 bash daemons)
|
||||
- [[personal-os-agent-rules]] — правила поведения агентов
|
||||
- [[concepts/agent-memory-architecture]] — memory model для агентов
|
||||
@@ -0,0 +1,82 @@
|
||||
---
|
||||
namespace: work
|
||||
tags:
|
||||
- agent
|
||||
- memory
|
||||
- wiki
|
||||
- synthesis
|
||||
- vault
|
||||
created: '2026-05-19'
|
||||
updated: '2026-05-19'
|
||||
type: concept
|
||||
confidence: 0.9
|
||||
sources:
|
||||
- wiki/concepts/agent-memory-architecture.md
|
||||
- wiki/concepts/vault-strategy.md
|
||||
- wiki/wiki-ingest-process.md
|
||||
- wiki/personal-os-self-modification.md
|
||||
---
|
||||
# Knowledge Lifecycle — From Session to Permanent Memory
|
||||
|
||||
Синтез: как знание движется от рабочей сессии к постоянной памяти в personal-os. Объединяет [[concepts/agent-memory-architecture]], [[concepts/vault-strategy]] и [[wiki-ingest-process]].
|
||||
|
||||
## Общая схема
|
||||
|
||||
```
|
||||
Событие/Разговор
|
||||
│
|
||||
▼
|
||||
Working Memory (контекст сессии, эфемерный)
|
||||
│ session_search + SHA256 hash
|
||||
▼
|
||||
Episodic Memory (SQLite sessions, сжатые саммари)
|
||||
│ crystallization (wiki-curation cron 02:00)
|
||||
▼
|
||||
Semantic Memory (wiki/ pages, постоянное знание)
|
||||
│ wiki-ingest 22:00 (launchd, claude -p)
|
||||
│ overflow rule (>150 chars → vault)
|
||||
▼
|
||||
Procedural Memory (skills/, workflows)
|
||||
```
|
||||
|
||||
## Три барьера кристаллизации
|
||||
|
||||
Не всё знание заслуживает кристаллизации. Барьеры:
|
||||
|
||||
| Уровень | Критерий | Место |
|
||||
|---------|----------|-------|
|
||||
| Session → Wiki | Painful to re-derive? Fits domain? Contains facts (not conversation)? | `wiki/` |
|
||||
| Wiki → MEMORY.md | Стабильный факт, ≤150 символов? | `~/.hermes/MEMORY.md` |
|
||||
| Any → Skills | Пошаговая процедура, повторяемая? | `~/.hermes/skills/` |
|
||||
|
||||
**Правило overflow:** MEMORY.md — только короткие стабильные факты. Детали → в wiki с pointer в MEMORY.md: `"media-pipeline питфолы → wiki/tech/media-pipeline-pitfalls.md"`.
|
||||
|
||||
## Три задачи vault (не смешивать)
|
||||
|
||||
1. **Vault Enrichment** — frontmatter + aliases + wikilinks на `personal/`, `family/`
|
||||
2. **LLM Wiki** — crystallization sessions → `wiki/` (этот файл про это)
|
||||
3. **Proactive Research** — агент генерирует гипотезы → `wiki/research-queue.md` → Saturday cron
|
||||
|
||||
## Риски деградации
|
||||
|
||||
- **Summarization drift:** после 3+ циклов сжатия теряются критические инструкции. Решение: vault как immutable store (не перезаписывать, только аппендить/обновлять dated sections).
|
||||
- **Repetitive behavior:** без weekly reflection агент деградирует (Generative Agents, 48ч без рефлексии). Фикс: Retrospector каждую пятницу читает corrections_log.
|
||||
- **Orphaned knowledge:** факт записан, но никогда не читается. Фикс: lint (orphan pages), провалидированные wikilinks.
|
||||
|
||||
## Инструменты в personal-os
|
||||
|
||||
| Инструмент | Функция |
|
||||
|-----------|---------|
|
||||
| wiki-curation cron (02:00) | Crystallization: sessions → wiki |
|
||||
| wiki-ingest launchd (22:00) | Synthesis: raw/ symlinks → wiki pages |
|
||||
| `session_search` | Episodic retrieval |
|
||||
| obsidian MCP | Semantic retrieval |
|
||||
| MEMORY.md | Fast facts, overflow pointers |
|
||||
| research-queue.md | Proactive research agenda |
|
||||
|
||||
## Связанные страницы
|
||||
|
||||
- [[concepts/agent-memory-architecture]] — когнитивная таксономия памяти (episodic/semantic/procedural)
|
||||
- [[concepts/vault-strategy]] — три задачи vault: enrichment, LLM wiki, proactive research
|
||||
- [[wiki-ingest-process]] — hash-based incremental ingest из raw/ symlinks
|
||||
- [[personal-os-self-modification]] — как система эволюционирует через корректировки
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: Kraken Media Server — Full Stack
|
||||
created: '2026-05-18'
|
||||
updated: '2026-05-18'
|
||||
updated: '2026-05-19'
|
||||
type: concept
|
||||
tags:
|
||||
- kraken
|
||||
@@ -72,6 +72,17 @@ Prowlarr (RuTracker) → Radarr (7878) / Sonarr (8989)
|
||||
- ⏳ Трекер-парсеры (Steps D-F): audio/non-video scanner, fixture тесты для rutor/nnm-club
|
||||
- ⏳ Transmission torrent-fix: 271/293 файлов без привязки после pipeline apply
|
||||
|
||||
## Watchlist Sync (в разработке, 2026-05-19)
|
||||
|
||||
Python-сервис `~/Developer/watchlist-sync` для автоматической синхронизации `family/documents/movies-watchlist.md` с Radarr/Sonarr/Jellyfin:
|
||||
- **parse** → `[ ]`/`[x]`/`❓`/`⬇️` статусы из .md
|
||||
- **resolve** → TMDB + KP API → ID + тип (movie/tv)
|
||||
- **sync-down** → добавить в Radarr/Sonarr батчами по 5
|
||||
- **sync-up** → Jellyfin watched history → `[x]` в .md
|
||||
- **AI curation** → Hermes Kraken cron, disambiguation ❓ → Zulip `#personal::Kraken torrents`
|
||||
|
||||
Stage 2 (после 50+ просмотров): персонализированные рекомендации по профилю (3 списка: вдвоём / один / семейное).
|
||||
|
||||
## Агент-доступ
|
||||
|
||||
Kraken-Hermes в контейнере (`hermes-kraken`) доступен через Zulip. Скачать медиа:
|
||||
|
||||
Reference in New Issue
Block a user