SKILL.md 技能文档
能力目标
让 Agent 手动跑一次 dream cycle——brain 的离线维护循环、一次 blocking single-run 跑完 16 个 phase——完成 embedding、fact 抽取、cross-session 整合(synthesize → reflections → patterns)等,并能预览调度、读懂各 phase 状态、判断哪些「无产出」是设计预期、验证 dream 可安全重复调度。
前置
- brain 已 import。dream 对 brain 已有内容做整合(synthesize / patterns),不拉取外部数据;对页面事实的补全(extract_facts / propose_takes / consolidate)也在同一个 dream 命令里一并完成。
- 两个 API key:
DASHSCOPE_API_KEY(embed phase)、ANTHROPIC_API_KEY(synthesize / patterns / propose_takes 三个 LLM phase 走 Anthropic Claude、不是 DashScope)。 - brain 目录必须是 git repo(sync phase 要求)。
- gbrain 命令用
timeout -k 5 300 gbrain dream ...包裹(LLM phase 可能较慢、留足超时;exit 124 正常)。
实操流程
导两个 key,brain 目录 git init:
export DASHSCOPE_API_KEY="<你的 DashScope key>" export ANTHROPIC_API_KEY="<你的 Anthropic key>" cd "$BRAIN_DIR" && git init && git add . && git commit -m "brain state for dream"配置 synthesize 的语料目录——synthesize phase 不读 DB、直接读文件系统上的原始 transcript(需要完整对话原文、不是 chunk 片段):
gbrain config set dream.synthesize.session_corpus_dir "$BRAIN_DIR/meetings/"dry-run 预览 16 phase 调度(不写入、不消耗 LLM quota):
timeout -k 5 60 gbrain dream --dry-run --json --dir "$BRAIN_DIR/"canonical 16 phase 顺序:lint → backlinks → sync → synthesize → extract → extract_facts → resolve_symbol_edges → patterns → recompute_emotional_weight → consolidate → propose_takes → grade_takes → calibration_profile → embed → orphans → purge。其中只有 synthesize、patterns、propose_takes 三个走 Anthropic,其余是本地规则计算或 DashScope embedding。
记录 baseline 后真跑:
timeout -k 5 60 gbrain get 'people/lena-kovac' > /tmp/baseline.txt 2>&1 timeout -k 5 300 gbrain dream --json --dir "$BRAIN_DIR/" > /tmp/dream.json 2>&1; cat /tmp/dream.json timeout -k 5 60 gbrain get 'people/lena-kovac' > /tmp/after.txt 2>&1 diff /tmp/baseline.txt /tmp/after.txtJSON summary 的
status: partial不是错误——只表示有 phase 被 skip 或 warn(synthesize 需 corpus dir、patterns 需 ≥3 reflections、orphans 是 audit)。非 LLM phase 个位数毫秒,最慢是 propose_takes(扫全部 page,首次约数秒到 20s+)。验证幂等:再跑一次,行为应一致:
timeout -k 5 120 gbrain dream --json --dir "$BRAIN_DIR/" # sync +0 added / embed 0 newly embedded / patterns 0 reflections —— 与首次一致
校验回路
- dry-run 输出 16 个 phase 的计划状态;真跑的 JSON
phases字段有 16 个 key。 - 真跑
status为partial或ok,其中 ≥11 个 phasestatus=ok(synthesize / patterns / calibration_profile 在数据不足时 skip 是预期)。 - 第二次 dream 的 totals 与第一次一致(
synth_pages=0 patterns=0 embedded=0等相同),证明幂等。
常见陷阱
- fresh / stub brain 首次 dream 的 diff 为空、这是成功不是坏了:page 内容太薄时 extract_facts 抽不出埋藏事实、propose_takes 找不到值得提议的 take。被动复利是渐进的、需要时间维度累积(多次 import、更多 wikilink、更多 timeline 条目后 diff 才逐渐显现),不是一次性爆发。
- 没有
gbrain enrich命令:enrichment 是 structural requirement、无手动触发入口,全部行为通过 dream 驱动、用户无机会误用。 - synthesize FAIL / skip:skip 是没配
session_corpus_dir;FAIL 多是 Anthropic 用量超限(该 phase 硬编码 Anthropic Haiku 做 verdict + Sonnet 做 synthesis、不支持切换 provider)。patterns 需 synthesize 先产出 ≥3 reflection 才触发,二者有严格输入输出依赖。 - git log 不出现 dream auto-commit:当且仅当 synthesize / patterns 产生了新 markdown 文件,sync phase 才自动 commit。fresh brain 首次 dream 不产新文件 → 不 commit,属预期。
- embed 报缺 key:daemon 场景下 export 不生效——但手动跑用 export 即可;embed 缺
DASHSCOPE_API_KEY、propose_takes 缺ANTHROPIC_API_KEY。
适用范围与前置条件
- brain 已 import。dream 对 brain 已有内容做整合(synthesize / patterns),不拉取外部数据;对页面事实的补全(extract_facts / propose_takes / consolidate)也在同一个 dream 命令里一并完成。
- 两个 API key:
DASHSCOPE_API_KEY(embed phase)、ANTHROPIC_API_KEY(synthesize / patterns / propose_takes 三个 LLM phase 走 Anthropic Claude、不是 DashScope)。 - brain 目录必须是 git repo(sync phase 要求)。
- gbrain 命令用
timeout -k 5 300 gbrain dream ...包裹(LLM phase 可能较慢、留足超时;exit 124 正常)。
怎么使用
使用步骤
导两个 key,brain 目录 git init:
export DASHSCOPE_API_KEY="<你的 DashScope key>" export ANTHROPIC_API_KEY="<你的 Anthropic key>" cd "$BRAIN_DIR" && git init && git add . && git commit -m "brain state for dream"配置 synthesize 的语料目录——synthesize phase 不读 DB、直接读文件系统上的原始 transcript(需要完整对话原文、不是 chunk 片段):
gbrain config set dream.synthesize.session_corpus_dir "$BRAIN_DIR/meetings/"dry-run 预览 16 phase 调度(不写入、不消耗 LLM quota):
timeout -k 5 60 gbrain dream --dry-run --json --dir "$BRAIN_DIR/"canonical 16 phase 顺序:lint → backlinks → sync → synthesize → extract → extract_facts → resolve_symbol_edges → patterns → recompute_emotional_weight → consolidate → propose_takes → grade_takes → calibration_profile → embed → orphans → purge。其中只有 synthesize、patterns、propose_takes 三个走 Anthropic,其余是本地规则计算或 DashScope embedding。
记录 baseline 后真跑:
timeout -k 5 60 gbrain get 'people/lena-kovac' > /tmp/baseline.txt 2>&1 timeout -k 5 300 gbrain dream --json --dir "$BRAIN_DIR/" > /tmp/dream.json 2>&1; cat /tmp/dream.json timeout -k 5 60 gbrain get 'people/lena-kovac' > /tmp/after.txt 2>&1 diff /tmp/baseline.txt /tmp/after.txtJSON summary 的
status: partial不是错误——只表示有 phase 被 skip 或 warn(synthesize 需 corpus dir、patterns 需 ≥3 reflections、orphans 是 audit)。非 LLM phase 个位数毫秒,最慢是 propose_takes(扫全部 page,首次约数秒到 20s+)。验证幂等:再跑一次,行为应一致:
timeout -k 5 120 gbrain dream --json --dir "$BRAIN_DIR/" # sync +0 added / embed 0 newly embedded / patterns 0 reflections —— 与首次一致