斜杠命令
向客户端声明可用的斜杠命令
Agent 可以声明一组用户可调用的斜杠命令。这些命令提供对特定 Agent 能力和工作流的快速访问。命令作为常规提示请求的一部分运行,客户端在提示中包含命令文本。
声明命令
创建会话后,Agent 可以 通过 available_commands_update 会话通知发送可用命令列表:
{
"jsonrpc": "2.0",
"method": "session/update",
"params": {
"sessionId": "sess_abc123def456",
"update": {
"sessionUpdate": "available_commands_update",
"availableCommands": [
{
"name": "web",
"description": "Search the web for information",
"input": {
"type": "text",
"hint": "query to search for"
}
},
{
"name": "test",
"description": "Run tests for the current project"
},
{
"name": "plan",
"description": "Create a detailed implementation plan",
"input": {
"type": "text",
"hint": "description of what to plan"
}
}
]
}
}
}
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
availableCommands | AvailableCommand[] | - | 此会话中可用的命令列表 |
AvailableCommand
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
name | string | 是 | 命令名称(例如 “web”、“test”、“plan”) |
description | string | 是 | 命令功能的人类可读描述 |
input | AvailableCommandInput | - | 命令的可选输入规范 |
AvailableCommandInput
目前支持 type: "text" 的文本输入:
| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
hint | string | 是 | 输入尚未提供时显示的提示 |
命令输入规范可以添加自定义或未来的 type 值。自定义输入类型 必须 以 _ 开头;未知的非下划线输入类型保留给未来的 ACP 变体。无法渲染输入规范的客户端应在存储、重放、代理或转发命令元数据时保留它,否则显示不带结构化输入的命令。
动态更新
Agent 可以在会话期间的任何时候通过发送另一个 available_commands_update 通知来更新可用命令列表。这允许根据上下文添加命令、在不再相关时移除命令,或使用更新的描述进行修改。
运行命令
命令作为常规用户消息包含在提示请求中:
{
"jsonrpc": "2.0",
"id": 3,
"method": "session/prompt",
"params": {
"sessionId": "sess_abc123def456",
"prompt": [
{
"type": "text",
"text": "/web agent client protocol"
}
]
}
}
Agent 识别命令前缀并相应地处理它。命令可以在同一提示数组中伴随任何其他用户消息内容类型(图像、音频等)。