Install
openclaw skills install @thcjp/contract-agent-freeopenclaw skills install @thcjp/contract-agent-freeAI Agent越来越多地参与到真实商业交易中——一个Agent调用另一个Agent的API、一个Agent采购另一个Agent的数据集、多个Agent协作完成项目并按里程碑分账。但Agent之间的交易长期缺乏"信任基础设施":要么依赖人工合同(违背自动化初衷)、要么完全无保障(一方违约另一方无从追责)。
合约Agent正是为Agent之间的商业交易提供法律与金融层。它让两个Agent在数秒内完成合约签署、按里程碑触发付款、产生纠纷时有标准化处理流程,全程无需人类介入。
本免费版支持单组织内的Agent合约协作,足以覆盖小型项目的合约需求。如需多方合约、跨组织协作、企业级纠纷仲裁等高级能力,可升级至专业版。
每个Agent注册时生成RSA 2048位密钥对,公钥作为身份标识,私钥用于签名:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 合约Agent免费版处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
// 注册Agent身份
const provider = await sdk.identity.registerAgent(
'数据提供者',
['data-processing', 'analytics']
);
// ...
// 输出:identity_id, public_key, private_key(私钥需安全存储)
签名验证基于公钥密码学,确保合约签署方身份真实、签署内容不可篡改。
输入: 用户提供能力1:Agent身份与数字签名所需的指令和必要参数。 处理: 解析能力1:Agent身份与数字签名的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力1:Agent身份与数字签名的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作完整覆盖合约从草稿到完成的五个阶段:
| 阶段 | 状态 | 触发动作 |
|---|---|---|
| 草稿 | draft | 任一方创建合约 |
| 待签 | pending | 草稿提交至对方 |
| 已签 | signed | 双方完成数字签名 |
| 生效 | active | 双方签署后自动激活 |
| 完成 | completed | 所有里程碑交付 |
输入: 用户提供能力2:合约生命周期管理所需的指令和必要参数。 处理: 解析能力2:合约生命周期管理的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力2:合约生命周期管理的响应数据,包含状态码、结果和日志。
合约按里程碑拆分,每个里程碑有独立交付物与验收标准:
const contract = await sdk.contracts.create({
title: '数据处理服务',
parties: { provider: agentA, consumer: agentB },
payment: {
amount: 5000,
currency: 'USD',
structure: 'milestone'
},
milestones: [
{ id: 1, name: '数据采集', amount: 1000, deliverable: 'raw_data.csv' },
{ id: 2, name: '清洗加工', amount: 2000, deliverable: 'clean_data.csv' },
{ id: 3, name: '分析报告', amount: 2000, deliverable: 'report.pdf' }
]
});
输入: 用户提供能力3:里程碑式执行所需的指令和必要参数。 处理: 解析能力3:里程碑式执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力3:里程碑式执行的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作付款方将资金存入托管账户,按里程碑自动释放:
输入: 用户提供能力4:托管账户资金管理所需的指令和必要参数。 处理: 解析能力4:托管账户资金管理的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力4:托管账户资金管理的响应数据,包含状态码、结果和日志。
任一方可提出纠纷,提交加密哈希后的证据:
await sdk.disputes.raise({
contractId: 'contract_xxx',
raisedBy: 'agentB',
reason: 'milestone_2_deliverable_incomplete',
evidence: [
{ type: 'log', hash: 'sha256:abc...' },
{ type: 'screenshot', hash: 'sha256:def...' }
]
});
输入: 用户提供能力5:结构化纠纷处理所需的指令和必要参数。 处理: 解析能力5:结构化纠纷处理的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力5:结构化纠纷处理的响应数据,包含状态码、结果和日志。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:自主协商、执行商业合约、提供身份认证与里、程碑式托管支付、是一套面向、之间商业协作的智、能合约工具、能够自主完成合约、数字签署、里程碑执行与资金、托管释放全流程、之间的商业交易提、供法律与金融基础、核心能力、身份系统与数字签、模板化合约创建、完成全生命周期、里程碑式资金托管、与自动释放、结构化纠纷提出与、证据提交等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
input_params参数,支持创建/查询/导出操作Agent A提供翻译API,Agent B按调用量付费。使用合约Agent:
三个Agent协作完成数据分析项目:
Agent A出售行业数据集给Agent B:
平台方发布任务,多个Agent竞标:
Agent A为Agent B提供长期监控服务:
以下场景合约Agent免费版不适合处理:
需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于非本工具能力范围的需求。
# 依赖说明
npm install contract-agent
# ...
# 2. 初始化SDK
contract-agent init --storage sqlite
# ...
# 3. 注册第一个Agent
contract-agent agent register \
--name "我的服务Agent" \
--capabilities "data-processing"
# ...
# 4. 创建第一份合约
contract-agent contract create \
--provider agent_xxx \
--consumer agent_yyy \
--title "数据处理服务协议" \
--amount 1000 \
--with-escrow
# ...
# 5. 查看合约看板
contract-agent dashboard --agent agent_xxx
import ContractAgent from 'contract-agent';
// ...
const sdk = new ContractAgent({ storage: 'sqlite' });
// ...
async function main() {
// 注册双方
const provider = await sdk.identity.registerAgent('提供方', ['data-processing']);
const consumer = await sdk.identity.registerAgent('消费方', ['analytics']);
// ...
// 创建带托管的合约
const result = await sdk.createContractWithEscrow(
provider.data.identity,
consumer.data.identity,
{
title: '数据处理服务',
service: { type: 'data-processing', specification: 'CSV清洗' },
payment: { amount: 1000, currency: 'USD', structure: 'milestone' },
timeline: { duration: 30 }
}
);
// ...
console.log('合约已创建:', result.contractId);
}
// ...
main();
storage:
backend: sqlite
path: ./data/contracts.db
const template = {
title: 'API服务协议',
parties: {
provider: { id: 'agent_api_seller', capabilities: ['api-service'] },
consumer: { id: 'agent_api_buyer', capabilities: ['api-call'] }
},
service: {
type: 'api-service',
specification: 'REST API, 1000 calls/month',
sla: '99.5% uptime'
},
payment: {
amount: 200,
currency: 'USD',
structure: 'monthly',
method: 'escrow'
},
timeline: {
duration: 365, // 天
renewal: 'auto'
},
milestones: [
{ name: '首月服务', amount: 200, deliverable: 'usage_report' }
],
dispute_resolution: {
arbitrator: 'human',
timeout_days: 7
}
};
await sdk.disputes.submitEvidence({
disputeId: 'dispute_xxx',
submittedBy: 'agent_consumer',
evidence: [
{
type: 'api_log',
content: JSON.stringify({ calls: 800, errors: 50 }),
hash: 'sha256:abc123...'
},
{
type: 'screenshot',
content: 'base64:iVBOR...',
hash: 'sha256:def456...'
}
]
});
私钥是Agent身份的根本,泄露即等于身份被盗。建议:
合约条款尽量用结构化字段而非自然语言:
sla: '99.5%' 而非"高可用"delivery_format: 'csv' 而非"标准格式"penalty_per_day: 50 而非"逾期罚款"单个里程碑金额建议不超过合约总价的30%。里程碑拆细的好处:
任何合约上线前,先在staging环境跑完整流程(创建-签署-执行-纠纷),确保逻辑无bug后再切到生产。
每季度审计一次在执行的合约:
A:本免费版单组织内支持最多10个Agent身份注册,足以覆盖小型项目协作。
A:免费版默认使用SQLite本地存储,存储于 ./data/contracts.db。
A:任一方提交纠纷与证据,进入7天冷却期。冷却期内双方协商解决;逾期未解决需人工介入。
A:免费版仅支持模拟托管账户。如需对接真实支付网关(Stripe/支付宝),需升级至专业版。
A:根据《电子签名法》与多国电子签名法规,符合技术标准的数字签名具有法律效力。本工具使用RSA 2048位签名,满足技术要求。但具体法律效力还需结合合约条款与司法管辖区判断。
| 错误场景(现象) | 可能原因 | 排查步骤 | 处理方式 |
|---|---|---|---|
| Agent注册失败 | 密钥已存在 | 检查 ./data/keys/ 目录 | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 合约创建失败 | 双方未注册 | 确认 provider/consumer ID | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 签名验证失败 | 私钥不匹配 | 检查私钥文件路径 | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 资金释放失败 | 里程碑未验收 | 检查 deliverable 是否已上传 | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 纠纷提交失败 | 证据哈希错误 | 重新计算 SHA-256 哈希 | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 数据库锁死 | 并发写入冲突 | 重启服务,检查SQLite锁 | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 依赖项 | 类型 | 是否必需 | 获取方式 | 版本要求 |
|---|---|---|---|---|
| Node.js | 运行时 | 必需 | 官方下载 | 18+ |
| npm | 包管理 | 必需 | 随Node.js安装 | 9+ |
| SQLite | 数据库 | 必需 | 随SDK自带 | 3.x |
| crypto | 加密库 | 必需 | Node.js内置 | - |
| LLM API | API | 必需 | 由Agent平台内置LLM提供 | 不限 |
./data/keys/ 目录(需自行加密保护)本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:contract-agent-pro
{
"success": true,
"data": {
"result": "合约Agent免费版处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "contract agent"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}