Obsidian Wiki repo - подходы для Trip2G и Agent Garden
Источник: https://github.com/Ar9av/obsidian-wiki
Дата исследования: 2026-05-05T06:28:24+00:00
Короткий вывод
Ar9av/obsidian-wiki — это не приложение с большим рантаймом, а skill-based framework: набор markdown-инструкций для агентов, которые превращают Obsidian vault в компилируемую базу знаний.
Главная ценность репозитория для Trip2G и Agent Garden: он показывает, как описать knowledge base не как папку заметок, а как операционную систему для агента:
- setup vault;
- ingest sources;
- query compiled knowledge;
- lint health;
- cross-link pages;
- normalize tags;
- export graph;
- mine agent histories;
- keep hot cache;
- preserve provenance/confidence/lifecycle.
Это очень близко к Trip2G Agent Garden, но с локальным Obsidian-фокусом. Trip2G может взять эти паттерны и сделать сетевой/hosted/MCP слой поверх них.
Что внутри репозитория
Репозиторий состоит в основном из markdown-skills:
AGENTS.md— общий контекст и роутинг задач для агентов.setup.sh— установка skills в разные AI-agent директории..env.example— путь к vault, источники, история агентов, QMD search..skills/*/SKILL.md— отдельные операционные навыки.
Ключевые skills:
llm-wiki— базовая архитектура LLM Wiki.wiki-setup— инициализация vault.wiki-ingest— компиляция источников в страницы.wiki-query— tiered retrieval по уже скомпилированной wiki.wiki-lint— аудит здоровья knowledge graph.cross-linker— автоматическое добавление wikilinks.tag-taxonomy— controlled vocabulary для тегов.wiki-status— delta/status + graph insights.wiki-update— синк знаний из текущего проекта в vault.wiki-capture— превращение беседы в declarative knowledge.wiki-research— multi-round web research с filing в vault.wiki-dashboard— Obsidian Bases dashboards.wiki-export— graph.json / graphml / Neo4j / HTML.graph-colorize— раскраска Obsidian graph.*-history-ingest— Claude/Codex/Hermes/Copilot/OpenClaw history ingest.skill-creator— итеративное создание skills через eval loop.
Самые интересные подходы
1. Repo как набор skills, а не приложение
Репозиторий почти не пытается быть SaaS или CLI-продуктом. Он упаковывает поведение в SKILL.md файлы, которые агент может читать и исполнять.
Это сильный паттерн для Agent Garden: сначала протокол поведения, потом интерфейс.
Для Trip2G:
- можно иметь
trip2g-agent-garden/skills/*как переносимый пакет; - каждый участник сети получает одинаковый базовый набор operational skills;
- дальше локальные агенты мутируют/улучшают эти skills и предлагают изменения в hub.
2. Multi-agent portability через symlink-install
setup.sh ставит skills сразу в директории разных агентов:
- Claude Code;
- Cursor;
- Windsurf;
- Gemini;
- Codex;
- Hermes;
- OpenClaw;
- OpenCode/Aider/generic
.agents; - Copilot;
- Trae/Kiro.
Это важный продуктовый ход: не заставлять пользователя выбирать один agent runtime. Knowledge base становится центром, а агенты — сменяемыми исполнителями.
Для Trip2G:
- Agent Garden должен быть agent-agnostic;
- Trip2G hub хранит базу и shared protocols;
- локальный пользователь может подключить Hermes, Claude Code, Codex, Cursor или другого агента.
3. AGENTS.md как роутер операций
AGENTS.md не просто говорит “будь полезным”. Он содержит таблицу роутинга: если пользователь говорит “query”, “ingest”, “lint”, “cross-link”, “history ingest” — какой skill запускать.
Это превращает wiki в операционную среду, где есть понятные команды обслуживания.
Для Agent Garden:
- нужен
AGENTS.md/agent-garden.md, который маршрутизирует:- daily log;
- neighbor scan;
- import proposal;
- replication guide;
- skill promotion;
- privacy lint;
- weekly digest.
4. hot.md как дешёвый warm context
Репа использует hot.md как ~500-word semantic snapshot recent activity. Skills обязаны обновлять его после write operations.
Это сильный ответ на проблему “агент каждый раз заново сканирует всю базу”. Вместо этого:
hot.mdчитается первым;index.mdчитается вторым;- full page read — только при необходимости.
Для Trip2G:
- у каждого агента в сети должен быть
hot.md; - у hub тоже должен быть
network-hot.md; - nightly cron сначала читает hot caches соседей, а не весь vault.
5. Tiered retrieval primitives вместо “прочитай всё”
В llm-wiki есть таблица Retrieval Primitives:
- проверить существование/метаданные через
index.mdи frontmatter grep; - preview через
summary:; - конкретный claim через grep section;
- whole-page read — last resort;
- graph relations через wikilink grep.
Это практически “экономика внимания” для агента.
Для Trip2G/MCP:
- API/MCP методы должны явно поддерживать уровни чтения:
list_pages;frontmatter_search;summary_search;section_search;read_page;neighbors/backlinks.
- Тогда агент не будет выкачивать базу целиком.
6. summary: frontmatter как индекс для агентов
Каждая страница должна иметь summary: ≤200 chars. Это нужно не для человека, а для cheap retrieval.
Для Agent Garden:
- все shared lessons/skills/proposals должны иметь короткий
summary; - neighbor scan может сначала читать только summaries;
- хаб может строить daily digest из summaries без раскрытия приватного тела заметок.
7. Provenance markers: extracted / inferred / ambiguous
Каждый claim может быть:
- extracted — без маркера, источник прямо это говорит;
- inferred —
^[inferred], агент вывел/обобщил; - ambiguous —
^[ambiguous], спорно или источники конфликтуют.
Плюс page-level provenance: в frontmatter.
Для Trip2G:
- это нужно для доверия в сетевом обмене;
- соседний агент должен понимать: “это факт из источника” или “это гипотеза другого агента”.
Для Agent Garden:
- импортировать extracted можно смелее;
- inferred — только как proposal;
- ambiguous — как question/open issue.
8. Confidence + lifecycle отдельно от staleness
Репа вводит:
base_confidence— качество источников и количество независимых source ids;lifecycle—draft | reviewed | verified | disputed | archived;staleне хранится как состояние, а вычисляется поupdated > 90 days.
Очень важная идея: verified не становится unverified автоматически из-за времени, но query должен показывать, что verified page stale.
Для Trip2G:
- shared lessons должны иметь lifecycle;
- человек переводит skill из draft в reviewed/verified;
- agent-only lessons остаются draft;
- disputed/archived нужны для эволюции сети без удаления истории.
9. Visibility tags вместо отдельных vaults
visibility/public, visibility/internal, visibility/pii — системные теги. По умолчанию всё visible; filtered mode включается только если пользователь просит public/user-facing/no internal.
Для Trip2G:
- можно не плодить отдельные базы “public/private/internal”;
- использовать один vault + visibility filters;
- при federation/export/neighbor scan blocked tags исключаются.
Для Agent Garden:
- “share patterns, not private context” можно реализовать как:
- public/shared proposals без PII;
- private raw logs только локально;
- internal team lessons только в private federation.
10. Manifest как ledger ingest-операций
.manifest.json отслеживает source path, mtime/hash, pages_created/pages_updated, projects, stats.
Это делает ingest idempotent и delta-based.
Для Trip2G:
- нужен
network-manifest.json/remote ledger; - nightly cron должен видеть: что новое у соседей, что уже импортировано, что изменилось;
- не нужно каждый день перечитывать всё.
11. wiki-status insights как анализ формы графа
В wiki-status есть insights mode:
- anchor pages/top hubs;
- bridge pages;
- tag cluster cohesion;
- surprising connections;
- orphan-adjacent pages;
- graph delta since last run;
- suggested questions.
Это почти готовая механика для Agent Garden daily/weekly digest.
Для Trip2G:
- хаб может каждую ночь строить
network-insights.md; - людям показывать не “вот 100 новых заметок”, а:
- новые хабы;
- мосты между агентами;
- рассыпающиеся кластеры;
- skills, которые часто импортировали;
- вопросы, которые сеть пока не закрыла.
12. Cross-linker с confidence labels
cross-linker предлагает и добавляет links, но различает:
- EXTRACTED — exact mention, apply inline;
- INFERRED — reasonable semantic connection;
- AMBIGUOUS — weak, skip unless requested.
Это переносится на federation:
- EXTRACTED neighbor lessons можно показывать как “почти точно релевантно”;
- INFERRED — “возможно стоит импортировать”;
- AMBIGUOUS — не импортировать, только в backlog.
13. Misc promotion candidates через affinity
Интересный паттерн: страницы в misc/ получают affinity к проектам через incoming/outgoing links. Если affinity к одному проекту ≥3 — страница становится promotion candidate.
Для Agent Garden:
- shared lesson сначала может жить в
misc/proposals; - если несколько агентов/проектов на неё ссылаются, она повышается до
shared-skills/accepted; - promotion должен зависеть от usage/links/human approval, а не от красоты текста.
14. Wiki-lint как иммунная система
wiki-lint проверяет:
- orphans;
- broken wikilinks;
- missing frontmatter/summary;
- stale content;
- contradictions;
- provenance drift;
- fragmented tag clusters;
- visibility mistakes;
- lifecycle/confidence errors;
- synthesis gaps.
Для Agent Garden это почти “nightly cleanup”:
- агент сам не только учится, но и чистит свою базу;
- сеть не должна только расти, она должна удалять/архивировать/оспаривать плохие подходы.
15. History ingest для разных агентов
Репа содержит отдельные history ingest skills для Claude/Codex/Hermes/Copilot/OpenClaw и router wiki-history-ingest.
Это очень важно для Agent Garden: пользователь уже учил разных агентов в разных местах, и эти истории можно mining-ить в базу.
Trip2G wedge:
“Подключи историю своего Claude/Codex/Hermes — мы вытащим durable lessons, не сырые чаты.”
16. Declarative capture вместо transcript dump
wiki-capture явно говорит: не сохранять чат как чат, а переписать substance as declarative knowledge.
Это совпадает с нашим правилом dobireports:
- не raw chat;
- durable notes;
- выводы, решения, mental models, procedures.
Для Agent Garden это обязательный privacy/quality guardrail.
17. Wiki-export в graph formats
wiki-export делает:
graph.json;graph.graphml;cypher.txtдля Neo4j;- self-contained
graph.html.
Для Trip2G:
- можно экспортировать network graph;
- можно показывать агентам и людям разные views;
- можно строить leaderboard skills/agents/lineages поверх graph metrics.
18. Skill-creator с eval loop
skill-creator — самый Agent Garden-подходящий кусок: skill создаётся, тестируется на prompts, сравнивается with/without skill, оценивается человеком и улучшается.
Для Agent Garden:
- каждый новый shared skill должен проходить mini-eval;
- “выжил” = помог на тестах и был human-approved;
- это не просто prompt marketplace, а breeding/evaluation loop.
Что можно прямо перенести в Trip2G / Agent Garden
Минимальный Agent Garden vault skeleton
agent-garden/
├── AGENTS.md
├── index.md
├── hot.md
├── log.md
├── .manifest.json
├── _meta/
│ ├── taxonomy.md
│ └── dashboards/
├── agents/
│ └── <agent-id>/
│ ├── profile.md
│ ├── hot.md
│ ├── daily/
│ ├── private-lessons/
│ └── replication-guides/
├── shared-skills/
│ ├── proposals/
│ ├── accepted/
│ ├── disputed/
│ └── archived/
├── network/
│ ├── network-hot.md
│ ├── network-manifest.json
│ ├── network-insights.md
│ └── import-log.md
├── privacy/
│ ├── visibility-rules.md
│ └── redaction-log.md
└── lineage/
├── branches/
├── mutations/
└── scores/
Nightly cron для агента
1. Read own hot.md, log.md, manifest delta.
2. Read network-hot.md and summaries of new neighbor proposals.
3. Filter out visibility/internal/pii unless allowed.
4. Rank candidate lessons:
- exact fit to current tasks;
- human-reviewed/verified lifecycle;
- high base_confidence;
- imported by multiple agents;
- not already present locally.
5. Write import proposals, not direct mutation.
6. Update own hot.md.
7. If useful lessons emerged today, write daily lesson + replication-guide delta.
8. Ask human to approve top 1–3 imports next morning.
Metadata для shared lesson
title: >-
<Lesson title>
category: shared-skill
tags: [agent-garden, skill, workflow]
visibility: public
sources:
- agent:<agent-id>/<daily-log-or-replication-guide>
summary: >-
One sentence saying what this lesson helps an agent do.
provenance:
extracted: 0.5
inferred: 0.45
ambiguous: 0.05
base_confidence: 0.42
lifecycle: draft
lifecycle_changed: YYYY-MM-DD
fitness:
human_approved: false
imported_by: []
successful_uses: 0
failed_uses: 0
lineage:
parent_lessons: []
mutation_reason: ""
Что Trip2G может сделать лучше, чем obsidian-wiki
1. Сетевой слой
obsidian-wiki локален. Trip2G может дать:
- hosted vault;
- private federation;
- public network;
- MCP access;
- agent-to-agent querying;
- controlled exports;
- webhooks/cron.
2. Двухсторонний hub
В obsidian-wiki агент работает с одним vault. В Agent Garden нужна схема:
agent base ↔ Trip2G hub ↔ neighbor agent bases
Не просто query, а:
- proposals;
- approvals;
- imports;
- lineage;
- fitness scoring;
- rollback/archive.
3. Human-in-the-loop evolution
obsidian-wiki даёт maintenance skills. Agent Garden добавляет эволюцию:
agents explore → humans select → network remembers → next agents replicate
4. Replication guide как обязательный артефакт
В obsidian-wiki есть wiki-capture и history ingest, но нет явного требования: “агент после прогона пишет инструкцию для следующего агента”.
Agent Garden должен сделать это центральным:
context dies; knowledge base remains; replication guide breeds the next agent
5. Privacy-preserving federation
visibility/ теги — хорошая база. Trip2G может добавить:
- public summaries без bodies;
- redacted lesson export;
- per-agent trust groups;
- approval before sharing;
- audit trail of what left the private base.
Практические next steps для нашего Agent Garden
- Сделать
agent-garden/AGENTS.mdпо образцуobsidian-wiki/AGENTS.md, но с роутингом Agent Garden операций. - Ввести обязательные файлы:
hot.md;log.md;.manifest.json;network-hot.md;replication-guide.md.
- Сделать skill
agent-garden-nightly-review:- own delta;
- neighbor summaries;
- proposal ranking;
- top 1–3 imports for human approval.
- Сделать skill
agent-garden-replication-guide:- after-task reflection;
- what next agent should read;
- what mistakes to avoid;
- what skills to copy/mutate.
- Сделать skill
agent-garden-lintна базеwiki-lint:- privacy leaks;
- stale lessons;
- broken lineage;
- unreviewed high-spread skills;
- disputed but still-used skills.
- Сделать Trip2G page/API level primitives:
- summaries only;
- frontmatter search;
- neighbor graph;
- filtered exports;
- import proposal endpoint.
- Использовать
base_confidence + lifecycle + fitnessкак три разных сигнала:- confidence = качество источника;
- lifecycle = human trust state;
- fitness = реально помогало ли в работе.
Главная формулировка для продукта
obsidian-wiki показывает, как один агент может поддерживать локальную LLM Wiki.
Agent Garden поверх Trip2G — это следующий шаг:
не один агент поддерживает одну wiki, а сеть агентов выращивает, проверяет и реплицирует рабочие подходы через приватный или публичный knowledge hub.
Коротко:
Obsidian Wiki = local compiled memory for one agent.
Trip2G Agent Garden = federated evolutionary memory for many agents and humans.