AI Agent 如何在任务执行中动态切换模型、Skill 与提示词
长任务开始后,最初选择的模型、Skill 或提示词不一定始终适合后续阶段。资料整理需要速度和上下文容量,复杂分析更依赖推理质量,最终交付又可能需要不同的写作方法。
传统做法是停止任务、创建新会话、重新上传材料,再手工说明已经完成了什么。这样容易丢失计划、文件引用和已经确认的上下文。
xAgent 允许用户在同一个 Agent 会话中调整模型、请求策略、提示词、常驻 Skill、常驻 Tool 和密钥选择。修改保存后,后续执行步骤使用新的会话配置,不需要删除会话或重新开始整个任务。
什么是任务执行中的热切换
热切换是指保留当前会话、历史消息、计划、任务状态和工作区产物,只调整当前会话接下来如何执行。
它不代表强行修改一个已经发送给模型的请求,也不会在 Tool 执行到一半时替换它。新配置从后续模型请求或后续执行步骤开始生效。
为什么不同阶段需要不同配置
| 阶段 | 更关注的能力 |
|---|---|
| 资料读取与整理 | 速度、上下文容量、文件处理稳定性 |
| 复杂分析与决策 | 推理质量、约束遵循和验证能力 |
| 内容撰写 | 结构、表达、语言风格和受众适配 |
| 文件生成 | 输出格式以及 Tool 与 Skill 配合 |
| 外部发送 | 连接状态、审批和目标确认 |
让一个模型和一套方法承担全部阶段不一定最经济,也不一定能获得最佳结果。
动态切换模型
用户可以在 Agent 会话的高级设置中选择当前会话后续使用的模型,并按需要调整会话级模型策略。
模型切换后:
- 当前会话历史仍然保留。
- 后续模型请求读取新的会话模型配置。
- 上下文预算按照新模型的配置重新判断。
- Tool、Skill、计划和工作区文件仍属于原会话。
如果某次模型请求已经发出,当前请求仍由原模型完成。对于已经绑定模型的独立执行步骤,也会先保持本次执行的一致性,再让新配置影响后续未绑定的调用。
因此,模型热切换的准确含义是“不停止会话即可切换后续模型”,而不是在同一个流式响应生成到一半时更换模型。
适合切换模型的情况
- 当前模型的上下文不足以处理现有材料。
- 初步整理已经完成,需要更强模型进行复杂判断。
- 推理阶段结束,希望用更适合写作的模型生成报告。
- 当前模型 Tool Calling 不稳定。
- 当前模型供应商暂时不可用。
切换前应确认新模型支持任务所需能力,特别是 Tool Calling、视觉输入和足够的上下文长度。
动态调整 Skill
xAgent 支持两类 Skill 选择:
- 常驻 Skill:由用户在高级设置中选择,作为当前会话持续使用的方法基线。
- 按需 Skill:Agent 在执行过程中发现和加载,并可在不再适用时卸载。
高级配置只展示用户明确设置的常驻 Skill。Agent 在任务执行过程中通过 skill_find、skill_load 等核心能力自主发现和加载的 Skill,属于当前会话的运行时能力,不会回写到高级配置,也不会显示为常驻 Skill。
Skill 选择或内容变化后,xAgent 会在后续上下文装配时重新读取当前用户真正可用的 Skill 内容。缓存会根据实际 Skill 内容变化重新生成,不会因为名称相同而永久使用旧版本。
用户可以在分析阶段加入研究 Skill,在交付阶段切换到报告 Skill,也可以更新个人 Skill 后继续在原会话中验证新版本。
加载 Skill 只改变后续方法指导,不会自动获得 Tool 权限,也不会自动执行 Skill 中描述的动作。
动态调整提示词
用户可以在高级设置中修改当前会话的 Agent Prompt。例如:
从现在开始,先给出证据和不确定性,再给出结论。最终结果面向管理层,避免使用开发术语。
保存后,xAgent 会更新当前会话的提示词事实,并刷新后续请求使用的稳定提示词前缀,无需清空历史或重启服务。
部分子 Agent 还可以通过受控能力修正自己的提示词,但只能修改当前会话的角色提示词正文,不能借此同时改写 Tool、Skill、密钥或其他安全配置。
提示词修改不会改写历史消息,也不会让以前的结果自动重新计算。需要新结果时,应要求 Agent 按新规则重新检查或生成。
Tool 和密钥也可以调整
高级设置还允许用户维护当前会话的常驻 Tool 和可引用密钥名称。
与 Skill 相同,高级配置中显示的 Tool 都是用户明确选择的常驻 Tool。Agent 通过 tool_find、tool_load 等核心能力按需发现和加载的 Tool 只在会话运行时生效,不会自动出现在高级配置中。
- 新增常驻 Tool 后,后续请求会根据当前可用状态装配相应 Tool。
- 移除常驻 Tool 不会撤销已经执行完成的外部操作。
- Tool 是否真正可调用仍受 MCP、连接器、运行状态、权限和审批策略影响。
- 密钥设置只选择允许引用的密钥名称,真实值不会进入模型上下文。
只在某个阶段临时需要的能力,可以使用动态 Tool 发现与加载,不必永久设为常驻 Tool。
哪些内容会保留
动态调整会话能力时,会话历史、用户补充信息、计划、任务状态、工作区文件、会话附件、稳定文件引用、已完成 Tool 结果以及主/子会话关系都会保留。
新模型或新 Skill 可以继续使用这些事实,但仍应重新验证关键结论,不能因为历史中出现过某个结果就默认它在新阶段仍然正确。
一个分阶段示例
用户需要完成一份行业研究报告:
- 使用速度较快、上下文较大的模型读取材料。
- 加载研究整理 Skill,建立来源和证据清单。
- 材料准备完成后,在同一会话切换到推理能力更强的模型。
- 调整提示词,要求明确区分事实、推断和不确定性。
- 加载报告生成 Skill,把研究结果制作成 HTML 报告。
- 使用原工作区文件复查,不需要重新上传材料。
整个任务仍属于同一个会话,但不同阶段可以使用更合适的模型和方法。
如何安全地微调当前任务
- 先保存当前阶段可复用的产物或状态说明。
- 每次优先只修改一个主要变量。
- 修改提示词时写清楚“从现在开始”的规则。
- Skill 只加载与当前阶段准确匹配的能力。
- 切换模型后先执行一个可验证的小步骤。
- 对重要结果重新检查,不假设新旧模型判断完全一致。
热切换的边界
- 不会中途替换已经发送的单次模型请求。
- 不会中断并改写正在执行的 Tool 调用。
- 不会修改已经生成的历史消息和文件。
- 不会绕过 Tool 权限、工作区边界或审批策略。
- 不会把 Skill 变成模型训练或参数更新。
- 上下文压缩期间,部分会话配置操作可能暂时冻结。
热切换的价值是保留任务连续性,同时让后续步骤使用更合适的配置,而不是让已经进行中的每个内部动作都能被无条件替换。