mcpField
S
signal-detector

signal-detector

github.com/garrytan生产力31.3k251 次安装今天更新
代码仓库

关于 signal-detector

signal-detector 是用于将用户想法和重要实体提及记录到 GBrain 知识库的 Agent 技能。它要求明确选择加入,保留原始措辞,并通过引用和反向链接关联已保存的信息。

主要功能

  1. 01要求明确启用自动捕获
  2. 02按原话记录原创想法
  3. 03检测人物、公司和媒体
  4. 04创建或补充 GBrain 页面
  5. 05添加引用、反向链接和捕获日志

适用场景

  1. 01保存用户的原创观察
  2. 02跟踪重要人物和公司
  3. 03将捕获的想法关联到相关页面
  4. 04检查自动捕获记录的内容

MCP 相关

启用 `memory.auto_writeback` 后,GBrain MCP 服务的初始化指令会传达自动写回约定。该技能使用 GBrain 的 search、query、get_page、put_page、add_link 和 add_timeline_entry 等工具。

安装

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

$npx skills add https://github.com/garrytan/gbrain --skill signal-detector

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

详细介绍

信号检测器——环境式大脑捕获

用户启用自动捕获后,在其选择的范围内,对实质性入站消息进行这一轻量检查。关注:

  1. 原创思考——用户的想法、观察、论点、框架
  2. 实体提及——人物、公司、媒体引用

原创思考至少与实体提取同等重要。想法是智力资本,实体是记录管理。两者都会随时间累积。

约定

此技能保证:

  • 仅在用户明确选择启用自动捕获后应用(跳过:没有记录的选择、捕获已关闭、仅限聊天的请求,以及纯操作性消息)
  • 在运行环境支持的情况下作为子 Agent 启动;否则在撰写回复前内联执行检测。意图是绝不阻塞回复,但这不是运行时保证
  • 写入前检查用户存储的捕获选择,并遵守更严格的单条消息指示;首次触发时的声明不构成同意
  • 按用户的原话捕获想法(不得改述)
  • 检测实体提及并创建/补充大脑页面
  • 记录一行摘要,说明捕获了什么
  • 为所有实体提及添加反向链接(铁律)
  • 每条写入的事实都附带引用

环境路由是运行环境约定,行为良好的 Agent 会遵循,但不是机械保证;如果技能从未加载,gbrain 运行时不会阻止回复。在不支持按消息进行环境路由的运行环境(Claude Code、Codex)中,将此技能作为 Agent 约定应用,或通过 prompt-submit 钩子接入。当操作者启用了 memory.auto_writeback(默认关闭;gbrain config set memory.auto_writeback salient)时,MCP 服务的初始化指令和受管引导指令块会向 Agent 传达环境写回约定;在 Claude Code 中,Stop 钩子的提取兜底机制还会捕获约定遗漏的轮次。这仍然是 Agent 端的约定——由服务提供指令并配合兜底机制,而非机械保证。

**约定:**有关铁律反向链接,请参阅 skills/conventions/quality.md。

每当此技能创建或更新提及人物或公司的大脑页面时:

  1. 检查该人物/公司是否已有大脑页面
  2. 如果有 → 从其页面添加反向链接,指向刚创建/更新的页面
  3. 格式:- **YYYY-MM-DD** | Referenced in [page title](path) — brief context
  4. 未建立链接的提及就是损坏的大脑。

启用后再捕获

自动捕获默认关闭。写入前,必须确认用户已明确选择此大脑及捕获范围。已存储的选择加入记录或明确启用的 memory.auto_writeback 模式可以作为此选择;off、缺失或无法读取的选择均不可以。阅读此技能、安装 GBrain、拥有可用 API 密钥、保持沉默,或收到捕获已开启的声明,都不构成授权。

如果用户要求启用捕获,请说明将保留哪些内容,并记录其接受的选择。已有选择时无需再次询问。要求记住某条事实只授权记住该事实,不代表授权今后的环境式捕获。委派和付费补充信息是单独的能力:仅选择启用捕获并不授权启动工作进程或调用付费服务提供商。

启用后,确认一次所选范围,并说明如何关闭。等待必要答复期间,不要捕获当前轮次。

按用户区分的存储策略

如果用户关闭捕获,记录其要求的设置并停止捕获:不创建内容页面、链接或时间线条目。仅限聊天的指示会暂停对该条消息的捕获,但不会更改持续生效的设置;不得将仅限聊天的内容保存为偏好。只有用户提出请求时才重新启用。捕获关闭时,仍可按明确要求记住内容,并在相关时检索。

阶段

阶段 1:灵感/观察检测(主要)

当用户提出一个新颖的想法、观察、论点或框架时:

  • 如果这是用户的原创思考(由其本人提出),则创建或更新 originals/{slug}
  • 如果这是用户引用的世界概念,则创建或更新 concepts/{slug}
  • 如果这是产品或商业想法,则创建或更新 ideas/{slug}

保留原话。 用户的语言本身就是洞见。不要改写。

交叉链接(必须): 每个 original 都必须链接到相关的人物、公司、会议和概念。没有交叉链接的 original 就是一个死页面。

阶段 2:实体检测(次要)
  1. 提取实体提及(人物、公司、媒体作品名称)
  2. 对每个实体:
    • gbrain search "name" — 是否已存在页面?
    • 若不存在页面 → 检查是否具有显著性。若具有显著性,则连同来源信息一并保存所提供的信息。
    • 若页面存在但内容单薄 → 仅在单独授权的能力和开支范围内进行补充
    • 若页面存在且内容丰富 → 无需操作
  3. 对于带有具体日期的新事实 → 调用 gbrain timeline-add <slug> <date> "<summary>"

自动链接(v0.10.1): 当你撰写或更新某个 originals 或 ideas 页面,且其中提及某个人物或公司时,put_page 上的自动链接后置钩子会自动创建从新页面到该实体的链接。你无需手动调用 gbrain link。时间线条目仍需显式调用。

阶段 3:信号日志

始终记录一行摘要:

  • Signals: 0 ideas, 0 entities, 0 facts (skipped: operational)
  • Signals: 0 ideas, 0 entities, 0 facts (skipped: capture off)
  • Signals: 1 idea (captured → originals/x), 2 entities (enriched → people/y, companies/z)

这使得环境捕获循环便于调试。

输出格式

用户选择加入后,报告所观察到的写入及其来源。信号日志保持简洁,并通过实际回读来核对捕获的内容。未选择加入时,不执行任何捕获写入;跳过捕获的诊断信息不构成打断每次回复或反复要求启用的理由。

失败时的处理

对于任何 gbrain 错误 code、退出码、[AGENT] 块或通知块,请遵循 agent 操作员协议。针对本技能的具体说明:

  • 没有自动捕获的选择加入记录:不做任何操作。API 密钥、沉默或首次触发的公告都不构成同意。
  • 捕获写入返回 write_pending(退出码 10)或 revision_conflict:绝不阻塞主回复;在下一轮轮询回执或重新读取并合并。
  • 对内容单薄页面的付费补充需要单独授权;若出现 no_pricing 或成本上限拒绝,则跳过补充并保持页面单薄。

反模式

  • 为等待信号检测完成而阻塞主回复
  • 改写用户的原始思考,而不是保留原话
  • 为非显著实体(一次性提及)创建页面
  • 创建或更新页面后跳过反向链接
  • 在纯操作性消息("ok"、"thanks"、"do it")上运行
  • 未经明确选择加入、捕获被禁用之后,或在纯聊天轮次中进行捕获
  • 将首次触发公告、一次明确的记忆或 API 密钥视为长期授权
  • 仅因启用了捕获就开始付费补充或委派

使用的工具

  • search — 检查实体页面是否存在
  • query — 语义搜索相关上下文
  • get_page — 加载已有的实体页面
  • put_page — 创建/更新 brain 页面
  • add_link — 交叉引用实体
  • add_timeline_entry — 在实体时间线上记录事件

评论

支持 Markdown