mcpField
A
advisor

advisor

github.com/cursorAgent 工作流14.5k409 次安装今天更新
代码仓库

关于 advisor

Advisor 是一项 Cursor Agent 技能,可在指定决策节点咨询第二个模型。顾问根据简报提供建议但不编辑文件;主要模型仍负责执行工作并作出最终决定。

主要功能

  1. 01启用或关闭项目顾问模式
  2. 02选择咨询所用模型
  3. 03在指定检查点进行咨询
  4. 04查看状态与咨询次数
  5. 05管理回合结束提醒

适用场景

  1. 01重大变更前审查方案
  2. 02多次调试失败后寻求建议
  3. 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,并用一行告知用户。不要因此阻止征询。

启用
  1. 按上述说明解析模型。

  2. 使用文件写入工具(不要使用 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。请勿修改这些字段。

  3. 用一行确认:Advisor on: <slug>. I'll consult it before major decisions, when I'm stuck, and before I call the task done. 然后继续执行同一条消息中的任何任务。

切勿暂存或提交 .cursor/advisor/。

检查点

仅在以下检查点咨询,其他时候不要咨询。每次咨询都会调用一次强模型;选择性地使用它才能发挥价值。

  1. 重大决策前。 在架构或方案之间做出选择;进行难以撤销或影响范围广的更改(架构或数据迁移、删除或重写模块、公共 API 或配置格式变更、依赖项替换、身份验证、支付或其他安全敏感代码);或者请求存在歧义,且不同理解会实质性地改变工作内容。先拟定具体计划并明确选项,再进行咨询;不要在尚未理解问题前咨询。一次咨询即可覆盖整个计划;不要针对每个文件重复咨询。
  2. 遇到困难时。 同一错误或测试失败在两次实质性的修复尝试后仍然存在;无法根据代码解释某种行为;或者准备采用权宜之计时,例如重试循环、sleep、宽泛的 try/except、跳过测试,或禁用检查以绕过问题。
  3. 宣布完成前。 任何更改了逻辑或涉及两个以上文件的任务:在撰写最终总结前咨询一次,并说明验证了哪些内容以及如何验证。琐碎修改(错别字、注释、单行配置更改)可跳过,并用一句话说明。
  4. 应要求时。 使用 /advisor ask ...,或用户询问顾问的看法时。

常规步骤无需咨询;能自行验证的事项(运行测试、阅读代码)也无需咨询;每个检查点不要咨询多次。如果一项任务需要咨询超过四次,通常应拆分任务,或询问用户。

如何咨询

  1. 阅读 .cursor/advisor/state.json,判断你属于哪种情况:
    • 在此处启用:该文件存在且 enabled: true,并且你在本次对话中执行了启用步骤。检查点咨询和 /advisor ask 都要完整遵循以下步骤,包括 resume 和状态写入。
    • 未在此处启用:文件不存在、enabled 为 false,或你没有写入该文件。你没有写入的文件属于另一场聊天;只有 /advisor 才会在本次对话中重新绑定,因此不要更改它,也绝不要 resume 你自己没有保存过的 advisor_agent_id。在检查点不要咨询。如果用户在本条消息中明确要求咨询(/advisor ask ...,或请求第二意见),则将其作为一次性咨询执行:在文件的 model(如果有)上新建一个 Agent,否则使用默认模型;不使用 resume,不写入状态,也不提供 transcript_path(另一场聊天的记录不应由你分享;填写“不可用”)。说明 /advisor 会为本次对话启用该模式。
  2. 根据 references/briefing-template.md 准备简报。提供顾问作出不同意见所需的一切信息:
    • 用户的原始请求,以及之后补充的限制或更正。
    • 到目前为止发生的事情,按顺序说明:你调查、决定、更改、尝试和排除的内容。
    • 相关工具结果原文:错误消息、堆栈跟踪、测试输出、差异。删除无关内容并以 [...] 标记删减,但绝不要转述证据。
    • 当前状态:git status --short、git diff --stat、你修改过的文件,以及任何未完成事项。
    • 你的具体问题、你看到的选项,以及你当前倾向的方案和理由。
    • 当模式在本次对话中启用且 state.json 中设置了 transcript_path 时,提供该路径,以便顾问自行阅读完整对话。
    • 不得包含机密。遮盖令牌、密钥和 .env 值。
  3. 在前台启动顾问并等待结果:
    • subagent_type: "advisor-subagent"
    • model: <state.model>
    • description: "Advisor: <checkpoint>",例如 Advisor: pre-completion review
    • run_in_background: false
    • 如果设置了 state.advisor_agent_id,将其作为 resume 传入并省略 model;顾问会保留其模型和先前咨询的上下文,因此简报可以是增量内容:说明自上次咨询以来的变化以及新问题。如果 resume 失败,则新建 Agent。
    • 将返回的 Agent ID 保存到 state.json 的 advisor_agent_id 中。模型变化时清除该值。
  4. 根据裁定采取行动:
    • proceed:继续。
    • proceed with changes:执行建议的更改,除非它们与用户指示或已核实的事实冲突。说明哪些建议未采纳及原因。
    • stop:不要继续当前计划。重新考虑,或在涉及产品或范围的问题上向用户说明分歧。
    • 如果顾问提出需要补充的信息,通过 resume 提供一次。不要来回反复。
    • 你要对结果负责。顾问是强有力的第二意见,而非权威。如果它对代码库的判断有误,向它展示一次证据,或者否决其意见并告知用户原因。
  5. 每次咨询后,用一到两行向用户汇报: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)。状态文件两种方式都适用。

评论

支持 Markdown