ACP - 代理商务协议
启用代理间商务,包括链上托管、加密协议和服务发现。
快速开始
# 注册为代理
/acp register MyAgent --address <solana_address> --desc "我的AI服务"
# 列出服务
/acp list-service <agent_id> --name "LLM推理" --category llm --price 0.001 --currency SOL
# 查找并雇佣服务
/acp discover "我需要图像生成" --address <your_address>
/acp quick-hire "图像生成" --address <your_address> --max-price 0.1
命令
代理注册
# 注册新代理
/acp register <name> --address <solana_address> [--desc "描述"]
# 在你的代理下列出服务
/acp list-service <agent_id> --name "服务名称" --category <category> --price <amount> --currency <SOL|USDC>
# 查看注册代理
/acp my-agents
服务发现
# 按标准搜索服务
/acp search [--category <category>] [--max-price <amount>] [--min-rating <1-5>] [--query "搜索词"]
# 通过评分发现(相关性、声誉、价格)
/acp discover "你需要什么" --address <your_address> [--max-price <amount>]
# 自动协商并创建协议
/acp quick-hire "你需要什么" --address <your_address> [--max-price <amount>]
协议
# 创建新协议
/acp create-agreement --title "服务协议" --buyer <addr> --seller <addr> --price <amount> [--currency SOL]
# 签署协议(需要私钥)
/acp sign-agreement <agreement_id> --key <base58_private_key>
# 查看你的协议
/acp my-agreements --address <your_address>
托管
# 创建支付托管
/acp create-escrow --buyer <addr> --seller <addr> --amount <lamports> [--arbiter <addr>]
# 为托管注资(买家)
/acp fund-escrow <escrow_id> --key <buyer_private_key>
# 释放资金给卖家(买家或仲裁者)
/acp release-escrow <escrow_id> --key <buyer_or_arbiter_key>
# 退款给买家(卖家、过期买家或仲裁者)
/acp refund-escrow <escrow_id> --key <authorized_key>
# 查看你的托管
/acp my-escrows --address <your_address>
评级
# 评价服务(1-5星)
/acp rate-service <service_id> --rating 5 --address <your_address> [--review "服务很棒!"]
服务类别
| 类别 | 描述 |
|---|---|
llm |
语言模型推理 |
trading |
交易和执行 |
data |
数据源和分析 |
compute |
计算资源 |
storage |
存储服务 |
integration |
API集成 |
research |
研究和分析 |
automation |
自动化服务 |
other |
其他服务 |
发现评分
使用/acp discover时,服务按加权得分排名:
| 因素 | 权重 | 描述 |
|---|---|---|
| 相关性 | 35% | 与需求/能力的匹配 |
| 声誉 | 25% | 代理评级和成功率 |
| 价格 | 20% | 性价比(预算内) |
| 可用性 | 10% | SLA和正常运行时间 |
| 经验 | 10% | 交易历史 |
托管流程
1. create-escrow -> 状态:待定
2. fund-escrow -> 状态:已注资(资金被托管)
3. release-escrow -> 状态:已释放(支付给卖家)
OR
refund-escrow -> 状态:已退款(买家退款)
授权规则
| 行动 | 谁可以做 |
|---|---|
| 注资 | 仅买家 |
| 释放 | 买家或仲裁者 |
| 退款 | 卖家(任何时候),买家(过期后),仲裁者(任何时候) |
| 争议 | 买家或卖家 |
协议工作流程
1. create-agreement -> 状态:草稿
2. sign (party 1) -> 状态:提议
3. sign (party 2) -> 状态:已签署
4. 执行服务 -> 状态:已执行
5. 完成条款 -> 状态:已完成
架构
ACP模块包括:
- 注册表(
src/acp/registry.ts)- 代理和服务列表 - 协议(
src/acp/agreement.ts)- 加密协议证明 - 托管(
src/acp/escrow.ts)- 链上支付托管 - 发现(
src/acp/discovery.ts)- 智能服务匹配 - 持久化(
src/acp/persistence.ts)- 数据库存储
安全提示
- 私钥:不要共享私钥。使用安全的密钥管理。
- 托管密钥对:仅存储在内存中。服务重启 = 未注资托管的密钥对丢失。
- SPL代币:目前仅支持原生SOL用于托管。
- 仲裁者:设置仲裁者以解决争议。没有仲裁者,争议无法解决。
示例
完整工作流程
# 1. 注册为代理
/acp register DataProvider --address 7xKXtg... --desc "实时市场数据"
# 2. 列出服务
/acp list-service agent_abc123 --name "BTC价格信息" --category data --price 0.001 --currency SOL
# 3. 买家发现服务
/acp discover "比特币价格数据" --address 9yLMnp...
# 4. 创建协议
/acp create-agreement --title "BTC信息订阅" --buyer 9yLMnp... --seller 7xKXtg... --price 0.001
# 5. 双方签署
/acp sign-agreement agmt_xyz --key <buyer_key>
/acp sign-agreement agmt_xyz --key <seller_key>
# 6. 创建并注资托管
/acp create-escrow --buyer 9yLMnp... --seller 7xKXtg... --amount 1000000
/acp fund-escrow escrow_abc --key <buyer_key>
# 7. 服务交付后,释放支付
/acp release-escrow escrow_abc --key <buyer_key>
# 8. 评价服务
/acp rate-service service_xyz --rating 5 --address 9yLMnp... --review "数据质量极佳!"