入門:用 Convention Callout 實現(xiàn) Brain-First Lookup(以 compliant-callout 為例))
人工智能RAGAgent 記憶MCP 服務(wù)知識管理【免費下載鏈接】gbrainGarrys Opinionated OpenClaw/Hermes Agent Brain項目地址https://gitcode.com/gh_mirrors/gb/gbrain點擊查看免費下載本文以 test/fixtures/brain-first-skills/compliant-callout/SKILL.md 為切入點講解 GBrain 技能Skill如何通過一段規(guī)范化的 **Convention:**引用callout聲明 Brain-First 合規(guī)性從而通過skill_brain_first靜態(tài)檢查。讀完本文你將理解 Brain-First Lookup 協(xié)議、analyzeSkillBrainFirst分析器的三層合規(guī)階梯與兩類豁免路徑、brain_first: exempt的嚴(yán)格寫法以及如何對照夾具語料自查自己的 SKILL.md。背景為什么技能必須先查大腦GBrain 是 OpenClaw/Hermes 場景下的Agent 大腦以 Markdown 頁面為知識圖載體。在 docs/guides/brain-first-lookup.md 中項目的核心約定是在任何外部 API 調(diào)用之前先檢查大腦。外部 API 只用于補缺口而不是從零開始。這個約定的動機非常具體如果某個 Agent 對一個你已經(jīng)開過 12 次會議的人直接調(diào)用 Brave Search得到的是一份 LinkedIn 摘要而不是你的關(guān)系歷史。反過來先查大腦能得到你們?nèi)绾握J識、討論過什么、做過什么判斷、最近有什么變化這類外部 API 永遠給不出的上下文。Brain-First 的核心主張來自 docs/guides/brain-first-lookup.md大腦擁有任何外部 API 都無法提供的上下文關(guān)系歷史、你自己的評估、會議記錄、交叉引用、時間線一份 LinkedIn 抓取給你職位頭銜大腦給你的是你們喝過三次咖啡、上次討論了支付基礎(chǔ)設(shè)施論點、她對你的 AI Agent 觀點感興趣違反該約定的 Agent 既浪費錢又給出更差的答案。compliant-callout 夾具一個完整的最小合規(guī)示例test/fixtures/brain-first-skills/是skill_brain_first分析器的回歸夾具語料庫共包含 9 個 SKILL.md 樣本分別覆蓋合規(guī)、違規(guī)、豁免、拼寫錯誤等場景。我們討論的 compliant-callout/SKILL.md 是其中通過 Convention callout 聲明合規(guī)的標(biāo)準(zhǔn)樣本全文如下--- name: compliant-callout description: External-lookup skill with canonical Convention callout triggers: - research a person mutating: true --- # compliant-callout A skill that researches people via Perplexity but properly delegates to the brain-first convention. **Convention:** see conventions/brain-first.md for the lookup chain (search → query → get_page → external). ## Phase 1: Research Use Perplexity to find recent news about the person; cross-reference web_search for primary sources.這個夾具刻意制造了一個矛盾它明確調(diào)用了Perplexity和web_search兩個外部檢索工具正文中出現(xiàn)外部模式同時mutating: true表示它可能寫入大腦頁面。按直覺這很容易被當(dāng)成違規(guī)技能但它的合規(guī)點正是正文開頭那段引用 **Convention:** see conventions/brain-first.md for the lookup chain (search → query → get_page → external).只要這段 callout 存在分析器就會返回okreason 為compliant_callout并保留已匹配的外部模式列表用于展示如perplexity、web_search。分析器如何判定三層合規(guī)階梯與豁免優(yōu)先級skill_brain_first檢查的核心實現(xiàn)是 src/core/skill-brain-first.ts 中的純函數(shù)analyzeSkillBrainFirst(content, skillName, frontmatter)。根據(jù)文件頭注釋該模塊有三個消費方doctor命令中的skill_brain_first檢查src/commands/doctor/skill-checks.tsskillify-check對單個 SKILL.md 的門禁檢查src/commands/skillify-check.tsdry-fix.ts的MISSING_RULE_PATTERNS是否應(yīng)插入 Convention callout的判定門。判定邏輯按**豁免優(yōu)先級先命中先返回**組織共兩層豁免加三條合規(guī)階梯優(yōu)先級路徑判定依據(jù)結(jié)果 reason1顯式豁免frontmatter 中brain_first: exemptexempt_explicit2無外部模式正文中不含任何外部檢索模式exempt_no_external3合規(guī)階梯 a規(guī)范的 **Convention:** ...brain-first...引用compliant_callout4合規(guī)階梯 b## Phase 1或## Step 0且標(biāo)題含 braincompliant_phase5合規(guī)階梯 c正文中第一個 brain 引用出現(xiàn)在第一個外部引用之前compliant_position6違規(guī)有外部模式且無任何合規(guī)信號missing_brain_first關(guān)鍵實現(xiàn)細節(jié)正文body掃描而非全文掃描F6。stripFrontmatter會先把 YAML fence 剝掉再執(zhí)行位置相關(guān)掃描避免tools: [web_search]這類 frontmatter 中的元數(shù)據(jù)聲明被誤判為第一個外部引用。這一點在 test/skill-brain-first.test.ts 有專門的回歸用例。外部模式清單8 項EXTERNAL_LOOKUP_PATTERNS 用詞邊界錨定的正則匹配web_search、web_fetch、exa、perplexity、happenstance、crustdata、captain_api、firecrawl。exa需要分隔符避免誤配exam、exaltcaptain_api兼容四種書寫形態(tài)captain api/captain_api/captain-api/captainapi且全部大小寫不敏感。規(guī)范 callout 正則F7CONVENTION_CALLOUT_RE /^\s*\*\*Convention:\*\*[^\n]*brain-first/im它錨定行首的 blockquote同時要求包含字面量**Convention:**和brain-first子串對路徑語法不敏感——純文本路徑、反引號路徑、Markdown 鏈接形式都能匹配src/core/skill-brain-first.ts。單元測試覆蓋了三種形式見 test/skill-brain-first.test.ts。無結(jié)構(gòu)性豁免CMT2代碼注釋明確指出不存在toolswrites_pages類結(jié)構(gòu)性豁免。像idea-ingest、meeting-ingestion、data-research這種既寫頁面又調(diào)外部 API的技能恰是 Brain-First 要約束的對象它們會被標(biāo)記迫使作者顯式聲明立場而不是躲在結(jié)構(gòu)性規(guī)則后面。為什么選 callout 而非位置判定夾具語料中有三個合規(guī)樣本對應(yīng)三條階梯compliant-calloutcallout、compliant-phasePhase 1 標(biāo)題、compliant-positionbrain 引用先于外部引用。compliant-callout的價值在于零歧義無論技能正文怎么組織只要開頭有一句規(guī)范 callout合規(guī)意圖就一目了然路徑無關(guān)callout 指向 skills/conventions/brain-first.md 即可具體用相對路徑還是鏈接形式不影響判定可自動修復(fù)gbrain doctor --fix的 dry-fix 門就是拿CONVENTION_CALLOUT_RE當(dāng)是否已合規(guī)的判定未合規(guī)時自動插入這句 callout跳過顯式豁免的技能。值得注意的是現(xiàn)有技能brain-ops、signal-detector、idea-ingest、enrich、perplexity-research、academic-verify都通過 callout 路徑直接判為 OK——即使它們本身就是大腦如brain-ops也不需要額外的結(jié)構(gòu)性豁免規(guī)則見 skills/conventions/brain-first.md 與 src/core/skill-brain-first.ts 的說明。對照夾具自查你的技能屬于哪一類test/fixtures/brain-first-skills/的 9 個夾具覆蓋了全部分類是自查的絕佳參照系夾具特征判定結(jié)果compliant-callout外部模式 規(guī)范 calloutok (compliant_callout)compliant-phase外部模式 ## Phase 1: Brain-First Lookupok (compliant_phase)compliant-position外部模式 brain 引用先出現(xiàn)ok (compliant_position)exempt-frontmatterbrain_first: exemptok (exempt_explicit)no-external無任何外部模式ok (exempt_no_external)negation-prosebrain 引用先于外部引用含否定措辭ok (compliant_position)missing-brain-first直接外部檢索、無 brain 信號warn (missing_brain_first)multi-pattern同時命中 exa / perplexity / crustdatawarn (missing_brain_first)typo-frontmatterbrain-first: exemptkebab-casewarn typo 提示其中 missing-brain-first/SKILL.md 展示了最典型的違規(guī)形態(tài)——正文直接寫Call web_search to find information. Hit perplexity for synthesis. No brain consultation at all.而 typo-frontmatter/SKILL.md 展示了想豁免卻寫錯鍵名的情況brain-first: exemptkebab-case不會落地分析器既給出可粘貼修復(fù)提示又照常標(biāo)記違規(guī)——正如約定文檔所說靜默的拼寫錯誤是最壞的結(jié)果。這些斷言全部被 test/skill-brain-first.test.ts 的夾具驅(qū)動用例鎖定IRON-RULE 回歸集保證行為不被后續(xù)修改破壞。合規(guī)實操兩種零摩擦寫法根據(jù) skills/conventions/brain-first.md 的聲明式豁免小節(jié)只要滿足以下任一條件技能即合規(guī)寫法一頂部加規(guī)范 Convention callout **Convention:** see conventions/brain-first.md for the lookup chain (search → query → get_page → external).這是compliant-callout采用的方式也是gbrain doctor --fix自動修復(fù)的落地方案。寫法二frontmatter 顯式豁免純基建類技能--- name: my-infra-skill brain_first: exempt ---用于 cron 調(diào)度、容器管理、ask-user 提示、瀏覽器驅(qū)動等整個任務(wù)就是不咨詢大腦的技能。注意嚴(yán)格規(guī)范形式——分析器對拼寫錯誤非常敏感skills/conventions/brain-first.md 給出了完整對照表寫法結(jié)果brain_first: exempt? 匹配brain-first: exempt? 提示需 snake_caseBrainFirst: exempt? 提示需 snake_casebrain_first: exempt? 提示去掉引號brain_first: Exempt? 提示值必須小寫brain_first: required? v0.36 僅支持exempt接近正確但未到位的寫法會打印一行可直接粘貼的修復(fù)提示formatBrainFirstTypoHint見 src/core/skill-frontmatter.ts且技能保持標(biāo)記狀態(tài)直到規(guī)范形式落地。另外當(dāng)你的技能聲明豁免后doctor --fix的自動插入 callout 流程會跳過它src/commands/doctor/skill-checks.ts 附近的處理邏輯不會產(chǎn)生自相矛盾的標(biāo)記。三層查找鏈callout 背后引用的完整協(xié)議compliant-callout 的 callout 文本點出了完整查找鏈search → query → get_page → external。結(jié)合 docs/guides/brain-first-lookup.md 的偽代碼實現(xiàn)完整協(xié)議如下lookup(name_or_topic): // STEP 1: Keyword search (fast, works day one, no embeddings needed) results gbrain search {name_or_topic} if results.length 0: page gbrain get {results[0].slug} return page // done, brain had it // STEP 2: Hybrid search (needs embeddings, finds semantic matches) results gbrain query what do we know about {name_or_topic} if results.length 0: page gbrain get {results[0].slug} return page // STEP 3: Direct slug (if you know or can guess the slug) page gbrain get people/{slugify(name_or_topic)} if page: return page // STEP 4: External API (FALLBACK ONLY) // Only reach here if brain has nothing return external_search(name_or_topic)約定文檔 skills/conventions/brain-first.md 進一步按問題形態(tài)路由確切的已知 token / 名字 / 結(jié)構(gòu)化字段 →search廉價混合檢索概念 / 全景 / 同義改寫類問題所有做 X 的 Y→query優(yōu)先多查詢擴展能找回search漏掉的措辭拿到 slug 后 →get_page讀取完整編譯事實步驟 1-2 無有效結(jié)果 → 才允許外部 API。另有幾條硬性規(guī)則值得注意search計數(shù)非零不代表完整枚舉類問題用list_pages分頁Score 0.5 use it大腦已作答就別去外部寫頁后觸發(fā)同步OpenClaw 下gbrain__sync_brainCLI 下gbrain sync --no-pull每次外部 API 拉取都要用gbrain capture入收件箱沉淀否則付過費的查找還會再付一次費實體查找禁用memory_search那是會話筆記檢索不是知識圖檢索。寫給技能作者的最后清單先問我的技能會調(diào)用外部檢索工具web_search、perplexity、exa、crustdata、firecrawl、happenstance、captain api、web_fetch 之一嗎不會 → 自動豁免無需任何聲明。會在正文靠前位置加規(guī)范 callout **Convention:** see conventions/brain-first.md for the lookup chain (search → query → get_page → external).或者顯式## Phase 1: Brain-First Lookup標(biāo)題或者保證 brain 引用出現(xiàn)在外部引用之前。純基建在 frontmatter 寫brain_first: exempt務(wù)必 snake_case、小寫、不帶引號。驗證跑gbrain doctor查看skill_brain_first檢查或?qū)π录寄苓\行skillify-check如果被標(biāo)記且來自 PR #1206 舊豁免清單doctor 會引導(dǎo)你gbrain doctor --fix自動補 callout或手動聲明豁免src/commands/doctor/skill-checks.ts。通過compliant-callout這個最小樣本可以看到GBrain 把先查大腦從口頭約定變成了可靜態(tài)校驗的工程約束一條 callout、一個 frontmatter 字段、一段位置掃描就足以讓每個技能包括那些必須調(diào)用外部 API 的技能在架構(gòu)層面聲明自己的數(shù)據(jù)獲取順序。贊分享人工智能RAGAgent 記憶MCP 服務(wù)知識管理【免費下載鏈接】gbrainGarrys Opinionated OpenClaw/Hermes Agent Brain項目地址https://gitcode.com/gh_mirrors/gb/gbrain點擊查看免費下載相關(guān)推薦gbrain Brain-First Lookup 協(xié)議先查大腦、再問外部 API 的 Agent 檢索規(guī)范gbrain Brain First Lookup 協(xié)議先查大腦、再問外部 API 的 Agent 檢索規(guī)范 本文講解 gbrain 的 Brain Firs人工智能RAGAgent 記憶MCP 服務(wù)知識管理gbrain Brain-First 合規(guī)檢測剖析從 no-external 豁免語義到 skill_brain_first 三層合規(guī)階梯gbrain Brain First 合規(guī)檢測剖析從 no external 豁免語義到 skill_brain_first 三層合規(guī)階梯 gbrainGa人工智能RAGAgent 記憶MCP 服務(wù)知識管理為 Codex 接入 GBrain 記憶插件、遠程 MCP 與 brain-first 協(xié)議實戰(zhàn)指南為 Codex 接入 GBrain 記憶插件、遠程 MCP 與 brain first 協(xié)議實戰(zhàn)指南 GBrain 提供了一套為已有編碼 Agent 增加顯人工智能RAGAgent 記憶MCP 服務(wù)知識管理創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考