gbrain 的 Resolve Before Asking:先穷尽大脑查询链,再向用户提问的身份识别守门 Skill

发布时间:2026/9/20 8:40:11

gbrain 的 Resolve Before Asking:先穷尽大脑查询链,再向用户提问的身份识别守门 Skill 人工智能RAGAgent 记忆MCP 服务知识管理【免费下载链接】gbrainGarrys Opinionated OpenClaw/Hermes Agent Brain项目地址https://gitcode.com/gh_mirrors/gb/gbrain点击查看免费下载在 gbrainGarrys Opinionated OpenClaw/Hermes Agent Brain中agent 面对任何「X 是谁」「某人与用户是什么关系」这类身份问题都必须先跑完一条从大脑内部到外部网络的完整查询链只有整条链都无果才允许向用户提问——而且提问必须带着假设绝不能抛出赤裸裸的「who is X?」。本文完整拆解这条守门链路的六步协议、置信度判定、ingest 阶段「无占位符」规则以及它与 query / brain-ops / ask-user / enrich 等技能的边界划分。这份 Skill 在解决什么问题resolve-before-asking是 gbrain 技能体系中负责身份识别问题守门gate的技能定义于 plugin/skills/resolve-before-asking/SKILL.md仓库同时维护一份相同的 skills/resolve-before-asking/SKILL.md。其核心承诺一句话可以概括Never ask the user who is X? when the answer already exists in the brain.当答案已经存在于大脑中时永远不要向用户问「X 是谁」这句话背后是一条产品级承诺记忆应该在打扰用户之前就给出答案——The memory answers before the human is bothered见 SKILL.md。用户的注意力是稀缺资源agent 每一次把本可自查的问题抛回给用户都是在消耗这份资源。它要「杀死」的 Bug 是一种典型的**懒惰升级lazy escalation**模式agent 明明面对着一个大脑页面极其丰富的实体——带角色描述的 timeline 条目、大量的会议历史、导入的消息归档——却不读这些内容直接问用户「这个人是谁」。SKILL.md 中给出了两个匿名化的真实例子alice-example她的 brain 页面已经写有角色行Chief of Staff at acme-example和长长的会议历史agent 仍然问了charlie-example有一大堆导入的邮件线程主题行全部指向同一个共享项目agent 仍然问了。触发时机这是一条路由约定不是机械保证SKILL.md 明确强调这是一个harness-routing convention编排层路由约定而非机械保证。只要满足以下任意一条就应路由到本技能回复草稿中出现 who is [name]? 或等价表达草稿在询问某人的角色、关系或身份即将把一个实体呈现为 unknown 或 unidentified大脑页面存在[To be filled by content analysis]或类似的占位文本正在整理一份人员清单却把某些人留作 unknown relationship。这一路由约定在仓库中有对应的测试夹具支撑skills/resolve-before-asking/routing-eval.jsonl定义了多组意图样本其中明确写道「This skill owns WHETHER an identity question reaches the user; plain lookups route to query, page enrichment to enrich, choice-gate mechanics to ask-user」。例如I have an unidentified contact in this reply draft — run resolve before asking路由到本技能而who is alice-example? tell me about her background这类纯查询则明确路由到querywhats for breakfast则无技能匹配expected_skill: null。同时 skills/RESOLVER.md 把resolve before asking、unidentified contact、unknown relationship等触发短语直接映射到本技能文件。六步查询链按序执行遇到第一个明确答案就停这是整份技能的核心骨架。查询链必须严格按顺序执行在第一个给出明确答案的步骤就 STOP绝不跳过。Step 1think—— 跨大脑综合解决大多数情况gbrain think Who is {entity}? What is their relationship to the user? What role do they play? Use all available context — meetings, timeline, imported archives, facts.think会跨越全部大脑数据进行综合。如果该实体有一个带导入活动统计、timeline 条目和会议历史的页面think能把这些点连成线。在源码层面think是 src/commands/think.ts 中runThinkCli对runThink的封装它支持--anchor slug拉取某 slug 周边的实体子图、--rounds N多轮综合、--since/--until时间窗口、--source id限定证据来源范围等参数并通过--save把综合结果持久化为synthesis/slug-date.md页面。think是一个需要 LLM 调用的昂贵路径见 skills/brain-ops/SKILL.md Phase 1.5 的提示但它返回的是「有引用、有冲突/缺口分析的回答」而不只是「匹配页面列表」。在 MCP 传输层上entity({entity})首先返回一张零 LLM 调用的卡片aliases、last-touched、top edgesbrain-ops中描述为 sub-100ms 的gbrain entity调用当卡片信息不足时synthesize才是重型跨页答案。如果这一步返回了明确答案 → STOP直接使用答案不要问用户。Step 2search 整页读取gbrain search {entity} --limit 5 gbrain get {entity-slug}这一步要看的东西有四处frontmatter 中的relationship字段——已填充即已解决timeline 条目中反复出现的角色信号advisor、colleague at acme-example、chief of staffFacts 表——任何角色/关系类事实会议历史——这个人参加过哪些会议和谁一起如果 timeline 条目反复出现一致的角色 → STOP角色已经显而易见不要问用户。Step 3逐一查询大脑实际挂载的每个 source不要硬编码渠道。先检查大脑持有哪些数据再按数据形态查询gbrain sources list gbrain query emails with {entity} --limit 10 gbrain query meetings with {entity} --limit 5gbrain sources list对应 src/commands/sources.ts 的 sources 子命令族——source 是「DB 内的大脑子库」wiki、gstack、yc-media 等每个页面/文件/ingest_log 行都归属于某个sources(id)slug 在 source 内唯一。无论挂载了什么——邮件归档、日历导入、聊天记录、会议笔记——几条主题行或会议标题通常就能暴露关系Invoice / scheduling / billing 类主题 → 专业服务关系会议标题反复出现且与会者一致 → 同事Dinner / weekend-plan 类消息 → 私人朋友。Step 4Timeline 图遍历gbrain timeline {entity-slug} --limit 20 gbrain backlinks {entity-slug} gbrain graph {entity-slug} --depth 2看带日期的活动、谁引用了这个实体、它连接着什么。一个从公司页面和三张会议页面反向链接过来的back-link的人绝不是 unknown。反向链接是 gbrain 的「Iron Law」之一见 skills/_brain-filing-rules.md 的 Back-Linking 铁律每个提到某人/某公司的页面必须从该实体页面创建反向链接——「An unlinked mention is a broken brain. The graph is the intelligence.」Step 5Web 搜索外部升级遵循 brain-first只有在步骤 1–4 都一无所获之后才执行。用{entity name} {company/domain hints accumulated in steps 1-4}做一次通用网络搜索并把任何发现先回写fold back到大脑页面再使用——这正是 brain-ops 的 read-enrich-write 循环确保下一次查询不会重复做功。这一顺序的合法性来自 skills/conventions/brain-first.md 的基础查询链约定search → query → get_page → external APIs本技能把这条链再向外延伸一跳到达人类边界向用户提问是最后的最后手段排在「大脑」与「外部升级」之后。Step 6升级给用户最后手段——带假设提问只有当所有前面的步骤都返回不了结论时说明你搜了什么State what you searched说明你找到了什么——哪怕是部分信号State what you found提出一个具体、可确认的问题不是「X 是谁」而是「{entity} 是不是 {根据部分信号拼出的最佳猜测}」选择门的机制细节2–4 个选项、逃生通道、停止回合交给 ask-user 处理——它定义了完整的 choice-gate 模式2–4 个选项上限、强制逃生通道Skip/Cancel、标签必须是「动词 简短限定词」、发出选项后必须停止回合不继续行动、不预选默认值。置信度阈值只有两种状态置信度判定条件行动高置信不提问think/synthesize给出明确答案或3 条 timeline 条目携带一致的角色描述或页面relationship字段已填充使用答案不问用户低置信带着最佳猜测提问信号矛盾或数据极稀疏提问但问题以假设开头并陈述矛盾如有不存在第三种状态。要么大脑回答了用它要么没回答跑完整个链然后带假设提问。这是 SKILL.md 明确划下的边界杜绝「部分信号 已解决」的虚假置信。No Placeholders at Ingest摄入阶段同步解决这是本技能的第二个重要职责覆盖所有摄入管线——邮件导入、日历 enrich、聊天记录、会议摄入——创建的或显著更新的人物/公司页面以下这些页面形态都是 Bug[To be filled by content analysis] Contact from the users personal network.空的## Context小节尤其当摄入批次本身就携带了几百条关于这个人的信号时。因此要在每次批量摄入后对所有被创建/更新的页面执行一次后处理扫描检查占位符扫描被触碰页面的标记[To be filled、Unknown relationship、TBD。无占位符且relationship已填充 → 跳过已解决。跑查询链上述步骤 1–4在 ingest 时刻通常第 1 步think就够因为批次刚写入了think所需的信号。抽取关系类型friend / colleague / advisor / family / founder、职业角色title company、关键上下文如何认识用户、什么时代。更新页面put_page填充relationshipfrontmatter 字段、用真实一句话描述替换占位描述、更新## Context或开篇段落。批量效率100 页的大批量每批 10–20 页处理按 captured-activity 量排序活动越多用户在 briefing 中遇到这个名字的可能性越大跳过已经实质性的页面。Email 域名捷径假设生成器不是证据在跑链之前发件人域名经常就能种下假设域名形态假设acme-example.com—— 大脑中已有的公司很可能是 acme-example 员工。对照公司页 共享会议确认后再填充。大脑中没有的企业域名新公司。跑完整链条考虑播种一个companies/页面。个人域名gmail 等没有捷径——跑完整链条。注意技能对此的定位非常谨慎域名只是假设生成器hypothesis generator不是证明not proof。质量标准一个「已解决」的页面要能通过这个测试如果用户在 briefing、triage 或会议准备中遇到这个名字页面的第一行就能说出这个人是谁无需用户再问。坏 Contact from the users personal network.好 Operations lead at acme-example — handles invoicing and vendor onboarding for the user.这条质量标准与_brain-filing-rules.md的归档规则按主主题归档到people/、companies/以及 enrich 的分层 enrich 协议互为表里——「No Placeholders at Ingest」正是 enrich 写入必须达到的验收标准。输出格式静默解决 vs 带假设升级(a) 静默解决Resolved silently身份被用于当前流程如果页面有占位符则以put_page顺带填充。不向用户发送任何关于这次查询的消息。(b) 带假设升级Escalation with a hypothesis按 ask-user 的选择门格式输出 **Is {entity} the {best guess}?** Searched: think, search page read, mounted sources, timeline/graph, web. Found: recurring invoices from widget-co.com; two meetings alongside the acme-example team. Nothing names their role directly. 1. **Confirm** — {entity} is {best guess} 2. **Correct me** — its someone else (tell me who) 3. **Skip** — leave unresolved for now发出选择门之后停止回合详见 ask-user。反模式清单Anti-Patterns❌ 没有先做任何查询就抛「Who is X?」❌ 大脑页面有几十条 timeline 条目还问「他们和你什么关系」❌ 列出一堆 unknown 却没有对每一个跑查询链❌ 在摄入批次携带几百条信号的页面上留下[To be filled by content analysis]❌ 询问一个邮件地址本身就暴露雇主的人janeacme-example.com❌ 用memory_search做实体查询——memory 工具搜的是会话笔记MEMORY.md不是大脑知识图谱brain-first.md 明确禁止应使用search/query/entity❌ 把非零的search命中数当作「链已完成」——必须读页面在断言「大脑里没有」之前还要用query跑同义词改写。这一点在brain-first.md中同样被强调A nonzerosearchcount is NOT a completeness signal❌ 带着虚假置信升级——部分信号是假设不是解决如果信号矛盾升级时必须陈述矛盾。技能边界Dedup谁拥有什么这份技能与相邻技能有刻意划清的锐利边界理解这些边界是正确使用的前提技能拥有什么与 resolve-before-asking 的关系query查询动词机制3 层搜索、综合、引用本技能消费同样的工具但拥有的是一个决策身份问题是否允许到达用户而非一次查询brain-ops每次大脑交互的通用 read-enrich-write 循环本技能是该循环某一条特定出口面向人类的身份问题上的闸门ask-user如何提问选择门格式、选项上限、停止回合本技能拥有是否应该提问以及问题必须包含什么searched / found / hypothesisenrich用分层 enrich 协议创建和更新实体页本技能的「No Placeholders at Ingest」是 enrich 写入必须达到的验收标准占位符需要填充时先跑本技能查询链再按 enrich/brain-ops 约定写入conventions/brain-first.md所有查询的「大脑优先于外部 API」顺序本技能继承该顺序并加上最后一层边界外部优先于人类建页前去重守卫dedup-before-create写入时防止重复页面不同的失败类别它防止写入期的重复页本技能防止询问期的无用提问。交叉引用不合并最终检验标准SKILL.md 用一句话定义了这个标准的检验方式The Standard用户看着这个人的大脑页面——导入的归档、暴露雇主的邮件域名、反复重复同一角色的 timeline 条目——会不会觉得 agent 问「这个人是谁」是合理的如果答案是不会说明查询链没跑完。跑完它。延伸阅读resolve-before-asking 技能定义 与 skills 目录下的同源副本基础查询链约定skills/conventions/brain-first.md归档规则按主主题归档到people/、companies/skills/_brain-filing-rules.md选择门机制skills/ask-user/SKILL.md大脑读写循环skills/brain-ops/SKILL.mdthink命令源码src/commands/think.tssources 管理源码src/commands/sources.ts路由测试夹具skills/resolve-before-asking/routing-eval.jsonl赞分享人工智能RAGAgent 记忆MCP 服务知识管理【免费下载链接】gbrainGarrys Opinionated OpenClaw/Hermes Agent Brain项目地址https://gitcode.com/gh_mirrors/gb/gbrain点击查看免费下载相关推荐GBrain 起源解析从记忆靠感觉到可自我查询的 Agent 大脑GBrain 起源解析从记忆靠感觉到可自我查询的 Agent 大脑 GBrainGarrys Opinionated OpenClaw/Hermes人工智能RAGAgent 记忆MCP 服务知识管理k-skill 的 MFDS 药品安全核查技能基于 e약은요 与 k-skill-proxy 的先访谈、再查询式用药安全助手k skill 的 MFDS 药品安全核查技能基于 e약은요 与 k skill proxy 的先访谈、再查询式用药安全助手 本篇技术指南围绕 k ski人工智能AI 技能BlenderMCP实战指南深度解析AI驱动3D创作工作流BlenderMCP实战指南深度解析AI驱动3D创作工作流 BlenderMCP是一款革命性的开源工具通过Model Context ProtocolMC人工智能RAGAgent 记忆MCP 服务知识管理上一篇DebugSwift WebView网络监控WKWebView请求追踪完整指南下一篇免费PDF补丁丁批量修好书签、尺寸、被锁的文档创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/20 8:40:11

Open Code Review:开源可审计的LLM代码审查实践

1. 这不是又一个“AI代码审查工具”,而是一套可落地的开源协作新范式“open-code-review”这个词乍看像某个新发布的CLI工具名,但实际它指向的是一类正在快速成型的工程实践:用开源、透明、可审计的方式,把大语言模型(…

2026/9/20 8:40:11

JS语音合成与WebSocket流式推送:实时语音系统落地实践

做实时语音系统的时候,最绕不开的一环就是:把一段文本变成声音,然后以流的形式送到接收端。最近我正好整理了一个方案——用 JavaScript 做语音合成,把合成出来的音频转成语音流,再通过 WebSocket 推送给前端播放。这套…

2026/9/20 8:40:11

让AI Agent输出专业图表:从方框图到38种图表类型的工程实践

有些事不亲手做一遍,很难相信问题居然能这么离谱。前阵子我搭了一个AI Agent,让它帮忙梳理订单系统的业务逻辑,结果它给我输出了一堆用方括号和横线拼出来的"方框图"。图是能看懂,但想拿给业务方评审?想放进…

2026/9/20 9:50:20

Go项目架构演进:从六边形架构到领域驱动设计

1. 从六边形架构到领域驱动设计的演进背景在Go语言项目架构演进过程中,六边形架构(Hexagonal Architecture)和领域驱动设计(DDD)是两种经常被讨论的模式。六边形架构由Alistair Cockburn在2005年提出,核心思…

2026/9/20 9:50:20

MXNet 入门第一课:用 NP on MXNet 操作 ndarray 数据

MXNet 入门第一课:用 NP on MXNet 操作 ndarray 数据 【免费下载链接】mxnet Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more …

2026/9/20 9:50:20

PEMFC一维与伪二维建模:Python实现极化曲线与参数标定

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 9:50:20

OpenViking:面向Agent的上下文操作系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/20 5:01:23

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/20 5:09:33

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码