mcpField
W
wiki-room

wiki-room

github.com/rheinmirAgent 工作流10216 次安装2 周前更新
代码仓库

关于 wiki-room

wiki-room 是用于深入检索多页 wiki 的 Agent skill,通过单个只读子 Agent 汇总细节,避免主会话上下文膨胀。适合长会话或需要检查多页及其关联页面的情况。

主要功能

  1. 01单个只读子 Agent 深入阅读
  2. 02读取关联页面的一层邻居
  3. 03按页面预算限制读取量
  4. 04输出带来源的 500 词内结论
  5. 05标记过时页面与缺失信息

适用场景

  1. 01长会话中查询多页 wiki 细节
  2. 02检查超过三页及其关联页面
  3. 03上下文接近饱和时获取精简结论

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rheinmir/setup --skill wiki-room

安装后在 Claude Code 中输入/wiki-room确认已加载。

详细介绍

技能:wiki-room

wiki-core v2 的 C 层(概念 wiki-core-relations):当主会话的上下文已变长/发生腐化时, 不要再向主会话加载更多细节——打开一个 room(subagent),加载完整内容后返回压缩结论。主会话保留地图(A 层),细节留在用完即弃的 room 中。

WHAT

用途和上下文
  • **用途:**回答需要从多个 wiki 页面获取深层细节的问题,同时不让主会话的上下文膨胀——在一个用完即弃的 room(subagent)中阅读细节,主会话只接收附有来源的压缩结论。
  • 触发条件(何时使用):
    • 主会话已变长(多次总结/summarize),且需要从多个 wiki 页面获取深层细节。
    • 问题需要完整阅读超过 3 个 wiki 页面及其关系邻居页面。
    • 用户说“打开 room”“context rot”“加载更多 wiki 细节”“深入研究 wiki”或 /wiki-room。
  • 非目标:
    • 只需查阅 1–2 个特定页面时不要使用——直接阅读比开 room 更省时(速度标准)。
    • 这不是长期记忆——需要留存的知识必须通过 /ingest 纳入 wiki,或更新页面。
    • 不修改 wiki;room 只负责阅读和汇总。
心智模型

问题 → A 层简报(id 列表 + 过时页面 + 相关 episode)→ B 层预算 → 一个 room(subagent,深度 1)阅读 B 层及一步关系邻居 → 附有来源的压缩结论 ≤500 字 → 主会话采取行动。

输入和输出约定
字段必需?含义
In问题是需要在 wiki 中深入探究的内容
InB 层预算否(默认值为 12)B 层页面数上限,包括一步关系邻居
In页面 id 列表在 W01 中自行整理根据问题、wiki/index.md、wiki/stale.json 和 episode 检索得出
Out压缩结论是≤500 字,每项断言都附上来源页面;过时页面须标记;触及预算时注明“已触及预算,未读取:”;缺少数据时注明“缺少:<什么>”

“完成” = 主会话收到压缩结论并据此继续行动,而不是粘贴页面全文。

规则和能力

三条硬性规则(原文复制到 room 提示词中):

  • RULE-01 (MUST):**深度上限 = 1(G3):**room 绝不能以任何理由打开子 room/subagent。数据不足时 → 在结论中注明“缺少:<什么>”,由主会话决定。
  • RULE-02 (MUST):**硬性预算:**最多读取 B 个页面。触及上限后 → 停止阅读,根据已有内容汇总 (circuit breaker——返回截断结果,并注明“已触及预算,未读取:”)。
  • RULE-03 (MUST):**附有来源的压缩结论:**每项断言都必须附上来源页面(concepts/x.md);简报中标记为 stale 的来源页面必须附上标记“(stale — 请重新核实后再相信)”。

反模式(适用于主会话的补充规则):

  • RULE-04 (MUST NOT):针对一个问题并行打开多个 room(会导致总预算失控)——一个问题,一个 room。

  • RULE-05 (MUST NOT):将 room 用作长期记忆——room 用完即弃;需要留存的知识必须通过 /ingest 纳入 wiki 或更新页面,不能留在 room 的 transcript 中。

  • RULE-06 (SHOULD NOT):主会话仍较短时调用 room——直接阅读总是更快。

  • 能力:读取 wiki(索引、过时页面列表、frontmatter relations:);进行 episodic 语义检索;仅启动一个只读 subagent。不写入 wiki。

失败边界
  • 问题只需查阅 1–2 个页面 → 不打开 room,直接阅读(合理拒绝)。
  • room 触及 B 层预算 → 部分结果:返回截断结论 + 未读取页面列表。
  • room 缺少数据 → 注明“缺少:<什么>”,由主会话决定(不开子 room)。
  • 来源页面已过时 → 仍可使用,但须标记以便重新核实。

HOW

Main workflow
StepTypeInputsActionOutputs/exitFailure/next
W01judgment问题、wiki/index.md、wiki/stale.json、mem-rank.py制定 Tier A brief(主会话,低成本)页面 ID 列表 + stale 标记 + episode 线索≤2 页 → 直接阅读,停止
W02deterministicID 列表、frontmatter relations:打开前确定预算 B(默认 12,包含 1 步邻居)B + 上限内的列表—
W03effectbrief、B、3 条硬性规则打开恰好一个 room(subagent Explore/general-purpose)room 运行—
W04judgmentroom 结论接收精简结论(≤500 字 + 来源),采取后续行动主会话决策达到预算/信息不足 → B01

各步骤详情(W01–W04 的真相来源):

  1. **制定 Tier A brief(主会话,低成本):**收集需要深入查看的页面 ID 列表——根据问题 + wiki/index.md
    • wiki/stale.json(相关 stale 页面必须在 brief 中明确标注为“可能已过时”)。 通过 episodic 语义检索补充线索:python3 harness/scripts/mem-rank.py retrieve "<câu hỏi>" --kind-filter episode——无需 [[wikilink]] 即可捕捉“之前的会话做了什么”; 将检索到的文件/episode 加入 brief,提供给 room。
  2. **打开前确定预算:**最多 B 个 Tier B 页面(默认 12)+ 1 步关系邻居 (读取列表中页面的 relations: frontmatter——也计入 B)。
  3. **打开恰好一个 room:**启动 1 个 Explore/general-purpose subagent,提示词包括:问题、ID 列表、 预算 B,以及 Rules 一节中的 3 条硬性规则(原文复制到提示词中)。
  4. 接收精简结论(≤500 字 + 来源引用),主会话据此采取后续行动—— 不要将 room 已读取页面的全文粘贴到主会话中。
Branches
IDKindGuard行为跳过 / 失败Rejoin
B01recoveryroom 达到预算 B 或报告“缺少:<内容>”主会话决定:采用截短的结论,或直接阅读几个缺失页面不打开子 room,不并行打开第二个 roomW04
Validation 和 stopping

room 在读完列表或达到 B 时停止(按页面计数的确定性 circuit breaker)。通过 review 检查:结论 ≤500 字,每项陈述都有来源页面,stale 页面带有标记。一个问题最多打开一个 room。

Examples
  • **正向:**较长的会话中询问“wiki-core v2 如何在各个 tier 中处理 stale?” → brief 包含 6 个页面 + 3 个邻居(B=12)→ 一个 room → 400 字结论,引用 concepts/wiki-core-relations.md,其中一个页面标注“(stale — 请在采信前重新核实)”。
  • **边界/失败:**问题需要 20 个页面,B=12 → room 在第 12 个页面处停止,返回结论并注明“已达到预算,尚未阅读:<8 个页面>”;不打开子 room。
  • **边界:**只需要 concepts/solid-what-how.md → 不打开 room,直接阅读。

Origin

  • **来源:**概念 wiki-core-relations §2.4 Tier C + council 020726 guardrail G3/G6
  • **日期:**2026-07-02

评论

支持 Markdown