Skip to content

switch_mode

switch_mode 工具支持 VJSP 在不同运行模式间切换,各模式针对特定类型任务具备专属能力。当当前任务需要不同专业能力支撑时,可在代码模式、架构模式、咨询模式、调试模式等模式间无缝切换。

参数说明

该工具接收以下参数:

  • mode_slug(必选):待切换目标模式的标识符(示例:"code"、"ask"、"architect")
  • reason(可选):模式切换的原因,为用户提供操作上下文说明

功能作用

当前任务更适合由其他模式的能力承接时,可通过该工具发起模式切换请求。工具在完成模式切换、调整 VJSP 的核心聚焦方向及可用工具集以匹配新任务阶段需求的同时,保持任务上下文的连续性。

适用场景

  • 从信息收集阶段过渡至代码实现阶段时
  • 从代码开发环节切换至架构设计环节时
  • 当前任务需要调用仅其他模式具备的专属能力时
  • 复杂项目的特定阶段需要专业领域能力支撑时

核心特性

  • 跨模式切换时保持任务上下文的连续性
  • 为模式切换建议提供清晰的原因说明
  • 所有模式切换操作均需获得用户确认
  • 严格执行各模式专属的工具组使用限制
  • 根据选定模式无缝适配可用工具集
  • 同时支持标准模式与自定义模式的切换
  • 在用户界面中展示模式切换操作及对应原因
  • 采用 XML 格式规范参数定义
  • 适配特定模式对应的文件类型限制规则

限制说明

  • 无法切换至系统中未定义的模式
  • 每次模式切换均需用户显式确认
  • 模式切换完成前,无法调用目标模式的专属工具
  • 模式切换后会触发500毫秒延迟,确保切换操作生效
  • 部分模式存在文件类型限制(示例:架构模式仅支持编辑 Markdown 文件)
  • 模式恢复保留机制仅适用于new_task功能,不作用于常规模式切换操作

执行流程

调用switch_mode工具后,将按以下流程执行:

  1. 请求校验

    • 验证待切换的目标模式是否在系统中已定义
    • 校验必选参数mode_slug是否已传入且格式合法
    • 确认当前系统并非已处于目标模式
    • 若传入可选参数reason,验证其格式是否合规
  2. 切换准备

    • 将模式切换请求与传入的原因信息进行封装
    • 向用户展示模式切换请求,等待用户确认
  3. 模式激活(用户确认后)

    • 更新用户界面,展示当前已切换的新模式
    • 根据目标模式的工具组配置,调整系统可用工具集
    • 加载目标模式专属的提示词与行为规则
    • 触发500毫秒延迟,确保模式切换生效后再执行后续工具调用
    • 启用目标模式对应的文件类型限制规则
  4. 任务续行

    • 基于新模式的能力承接并继续执行当前任务
    • 保留前序交互过程中的相关任务上下文

工具组归属

switch_mode工具归属于「模式(modes)」工具组,同时被纳入「全局可用(always available)」工具清单,特性如下:

  • 不受模式工具组配置限制,可在任意模式下调用
  • ask_followup_questionattempt_completion等核心工具全局共存
  • 当任务需求发生变化时,可在工作流的任意节点发起模式切换

模式结构

系统中每个模式均遵循以下固定结构定义:

  • slug:模式的唯一标识符(示例:"code"、"ask")
  • name:模式的界面展示名称(示例:"Code"、"Ask")
  • roleDefinition:模式的专属角色定位与核心能力说明
  • customInstructions:可选配置,用于指导模式行为的专属规则
  • groups:模式可调用的工具组列表,支持配置专属使用限制

模式能力

系统核心模式具备以下专属能力:

  • 代码模式(Code):聚焦代码开发任务,支持全量代码编辑工具的调用
  • 架构模式(Architect):专用于系统设计与架构规划,仅支持编辑 Markdown 文件
  • 咨询模式(Ask):针对问题解答与信息提供场景做优化
  • 调试模式(Debug):配备系统化的问题诊断与故障解决能力

自定义模式

除核心模式外,系统支持基于特定项目需求定义自定义模式,特性如下:

  • 可为自定义模式配置专属启用的工具组
  • 可自定义模式的角色定位与行为规则
  • 系统将优先校验自定义模式,未匹配时再调用核心模式
  • 若自定义模式与核心模式的标识符(slug)重复,自定义模式定义将覆盖核心模式

文件类型限制

不同模式可配置专属的文件类型限制规则,核心规则如下:

  • 架构模式:仅支持编辑扩展名为.md的文件
  • 尝试编辑受限制的文件类型时,系统将抛出FileRestrictionError异常
  • 该限制机制用于规范不同模式的职责边界,确保任务分工清晰

典型应用示例

  • 讨论新功能需求时,VJSP 从咨询模式切换至架构模式,协助完成系统结构设计
  • 架构规划在架构模式中完成后,VJSP 切换至代码模式,落地实现设计好的功能
  • 开发过程中遇到程序缺陷时,VJSP 从代码模式切换至调试模式,开展系统化问题排查

调用示例

切换至代码模式进行功能实现:

<switch_mode>
<mode_slug>code</mode_slug>
<reason>基于已确认的架构方案,落地实现登录功能模块</reason>
</switch_mode>

切换至架构模式进行方案设计:

<switch_mode>
<mode_slug>architect</mode_slug>
<reason>功能实现前,需完成系统整体架构方案设计</reason>
</switch_mode>

切换至调试模式进行问题排查:

<switch_mode>
<mode_slug>debug</mode_slug>
<reason>对认证流程出现的异常进行系统化诊断排查</reason>
</switch_mode>

切换至咨询模式进行问题解答:

<switch_mode>
<mode_slug>ask</mode_slug>
<reason>针对已实现的功能模块,解答相关咨询问题</reason>
</switch_mode>