用途
AdCP CLI(命令名 adcp)用于与 AdCP(Ad Context Protocol,广告上下文协议)广告智能体进行交互。它支持通过 MCP 或 A2A 协议调用 AdCP 工具、运行合规测试,以及查询 AdCP 注册表。当用户希望调用 AdCP 工具(如 get_products 等)时可以使用该工具。
主要能力
- 调用智能体工具:通过别名或 URL 调用 AdCP 工具,可省略工具名以发现可用工具。
- 内置测试智能体:无需任何配置即可使用 test-mcp、test-a2a、test-no-auth、test-a2a-no-auth 等别名,其中 test-mcp 与 test-a2a 已预认证。creative 为官方创意智能体(MCP,需要 --auth 或 ADCP_AUTH_TOKEN)。
- 合规测试(comply):运行由 storyboard 驱动的合规评估,按能力轨道分组,输出结构化 JSON,包含 failures 数组,便于定位问题。
- Storyboard 测试:列出、查看、运行 storyboard,或逐步调试单个步骤,支持上下文传递。
- 传统测试运行器(test):提供 24 个内置场景,如 health_check、discovery、full_sales_flow、signals_flow、capability_discovery 等。
- 注册表查询:查找品牌、属性、智能体、发布商,支持发现、验证、搜索、统计以及保存操作(需认证)。
- 智能体管理:保存认证配置、列出智能体、移除智能体、查看配置,配置存储于 ~/.adcp/config.json。
- 异步/webhook 支持:对长时间运行的操作(如 create_media_buy)可使用 --wait 启动 webhook 监听并等待异步响应,--local 用于本地 webhook。
使用方式
快速开始(零配置):
adcp test-mcp # 列出 MCP 测试智能体上的工具
adcp test-mcp get_products '{"brief":"coffee brands"}' # 调用工具
adcp test-a2a get_products '{"brief":"coffee brands"}' # 通过 A2A 执行相同操作
adcp test test-mcp discovery # 测试工具发现
adcp test test-mcp full_sales_flow # 完整媒体购买生命周期
调用智能体工具:
adcp <alias|url> [tool-name] [payload] [options]
发现工具(省略工具名):
adcp https://agent.example.com
adcp my-alias
调用工具:
adcp https://agent.example.com get_products '{"brief":"coffee brands"}'
adcp https://agent.example.com create_media_buy @payload.json
echo '{"brief":"travel"}' | adcp https://agent.example.com get_products -
认证(优先级顺序):
- 保存的配置
- --auth $TOKEN 标志
- ADCP_AUTH_TOKEN 环境变量
- --oauth(仅 MCP)
输出模式:默认美化打印,--json 输出原始 JSON,--debug 输出连接诊断。
强制协议(默认自动检测):--protocol mcp 或 --protocol a2a。
合规评估(comply):
adcp comply <agent> [options]
推荐工作流:先运行完整合规评估(adcp comply my-agent --json),解析 failures 数组获取可操作项(每项包含 storyboard_id、step_id 和 fix_command),再用 storyboard step 调试具体失败,修复后使用 --storyboards 重新测试相关 storyboard。
过滤选项(优先级):--storyboards IDS(最高)、--platform-type TYPE、--tracks TRACKS、无选项(运行所有适用项)。当同时设置 --platform-type 和 --tracks 时,--tracks 控制运行哪些 storyboard,--platform-type 增加一致性检查。
comply 选项:--json、--platform-type TYPE、--storyboards IDS、--tracks TRACKS、--list-platform-types、--debug、--dry-run。
Storyboard 测试:
adcp storyboard list [--platform-type TYPE] [--json] # 列出 storyboard
adcp storyboard show <id> [--json] # 显示结构与叙述
adcp storyboard run <agent> <id> [options] # 运行完整 storyboard
adcp storyboard step <agent> <id> <step_id> [options] # 运行单个步骤
步骤选项:--context JSON 或 @file.json、--request JSON 或 @file.json、--json。
传统测试运行器:
adcp test <agent> [scenario] [options]
adcp test --list-scenarios # 列出所有场景
测试选项:--json、--debug、--protocol mcp|a2a、--dry-run、--brief "text"。
注册表:
adcp registry <command> [args] [options]
包括查找(brand、brands、property、enrich-brand)、发现与验证(discover、validate、validate-publisher、lookup、check-auth)、列表与搜索(agents、search、publishers、stats)以及保存操作(save-brand、save-property,需 --auth 或 ADCP_REGISTRY_API_KEY)。
智能体管理:
adcp --save-auth prod https://prod-agent.com # 交互式设置
adcp --save-auth prod https://agent.com --auth $TOKEN # 带令牌
adcp --save-auth prod https://agent.com --no-auth # 无认证
adcp --save-auth prod https://agent.com/mcp --oauth # OAuth(仅 MCP)
adcp --list-agents
adcp --remove-agent prod
adcp --show-config
异步/webhook:
adcp https://agent.example.com create_media_buy @payload.json --auth $TOKEN --wait
adcp http://localhost:3000/mcp create_media_buy @payload.json --wait --local
--wait 启动 webhook 监听并等待异步响应;--local 使用本地 webhook(无需 ngrok,适用于 localhost 智能体);--timeout MS 设置 webhook 超时(默认 300000 毫秒 = 5 分钟)。远程 --wait 需要 ngrok(brew install ngrok)。
退出码:0 成功;1 网络或 JSON 错误;2 无效参数;3 智能体错误(认证失败、任务失败、webhook 超时)。
适用场景
- 快速体验 AdCP:使用内置 test-mcp 别名。
- 发现智能体工具:省略工具名调用。
- 测试智能体合规性:使用 adcp comply。
- 调试具体失败步骤:使用 adcp storyboard step。
- 运行特定场景:使用 adcp test(传统)。
- 查询注册表:品牌、属性、智能体、发布商。
- 比较协议:同一调用分别用 --protocol mcp 和 --protocol a2a 运行并对比结果。
- 构建智能体(服务端):参考 docs/guides/BUILD-AN-AGENT.md 和 storyboards/,协议概览见 docs/llms.txt。
限制
- 需要 Node.js 18+;若未安装 adcp,需使用 npx @adcp/sdk@latest 前缀。
- 远程 --wait 需要 ngrok。
- creative 别名不包含认证,需用户提供 --auth 或 ADCP_AUTH_TOKEN。
- 保存操作需要 --auth 或 ADCP_REGISTRY_API_KEY。
- 空结果是有效结果,不应编造数据。
- 其他未在资料中说明的功能、收费、价格、平台或效果暂未提供。