switch_mode
switch_mode 工具支持 VJSP 在不同运行模式间切换,各模式针对特定类型任务具备专属能力。当当前任务需要不同专业能力支撑时,可在代码模式、架构模式、咨询模式、调试模式等模式间无缝切换。
参数说明
该工具接收以下参数:
mode_slug(必选):待切换目标模式的标识符(示例:"code"、"ask"、"architect")reason(可选):模式切换的原因,为用户提供操作上下文说明
功能作用
当前任务更适合由其他模式的能力承接时,可通过该工具发起模式切换请求。工具在完成模式切换、调整 VJSP 的核心聚焦方向及可用工具集以匹配新任务阶段需求的同时,保持任务上下文的连续性。
适用场景
- 从信息收集阶段过渡至代码实现阶段时
- 从代码开发环节切换至架构设计环节时
- 当前任务需要调用仅其他模式具备的专属能力时
- 复杂项目的特定阶段需要专业领域能力支撑时
核心特性
- 跨模式切换时保持任务上下文的连续性
- 为模式切换建议提供清晰的原因说明
- 所有模式切换操作均需获得用户确认
- 严格执行各模式专属的工具组使用限制
- 根据选定模式无缝适配可用工具集
- 同时支持标准模式与自定义模式的切换
- 在用户界面中展示模式切换操作及对应原因
- 采用 XML 格式规范参数定义
- 适配特定模式对应的文件类型限制规则
限制说明
- 无法切换至系统中未定义的模式
- 每次模式切换均需用户显式确认
- 模式切换完成前,无法调用目标模式的专属工具
- 模式切换后会触发500毫秒延迟,确保切换操作生效
- 部分模式存在文件类型限制(示例:架构模式仅支持编辑 Markdown 文件)
- 模式恢复保留机制仅适用于
new_task功能,不作用于常规模式切换操作
执行流程
调用switch_mode工具后,将按以下流程执行:
请求校验
- 验证待切换的目标模式是否在系统中已定义
- 校验必选参数
mode_slug是否已传入且格式合法 - 确认当前系统并非已处于目标模式
- 若传入可选参数
reason,验证其格式是否合规
切换准备
- 将模式切换请求与传入的原因信息进行封装
- 向用户展示模式切换请求,等待用户确认
模式激活(用户确认后)
- 更新用户界面,展示当前已切换的新模式
- 根据目标模式的工具组配置,调整系统可用工具集
- 加载目标模式专属的提示词与行为规则
- 触发500毫秒延迟,确保模式切换生效后再执行后续工具调用
- 启用目标模式对应的文件类型限制规则
任务续行
- 基于新模式的能力承接并继续执行当前任务
- 保留前序交互过程中的相关任务上下文
工具组归属
switch_mode工具归属于「模式(modes)」工具组,同时被纳入「全局可用(always available)」工具清单,特性如下:
- 不受模式工具组配置限制,可在任意模式下调用
- 与
ask_followup_question、attempt_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>