AgentUse 标准协议
AgentUse 是面向软件与 SaaS 的开放协议,定义软件如何向 AI Agent 声明能力、接受调用并返回可验证结果。协议聚焦软件如何被 Agent 使用,不规定 Agent 的内部架构。
能力声明
定义能力标识、使用场景、输入输出 Schema、认证要求与风险信息,使 Agent 无需解析人类文档即可理解软件能做什么。
调用契约
规定能力如何被发现、调用并返回结果,统一同步、异步、错误、状态与副作用的机器语义。
一致性验证
通过可重复的检查验证能力声明、实际行为与安全边界是否一致,判断软件能否被 Agent 稳定使用。
设计原则
1. Agent 优先,但不排除人类
接口首先为 Agent 优化,同时保留人类可读的表达方式
2. 自描述优于文档
Agent 不应阅读人类文档来理解接口,接口本身必须自描述
3. 渐进式采用
软件可逐步完成转型,从原子化单一功能开始,到全面认证
4. 安全默认
权限默认最小化,高风险操作默认需要人类审批
5. 开放与中立
标准不绑定任何特定 Agent 框架或云厂商
Agent-Ready 转型框架
传统软件要成为 Agent-Ready,需按以下四步完成架构演进。每步均可独立实施和验证。
操作原子化
把软件能力整理为边界清晰、结果可判断的用户意图,每项能力具备明确的输入、输出与副作用。
要求:
- 每项能力只表达一个明确目标,不混合互不相关的业务意图
- 输入参数使用 JSON Schema 描述,类型、约束、示例值完整定义
- 控制信息保持结构化;业务内容可声明为文本、Markdown、HTML、文件或其他媒体
- 跨操作依赖通过资源 ID、流程句柄或显式参数传递,不依赖隐藏页面状态
验收标准:
| 检查项 | 标准 |
|---|---|
| 单一操作原子化 | 每项能力具有单一目标和可判断结果,内部可编排多个实现步骤 |
| 输入 Schema | JSON Schema 覆盖所有参数,含 type/constraint/example |
| 输出格式 | 状态、错误和元数据结构化,业务内容声明明确类型或 MIME type |
| 显式流程状态 | 资源和流程状态使用 ID 或句柄显式关联 |
标准暴露层
为原子操作提供标准化的机器接口,使 Agent 能够自动发现和调用。
适配方式优先级(至少实现一种,均可搭配 SKILL.md):
方式 A:Agent-First CLI(首选)
为每项能力提供 CLI 命令。非 TTY 时输出机器可读结果,提供能力清单入口、结构化错误与稳定退出语义,适合本地软件、开发工具和自动化程序。
方式 B:MCP 接口(次选)
软件以 MCP Server 暴露工具,Agent 通过 tools/list 等原生机制发现、调用并接收结构化结果,适合工具发现、Agent 客户端接入与服务能力。
Agent → SSE/HTTP → MCP Server → Business Logic
← tools/list ←
← call/tool_name ←方式 C:REST + OpenAPI 3.1(兼容方案)
已有 HTTP API 的软件通过完整 OpenAPI 3.1 文档适配 Agent。参数、响应、认证、错误与副作用必须可发现,适合 SaaS 和跨系统集成。
验收标准:
| 检查项 | 标准 |
|---|---|
| 协议选择 | 至少实现 CLI / MCP / REST+OpenAPI 中的一种,优先采用 CLI |
| 能力可发现 | CLI 能力清单、MCP tools/list 或 OpenAPI 文档可返回完整契约 |
| 参数自描述 | 每个参数含 description,Agent 无需外部文档 |
| 示例值 | 每个入参提供 example,Agent 可参考格式 |
可观测的上下文
提供传输方式中立的结构化状态与事件,使 Agent 能够判断操作进度、完成、失败和重试条件。
要求:
- 每个操作返回唯一的 operation_id
- 同步操作在响应中直接返回结果
- 异步操作返回状态句柄,支持轮询、进度通知、SSE 或 Webhook
- 事件至少包含 operation_id、timestamp、stage、status;CLI 可使用 JSON Lines
- 写入操作支持 Idempotency-Key,Agent 可安全重试
异步操作状态流示例:
// 1. Initiate operation
POST /deployments
{ "ref": "abc123", "Idempotency-Key": "req-001" }
// 2. Immediate handle returned
{
"ok": true,
"data": { "handle": "dep-789" },
"warnings": [],
"meta": { "operation_id": "op-123" }
}
// 3. Agent polling
GET /deployments/dep-789
{
"ok": true,
"data": { "status": "in_progress", "stage": "building", "progress": 0.65 },
"warnings": [],
"meta": { "operation_id": "op-123" }
}
// 4. Final result
{
"ok": true,
"data": { "status": "completed", "result": { ... } },
"warnings": [],
"meta": { "operation_id": "op-123" }
}验收标准:
| 检查项 | 标准 |
|---|---|
| operation_id | 每次操作返回唯一标识 |
| 异步状态句柄 | 长耗时操作返回 handle,支持轮询 |
| 结构化事件 | 通过 JSON Lines、MCP 通知、轮询、SSE 或 Webhook 暴露统一状态语义 |
| 幂等支持 | 写入操作支持 Idempotency-Key |
安全护栏与边界
由软件声明风险、影响与审批要求,由 Agent 宿主或企业策略决定最终执行边界。
操作风险分级:
| 级别 | 名称 | Agent 行为 | 示例 |
|---|---|---|---|
| L0 | 只读 | 自主执行 | 查询、列表、状态检查 |
| L1 | 低风险写入 | 自主执行 + 事后审计 | 创建草稿、更新配置 |
| L2 | 高风险操作 | 默认需审批,审批可由供应者或消费者侧完成 | 删除数据、生产部署 |
| L3 | 危险操作 | 不可自动执行,但能力与人工处理路径保持可发现 | 权限变更、系统配置修改 |
审批流程示例(L2 操作):
// Provider-hosted approval example: Agent initiates L2 operation
POST /deployments/production
{ "ref": "abc123", "Idempotency-Key": "req-002" }
// Returns approval request (not error, but human-intervention state)
{
"ok": true,
"data": {
"status": "pending_approval",
"approval_request_id": "appr-456",
"message": "This operation requires human approval..."
},
"meta": { "operation_id": "op-789" }
}
// After human approval, Agent retries the same operation
POST /deployments/production
{ "ref": "abc123", "approval_request_id": "appr-456", "Idempotency-Key": "req-002" }要求:
- 能力契约声明每项操作的 risk-level(L0/L1/L2/L3);SKILL.md 可同步承载该信息
- 声明审批由供应者托管或由消费者策略执行;供应者托管时返回可轮询句柄
- L3 能力保持可发现,并返回人工或管理端处理路径
- 高风险操作关联操作者、时间、操作内容、结果与审批依据
验收标准:
| 检查项 | 标准 |
|---|---|
| 风险分级 | 所有操作标记 L0-L3 风险等级 |
| 审批流程 | 能力声明审批责任方;供应者托管审批时返回 pending_approval 与审批句柄 |
| L3 人工路径 | L3 不可自动执行,但能力和人工处理方式可发现 |
| 审计日志 | 每次操作生成不可篡改审计记录 |
技术规范
AgentUse 标准的核心技术细节,确保软件能力可被 Agent 自动发现、理解和调用。
SKILL.md 推荐格式
SKILL.md 是强烈建议的上下文与分发载体,可与 CLI、MCP、OpenAPI 3.1 任一适配方式组合使用。它不是所有软件的强制入口,但适合补充使用场景、工作流与领域说明,采用 YAML Frontmatter + Markdown Body 结构。
---
name: my-skill
description: Clearly describe the skill's function and trigger scenarios
license: MIT
compatibility: ">=1.0.0"
allowed-tools: Bash Read Write
metadata:
author: your-org
version: "1.0.0"
category: document-processing
protocols:
- mcp
- cli
---Frontmatter 字段定义:
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| name | 是 | string | 唯一标识符,1-64字符,小写字母/数字/连字符 |
| description | 是 | string | 描述技能功能和触发场景,含 Agent 匹配关键词 |
| license | 否 | string | SPDX 标识符 |
| compatibility | 否 | string | 环境要求(系统包、网络访问等) |
| allowed-tools | 否 | string | 技能可使用的工具列表(空格分隔) |
| metadata | 否 | object | 扩展元数据可包含 protocols、capabilities、risk-level 等;协议扩展使用 x-agentuse-* 前缀。认证元数据仅在存在外部验证时声明。 |
能力声明
Agent-Ready 软件必须通过 CLI 能力清单、MCP tools/list 或 OpenAPI 文档提供机器可读契约。不同入口应覆盖相同核心语义:能力 ID、描述、输入、输出、认证、风险与结果。
MCP 能力声明示例(tools/list):
{
"tools": [
{
"name": "create_order",
"description": "Create a new order. Accepts product ID, quantity, and shipping address; returns order ID and status.",
"inputSchema": {
"type": "object",
"required": ["product_id", "quantity"],
"properties": {
"product_id": {
"type": "string",
"pattern": "^prod_[a-zA-Z0-9]+$",
"description": "Unique product identifier",
"example": "prod_A8k3Xp"
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 1000,
"description": "Order quantity, range 1-1000",
"example": 5
}
}
},
"x-agentuse-idempotent": false,
"x-agentuse-risk-level": "L1",
"x-agentuse-capabilities": ["write", "create"]
}
]
}协议扩展属性统一使用 x-agentuse-* 前缀,与 MCP 和 OpenAPI 原生命名空间并存。
输入/输出契约
输入契约:
- 强类型参数:所有参数必须有明确的类型定义
- 约束显式化:使用 enum、pattern、minimum、maximum 等 JSON Schema 约束
- 必需字段明确标记:required 字段必须显式声明
- 示例值:每个参数应提供 example
输出契约:
- 控制信息结构化:状态、错误、警告与操作元数据不依赖自然语言推断
- 有界输出:列表操作必须支持分页
- 字段稳定性:添加新字段是兼容变更
- 内容类型明确:文本、Markdown、HTML、文件或媒体声明类型或 MIME type
统一响应信封格式:
{
"ok": true,
"data": { /* operation result */ },
"warnings": [ /* non-fatal warnings, can be empty array */ ],
"meta": {
"operation_id": "op-123",
"timestamp": "2026-05-06T12:00:00Z",
"schema_version": "1.0"
}
}错误处理规范
Agent-Ready 软件必须返回统一的结构化错误分类;CLI 映射为退出码,HTTP 映射为状态码,MCP 映射为结构化错误结果。
{
"ok": false,
"error": {
"code": "invalid_request",
"message": "Parameter product_id format is invalid",
"details": {
"field": "product_id",
"value": "12345",
"expected_pattern": "^prod_[a-zA-Z0-9]+$"
},
"retryable": false,
"suggestions": [
"Use 'mytool products list' to query valid product IDs",
"product_id must start with 'prod_'"
],
"request_id": "req-123"
},
"meta": {
"operation_id": "op-123",
"timestamp": "2026-05-06T12:00:00Z"
}
}统一错误分类与重试语义:
| 错误代码 | 适用场景 | 可重试 |
|---|---|---|
| invalid_request | 参数、格式或调用方式无效 | 修正请求后 |
| unauthenticated | 缺少、过期或无效凭据 | 否 |
| permission_denied | 凭据有效,但权限或 scope 不足 | 否 |
| not_found | 目标资源不存在 | 否 |
| conflict | 资源状态与请求冲突 | 状态变化后 |
| rate_limited | 超过调用频率或配额 | 按 retry_after |
| temporarily_unavailable | 依赖或服务暂时不可用 | 是 |
| internal_error | 未预期的供应者内部错误 | 视情况 |
认证与权限模型
认证方式(按软件边界选择):
- API Key:声明 Key 获取方式、权限范围与轮换要求
- OAuth 2.0 / 2.1:声明授权入口、grant、scopes 与令牌更新方式
- 短期访问令牌或供应商已有机制:以机器可发现方式描述完整授权流程
每项能力单独声明所需认证与 scopes。声明可以位于能力契约中,也可以由 SKILL.md 引用,Agent 在调用前判断当前凭据是否满足。
AgentUse Adaptation
让 Agent 帮你完成适配
复制下面的指令,发送给你的 Agent。
请读取 https://www.zerone.run/skills/agentuse-adaptation.md,并严格按照其中的安装指引安装 AgentUse Adaptation SKILL。Agent-Ready 认证体系
认证是 AgentUse 区别于纯技术标准的独特价值。认证不是自声明的——每个提交都必须通过标准化的测试管线和安全审计。
Bronze
基础契约:至少一种适配方式 + 可发现的能力契约 + 基本输入输出 Schema
Silver
行为完整:Bronze + 统一错误模型 + 分页、异步操作与兼容变更规则
Gold
安全就绪:Silver + 风险声明 + 细粒度权限 + 幂等性 + 审批与审计关联
Platinum
持续可信:Gold + 跨适配方式一致性 + 性能基准 + 持续兼容性验证
测试管线
每个等级的认证对应一套自动化测试管线:
| 测试类型 | 验证内容 | 适用等级 |
|---|---|---|
| 协议兼容性 | 能力清单完整性、核心字段覆盖与输入输出契约一致性 | 所有等级 |
| 功能测试 | 针对每个声明能力执行标准输入,验证输出符合 Schema | 所有等级 |
| 错误处理 | 注入非法输入,验证统一错误分类、重试语义及各适配方式映射 | Silver+ |
| 安全测试 | 权限越权、风险声明、审批责任方与敏感信息泄露检测 | Gold+ |
| 幂等性 | 重复执行同一操作,验证不产生副作用 | Gold+ |
| 性能基准 | 响应时间、吞吐量、并发处理能力与跨适配方式一致性 | Platinum |
持续合规
认证不是一次性的。通过认证的软件需满足:
- 版本同步验证:每次发布新版本时,自动重新运行认证测试管线
- 破坏性变更检测:自动检测 I/O Schema 的破坏性变更,要求更新版本号
- 安全评分监控:持续监控安全漏洞,安全评分低于阈值将降级认证等级
- 适配一致性:CLI、MCP 或 OpenAPI 多入口声明同一能力时,持续检查行为一致
生态协同
AgentUse 复用成熟的接口、Schema、认证与上下文标准,规定它们组合后如何形成一致的 Agent 使用体验。
标准全景图
| 标准 | 关注层面 | 与 AgentUse 的关系 |
|---|---|---|
| MCP | Agent 工具调用传输协议 | AgentUse 的次选适配方式,与首选 CLI 方案互补 |
| OpenAPI 3.1 | HTTP API 与能力 Schema 描述 | AgentUse 的兼容适配方式,用于已有 SaaS 与跨系统集成 |
| JSON Schema | 输入输出数据契约 | 为三种适配方式提供一致的参数、结果与约束表达 |
| OAuth 2.0 / 2.1 | SaaS 授权与 scope | 提供授权入口、权限范围与令牌生命周期的标准语义 |
| SKILL.md | 使用说明、工作流与领域上下文 | 强烈建议的上下文与分发载体,可与任一适配方式组合 |
| AGENTS.md | 项目级 Agent 指令 | 管理代码库工作方式,与 AgentUse 的软件能力契约互补 |
AgentUse 的独特价值
AgentUse 不替代现有标准,而是在它们之上补齐三项协议能力:
统一能力契约
不同适配方式表达相同的能力、输入输出、认证、风险与结果语义
传输方式中立
CLI、MCP、OpenAPI 可以独立使用,也可以按软件边界组合使用
一致性验证
以可重复检查判断能力声明、实际行为与安全边界是否一致
Agent-Ready 一致性焦点
| 检查维度 | AgentUse 0.2.0 要求 |
|---|---|
| 可发现 | Agent 可通过一次标准入口获得完整能力契约 |
| 可调用 | 输入、输出与副作用边界明确,不依赖人类文档推断 |
| 可恢复 | 统一错误分类、重试语义与异步状态句柄 |
| 边界显式 | 认证、scopes、风险、审批与跨操作依赖均可发现 |
| 行为一致 | 能力声明与实际行为一致,多适配入口语义一致 |
| 可验证 | 通过标准输入、错误注入与安全检查重复验证 |
让你的软件 Agent-Ready
下一代用户不会再点击 UI——他们是 AI Agent,将直接自主操作你的软件。
无需任何承诺,从一次免费咨询开始