价格、延迟、SLA先谈好再开工:Bindu AI Agent协商协议逐步教程
【免费下载链接】BinduBindu: The identity, communication, and payments layer for AI agents.项目地址: https://gitcode.com/gh_mirrors/bin/Bindu
在多智能体(Multi-Agent)系统里,把任务直接甩给某个 Agent 往往踩坑:它可能接不了、跑太慢,或者收费超预算。Bindu 是 AI Agent 的身份、通信与支付层,其中的协商协议(Negotiation)让你先向多个 Agent 询价、问延迟、要评分,谈好再开工。本教程带你 4 步跑通这套流程。
一、为什么要"先谈再干"?
想象你有一群 Agent:有的擅长翻译、有的擅长 PDF 解析。任务来了,直接派单的风险有三:
| 风险 | 协商协议如何化解 |
|---|---|
| 能力不匹配 | Agent 自评技能匹配度,不接直接返回拒绝原因 |
| 延迟不达标 | 返回预计耗时latency_estimate_ms,超限自动拒单 |
| 预算超标 | 声明max_cost_amount,超预算返回cost_exceeds_budget |
核心思路:编排者(Orchestrator)广播任务 → 各 Agent 自评打分 → 编排者择优派单。完整原理见 docs/NEGOTIATION.md。
二、准备工作:给 Agent 一份"技能简历"
协商的原材料是 Agent 的Skills(技能)元数据。每个技能用一份 YAML 描述能力、标签、性能指标,例如 skill.yaml 中定义了:
tags/capabilities:关键词和能力,用于技能匹配打分performance.avg_processing_time_ms:平均处理时长,直接参与延迟评估assessment.keywords/anti_patterns:加分关键词与反模式,帮 Agent 诚实拒单
在 Agent 配置中把技能路径填进skills字段即可,加载逻辑在 bindu/utils/skills/loader.py。
三、第 1 步:发起协商请求
向每个候选 Agent 的/agent/negotiation端点发一个 POST 请求。请求体只需说明"我要干什么、预算和延迟上限是多少":
{ "task_summary": "Extract tables from PDF invoices", "input_mime_types": ["application/pdf"], "output_mime_types": ["application/json"], "max_latency_ms": 5000, "max_cost_amount": "0.001", "min_score": 0.7 }字段含义(端点实现在 negotiation.py):
task_summary:任务一句话描述(必填,最长 10000 字符)input/output_mime_types:输入输出格式约束max_latency_ms/max_cost_amount:延迟与价格上限,即"SLA 与预算"min_score:最低接受分数,低于它视为拒单weights:可选,自定义打分权重
四、第 2 步:看懂 Agent 的五维自评
收到请求后,Agent 内部由 CapabilityCalculator 完成打分,五个维度按默认权重加权:
| 维度 | 默认权重 | 说明 |
|---|---|---|
| skill_match 技能匹配 | 55% | 关键词 + 向量语义相似度 |
| io_compatibility 格式兼容 | 20% | 输入/输出 MIME 是否支持 |
| performance 性能 | 15% | 预计延迟相对你的上限线性衰减 |
| load 负载 | 5% | 当前任务队列深度 |
| cost 成本 | 5% | 定价是否落在预算内 |
还有两类"硬拒单":格式/工具不满足直接返回accepted: false;预计延迟超过上限 2 倍直接拒(latency_exceeds_constraint)。
响应长这样,重点看accepted、score和subscores:
{ "accepted": true, "score": 0.89, "latency_estimate_ms": 2000, "queue_depth": 2, "subscores": { "skill_match": 0.92, "io_compatibility": 1.0, "performance": 0.85, "load": 0.90, "cost": 1.0 } }五、第 3 步:横向比价,选出最优 Agent
编排者把各 Agent 的响应按score排序,最高分者中标。一个真实的翻译任务场景:技术翻译专家 Agent 得分 0.98(队列 2),通用翻译 Agent 得分 0.82,无专业背景的 Agent 因技能匹配度 0.65 低于阈值被过滤。
想"找最便宜的合格 Agent"也很简单:过滤出score > 0.8的响应,再取成本最低者即可。
六、谈好价格,再谈付款
协商解决"要不要干",x402 支付解决"先付钱再干"。若 Agent 开启了支付,未付费的请求会先收到402 Payment Required报价,调用方用钱包签一次授权、款项上链结算后,Agent 才真正执行任务,结果里附带支付回执。完整流程见 docs/PAYMENT.md,扩展实现位于 bindu/extensions/x402/。
💡最佳实践
- 查询多个 Agent,别只问一家
- 设置
min_score阈值,过滤低质量匹配- 按业务偏好调整
weights(重速度就调高performance)- 为拒单准备回退策略(fallback Agent)
- Agent 侧:如实声明能力,别夸大技能元数据
总结
Bindu 的协商协议把"派单"变成了"招标":
- 用 Skills 元数据 写清 Agent 能力与性能指标
- 用
/agent/negotiation声明任务、延迟、预算约束 - 读五维评分,横向比较选出最优 Agent
- 用 x402 实现"先付钱、后干活"
价格、延迟、SLA 全部前置谈定,你的多智能体编排从此少踩坑。更多完整示例可参考 examples/ 目录。
【免费下载链接】BinduBindu: The identity, communication, and payments layer for AI agents.项目地址: https://gitcode.com/gh_mirrors/bin/Bindu
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考