Skip to main content
代理可以提供一组它们可以操作的模式。模式通常会影响使用的系统提示、工具的可用性以及是否在运行前请求权限。

初始状态

会话设置期间,代理可以返回它可以操作的模式列表以及当前活动的模式:
modes
SessionModeState
会话的当前模式状态

SessionModeState

currentModeId
SessionModeId
required
当前活动模式的 ID
availableModes
SessionMode[]
required
代理可以操作的模式集合

SessionMode

id
SessionModeId
required
此模式的唯一标识符
name
string
required
模式的人类可读名称
description
string
可选描述,提供有关此模式功能的更多详细信息

设置当前模式

当前模式可以在会话期间的任何时间点更改,无论代理是空闲还是正在生成响应。

从客户端

通常,客户端向用户显示可用模式,并允许他们更改当前模式,这可以通过调用 session/set_mode 方法来完成。
sessionId
SessionId
required
要设置模式的会话的 ID
modeId
SessionModeId
required
要切换到的模式的 ID。必须是 availableModes 中列出的模式之一

从代理

代理也可以更改自己的模式,并通过发送 current_mode_update 会话通知让客户端知道:

退出计划模式

代理可能切换模式的一个常见情况是在计划/架构模式期间向语言模型提供特殊的”退出模式”工具。当语言模型确定已准备好开始实现解决方案时,可以调用此工具。 此”切换模式”工具通常在运行前请求权限,就像任何其他工具一样:
当选择某个选项时,工具运行,设置模式并发送上述的 current_mode_update 通知。

了解更多关于权限请求