内容
# AgentCourt
**智能代理商业中的评估层**
ERC-8183 定义了一种“评估者”——一种证明工作是否正确完成的实体,从而触发支付释放或退款。AgentCourt 就是这一层:基于策略、确定性、开源。
提交证据。应用政策规则。在 500 毫秒内获得确定性裁决。无需托管,无需法庭戏剧。
[](https://github.com/vbkotecha/agentcourt-api/stargazers)
[](https://opensource.org/licenses/MIT)
[](https://github.com/vbkotecha/agentcourt-api/releases)
[](https://agentcourt-api-production.up.railway.app/v1/policies)
[](https://agentcourt-api-production.up.railway.app/v1/policies)
[](https://agentcourt-api-production.up.railway.app/docs)
[](https://github.com/x402-foundation/x402)
[](https://github.com/vbkotecha/agentcourt-api/tree/main/mcp-server)
[](https://github.com/vbkotecha/agentcourt-api/tree/main/tests)
[](https://agentcourt-api-production.up.railway.app/health)
[](https://github.com/vbkotecha/agentcourt-api/commits)
[](https://github.com/vbkotecha/agentcourt-api/commits)
[](https://github.com/vbkotecha/agentcourt-api/blob/main/CONTRIBUTING.md)
[](https://github.com/vbkotecha/agentcourt-api/discussions)
> **在线 API**:[agentcourt-api-production.up.railway.app/docs](https://agentcourt-api-production.up.railway.app/docs)
> **主页**:[vbkotecha.github.io/agentcourt-api](https://vbkotecha.github.io/agentcourt-api/)
> **教程**:[提交你的第一个纠纷](https://github.com/vbkotecha/agentcourt-api/discussions/2)
> **集成示例**:[LangChain, CrewAI, Node.js](https://github.com/vbkotecha/agentcourt-api/tree/main/examples)
> **架构**:[设计文档](https://github.com/vbkotecha/agentcourt-api/blob/main/docs/architecture.md)
> **比较**:[AgentCourt vs Arbitova](https://github.com/vbkotecha/agentcourt-api/blob/main/docs/comparison.md)
> **API 示例**:[所有 7 个政策](https://github.com/vbkotecha/agentcourt-api/blob/main/docs/API_EXAMPLES.md)
> **快速演示**:`python3 demo.py` (无需安装)
> **ElizaOS 插件**:`npm install @agentcourt/elizaos-plugin`
> **集成指南**:[所有 7 个路径的代码示例](https://github.com/vbkotecha/agentcourt-api/blob/main/docs/INTEGRATION_GUIDE.md)
> **Python SDK**:`pip install agentcourt` | **JS SDK**:`npm install @agentcourt/sdk`
## 为什么是 AgentCourt?
智能代理商业堆栈有三个层:
1. **传输** — A2A,MCP(代理如何通信)
2. **支付** — x402,AP2,Visa Intelligent Commerce(代理如何支付)
3. **纠纷** — **AgentCourt**(出现问题时发生的情况)
当代理出错、产生幻觉、违反 SLA 或交付部分工作时,谁来解决?现有的信用卡网络纠纷流程并不是为代理发起的交易设计的。AgentCourt 是专门为此而构建的。
## 在线 API
**基准 URL:** `https://agentcourt-api-production.up.railway.app`
**文档:** `https://agentcourt-api-production.up.railway.app/docs`
## 快速入门
```python
from agentcourt import AgentCourt
court = AgentCourt()
ruling = court.dispute(
claimant="ClientCorp",
respondent="DevStudio",
contract={
"obligations": ["Build mobile app"],
"deadlines": ["2026-07-01T23:59:00Z"],
"deliverables": ["iOS app", "Android app"],
},
claim="Developer never delivered the app",
desired_remedy="Full refund of deposit",
policy="freelance-delivery",
evidence=[
{
"type": "contract",
"source": "ClientCorp",
"timestamp": "2026-06-01T10:00:00Z",
"claimed_fact": "Signed contract, no deliverable received",
"reliability": "high",
}
],
)
print(ruling.confidence) # high
print(ruling.remedy) # full_refund
print(ruling.ruling) # The respondent failed to deliver...
```
## API 端点
| 方法 | 路径 | 描述 |
|--------|------|-------------|
| `POST` | `/v1/disputes` | 提交纠纷,获取裁决 |
| `GET` | `/v1/cases` | 列出所有案件 |
| `GET` | `/v1/cases/{id}` | 获取特定案件 |
| `GET` | `/v1/policies` | 列出所有政策模板 |
| `GET` | `/v1/policies/{name}` | 获取政策详情(规则,阈值) |
| `POST` | `/v1/policies/{name}/preview` | 预览政策将如何裁决 |
| `GET` | `/v1/verdicts` | 列出最近的裁决 |
| `GET` | `/.well-known/agent.json` | 代理卡(A2A 协议) |
| `GET` | `/schema.json` | 用于纠纷验证的 JSON 模式 |
| `GET` | `/health` | 健康检查(版本,政策,状态) |
| `GET` | `/docs` | 交互式 API 文档(Swagger UI) |
## 政策模板(共 7 个,39 条规则)
| 政策 | 规则 | 用例 |
|--------|-------|----------|
| `freelance-delivery` | 6 | 未交付、延迟交付、部分交付 |
| `milestone-payment` | 5 | 未支付的里程碑、逾期付款、不完整的工作 |
| `bug-bounty` | 5 | 可重复性、严重性阈值、披露合规性 |
| `sla-monitoring` | 5 | 宕机违规、延迟违规、部分降级 |
| `api-quality` | 7 | 模式不匹配、空响应、错误类型、过时数据 |
| `physical-commerce` | 6 | 未交付、错误物品、损坏、退货 |
| `scope-dispute` | 5 | 代理任务超出、预算超出、模糊范围 |
## 它是如何工作的
1. **提交证据** — 合同、提交记录、日志、截图、支付记录
2. **证据评分** — 每个项目按类型、可靠性、最近性和哈希验证加权
3. **事实提取** — 从证据和元数据中导出结构化事实
4. **政策匹配** — 事实根据政策规则(确定性)进行评估
5. **置信度区间** — 根据证据质量和事实完整性分为高/中/低
6. **生成裁决** — 带有补救措施、完整审计轨迹和可解释推理
## 关键设计决策
- **无需托管** — 裁决通过声誉和执法创建后果,而不是托管
- **确定性** — 相同的证据 + 政策始终产生相同的裁决
- **可解释** — 每个裁决显示哪条规则匹配、哪些事实成立以及证据分数
- **政策优先** — 预先定义规则,而不是逐案处理
- **API 优先** — REST + SDK,几分钟内集成
## SDK
### Python(零依赖)
复制 [`sdk/agentcourt_python_sdk.py`](sdk/agentcourt_python_sdk.py) — 标准库,仅需 Python,无需 pip 安装。
### JavaScript/TypeScript
复制 [`sdk/agentcourt.js`](sdk/agentcourt.js) — 零依赖,在 Node 18+ 和浏览器中工作。
TypeScript 声明在 [`sdk/agentcourt.d.ts`](sdk/agentcourt.d.ts) 中。
### Postman
导入 [`postman_collection.json`](postman_collection.json) — 9 个可直接运行的请求,适用于所有 5 种纠纷类型。
## MCP 服务器
AgentCourt 附带与 Claude Desktop、Cursor 和 Claude Code 兼容的 MCP 工具定义。参见 [`src/mcp_server_config.py`](src/mcp_server_config.py)。
**3 个 MCP 工具:**
- `agentcourt_resolve_dispute` — 提交纠纷,获取裁决
- `agentcourt_list_policies` — 查看可用的政策模板
- `agentcourt_get_verdict` — 通过案件 ID 检索过去的裁决
## x402 支付
AgentCourt 是 x402 原生的。 [`x402_middleware.py`](src/x402_middleware.py) 模块启用每调用支付:
- **$0.05/dispute** 通过 Base 上的 USDC
- OpenAPI `x-payment-info` 注释用于 AgentCash 发现
- `/.well-known/x402` 发现文档用于 x402scan 索引
- 具有重放保护的 PaymentVerifier
**已在 x402scan 上索引** — 通过 OpenAPI 规范发现 16 个端点。
## 统计数据
- **7 个政策模板**,**39 条规则**,涵盖 7 个纠纷领域
- **39/39 测试通过** (17 个引擎 + 11 个 ADRP 适配器 + 11 个 x402 中间件)
- **在 x402scan 上实时运行**,具有 16 个可发现的端点
- **与 ADRP 兼容** (IETF 草案-stone-adrp-00)
## 架构
```
├── src/
│ ├── main.py # FastAPI 应用,带有 REST 端点
│ ├── x402_middleware.py # x402 支付层($0.05 USDC/dispute)
│ ├── mcp_server_config.py # MCP 工具定义(Claude, Cursor, Claude Code)
│ ├── engine/
│ │ └── policy_engine.py # 确定性规则评估引擎
│ └── policies/
│ ├── freelance-delivery.json
│ ├── milestone-payment.json
│ ├── bug-bounty.json
│ ├── sla-monitoring.json
│ ├── api-quality.json
│ ├── physical-commerce.json
│ └── scope-dispute.json
├── sdk/
│ ├── agentcourt_python_sdk.py # Python SDK(零依赖,数据类)
│ ├── agentcourt.js # JavaScript SDK(ESM + CommonJS)
│ └── agentcourt.d.ts # TypeScript 声明
├── tests/ # 39/39 测试(引擎 + ADRP + x402)
├── content/ # 博客文章、提案、竞争分析
├── postman_collection.json # 9 个可直接运行的 Postman 请求
└── Dockerfile # 生产部署
```
## AgentCourt 存在的原因
代理经济正在迅速建立支付轨道:
- **x402** (Coinbase)— 代理之间支付协议,使用 Base 上的 USDC。无纠纷机制。
- **ERC-8183** (以太坊草案,2026 年 2 月)— 代理交易的条件支付和托管。明确指出:*“核心规范中没有纠纷解决。”*
- **AP2** (谷歌)— 代理支付协议。移动资金,不解决分歧。
- **ClawBank + Shodai** — 以太坊上的第一个 AI-to-AI 里卡多合同。里程碑逻辑已上线。无仲裁层。
所有主要协议都处理支付、托管和执行。它们都不处理**两个代理发生分歧时**的情况。
AgentCourt 是缺失的一层。提交证据,应用政策规则,获得具有约束力的裁决。
**与任何商业协议配合使用** — x402、ERC-8183、AP2 或自定义协议。AgentCourt 不持有资金。它仲裁结果。
## 我们有何不同
| | AgentCourt | Tribunal | ADRP (SwarmSync) | Arbitova |
|---|---|---|---|---|
| **类型** | API 产品 | 链上法院 | 协议规范(IETF 草案) | 托管 + 仲裁 |
| **模型** | 独立判断层 | 多代理审判(律师、书记员、法官) | 线路协议 + 状态机 | 托管 + 捆绑仲裁 |
| **确定性** | 政策规则 — 相同证据 = 相同裁决 | iNFT 法官陪审团 — 主观 | 加密(确定性)+ 语义(仲裁) | AI 仲裁者 — 主观 |
| **延迟** | <500ms 每裁决 | 完整审判过程(分钟/小时) | 协议定义 | 未知 |
| **托管** | 从不。非托管。 | 通过智能合约托管 | 托管指令输出用于轨道 | 持有资金托管 |
| **基础设施** | 无状态 API,零依赖 | P2P(Gensyn AXL),0G 链,iNFTs | 协议 — 自带基础设施 | 他们的托管合约 |
| **集成** | REST + SDK + MCP。适用于任何平台 | 部署他们的法院合约 | 实现协议 | 使用他们的托管合约 |
| **锁定** | 无。自带托管、市场、支付轨道 | 必须部署在 0G 链上 | 协议定义 | 必须使用他们的托管合约 |
AgentCourt 不是托管公司。我们不与支付协议竞争。我们是任何支付协议都可以调用的判断层。
**ADRP(IETF 草案-stone-adrp-00)说明:** ADRP 定义了代理纠纷解决的线路协议。AgentCourt 的引擎可以作为 ADRP 语义类纠纷解决的后端实现 — 我们生成 ADRP 状态机所需的 `RulingBundle`。这是一种补充,而不是竞争。
## 定价
**设计合作伙伴计划(现在):** 免费前 5 个合作伙伴。完全的 API 访问权限。包含自定义政策模板。
**生产(发布后):** 每纠纷定价。无交易费用。无托管费用。无平台费用。您仅在需要裁决时支付。
## 自主托管
```bash
docker-compose up
# API 可在 http://localhost:8000 访问
# 文档可在 http://localhost:8000/docs 访问
```
或直接运行:
```bash
pip install fastapi uvicorn pydantic
python3 -m uvicorn src.main:app --reload
```
## FAQ
<details>
<summary><b>为什么不使用 LLM 来解决纠纷?</b></summary>
LLM 是非确定性的 — 相同的纠纷可能会根据温度、上下文窗口或模型版本产生不同的裁决。对于金融决策,这是不可接受的。AgentCourt 使用确定性规则:相同的输入 → 相同的输出,每次都一样。我们可能会在未来为边缘情况添加基于 LLM 的上诉层。
</details>
<details>
<summary><b>如果 7 个政策都不适合我的用例怎么办?</b></summary>
您可以 [贡献新的政策模板](CONTRIBUTING_POLICY.md) 通过 PR。政策是 JSON 文件,包含条件、裁决、置信度分数和推理字符串。社区可以审查和批准新的模板。
</details>
<details>
<summary><b> API 真的免费吗?</b></summary>
是的 — 100 个纠纷/月,无需身份验证。超出此限制,$0.05/dispute 通过 x402(Base 上的 USDC)。免费层涵盖大多数开发和测试需求。
</details>
<details>
<summary><b> 你们存储纠纷数据吗?</b></summary>
AgentCourt 是 **无状态的**。每个请求都独立评估。我们不会在请求之间持久化纠纷数据。裁决会在响应体中返回 — 如果您需要保留它们,请在您的端点存储响应。
</details>
<details>
<summary><b> 它与仲裁有什么不同?</b></summary>
传统仲裁涉及人类审议、缓慢(天/周)和昂贵。AgentCourt 提供即时、确定性的裁决,基于结构化元数据。它旨在用于高容量、低价值的代理交易,其中人类仲裁在经济上不可行。
</details>
<details>
<summary><b> 我可以自行托管吗?</b></summary>
是的。克隆存储库、安装依赖并使用 `uvicorn src.main:app` 运行。包括 Docker 和 Docker Compose 配置。参见下面的 **自行托管** 部分。
</details>
## 许可证
MIT