Agent
定义所有符合ACP的代理必须实现的接口。 代理是使用生成式AI自主修改代码的程序。它们处理来自客户端的请求,并使用语言模型和工具执行任务。authenticate
使用指定的认证方法对客户端进行认证。 当代理在允许创建会话之前需要认证时调用。客户端提供在初始化期间广告的认证方法ID。 成功认证后,客户端可以继续使用new_session创建会话,而不会收到auth_required错误。
查看协议文档:Initialization
AuthenticateRequest
authenticate方法的请求参数。 指定要使用的认证方法。 类型: Object 属性:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
要使用的认证方法的ID。
必须是初始化响应中广告的方法之一。
AuthenticateResponse
对authenticate 方法的响应。
Type: Object
Properties:
_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
initialize
与客户端建立连接并协商协议能力。 此方法在连接开始时调用一次,用于:- 协商要使用的协议版本
- 在客户端和代理之间交换能力信息
- 确定可用的认证方法
InitializeRequest
初始化方法的请求参数。 由客户端发送以建立连接和协商能力。 查看协议文档:Initialization Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
clientCapabilities
客户端支持的能力。
- Default:
{"fs":{"readTextFile":false,"writeTextFile":false},"terminal":false}
clientInfo
发送给代理的客户端名称和版本信息。Note: in future versions of the protocol, this will be required.
客户端支持的最新协议版本。
InitializeResponse
Response to theinitialize
包含协商的协议版本和代理能力。
查看协议文档:Initialization
Type: Object
Properties:
_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
agentCapabilities
代理支持的能力。
- Default:
{"loadSession":false,"mcpCapabilities":{"http":false,"sse":false},"promptCapabilities":{"audio":false,"embeddedContext":false,"image":false},"sessionCapabilities":{}}
agentInfo
发送给客户端的代理名称和版本信息。Note: in future versions of the protocol, this will be required.
authMethods
代理支持的认证方法。
- Default:
[]
如果代理支持,则为客户端指定的协议版本,
或代理支持的最新协议版本。如果客户端不支持此版本,应断开连接。
session/cancel
取消会话的正在进行操作。 这是客户端发送的通知,用于取消正在进行的提示轮次。 收到此通知后,代理应该:- 尽快停止所有语言模型请求
- 中止所有正在进行的工具调用
- 发送所有待处理的
session/update通知 - 使用
StopReason::Cancelled响应原始的session/prompt请求
CancelNotification
取消会话正在进行操作的通知。 查看协议文档:Cancellation Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
要取消操作的会话ID。
session/load
加载现有会话以恢复之前的对话。 此方法仅在代理声明了loadSession 能力时可用。
代理应该:
- 恢复会话上下文和对话历史
- 连接到指定的MCP服务器
- 通过通知将整个对话历史流式传输回客户端
LoadSessionRequest
加载现有会话的请求参数。 仅在代理支持loadSession 能力时可用。
查看协议文档:Loading Sessions
Type: Object
Properties:
_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
此会话的工作目录。
此会话要连接的MCP服务器列表。
要加载的会话ID。
LoadSessionResponse
加载现有会话的响应。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
modes
如果代理支持,则为初始模式状态查看协议文档:Session Modes
session/new
与代理创建新的对话会话。 会话表示具有自己历史和状态的独立对话上下文。 代理应该:- 创建新的会话上下文
- 连接到任何指定的MCP服务器
- 返回唯一的会话ID用于后续请求
auth_required 错误。
查看协议文档:Session Setup
NewSessionRequest
创建新会话的请求参数。 查看协议文档:Creating a Session Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
此会话的工作目录。 Must be an absolute path.
代理应连接的MCP(Model Context Protocol)服务器列表。
NewSessionResponse
创建新会话的响应。 查看协议文档:Creating a Session Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
modes
如果代理支持,则为初始模式状态查看协议文档:Session Modes
创建会话的唯一标识符。用于此对话的所有后续请求。
session/prompt
在会话中处理用户提示。 此方法处理提示的整个生命周期:- 接收用户消息及可选的上下文(文件、图像等)
- 使用语言模型处理提示
- 向客户端报告语言模型内容和工具调用
- 请求运行工具的权限
- 执行任何请求的工具调用
- 当轮次完成时返回停止原因
PromptRequest
向代理发送用户提示的请求参数。 包含用户的消息和任何附加上下文。 查看协议文档:User Message Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
组成用户消息的内容块。作为基线,代理必须支持
ContentBlock::Text 和 ContentBlock::ResourceLink,
而其他变体可以通过 PromptCapabilities 可选启用。客户端必须根据 PromptCapabilities 调整其界面。客户端可以选择包含引用的上下文片段为
ContentBlock::Resource 或 ContentBlock::ResourceLink。当可用时,首选 ContentBlock::Resource
因为它避免了额外的往返,并允许消息包含
来自代理可能无法访问的源的上下文片段。发送此用户消息的会话ID
PromptResponse
处理用户提示的响应。 查看协议文档:Check for Completion Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
指示代理停止处理轮次的原因。
session/set_mode
设置会话的当前模式。 允许在不同的代理模式之间切换(例如,“ask”、“architect”、“code”) 这些模式会影响系统提示、工具可用性和权限行为。 该模式必须是会话创建或加载期间在availableModes 中声明的模式之一
。代理也可以自主更改模式并通过
current_mode_update 通知通知客户端。
此方法可以在会话期间的任何时候调用,无论代理是
空闲还是正在主动生成响应。
查看协议文档:Session Modes
SetSessionModeRequest
设置会话模式的请求参数。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
要设置的模式ID。
要设置模式的会话ID。
SetSessionModeResponse
对session/set_mode 方法的响应。
Type: Object
Properties:
Client
定义符合ACP的客户端必须实现的接口。 客户端通常是代码编辑器(IDE、文本编辑器),提供 用户和AI代理之间的接口。它们管理环境、处理用户交互, 并控制对资源的访问。fs/read_text_file
从客户端文件系统中的文本文件读取内容。 仅在客户端声明了fs.readTextFile 能力时可用。
允许代理访问客户端环境中的文件内容。
查看协议文档:Client
ReadTextFileRequest
从文本文件读取内容的请求。 仅在客户端支持fs.readTextFile 能力时可用。
Type: Object
Properties:
_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
要读取的最大行数。
- Minimum:
0
开始读取的行号(从1开始)。
- Minimum:
0
要读取文件的绝对路径。
此请求的会话ID。
ReadTextFileResponse
包含文本文件内容的响应。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
fs/write_text_file
将内容写入客户端文件系统中的文本文件。 仅在客户端声明了fs.writeTextFile 能力时可用。
允许代理在客户端环境中创建或修改文件。
查看协议文档:Client
WriteTextFileRequest
将内容写入文本文件的请求。 仅在客户端支持fs.writeTextFile 能力时可用。
Type: Object
Properties:
_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
要写入文件的文本内容。
要写入文件的绝对路径。
此请求的会话ID。
WriteTextFileResponse
对fs/write_text_file 的响应
Type: Object
Properties:
_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
session/request_permission
请求用户对工具调用操作的权限。 当代理在执行可能敏感的操作之前需要用户授权时调用。 客户端应向用户展示选项 并返回他们的决定。 如果客户端通过session/cancel 取消提示轮次,它必须
使用 RequestPermissionOutcome::Cancelled 响应此请求。
查看协议文档:Requesting Permission
RequestPermissionRequest
执行工具调用的用户权限请求。 当代理在执行敏感操作之前需要授权时发送。 查看协议文档:Requesting Permission Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
用户可选择的可用权限选项。
此请求的会话ID。
需要权限的工具调用的详细信息。
RequestPermissionResponse
权限请求的响应。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
用户对权限请求的决定。
session/update
处理来自代理的会话更新通知。 这是一个通知端点(不需要响应),接收 关于会话进度的实时更新,包括消息块、 工具调用和执行计划。 注意:客户端应在发送session/cancel 通知后继续接受工具调用更新,
因为代理可能会在以取消的停止原因响应之前发送最终
更新。
查看协议文档:Agent Reports Output
SessionNotification
包含代理会话更新的通知。 用于在提示处理期间流式传输实时进度和结果。 查看协议文档:Agent Reports Output Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
此更新相关的会话ID。
实际的更新内容。
terminal/create
在新终端中执行命令 仅在terminal 客户端能力设置为 true 时可用。
返回一个 TerminalId,可用于其他终端方法
以获取当前输出、等待退出和终止命令。
TerminalId 也可以用于通过 ToolCallContent::Terminal 变体
在工具调用中嵌入终端。
代理负责使用 terminal/release 方法释放终端。
查看协议文档:Terminals
CreateTerminalRequest
创建新终端并执行命令的请求。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
args
命令参数数组。
要执行的命令。
命令的工作目录(绝对路径)。
env
命令的环境变量。
要保留的最大输出字节数。当超出限制时,客户端从输出开头进行截断,以保持在限制范围内。客户端必须确保截断发生在字符边界,以保证输出字符串有效,即使这意味着保留的内容略少于指定限制。
- Minimum:
0
此请求的会话ID。
CreateTerminalResponse
包含创建的终端ID的响应。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
创建的终端的唯一标识符。
terminal/kill
终止终端命令而不释放终端 虽然terminal/release 也会终止命令,但此方法将保持
TerminalId 有效,以便可以与其他方法一起使用。
此方法在实现命令超时时很有用,它会立即终止命令,
然后获取最终输出以便发送给模型。
注意:当不再需要 TerminalId 时,使用 terminal/release。
查看协议文档:Terminals
KillTerminalCommandRequest
终止终端命令而不释放终端的请求。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
此请求的会话ID。
要终止的终端ID。
KillTerminalCommandResponse
对terminal/kill命令方法的响应 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
terminal/output
获取终端输出和退出状态 返回终端中的当前内容而不等待命令退出。 如果命令已退出,则包含退出状态。 查看协议文档:TerminalsTerminalOutputRequest
获取终端当前输出和状态的请求。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
此请求的会话ID。
要获取输出的终端ID。
TerminalOutputResponse
包含终端输出和退出状态的响应。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
exitStatus
命令完成时的退出状态。
到目前为止捕获的终端输出。
输出是否因字节限制而被截断。
terminal/release
释放终端 如果命令尚未退出,则将其终止。使用 terminal/wait_for_exit 在释放终端之前等待命令退出。 释放后,TerminalId不能再与其他 terminal/* 方法一起使用, 但已经包含它的工具调用将继续显示其输出。 terminal/kill方法可用于终止命令而不释放终端, 从而允许代理调用 terminal/output 和其他方法。 查看协议文档:TerminalsReleaseTerminalRequest
请求释放终端并释放其资源。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
此请求的会话ID。
要释放的终端ID。
ReleaseTerminalResponse
对 terminal/release 方法的响应。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
terminal/wait_for_exit
等待终端命令退出并返回其退出状态 查看协议文档:TerminalsWaitForTerminalExitRequest
等待终端命令退出的请求。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
此请求的会话ID。
要等待的终端ID。
WaitForTerminalExitResponse
包含终端命令退出状态的响应。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
进程退出代码(如果被信号终止可能为null)。
- Minimum:
0
终止进程的信号(如果正常退出可能为null)。
AgentCapabilities
代理支持的能力。 在初始化期间广播,以告知客户端可用的功能和内容类型。 查看协议文档:Agent Capabilities Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
代理是否支持 session/load。
- Default:
false
mcpCapabilities
代理支持的MCP能力。
- Default:
{"http":false,"sse":false}
promptCapabilities
代理支持的提示能力。
- Default:
{"audio":false,"embeddedContext":false,"image":false}
sessionCapabilities
- Default:
{}
Annotations
客户端的可选注释。客户端可以使用注释来告知对象如何使用或显示。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
audience
AudioContent
提供给或来自 LLM 的音频。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
annotations
AuthMethod
描述可用的认证方法。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
可选描述,提供关于此认证方法的更多详细信息。
此认证方法的唯一标识符。
认证方法的人类可读名称。
AvailableCommand
命令的信息。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
命令功能的人类可读描述。
input
命令的输入(如需要)
命令名称(例如create_plan、research_codebase)。
AvailableCommandInput
命令的输入规范。 Type: Unionunstructured
命令名称后输入的所有文本都作为输入提供。
AvailableCommandsUpdate
可用命令已准备就绪或已更改 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
代理可以执行的命令
BlobResourceContents
二进制资源内容。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
ClientCapabilities
客户端支持的能力。 在初始化期间广告,以告知代理可用的功能和方法。 查看协议文档:Client Capabilities Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
fs
客户端支持的文件系统能力。决定代理可以请求哪些文件操作。
- Default:
{"readTextFile":false,"writeTextFile":false}
客户端是否支持所有 terminal/* 方法。
- Default:
false
Content
标准内容块(文本、图像、资源)。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
实际的内容块。
ContentBlock
内容块用于在代理客户端协议中表示可展示的信息。 它们为处理各种面向用户的内容类型提供了结构化方式——无论是来自语言模型的文本、用于分析的图片,还是用于上下文的嵌入式资源。 内容块出现在以下场景:- 通过
session/prompt发送的用户提示 - 通过
session/update通知流式传输的语言模型输出 - 工具调用的进度更新和结果
文本内容。可以是纯文本或Markdown格式。所有代理必须在提示中支持文本内容块。
客户端应以 Markdown 格式渲染此文本。
用于视觉上下文或分析的图像。在提示中包含时需要 image 提示能力。
用于转录或分析的音频数据。在提示中包含时需要 audio 提示能力。
代理可以访问的资源的引用。所有代理必须在提示中支持资源链接。
直接嵌入消息中的完整资源内容。首选用于包含上下文,因为它避免了额外的往返。在提示中包含时需要 embeddedContext 提示能力。
ContentChunk
流式内容项 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
单个内容项
CurrentModeUpdate
会话的当前模式已更改 查看协议文档:Session Modes Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
当前模式的ID
Diff
表示文件修改的差异。 以适合客户端UI显示的格式显示文件的更改。 查看协议文档:Content Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
修改后的新内容。
原始内容(新文件为None)。
正在修改的文件路径。
EmbeddedResource
资源的内容,嵌入到提示或工具调用结果中。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
annotations
EmbeddedResourceResource
可以嵌入到消息中的资源内容。 Type: UnionTextResourceContents
BlobResourceContents
EnvVariable
启动MCP服务器时设置的环境变量。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
环境变量名称。
环境变量的值。
Error
JSON-RPC错误对象。 表示方法执行期间发生的错误,遵循 JSON-RPC 2.0 错误对象规范,并带有可选的附加数据。 查看协议文档:JSON-RPC Error Object Type: Object Properties:表示发生的错误类型的数字。该值必须是 JSON-RPC 规范中定义的整数。
可选的原始值或结构化值,包含有关错误的附加信息。可包括调试信息或上下文相关的细节。
提供错误简短描述的字符串。消息应限制为一句简洁的话。
ErrorCode
常见JSON-RPC和ACP特定错误的预定义错误代码。 这些代码遵循JSON-RPC 2.0规范中标准错误的定义 并使用保留范围(-32000到-32099)表示协议特定错误。 Type: Union解析错误:服务器收到无效 JSON。在服务器解析 JSON 文本时发生错误。
无效请求:发送的JSON不是有效的请求对象。
方法未找到:方法不存在或不可用。
无效参数:无效的方法参数。
内部错误:内部 JSON-RPC 错误。保留用于实现定义的服务器错误。
内部错误:内部 JSON-RPC 错误。保留用于实现定义的服务器错误。
资源未找到:未找到指定资源(如文件)。
其他未定义的错误代码。
ExtNotification
允许代理发送不属于ACP规范的任意通知。 扩展通知提供了一种发送自定义功能单向消息的方式 同时保持协议兼容性。 查看协议文档:ExtensibilityExtRequest
允许发送不属于ACP规范的任意请求。 扩展方法提供了一种添加自定义功能的方式,同时 保持协议兼容性。 查看协议文档:ExtensibilityExtResponse
允许向不属于ACP规范的ExtRequest 发送任意响应。
扩展方法提供了一种添加自定义功能的方式,同时
保持协议兼容性。
查看协议文档:Extensibility
FileSystemCapability
客户端支持的文件系统能力。 查看协议文档:FileSystem Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
客户端是否支持 fs/read_text_file 请求。
- Default:
false
客户端是否支持 fs/write_text_file 请求。
- Default:
false
HttpHeader
向MCP服务器发出请求时要设置的HTTP头。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
HTTP头名称。
HTTP头的值。
ImageContent
提供给LLM或从LLM获取的图像。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
annotations
Implementation
关于客户端或代理实现的信息。 描述MCP实现的名称和版本,可选 带有UI表示的标题。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
供编程或逻辑使用;若未提供 title,也可作为显示名称的备选。
面向 UI 和最终用户场景——专为人类可读、易于理解而优化。如果未提供,名称应用于显示。
实现版本号。可展示给用户,或用于调试、指标统计等目的(例如 “1.0.0”)。
McpCapabilities
代理支持的MCP能力 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
代理支持 McpServer::Http。
- Default:
false
代理支持 McpServer::Sse。
- Default:
false
McpServer
连接到MCP(模型上下文协议)服务器的配置。 MCP服务器提供代理在处理提示时可以使用的 工具和上下文。 查看协议文档:MCP Servers Type: UnionHTTP传输配置仅在代理能力指示
mcp_capabilities.http 为 true 时可用。SSE传输配置仅在代理能力指示
mcp_capabilities.sse 为 true 时可用。stdio
Stdio传输配置所有代理必须支持此传输。
McpServerHttp
HTTP传输配置 for MCP. Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
向MCP服务器发出请求时要设置的HTTP头。
标识此MCP服务器的人类可读名称。
MCP服务器的URL。
McpServerSse
SSE传输配置 for MCP. Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
向MCP服务器发出请求时要设置的HTTP头。
标识此MCP服务器的人类可读名称。
MCP服务器的URL。
McpServerStdio
Stdio传输配置 for MCP. Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
传递给MCP服务器的命令行参数。
MCP服务器可执行文件的路径。
启动MCP服务器时设置的环境变量。
标识此MCP服务器的人类可读名称。
PermissionOption
请求权限时向用户展示的选项。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
关于此权限选项性质的提示。
向用户显示的人类可读标签。
此权限选项的唯一标识符。
PermissionOptionId
权限选项的唯一标识符。 Type:string
PermissionOptionKind
呈现给用户的权限选项类型。 帮助客户端选择适当的图标和UI处理方式。 Type: Union仅此次允许此操作。
允许此操作并记住选择。
仅此次拒绝此操作。
拒绝此操作并记住选择。
Plan
完成复杂任务的执行计划。 计划由多个表示单个任务或目标的条目组成。 Agents report plans to clients to provide visibility into their execution strategy. Plans can evolve during execution as the agent discovers new requirements or completes tasks. 查看协议文档:Agent Plan Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
要完成的任务列表。更新计划时,代理必须发送所有条目的完整列表
with their current status. 客户端在每次更新时替换整个计划。
PlanEntry
执行计划中的单个条目。 代表助手为完成用户请求而计划达成的一项任务或目标。 查看协议文档:Plan Entries Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
此任务旨在完成的人类可读描述。
此任务的相对重要性。
Used to indicate which tasks are most critical to the overall goal.
此任务的当前执行状态。
PlanEntryPriority
计划条目的优先级级别。 Used to indicate the relative importance or urgency of different tasks in the execution plan. 查看协议文档:Plan Entries Type: Union高优先级任务——对整体目标至关重要。
中优先级任务——重要但非关键。
低优先级任务——锦上添花但非必需。
PlanEntryStatus
执行流程中计划条目的状态。 跟踪每个任务从规划到完成的生命周期。 查看协议文档:Plan Entries Type: Union任务尚未开始。
任务当前正在处理中。
任务已成功完成。
PromptCapabilities
代理在 session/prompt 请求中支持的提示能力。 主代理功能要求在提示请求中支持ContentBlock::Text 和 ContentBlock::ResourceLink。
其他变体必须明确选择加入。
提示请求中不同类型内容的能力。
指示代理除基线(文本与资源链接)外还能处理哪些内容类型。
查看协议文档:Prompt Capabilities
Type: Object
Properties:
_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
代理支持 ContentBlock::Audio。
- Default:
false
代理支持在 session/prompt 请求中嵌入上下文。When enabled, the Client is allowed to include
ContentBlock::Resource
in prompt requests for pieces of context that are referenced in the message.- Default:
false
代理支持 ContentBlock::Image。
- Default:
false
ProtocolVersion
协议版本标识符。 此版本仅在重大更改时才会更新。 非重大更改应通过能力引入。 Type:integer (uint16)
| Constraint | Value |
|---|---|
| Minimum | 0 |
| Maximum | 65535 |
RequestId
JSON RPC请求ID 由客户端建立的标识符,如果包含必须包含字符串、数字或NULL值。 如果不包含,则假定为通知。 该值通常不应为Null [1] 数字不应包含小数部分 [2] 如果包含,服务器必须在响应对象中以相同的值回复。 此成员用于关联两个对象之间的上下文。 [1] 不建议在请求对象中将Null用作id成员的值, 因为此规范对未知id的响应使用Null值。 另外,由于JSON-RPC 1.0对通知使用Null作为id值,这可能导致处理时混淆。 [2] 小数部分可能有问题,因为许多十进制小数无法精确表示为二进制小数。 Type: UnionRequestPermissionOutcome
权限请求的结果。 Type: Union在用户响应之前提示轮次已被取消。当客户端发送
session/cancel 通知取消正在进行的
提示轮次时,它必须响应所有待处理的 session/request_permission
请求,并使用此 Cancelled 结果。查看协议文档:Cancellation用户选择了提供的选项之一。
ResourceLink
服务器能够读取的资源,包含在提示或工具调用结果中。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
annotations
Role
对话中消息和数据的发送者或接收者。 Type: Enumeration| Value |
|---|
"assistant" |
"user" |
SelectedPermissionOutcome
用户选择了提供的选项之一。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
用户选择的选项的ID。
SessionCapabilities
代理支持的会话能力。 作为基线,所有代理必须支持session/new、session/prompt、session/cancel 和 session/update。
此外,它们可以通过声明额外能力,选择性地支持其他会话方法与通知。
注意:session/load 仍由顶层 load_session 能力处理,未来协议版本将统一这一机制。
查看协议文档:Session Capabilities
Type: Object
Properties:
_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
SessionId
客户端和代理之间对话会话的唯一标识符。 会话维护自己的上下文、对话历史和状态, 允许与同一个代理进行多次独立交互。 查看协议文档:Session ID Type:string
SessionMode
代理可以操作的模式。 查看协议文档:Session Modes Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
SessionModeId
会话模式的唯一标识符。 Type:string
SessionModeState
模式集和当前活动的模式。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
代理可以操作的模式集
代理当前的模式。
SessionUpdate
会话处理期间可以发送的不同类型的更新。 这些更新提供关于代理进度的实时反馈。 查看协议文档:Agent Reports Output Type: Union正在流式传输的用户消息块。
正在流式传输的代理响应块。
正在流式传输的代理内部推理块。
已启动新工具调用的通知。
工具调用状态或结果的更新。
代理完成复杂任务的执行计划。
查看协议文档:Agent Plan
可用命令已准备就绪或已更改
会话的当前模式已更改查看协议文档:Session Modes
StopReason
代理停止处理提示轮次的原因。 查看协议文档:Stop Reasons Type: Union轮次成功结束。
轮次因代理达到最大token数而结束。
轮次因代理达到允许的最大代理请求数而结束
在用户轮次之间。
轮次因代理拒绝继续而结束。 用户提示及其后的内容不会被包含在下一个提示中,
因此应在UI中反映这一点。
轮次被客户端通过
session/cancel 取消。当客户端发送 session/cancel 通知时,必须返回此停止原因,
即使取消导致底层操作出现异常。
代理应该捕获这些异常并返回这个语义上有意义的
响应以确认成功取消。Terminal
通过ID嵌入使用terminal/create 创建的终端。
必须在调用 terminal/release 之前添加终端。
查看协议文档:Terminal
Type: Object
Properties:
_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
TerminalExitStatus
终端命令的退出状态。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
进程退出代码(如果被信号终止可能为null)。
- Minimum:
0
终止进程的信号(如果正常退出可能为null)。
TextContent
提供给LLM或从LLM获取的文本。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
annotations
TextResourceContents
基于文本的资源内容。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
ToolCall
表示语言模型请求的工具调用。 工具调用是代理代表语言模型执行的操作, 如读取文件、执行代码或从外部来源获取数据。 查看协议文档:Tool Calls Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
content
工具调用产生的内容。
kind
被调用工具的类别。
帮助客户端选择适当的图标和UI处理方式。
locations
此工具调用影响的文件位置。
在客户端启用”跟随”功能。
发送给工具的原始输入参数。
工具返回的原始输出。
status
工具调用的当前执行状态。
描述工具正在做什么的人类可读标题。
会话中此工具调用的唯一标识符。
ToolCallContent
工具调用产生的内容。 工具调用可以产生不同类型的内容,包括 标准内容块(文本、图像)或文件差异。 查看协议文档:Content Type: Union标准内容块(文本、图像、资源)。
显示为差异的文件修改。
ToolCallId
会话中工具调用的唯一标识符。 Type:string
ToolCallLocation
被工具访问或修改的文件位置。 使客户端能够实现”跟随”功能,跟踪 代理正在实时处理的文件。 查看协议文档:Following the Agent Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
文件中的可选行号。
- Minimum:
0
正在访问或修改的文件路径。
ToolCallStatus
工具调用的执行状态。 工具调用在其生命周期中经历不同的状态。 查看协议文档:Status Type: Union工具调用尚未开始运行,因为输入正在流式传输
或我们正在等待批准。
工具调用当前正在运行。
工具调用成功完成。
工具调用失败并出现错误。
ToolCallUpdate
对现有工具调用的更新。 用于在工具执行时报告进度和结果。 All fields except the tool call ID are optional - only changed fields need to be included. 查看协议文档:Updating Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
content
替换内容集合。
kind
更新工具类型。
locations
替换位置集合。
更新原始输入。
更新原始输出。
status
更新执行状态。
更新人类可读标题。
被更新的工具调用的ID。
ToolKind
可以调用的工具类别。 工具类别帮助客户端选择适当的图标并优化 显示工具执行进度的方式。 查看协议文档:Creating Type: Union读取文件或数据。
修改文件或内容。
删除文件或数据。
移动或重命名文件。
搜索信息。
运行命令或代码。
内部推理或规划。
检索外部数据。
切换当前会话模式。
其他工具类型(默认)。
UnstructuredCommandInput
命令名称后输入的所有文本都作为输入提供。 Type: Object Properties:_meta属性由ACP保留,允许客户端和代理在交互中附加额外的元数据。实现不得对这些键的值做出假设。查看协议文档:Extensibility
当输入尚未提供时显示的提示