# 主动参与规则:让 web-llm-bridge 深度嵌入项目开发 > 目标:把 `consult_llm` 从"偶尔求助的外援"升级为"项目流程中常驻的第二双眼睛"。 > 核心思路:**在开发的关键节点自动触发核验**,用 `verify` / `code-review` / `adversary` 角色交叉检查资料、代码与设计,同时用 token 计量把开销控制在可视范围内。 ## 0. 三个核验对象与对应角色 | 要核验的东西 | 触发场景 | 角色 | 说明 | |---|---|---|---| | **资料/事实**(网上查到的结论、论文观点、数据) | 引用外部资料前 | `verify` | 区分"可确认/需查证/无法验证",给置信度与验证途径 | | **关键代码**(算法、边界、安全、性能) | 写完后 / 提交前 | `code-review` | 找 bug、边界、潜在缺陷 | | **设计方案/结论**(架构、选型、计划) | 决策前 / 复盘时 | `adversary` 或 `review` | 红队找反例 / 独立审核找漏洞 | ## 1. 强制核验点(Must-Verify Gates) 以下节点**必须**调用 `consult_llm` 做独立核验,未核验不得视为完成: 1. **引用外部资料**:把从网络/文档/论文读到的事实、数字、结论作为依据写入代码或报告前 → `role: verify` + `context: 原文摘录` 2. **关键代码落地**:实现了一个核心算法、一个超过 ~50 行的关键函数、或涉及安全/资源释放的代码后 → `role: code-review` + `context: 代码全文` 3. **方案定型**:做出架构/选型/技术路线决策、写进交接文档前 → `role: adversary`(先)再 `role: review`(后),或一轮 `verify` 4. **跨语言/跨库移植**:把一段代码从 A 语言/库翻译到 B 时 → `role: code-review`(针对移植正确性) ## 2. 主动触发策略(Active Triggering) 主 agent 不应等用户点名,而应在以下**信号**出现时主动调用: - 用户说"查一下 / 参考一下 / 根据资料" → 先 `verify` 资料再使用 - 用户说"这个方案怎么样 / 帮我定一下" → `adversary` 挑战 + `reasoner` 收敛 - 用户展示代码让"看看" → `code-review` - 一段代码即将被写入关键路径(训练循环、数据管线、评测脚本)→ 主动 `code-review` - 一个结论即将成为"决策依据" → 主动 `verify` 或 `adversary` - 长讨论进入"结论收敛"阶段 → 主动用 `verify` 复核讨论中引用的关键数字/文献 ## 3. 每次核验的输出格式(节省 token + 可读) 要求网页 LLM 按固定结构输出,主 agent 再压缩成 ≤150 字结论给用户: ``` 【核查项】<一句话> 【结论】✅ 可信 / ⚠️ 部分可信(说明疑点) / ❌ 不可信(说明依据) 【置信度】高 / 中 / 低 【验证途径】复算 | 对照官方文档 | 运行测试 | 查原始来源 ``` 主 agent 回复用户时,只给结论 + 置信度 + 一句话理由;完整原文留档在 `chat_log_.jsonl` 可回溯。 ## 4. 成本控制规则(token 计量配合) - **核验请求要"小而准"**:只把相关片段给网页 LLM(`context` 传代码/原文,`question` 传具体核查点),不要整库/整文件 - **优先一个 provider 常驻**:连续核验用同一会话(不设 `fresh`),复用上下文 - **失败降级**:网页 LLM 不可用(登录失效/超时)时,标注"未核验",不静默跳过 - 面板状态栏显示累计 token,帮助判断是否过度调用 ## 5. 如何挂载到 agent preset 把本文件(或以下精简段)加入 agent preset 的 prompt 部分,即可让主 agent 遵守这些规则: ```markdown ## 主动核验规则 - 引用外部资料前、写关键代码后、方案定型前,调用 consult_llm 独立核验 - 资料 → role: verify;代码 → role: code-review;方案 → role: adversary/review - 核验请求小而准:context 只传相关片段,question 给具体核查点 - 回复用户:结论 + 置信度 + 一句话理由,≤150 字;完整原文留档 - 网页 LLM 不可用时标注"未核验",不静默跳过 - 同一项目连续核验用同一会话(不设 fresh),控制 token ``` > 提示:也可把"核验模板"存为自定义角色(面板 ⚙️ → 保存角色),例如把上面第 3 节的结构存成 `verify` 的强化版,让每次核验都自动按此结构输出。