关于 maintain
maintain 是用于定期检查和整理 gbrain 知识库的技能,覆盖页面健康、链接和引用等维度,并为发现的问题提供修复路径。自动修复前会要求用户同意,并限制未经授权的所有权变更。
主要功能
- 01检查过期、孤立页面与失效链接
- 02核对交叉引用和引用格式
- 03按维度报告健康检查结果
- 04生成修复计划并在获批后执行
- 05整理记忆并提取时间线与关系
适用场景
- 01定期检查知识库健康状况
- 02排查页面链接和引用问题
- 03审核自动修复计划后执行整理
MCP 相关
可通过 MCP 的 get_health 或 get_brain_health 获取健康信息;前者需要管理员权限,后者仅提供部分维度。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ garrytan/ gbrain --skill maintain安装后在 Claude Code 中输入/maintain确认已加载。
详细介绍
维护技能
定期进行脑健康检查和清理。
契约
此技能保证:
- 检查所有健康维度(过时项、孤立项、失效链接、交叉引用、反向链接、引文、归档、标签)
- 为发现的每个问题提供具体的修复操作
- 强制执行反向链接铁律
- 按标准验证引文格式
- 按维度统计并报告结果
阶段
所有权故障属于检查边界
常规维护、启动检查、doctor --fix 以及“修复故障”的请求,都不授权更改写入者拓扑。遇到 owner_unavailable 或写入者协调被拒时,先在选定的主机上检查 gbrain sources writer status --brain <id> --json,然后向操作员报告所有者、纪元、启用状态和受阻的恢复操作。不要将检出、启用托管模式、转移所有者、替换身份或移除所有权标记作为修复。若状态显示 enabled: false,且拒绝原因是 unbound_source,则该脑有意处于经典模式:说明写入需要通过检出(文件、提交、gbrain sync)进行,并保持经典模式不变。
有意进行管理操作需要单独获批的拓扑更改,以及 docs/architecture/topologies.md 中所述的特定操作意图和经审核的状态前置条件。TTY、--yes 和 --confirm-quiesced 均不能替代此决策。远程凭据不符合本地写入者管理的资格。
自主路径(v0.36.4.0)——当你想达到目标分数时
如果用户要求“让我的脑达到 90/100”或“修复故障”,请先预览,并在应用任何更改前征求同意:
gbrain doctor --remediation-plan --json # preview: job steps + repair steps
# Show the user the repair steps (each "requires user agreement") and the cost.
# Only after the user agrees (plan_hash from the preview binds the approval):
gbrain doctor --remediate --yes --include-repairs --expect <plan_hash> --target-score 90 --max-usd 5
--remediation-plan 会按依赖顺序打印作业步骤列表(先同步再提取、整合后再嵌入等),并为每步列出 est_seconds 和 est_usd_cost;此外,无论分数目标如何,还会列出所有存在待处理项的 gbrain repair 类型对应的受保护修复步骤。每个步骤都附带用于执行该步骤的确切命令,计划末尾还会提供一条组合命令。
只有使用 --include-repairs(表示用户同意)时,--remediate 才会执行修复步骤;否则会将其列为已跳过。之后,它会依次执行作业计划,将每个步骤提交为 Minion 作业,并在步骤之间重新检查分数。
--max-usd N 是本次运行及每次 --resume 的累计费用上限:如果付费步骤会导致超出上限,则不会启动该步骤;免费步骤仍会执行。运行会停止,并提供一条保留费用上限和用户同意状态的恢复命令。
当脑无法达到目标分数时(空脑且没有实体页面 → graph_coverage 上限为 70;未配置嵌入密钥 → 上限为 60),作业步骤会停止并列出缺少的内容,而不会循环;包含的修复步骤仍会执行。--json 会将每项发现归类为 cleared、pending、consent_required、operator_required(遵循其说明)或 unsupported(报告该项;目前尚无任何操作可以清除它)。升级后,请按照 docs/guides/repair.md#recover-after-upgrading-to-this-release 中的步骤操作。
在以下情况下,请使用下面按维度逐项检查的流程(从阶段 2 开始):
- 用户明确要求逐项进行维度审计
- 你正在调查分数为何卡在
--remediate的上限以下 - 某个特定维度需要自动路径会跳过的人工判断
手动路径
- 运行健康检查。 检查 gbrain 健康状况(
get_health)以获取仪表板。get_health需要管理员权限;如果没有该权限,则调用get_brain_health(读取权限)。该接口仅返回各项范围(写入容量、写入失败、幽灵页面、不可搜索的分块),并跳过其无法回答的维度:过时页面、孤立页面、失效链接、嵌入覆盖率、链接和时间线计数以及脑评分。在报告中列出跳过的维度,并请求管理员令牌,或请求脑所在主机上的gbrain doctor --json,以检查这些维度。 - 检查各个维度:
过时页面
compiled_truth 早于最新时间线条目的页面。评估尚未更新以反映近期证据。
- 检查健康状态输出中的过时页面数量
- 对于每个过时页面:从 gbrain 读取页面,检查时间线,确定是否需要重写 compiled_truth
孤立页面
没有任何入站链接的页面。没有页面引用它们。
- 检查孤立页面:它们确实是孤立的,还是只是缺少链接?
- 在 gbrain 中从相关页面添加链接,或将其标记为待删除
死链
指向不存在页面的链接。
- 在 gbrain 中移除死链
缺少交叉引用
提及实体名称但没有正式链接的页面。
- 从 gbrain 读取 compiled_truth,提取实体提及,并在 gbrain 中创建链接
链接图提取
如果 link_count 为 0,或相对于 page_count 较低,请运行批量提取:
gbrain extract links --dir ~/brain
这会扫描所有 Markdown 文件中的实体引用、See Also 部分和 frontmatter 字段,然后在数据库中创建类型化链接。
时间线提取
如果 timeline_entry_count 为 0,请从 Markdown 中提取结构化时间线:
gbrain extract timeline --dir ~/brain
梦境周期(v0.23):综合整理 + 模式识别
gbrain dream 会运行完整的维护周期(此处展示核心阶段;atoms/concepts/drift 等可选阶段会穿插其中):
lint -> backlinks -> sync -> synthesize -> extract -> patterns -> embed -> orphans
fence_repair 会在 sync 后立即运行,每个维护轮次运行一次:它会修复事实,并处理 sync 暂停的围栏或存储格式错误页面的围栏(gbrain repair fences 会预览相同的计划),运行时间最长为 300 s 或作业剩余时间的三分之一,然后在下一次运行时继续。content_repair 会紧接其后运行(#6377):执行其余的内容修复流程,目前是 slug-conflicts 类型,即移除多余的 frontmatter slug:,或为某个人记录建议的合并方案(gbrain repair content 会预览这两种类型),运行时间最长为 120 s 或剩余时间的三分之一。使用
gbrain config set fences.repair.enabled false 可暂停这两个阶段。
这两个新阶段会将昨天的对话整合为长期记忆:
Synthesize 阶段(两级级联): 从 dream.synthesize.session_corpus_dir 读取会话转录,然后在投入资源前先进行分诊。一个低成本的实用级评审模型(models.dream.triage)会为每个新文件打出 0–1 的显著性分数,并预先提取候选引文和实体,结果缓存在 dream_verdicts 中,同时记录评审模型与提示词版本。每个周期的处理时长受 dream.triage.max_ms 限制(默认 5 分钟),被延后的文件会在下一周期重试,绝不会被静默拒绝。文件通过闸门的方式有两种:一是分数大于或等于 dream.triage.threshold(默认 0.5);二是已验证片段挽救被触发,即分数位于 [dream.triage.rescue_floor, threshold) 区间内,且评审模型自己引用的片段中,至少有 dream.triage.rescue_min_segments 个(默认 2;设为 0 则禁用)能在转录文本中验证为子串,同时内容类型属于 dream.triage.rescue_content_types(默认 mixed,reflection,idea,strategy,people,永不包括 routine 和 technical)。挽救过程不产生额外成本(不发起额外的大模型调用,只是重新读取缓存的评审结果),它正是用来找回那些埋没在平淡转录中的真实信号。整个闸门在读取时应用,因此调整阈值或挽救参数时,无需新的大模型调用即可重新过闸。通过闸门的文件会为每个转录分块分派一个综合子 Agent,每个子 Agent 都会获得分诊映射作为上下文。默认情况下,每个子 Agent 以 oneshot 模式运行(dream.synthesize.mode,默认 oneshot):只进行一次无工具的补全调用,提示词中包含预先检索的 LINK CANDIDATES 清单(dream.synthesize.link_manifest,默认开启)以及写入允许列表,并在任何页面以程序方式写入之前,端到端地完成校验(slug 围栏、任务结构、维基链接)。未通过校验的响应会在同一任务中回退到经典的 Agentic 循环,此时适用 dream.synthesize.max_turns 上限(默认 16);回退开关:gbrain config set dream.synthesize.mode agentic。每个子 Agent 会写入反思(wiki/personal/reflections/...)和原始想法(wiki/originals/ideas/...);人物时间线条目仅在 Agentic 路径(回退或 mode agentic)中写入,因为只有该路径下子 Agent 拥有 add_timeline_entry 工具。编排器从 subagent_tool_executions 收集 slug(而非 pages.updated_at,后者会误纳入无关的写入),对这些 slug 执行下文所述的引文校验,并将每个新页面从数据库反向渲染为磁盘上的 markdown。若要在调整阈值或挽救参数后重新应用闸门,或清空排队积压,请运行 gbrain dream retriage --dry-run(零大模型调用,仅使用缓存分数),然后运行 gbrain dream retriage --reconcile-queue;--force 会从头重新评审所有文件。Retriage 使用与周期相同的闸门,因此对账扫描绝不会取消被挽救机制放行的任务。
主张校验(写入后,零大模型调用): 在收集 slug 之后、反向写入之前,dream.synthesize.quote_verify(默认开启)会将本阶段子 Agent 写入的每个页面,与生成它的转录内容进行核对。本次运行新建的页面会整体检查;已存在的页面则只检查本次运行新增的句子。完全一致的引文予以保留;仅在空白、弯引号、破折号或大小写上有差异,或在某位说话者的单次发言内属于近似改写的引文,会被替换为转录中的逐字原文片段。出现以下任一情况,句子将被隔离:引文在任何位置都无法找到依据,或仅能跨越两位说话者找到依据;将真实引文归属给错误的说话者;或陈述了转录中不存在的数字或日期。被隔离的句子会从页面正文中移除(同时移除由其派生的时间线、事实和链接),并原样保存在 frontmatter 的 unverified_claims 中;get_page 会显示这些内容,但 search、recall 和 think 不会读取。有依据的引文会在 grounding.quotes 中记录其来源范围和说话者。任何内容都不会被凭空捏造。遥测数据记录在 details.synthesis.quote_verify 中;配置项即为事故情况下的关闭开关。
模式阶段: 在 extract 之后运行(因此图状态是最新的)。
读取 dream.patterns.lookback_days 时间范围内(默认为 30 天)的近期反思,
运行一次 Sonnet 处理以发现反复出现的主题,并在有 ≥dream.patterns.min_evidence
(默认为 3)条反思支持某个模式时,将模式页面写入 wiki/personal/patterns/<theme>。运行完成后会记录其使用的最新反思(dream.patterns.last_evidence_ts);只要时间范围内没有比该反思更新的内容,后续运行就会跳过,并返回 no_new_evidence,而不是再次支付模型调用费用——gbrain dream --phase patterns --once
可强制运行一次。
质量标准(综合内容的铁律):
- 逐字引用用户原话。引号 ONLY 用于可从转录内容中 EXACTLY 复现的片段——如果无法准确复现某个片段,就在不加引号的情况下转述。不要转述那些可以准确引用的深刻表达。(写入后,引用核验流程会以机械方式强制执行此规则。)
- 穷尽交叉引用:每个新页面都 MUST 至少包含一个 Wiki 链接。
- 标题规范:只能使用小写字母、数字和连字符。不得使用下划线,不得使用文件扩展名。
- 编辑过的转录内容会生成新的标题(内容哈希后缀会变化)——绝不静默覆盖。
- 保留具体事实:准确保留重要内容中的具体数字、日期、金额、姓名,以及谁决定了什么,确保与转录内容完全一致。不要用日常事务细节凑字数。
- 每项陈述都必须以转录内容为依据。将推测标明为推测,绝不声称转录内容未显示的完成状态或结果。
**信任边界(allowed_slug_prefixes):**综合内容子 Agent 使用明确的写入路径允许列表,该列表取自 _brain-filing-rules.json 中的 dream_synthesize_paths.globs。即使提示词注入成功,子 Agent 也无法写入该列表之外的路径。信任来自 PROTECTED_JOB_NAMES——MCP 根本无法提交子 Agent 任务。只有编辑 JSON 才能添加综合器可写入的新目录。
**幂等性 + 隐私:**转录内容以 (file_path, content_hash) 为键,因此对相同内容重新运行时不会执行任何操作。dream.synthesize.exclude_patterns(默认为 ["medical", "therapy"])会在任何 LLM 调用之前筛除转录内容。每个条目都会自动包装为词边界正则表达式(例如,medical 会匹配“medical advice”,但不会匹配“comedical”)。高级用户可以传入完整的正则表达式。
**冷却时间:**在一次完全处理完待办内容的运行结束后,dream.synthesize.cooldown_hours(默认为 12)会在指定时长内跳过综合处理。完成时间戳存储在 dream.synthesize.last_completion_ts 中,只有在所有子任务均已完成且没有任何延后事项(综合预算、分诊时间预算或待发布内容)时才会写入;跳过或失败的运行不会写入。因此,如果待办任务持续积压,冷却时间不会生效,综合处理会每个周期都运行,直到积压任务清空(#6753);它并不是每天约 2 次的上限。要限制费用,请使用 dream.synthesize.max_submissions_per_source_per_day。明确指定 --input /
--date / --from / --to 的调用会绕过冷却时间。
**--dry-run 的语义:**运行带评分的分诊流程(对新文件进行判定并缓存结果),但会跳过综合子 Agent。它并非零 LLM 调用——如果要使用缓存评分进行零调用预览,请改用
gbrain dream retriage --dry-run。
在全新的 brain 上配置综合处理:
gbrain config set dream.synthesize.session_corpus_dir /path/to/transcripts
gbrain config set dream.synthesize.enabled true
gbrain dream --phase synthesize --dry-run --json # preview
gbrain dream # full cycle
调用方式:
gbrain dream # full cycle
gbrain dream --phase synthesize # just synthesize
gbrain dream --phase patterns # just patterns
gbrain dream --input ~/transcripts/2026-04-25.txt # ad-hoc one transcript
gbrain dream --from 2026-04-01 --to 2026-04-25 # backfill range
gbrain dream --json # CycleReport JSON
**自动提交推迟到 v1.1:**v1 会将文件写入 brain_dir,但不会执行
git add / commit / push。你可以自行提交,也可以让 gbrain autopilot
处理。
解析 - **YYYY-MM-DD** | 来源 — 摘要 和 ### YYYY-MM-DD — 标题 格式。
来源 — 摘要 中的破折号可以是 em dash、en dash 或带空格的连字符(-);
冒号(来源: 摘要)属于正文,因此该条目仍会保留 source: markdown,并将
整段文本作为摘要。
注意:提取的条目有助于结构化查询(gbrain timeline),但不会改善向量搜索。
Autopilot 检查
验证 autopilot 是否正在运行:
gbrain autopilot --status
退出代码可用于可靠地进行门控:0 表示正常(或尚未安装),
1 表示需要处理(心跳过期、从未运行,或因迁移而暂停),
2 表示守护进程已自行禁用(其仓库路径已消失)。--json 会输出
完整报告(state、heartbeat_age_seconds、paused_reason、
disabled_reason)。状态检查仅读取文件系统,因此即使数据库不可用也能运行。
如果尚未运行,请安装:
gbrain autopilot --install --repo ~/brain
Autopilot 会在持续循环中运行 sync、extract 和 embed,并采用自适应调度。
在 v0.11.1 及更高版本中,autopilot 会将每个周期作为单个
autopilot-cycle Minion 任务进行分派,并监控工作进程子进程——只需一个安装步骤,
即可实现 sync + extract + embed + backlinks + 持久化任务处理。
修复迁移未完成的安装
在迁移技能未运行的 v0.11.0 安装中,Minions 的设置会不完整:架构已应用,但
~/.gbrain/preferences.json 不存在,autopilot 在线程内运行,主机清单仍引用
agentTurn。修复方法:
# Check migration status
gbrain apply-migrations --list
# Apply pending migrations (idempotent; safe on healthy installs)
gbrain apply-migrations --yes
# If host-specific handlers are flagged in ~/.gbrain/migrations/pending-host-work.jsonl:
# walk them per skills/migrations/v0.11.0.md + docs/guides/plugin-handlers.md,
# ship handler registrations in the host repo, then re-run apply-migrations.
完整的故障排除指南:docs/guides/minions-fix.md。
反向链接约束
检查是否遵守反向链接铁律:
- 对于每个近期更新的页面,检查其中提及的实体是否有对应的反向链接,指向自这些实体页面
- 提及实体却没有反向链接,会导致知识库不完整
- 修复方法:在实体的 Timeline 或 See Also 部分添加缺失的反向链接
- 格式:
- **YYYY-MM-DD** | 在 [页面标题](path) 中引用 -- 简要说明
归档规则违规
检查常见的错误归档模式(参见 skills/_brain-filing-rules.md):
- 主题明确的内容被放入
sources/,而不是相应目录(people/、companies/、concepts/ 等) - 使用 gbrain search 查找
sources/中引用特定人员、公司或概念的页面——这些页面可能归档有误 - 标记归档有误的页面,以便审核或重新归档
引用审计
抽查页面,检查是否缺少 [Source: ...] 引用:
- 阅读 5-10 个近期更新的页面
- 检查编纂后的事实(分隔线以上)是否带有行内引用
- 检查时间线条目是否标明来源
- 标记事实缺少来源信息的页面
标签一致性
标签不一致(例如,“vc”与“venture-capital”、“ai”与“artificial-intelligence”)。
- 使用 gbrain 标签操作,将标签统一为最常见的变体
图谱填充(v0.10.3+)
links 和 timeline_entries 表构成结构化图谱层。
请定期或在大型导入后填充这些表:
gbrain extract links --source db— 遍历页面,回填结构化链接。 从引擎读取[Name](people/slug)/[Name](companies/slug)引用, 并推断关系类型(attended、works_at、invested_in、founded、advises、mentions、source)。可幂等执行。如果你有 Markdown 检出副本, 可改用--source fs --dir <brain>遍历。gbrain extract timeline --source db— 回填结构化时间线条目。 解析页面内容中的- **YYYY-MM-DD** | summary行。可幂等执行(由 DB UNIQUE 约束保证)。gbrain extract all --source db— 一次运行完成以上两项。gbrain graph-query <slug> --depth 2— 验证连通性(可使用任意知名 实体 slug 进行探测)。gbrain stats— 提取后确认link_count > 0且timeline_entry_count > 0。gbrain health— 查看实体页面(person/company)上的link_coverage和timeline_coverage百分比。低于 50% 表示还需要进一步提取。 如果知识库中的实体页面很少,这些指标会报告“样本太少,无法评估” (JSON 中为null,并以entity_page_count表示分母),而不是给出 误导性的 0%/100%;请先扩充实体集合,再根据覆盖率采取行动。
可用的链接类型(与 gbrain graph-query --type 搭配使用):
attended、works_at、invested_in、founded、advises、mentions、source。
今后,每次调用 gbrain put 都会通过自动链接后置钩子创建并协调链接
(默认开启;可通过 gbrain config set auto_link false 关闭)。
因此,链接提取主要只需回填一次。添加新日期条目的批量导入或内容编辑后,
应重新运行时间线提取。
功能采用情况检查(每周)
gbrain features --json # scan for underused features + recommendations
每周与 lint 一起运行。用于发现缺失的嵌入、未使用的集成以及配置改进项。
嵌入时效性
尚未生成嵌入的分块(--stale 只会选中这些分块)。嵌入操作会调用已配置的提供方,
按 token 计费,因此这是需要先获得用户批准的付费操作:
- 使用
gbrain embed --stale --dry-run进行预览,不调用提供方。 - 将分块数量和费用估算告知用户,并等待答复。
- 只有在用户同意后,才使用其批准的上限运行
gbrain embed --stale --yes --max-usd <cap>。
未经批准,命令会以退出码 3 停止,并显示要求你询问用户的 [AGENT] 块;
请转达该内容并停止。切勿自行传入 --yes。
对于长时间运行的任务(>1000 个分块),请将已批准的命令交由
skills/minion-orchestrator/SKILL.md 中的持久化阶梯处理,而不要直接使用
后台 shell,否则退出码 3 会被隐藏在日志文件中。
若要查看某个来源中搜索无法触及的内容,请运行
gbrain pages unsearchable --source <id> --json(只读)。请查看
semantic_unsearchable,而不只是 unsearchable:它还包含 keyword_only
页面,这些页面可通过关键词搜索找到,但向量搜索无法找到。awaiting_sync
统计的是同步仍在处理的文件,不受任何嵌入状态统计;请运行
gbrain sync status --source <id> --json 查看这些文件。每行都包含相应的 fix。
安全性(RLS 验证)
运行 gbrain doctor --json 并检查 RLS 状态。
所有表都应启用 RLS。如果没有,请重新运行 gbrain init。
架构健康状况
检查架构版本是否为最新版本。gbrain doctor --json 会报告当前版本与预期版本。
如果版本落后,gbrain init 会自动运行迁移。
文件存储健康状况
检查已存储文件和重定向指针的完整性:
- 运行
gbrain files verify,检查所有 DB 记录是否都有有效数据 - 运行
gbrain files status,查看迁移状态(本地、镜像、已重定向) - 检查是否存在引用了缺失存储文件的孤立
.redirect.yaml指针 - 检查 git 中是否仍有大型二进制文件(>= 100 MB),这些文件应存储在云端
- 如果已配置存储后端:验证重定向指针是否可解析(下载测试)
未解决事项
超过 30 天且仍有未解决行动项的时间线条目。
- 标记以供审核
基准测试
定期验证搜索质量是否有所下降。运行一组涵盖不同难度等级的测试 查询:
- 等级 1(实体查找): 已知名称——应始终能找到
- 等级 2(主题回忆): 概念、主题——关键词搜索应能处理
- 等级 3(语义): 不含完全匹配关键词的查询——需要嵌入
- 等级 4(跨领域): 关系/关联查询——只有语义搜索才能处理
比较 gbrain search(关键词搜索)与 gbrain query(混合搜索)的结果。
质量比速度更重要(2.5 秒得出正确结果,胜过 200 毫秒得出错误结果)。
何时运行基准测试:
- 大规模导入或重新导入脑库后
- 升级 gbrain 版本后
- 重新生成嵌入后
- 每月运行,以追踪质量变化
心跳集成
对于按计划运行的生产环境 Agent,将 gbrain 健康检查集成到 运维心跳中。
每次心跳时(每小时或每个会话)
运行 gbrain doctor --json 并检查是否出现性能下降。将未通过的检查结果
报告给用户。关键指标:连接健康状况、架构版本、RLS 状态、嵌入过时情况。
每周维护
为尚无嵌入的分块刷新嵌入,并执行与上文“嵌入时效性”相同的同意步骤:
运行 gbrain embed --stale --dry-run,转达估算结果;用户同意后,运行
gbrain embed --stale --yes --max-usd <cap>(或使用用户设置的长期
授权 consent.preapprove.paid.max_usd_per_run)。对于大型脑库(>5000 页),
通过 minion-orchestrator durable ladder 提交已获批准的命令;
如果必须在 shell 中将其置于后台运行,请保留退出代码:
(gbrain embed --stale --yes --max-usd <cap>; echo "exit=$?") > /tmp/gbrain-embed.log 2>&1 &
tail -2 /tmp/gbrain-embed.log # later: the last line is exit=<code>
日志中的退出代码 3 表示运行需要用户批准:转达此信息并停止。
每月备份检查
运行 gbrain backup status,并转达所有红色警告。该命令会验证每个知识
仓库(以及 Agent 工作区)是否都有 git 远程仓库——仅存储在本地意味着磁盘
丢失时数据也会丢失。修复命令会直接打印出来(gbrain bootstrap repo、git remote add、
gbrain sources harden <id>)。
每日验证
验证同步是否正在运行:检查 gbrain stats,并确认 last_sync 在过去
24 小时内。如果同步已停止,脑库就会逐渐偏离仓库内容。
检测过时的编译后真相
标记编译后真相超过 30 天,但时间线中有近期条目的页面。 这意味着有新证据尚未经过综合整理。这些页面需要重写编译后真相(参见上文 维护工作流)。
报告存储
维护运行后,保存报告:
- 健康检查结果(各维度的检查前/后评分)
- 发现并修复的反向链接违规
- 发现的归档规则违规
- 标记的引用缺口
- 基准测试结果(如已运行)
- 需要用户处理的未解决问题
这会为脑库健康状况建立长期审计记录。
质量规则
- 未经确认,绝不删除页面
- 通过时间线条目记录所有更改
- 在检查前后检查 gbrain 健康状况,以展示改进情况
失败时的处理
对于任何 gbrain 错误 code、退出代码、[AGENT] 块或通知块,请遵循Agent 操作者协议。此技能的具体要求如下:
- 对于
gbrain doctor --remediate中标记为“需要用户同意”的步骤(受保护的修复、付费步骤):展示计划和费用,并且只有在用户同意后,才使用--yes --include-repairs --expect <plan_hash> --max-usd <n>运行(哈希值来自--remediation-plan --json);preview_changed表示计划已变更,因此请重新预览并再次询问。超出上限的步骤不会启动。 - 若某项发现被归类为
operator_required,请遵循其指示,或将其转交给大脑主机的操作者。若为consent_required,请询问用户。 - 若写入协调遭到拒绝(
writer_coordinator_required、writer_not_quiesced、recovery_required),请检查gbrain sources writer status,并将受阻的恢复操作交给操作者;绝不要声称已检出,或删除锁。 - 若 Doctor 警告
persistence_terminal_failures:运行其fix.command(活动阻塞项:恢复记录或同步检查点阻塞项;或者需要附上回执 ID 报告的未解决 gbrain 缺陷类别)。对于其余记录,请运行gbrain sources writer failures <source> --group-by category(只读),按类别汇总带有修复方法的回执,并提供各组的深入排查信息;历史记录无需处理。绝不要取消或编辑回执来清除计数。操作手册:终端写入失败。 - 若
gbrain dream因预算耗尽而停止(退出代码为 11),请在已同意的预算范围内运行打印出的resume_command。
反模式
- 未先阅读页面就修复页面——编辑前必须了解上下文
- 悄悄跳过某些维度——必须检查并报告每个维度,即使没有问题也不例外
- 未检查孤立页面是否应改为添加链接,就将其删除
- 在使用高峰时段刷新嵌入
- 未验证关系是否属实,就批量修复反向链接
- 未实际查询某个维度,就将其标记为“正常”
- 未先阅读完整时间线,就重写已编译的事实
- 未检查其他页面是否一致使用相同标签,就移除标签
输出格式
维护报告遵循以下结构:
## Brain Health Report — YYYY-MM-DD
| Dimension | Issues Found | Fixed | Remaining |
|----------------------|-------------|-------|-----------|
| Stale pages | N | N | N |
| Orphan pages | N | N | N |
| Dead links | N | N | N |
| Missing cross-refs | N | N | N |
| Back-link violations | N | N | N |
| Citation gaps | N | N | N |
| Filing violations | N | N | N |
| Tag inconsistencies | N | N | N |
| Embedding staleness | N | N | N |
| Security (RLS) | N | N | N |
| Schema health | N | N | N |
| File storage | N | N | N |
| Open threads | N | N | N |
### Details
[Per-dimension breakdown with specific pages and actions taken]
### Benchmark Results (if run)
[Tier 1-4 query results with pass/fail]
### Outstanding Issues
[Items requiring user attention or confirmation]
使用的工具
- 检查 gbrain 健康状况(get_health;管理范围)
- 在不使用管理范围的情况下检查分级大脑健康状况(get_brain_health)
- 按筛选条件列出 gbrain 中的页面(list_pages)
- 读取 gbrain 中的页面(get_page)
- 检查 gbrain 中的反向链接(get_backlinks)
- 在 gbrain 中链接实体(add_link)
- 移除 gbrain 中的链接(remove_link)
- 为页面添加标签(add_tag)
- 移除标签(remove_tag)
- 查看时间线(get_timeline)