关于 advisor
Advisor 是一项 Cursor Agent 技能,可在指定决策节点咨询第二个模型。顾问根据简报提供建议但不编辑文件;主要模型仍负责执行工作并作出最终决定。
主要功能
- 01启用或关闭项目顾问模式
- 02选择咨询所用模型
- 03在指定检查点进行咨询
- 04查看状态与咨询次数
- 05管理回合结束提醒
适用场景
- 01重大变更前审查方案
- 02多次调试失败后寻求建议
- 03总结前检查已完成的工作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cursor/ plugins --skill advisor安装后在 Claude Code 中输入/advisor确认已加载。
附带文件references/briefing-template.md
详细介绍
Advisor
你是主模型。Advisor 模式会添加第二个更强大的模型,你可以在几个关键节点向它征询意见。Advisor 会收到你的简报(以及完整对话记录,如果有),认真思考后给出判断和指导。它不会编辑文件。你仍需亲自完成工作并做出最终决定。
状态保存在项目根目录的 .cursor/advisor/state.json 中。当该文件存在且内容为 "enabled": true 时,此项目的 Advisor 模式已开启。
命令
/advisor 后的文本用于选择操作。
| 输入 | 操作 |
|---|---|
/advisor | 使用默认 Advisor 为本次对话启用该模式:采用推理强度最高的最新 Grok。如果状态文件已存在(无论来自本次还是其他对话),则在此处重新绑定,同时保留其 model 和 nudge 设置。 |
/advisor <model> | 同上,但使用指定模型。任何可用于子 Agent 的模型均可:/advisor cursor-grok-4.6-xhigh-fast、/advisor composer-2.5。 |
/advisor off | 禁用:删除 .cursor/advisor/。 |
/advisor status | 报告模型、征询次数,以及回合结束提醒是否开启。不做任何更改。 |
/advisor ask <question> | 立即就当前工作进行征询,无论是否到达检查点。 |
/advisor nudge on / off | 切换插件停止钩子发布的回合结束提醒(默认开启)。 |
如果消息中还包含任务(/advisor, then refactor the cache layer),则先启用 Advisor 模式,再在该模式下执行任务。
选择模型
默认使用推理强度最高的最新 Grok 模型,目前为 cursor-grok-4.6-xhigh。如果可用的子 Agent 模型列表中出现更新的 Grok 或更高推理强度级别,请优先使用,并告知用户。
对于 /advisor <model>,请根据可用的子 Agent 模型标识解析请求:
- 精确标识:直接使用。
- 系列或版本名称(
grok fast、composer):使用该系列推理强度最高的最新模型。 - 没有匹配项:说明未找到,并列出两个或三个接近的选项,同时保留当前模型。
如果 Task 工具拒绝某个标识,请从错误信息中读取有效标识,选择最接近的那个(同一系列、推理强度最高),将其保存到 state.json,并用一行告知用户。不要因此阻止征询。
启用
-
按上述说明解析模型。
-
使用文件写入工具(不要使用 shell 重定向)将以下内容写入
.cursor/advisor/state.json,如有需要请创建目录。如果状态文件已存在,请保留其中的model(除非此命令指定了模型)和nudge,并将所有其他字段重置为以下值。你无法判断现有文件属于哪个对话,因此务必重新写入:这样会将模式重新绑定到本次对话;钩子会重新填入conversation_id和transcript_path;下次征询会启动全新的 Advisor,而不是恢复其他对话中的状态。如果.cursor/advisor/pending和.cursor/advisor/last-response.txt存在,也请将其删除,以免其他对话遗留的标记在此处触发回合结束提醒。保留log.md。{ "enabled": true, "model": "cursor-grok-4.6-xhigh", "nudge": true, "advisor_agent_id": null, "conversation_id": null, "transcript_path": null, "consults": 0, "last_consult_at": null, "enabled_at": "<current UTC time, ISO 8601>" }插件钩子会填入
conversation_id、transcript_path、consults和last_consult_at。请勿修改这些字段。 -
用一行确认:
Advisor on: <slug>. I'll consult it before major decisions, when I'm stuck, and before I call the task done.然后继续执行同一条消息中的任何任务。
切勿暂存或提交 .cursor/advisor/。
检查点
仅在以下检查点咨询,其他时候不要咨询。每次咨询都会调用一次强模型;选择性地使用它才能发挥价值。
- 重大决策前。 在架构或方案之间做出选择;进行难以撤销或影响范围广的更改(架构或数据迁移、删除或重写模块、公共 API 或配置格式变更、依赖项替换、身份验证、支付或其他安全敏感代码);或者请求存在歧义,且不同理解会实质性地改变工作内容。先拟定具体计划并明确选项,再进行咨询;不要在尚未理解问题前咨询。一次咨询即可覆盖整个计划;不要针对每个文件重复咨询。
- 遇到困难时。 同一错误或测试失败在两次实质性的修复尝试后仍然存在;无法根据代码解释某种行为;或者准备采用权宜之计时,例如重试循环、
sleep、宽泛的try/except、跳过测试,或禁用检查以绕过问题。 - 宣布完成前。 任何更改了逻辑或涉及两个以上文件的任务:在撰写最终总结前咨询一次,并说明验证了哪些内容以及如何验证。琐碎修改(错别字、注释、单行配置更改)可跳过,并用一句话说明。
- 应要求时。 使用
/advisor ask ...,或用户询问顾问的看法时。
常规步骤无需咨询;能自行验证的事项(运行测试、阅读代码)也无需咨询;每个检查点不要咨询多次。如果一项任务需要咨询超过四次,通常应拆分任务,或询问用户。
如何咨询
- 阅读
.cursor/advisor/state.json,判断你属于哪种情况:- 在此处启用:该文件存在且
enabled: true,并且你在本次对话中执行了启用步骤。检查点咨询和/advisor ask都要完整遵循以下步骤,包括resume和状态写入。 - 未在此处启用:文件不存在、
enabled为 false,或你没有写入该文件。你没有写入的文件属于另一场聊天;只有/advisor才会在本次对话中重新绑定,因此不要更改它,也绝不要resume你自己没有保存过的advisor_agent_id。在检查点不要咨询。如果用户在本条消息中明确要求咨询(/advisor ask ...,或请求第二意见),则将其作为一次性咨询执行:在文件的model(如果有)上新建一个 Agent,否则使用默认模型;不使用resume,不写入状态,也不提供transcript_path(另一场聊天的记录不应由你分享;填写“不可用”)。说明/advisor会为本次对话启用该模式。
- 在此处启用:该文件存在且
- 根据
references/briefing-template.md准备简报。提供顾问作出不同意见所需的一切信息:- 用户的原始请求,以及之后补充的限制或更正。
- 到目前为止发生的事情,按顺序说明:你调查、决定、更改、尝试和排除的内容。
- 相关工具结果原文:错误消息、堆栈跟踪、测试输出、差异。删除无关内容并以
[...]标记删减,但绝不要转述证据。 - 当前状态:
git status --short、git diff --stat、你修改过的文件,以及任何未完成事项。 - 你的具体问题、你看到的选项,以及你当前倾向的方案和理由。
- 当模式在本次对话中启用且
state.json中设置了transcript_path时,提供该路径,以便顾问自行阅读完整对话。 - 不得包含机密。遮盖令牌、密钥和
.env值。
- 在前台启动顾问并等待结果:
subagent_type: "advisor-subagent"model: <state.model>description: "Advisor: <checkpoint>",例如Advisor: pre-completion reviewrun_in_background: false- 如果设置了
state.advisor_agent_id,将其作为resume传入并省略model;顾问会保留其模型和先前咨询的上下文,因此简报可以是增量内容:说明自上次咨询以来的变化以及新问题。如果resume失败,则新建 Agent。 - 将返回的 Agent ID 保存到
state.json的advisor_agent_id中。模型变化时清除该值。
- 根据裁定采取行动:
proceed:继续。proceed with changes:执行建议的更改,除非它们与用户指示或已核实的事实冲突。说明哪些建议未采纳及原因。stop:不要继续当前计划。重新考虑,或在涉及产品或范围的问题上向用户说明分歧。- 如果顾问提出需要补充的信息,通过
resume提供一次。不要来回反复。 - 你要对结果负责。顾问是强有力的第二意见,而非权威。如果它对代码库的判断有误,向它展示一次证据,或者否决其意见并告知用户原因。
- 每次咨询后,用一到两行向用户汇报:
Advisor (<model>): <verdict>. <One-line summary>. <What you did about it.>除非用户提出要求,否则不要在聊天中贴出顾问的完整回复;钩子也会将其追加到.cursor/advisor/log.md。
回合结束提示
如果上次咨询后文件有更改,而回合结束时没有再次咨询,插件的 stop 钩子会发出一条以 [Advisor] 开头的后续提示。将其视为“宣布完成前”的检查点:运行完成前咨询,或者用一行说明更改很小,或你正在等待用户,然后停止。每批编辑最多触发一次。/advisor nudge off 可禁用此提示。
禁用
/advisor off:删除 .cursor/advisor/,并用一句话确认。除非用户重新启用此模式或明确要求进行一次性咨询,否则在本次对话中不要再次咨询。
防护措施
- 切勿在用户未要求时启用顾问模式。“再听取一个意见”属于一次性咨询,而非模式更改。
- 顾问只读。切勿要求它编辑文件或执行任务。
- 切勿反复咨询顾问:每个检查点最多跟进一次。
- 如果
advisor-subagent子代理不可用(没有 Task 工具,或钩子拒绝调用),告知用户一次,然后继续,不使用它。 - 若要让此技能在整个会话中持续生效,而不只是针对一条消息,用户可以将
/advisor作为自定义模式调用(Option+Enter / Alt+Enter)。状态文件两种方式都适用。