你肯定遇到过这种尴尬:
- 客服/助手/总结类任务,用 Sonnet 跑挺香,便宜。
- 一碰到复杂推理、规则密集、容易踩坑的场景(合同条款、金融口径、代码边界、长链路工具调用),Sonnet 就开始“自信胡说”。
- 你一狠心换 Opus:效果是好了,API 账单也开始教育你做人。
Advisor Tool 就是冲着这个矛盾来的:让便宜模型干活,贵的模型只在关键节点给“指导意见”,不直接对用户说话。
这招像什么?像你写方案,平时自己写,写到最关键那页去敲导师门:
“老师你帮我看下这个结构对不对?风险点有哪些?要不要刹车?”
然后你拿着建议继续写完交稿。
开发里最常见的两难:
- 全程 Opus:质量稳,但贵。
- 全程 Sonnet:成本低,但容易翻车,尤其是“看起来像对的错答案”。
Advisor Tool 让你走第三条路:
- Sonnet 负责执行、写输出、走流程(也就是你真正给用户看的内容)。
- Opus 只在需要时当顾问,给 Sonnet 一个“建议包”。
- 可能是一份更靠谱的计划
- 可能是对当前推理的纠错
- 也可能是一个强硬的信号:停!别继续编了,信息不够/风险太高
关键点在这:
- Opus 不调用工具(避免它自己乱跑)
- Opus 不直接面向用户输出(避免你出现“双模型口径不一”的灾难)
- 你也不需要搞复杂的任务拆分、worker pool、编排 DAG
一句话:把“前沿推理能力”当成稀缺资源,只在刀刃上用。
Sonnet 平时跟用户聊得飞起。 遇到这些情况就该“问顾问”:
- 用户问退费/合同/赔付边界
- 用户描述含糊,Sonnet 准备脑补
- 用户在诱导越权(要内部数据、要绕过规则)
Advisor 给一句:
- “你可以这样问 3 个澄清问题”
- “这里属于高风险承诺,禁止做出保证”
你就能少背很多锅。
Sonnet 写 CRUD、写脚手架很快。 一到这些地方就容易翻车:
- 并发、锁、事务
- 安全(鉴权、注入、密钥)
- 性能(N+1、索引、缓存一致性)
Advisor 适合干的事:
- 提醒潜在漏洞
- 给出更靠谱的实现路线
- 让 Sonnet 补上测试用例思路
比如你写一篇教程:
- 80% 是结构、表达、示例(Sonnet 就行)
- 20% 是关键观点、结论推导、避坑点(请 Opus 指点一下)
你不想手动写一堆 if else,对吧?
可以让 Sonnet 在输出前做一次自检,判断是否需要 Advisor:
- 信息是否足够?
- 有没有高风险承诺?
- 这段推理有没有跳步?
- 用户要求是否和政策/合规冲突?
自检结果给一个简单标记:
NEED_ADVICE = true/falsereason = ...what_to_ask = ...
如果需要,再调用 Advisor(也就是 Opus 顾问)。
然后把 Advisor 的建议塞回 Sonnet,让 Sonnet 继续完成最终输出。
这个流程的手感就是:
Sonnet:我能不能直接答?不确定。
Opus(顾问):你这题有两个坑,别直接承诺,先问用户三件事。
Sonnet:收到,我去问清楚再答。
- Sonnet 生成草案 + 自检标记
- 如果不需要请教:直接把 Sonnet 输出给用户
- 如果需要请教:调用 Advisor(Opus)拿建议
- 把建议交还给 Sonnet,让它修正/补问/改写
- Sonnet 输出最终结果
你要控制 Opus 的输出,否则它一兴奋就写成长文论文。
建议让 Advisor 只输出结构化建议,比如:
plan:下一步怎么做risks:风险点stop_signal:是否需要叫停questions:需要问用户的澄清问题
像这样(示例格式):
{ "stop_signal": false, "plan": [ "确认用户的目标与约束", "列出可行方案并标注风险", "给出推荐方案与执行步骤" ], "risks": [ "用户信息不足导致误判", "存在合规/承诺风险" ], "questions": [ "你所在地区/合同条款是哪一版?", "你要的结果更偏向省钱还是省时间?" ] }
然后 Sonnet 拿着这个 JSON 去“落地成给用户看的话”。
说明:不同版本 SDK/接口字段可能有差异,字段名按你项目里的实际 Claude API 来。思路别变就行。
const draft = await claude.messages.create({ model: "claude-sonnet", messages: [ { role: "user", content: userInput }, { role: "system", content: "输出两段:1)给用户的草案 2)自检JSON: {need_advice, reason, what_to_ask}" } ] }); const { userDraft, selfCheck } = parseDraft(draft); if (!selfCheck.need_advice) { return userDraft; }
const advice = await claude.messages.create({ model: "claude-opus", // 这里用 Advisor Tool / 或你环境中对应的“顾问”调用方式 // 核心是:让 Opus 只给建议,不直接写最终回复 messages: [ { role: "system", content: "你是顾问,只输出JSON建议包,不要写给用户看的成文。" }, ) } ] }); const advicePack = JSON.parse(extractText(advice));
const finalAnswer = await claude.messages.create({ model: "claude-sonnet", messages: [ { role: "system", content: "根据顾问建议修正输出。顾问说停就改为澄清提问,不要硬答。" }, { role: "user", content: userInput }, { role: "assistant", content: userDraft }, ` } ] }); return extractText(finalAnswer);
你会发现:逻辑很短,接入成本很低。
你不需要精确到小数点,抓大头就够用:
- 大部分请求:Sonnet 一次就过 → 你付 Sonnet 的钱
- 少部分“高风险/高难度”请求:Sonnet + Advisor(Opus) + Sonnet → 多付一次顾问费
关键在“少部分”这三个字。
把 Advisor 触发率控制在 5%~20% 区间,通常就很舒服。
- 低于 5%:你可能没真正用到刀刃
- 高于 20%:说明你的任务本质就需要更强模型,别硬省,直接提高 Sonnet 的约束或改用更强主模型
适合客服、合规、金融。
- 退款、赔偿、保证、合同、法律、处方、投资建议
- 绕过规则、要隐私数据
命中就请教。
让 Sonnet 自己打分:
confidence: 0-100need_advice: confidence < 70
再配合规则:低自信 + 高风险 → 必请教。
适合结构化输出场景:
- JSON 解析失败
- 关键字段缺失
- 单元测试/校验规则没过
没过就请教 Advisor,让 Opus 给修复策略。
- 让 Opus 直接对用户输出:你会得到两套口径,产品像人格分裂。
- 顾问建议太长:token 像漏水一样流走。给 Advisor 严格格式,最好 JSON,字段越少越好。
- Sonnet 不服管:系统提示里写清楚,“顾问 stop_signal=true 就必须改为澄清问题/拒答”。
- 每次都请教:那你就是换了个方式用 Opus,省钱就别想了。
- 没做日志:你无法优化触发率。至少记录
need_advice、触发原因、顾问建议长度、最终是否被用户追问。
你要输出两部分: A) 给用户看的回复草案。 B) 自检JSON:{need_advice:boolean, reason:string, what_to_ask:string} 当存在高风险承诺、信息不足、复杂推理、可能越权/合规问题时,把 need_advice 设为 true。
你是顾问。你不直接写给用户看的内容。 只输出JSON:{stop_signal:boolean, plan:string[], risks:string[], questions:string[]} 内容要短,最多10条。
你负责最终输出给用户。 必须遵守顾问JSON:stop_signal为true时,改为澄清提问或拒绝,不要继续硬答。 把 plan/risks 转成用户能看懂的表达。
- 把现有的 Sonnet 调用包一层:加“自检 JSON”。
- need_advice 为 true 时走 Advisor 调用。
- Advisor 输出严格 JSON,别让它写长文。
- 把建议回灌给 Sonnet,统一由 Sonnet 面向用户。
- 做日志:触发原因、触发率、建议长度、用户是否满意。
做到这一步,你会明显感觉:
- 平时成本还是 Sonnet 的成本
- 关键问题翻车率下去
- 用户追问和投诉变少(这东西比省 token 更值钱)
如果你愿意贴一下你现在的业务场景(客服?代码?内容?还是工具调用链?)和你用的 SDK 语言,我可以给你把“触发规则 + 提示词 + 日志字段”按你的场景定制成一套更贴手的版本。😉
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/270668.html