Passer au contenu principal
L

agent-native-trade (dsh-plugin)

liwuzhan/agent-native-trade/packages/dsh-plugin

Adds catalog discovery, counterparty contact, deal signing, settlement coordination, human-task handoff, and signed receipt tools for agent-native trade.

Installer

dsh plugin --profile web add github:liwuzhan/agent-native-trade

Ce plugin se trouve dans le sous-répertoire packages/dsh-plugin du dépôt.

README

Agent Native Trade

让机器自己找到它需要的东西。

不只生成代码,也不只替人点击网页。让模型发现需求、寻找交易方、协商条件、签署合同,并推动现实世界完成履约。

一台拖拉机到了保养周期,可以自己检索附近服务商并预约维护;一家下游工厂发现螺丝库存不足,可以直接向上游工厂获取目录、询价和下单;一台设备发现零件损坏,可以描述故障、寻找替换件,并把付款、取货或安装交给具备相应权限的人类或服务商。

语言模型的能力不应该被关在代码编辑器和聊天框里。它们已经能够理解需求、调用工具、持续协商和组织工作;真正缺少的,是一套以模型为主体、对模型开放、任何人都能实现和接入的交易基础设施

Agent Native Trade 为此提供开放协议与参考实现:商品目录可以分布式发布,索引站只负责发现,交易双方通过邮件等开放通道直接联系;合同、履约事件与评价以可签名对象流转;支付、物流、担保和人工动作由交易双方根据自己拥有的资源协商完成。

我们想做的不是另一个中心化商城,而是机器经济开始交易时,可以共同使用的 HTTP、SMTP 与 BitTorrent。

以模型为主体的开放交易闭环协议 · 参考实现(Apache-2.0)。

入口文档

本仓库权威源protocol/test-vectors/。任何实现通过测试向量互验即为合规实现。

当前已经跑通

项目已经不只是协议和 Schema:参考实现现可完成目录发布/索引、模型检索、邮件首触、事件驱动收件、按需读取与回复、合同双签、履约事件和评价回执。

Publisher / Integrator → Catalog + contact_refs → Indexer → Buyer
                                                        │
Buyer / Seller ← DSH contact bridge ← WakeTask queue ← trade-inboxd ← Email
      │
      └→ DEAL 双签 → Settlement / HumanTask → TRADE_RECEIPT → Indexer

这里保持三个边界:协议对象不依赖客户端;trade-inboxd 负责长连接和可靠入队;DSH 只在需要时读取正文、回复并确认 WakeTask。邮件正文和附件始终是不可信数据。

公共演示索引站

  • deepcrop.site — 当前互操作测试使用的社区公共索引站。

该站点是可选发现入口,不是协议权威或运行依赖,也不承诺生产级 SLA。模型和客户端仍需验证目录、合同与回执的签名,并按自己的信任策略决定是否采纳索引结果;任何实现都可以运行自己的索引站。

如果你是接入模型:先读 AGENT_SETUP.md,自行检查环境并完成能自动完成的步骤。只有邮箱账号、API Key、外部授权或现实动作确实缺失时才引导人类;不要把命令清单原样转交给人类。

协议向量快速校验

node tools/generate-test-vectors.mjs     # 生成/再生成测试向量
node tools/verify-test-vectors.mjs       # 用 node:crypto 验证全部向量
bash tools/verify-vectors-openssl.sh     # 用 OpenSSL 交叉验签(第二实现)

模块状态(2026-08-24)

模块状态测试
M0 protocol(schemas + test-vectors)三实现互验(node:crypto / OpenSSL / PyNaCl)
M1 identity18/18
M2 signed-files25/25
M3 local-store20/20(含 TOFU 公钥信任环:.data/peers/
M4 bt-catalog21/21(DHT 验收为手动脚本)
M5 email47 单元 + GreenMail 集成(CI)
M6 settlement12/12
M7 human-task23/23
M8 demo-indexer30/30
M9 mcp-server28/28(含 stdio 冒烟 + 12 红线)
M10 DSH 集成28/28 单测 + 最小链路 9 步演示 + contact bridge 6 步演示 + 双 preset 挂载校验 + 会话内往返
M11 棉花娃娃端到端106 断言全绿(run-demo.sh)
Contact core✅ 首批实现10/10(联系解析 + WakeTask + 文件队列)
AgentMail contact adapter✅ 首批实现7/7(REST + 响应限额 + WebSocket 兼容包络)
trade-inboxd✅ 首批实现5/5(事件队列 + 可选本地命令触发)
DSH contact bridge✅ 首批实现5 新工具(wake list/ack + message get/reply/send,共 23 工具)+ 6 步演示 16 断言

M10 快速开始(DSH 标准 bundle)

普通用户不需要克隆或构建整个仓库。把预构建 bundle 安装进正在使用的 profile:

dsh plugin --profile web add \
  https://github.com/liwuzhan/agent-native-trade/releases/latest/download/agent-trade-dsh-plugin.tgz
dsh --profile web --dump-config

安装包声明 dsh.bundle,内含预构建 daemon、23 个交易/联系工具和一个紧凑的交易工作流 skill;不需要仓库路径、AGENT_TRADE_REPO、编译器或安装期构建授权。默认 provider maildrop 是无外网依赖的本地回环。接真实邮箱时设置 AGENT_TRADE_CONTACT_PROVIDER=agentmailAGENTMAIL_API_KEYAGENT_TRADE_CONTACT_INBOX_ID

需要开发或验证旧 buyer/seller preset 时,再从源码执行:

bash integrations/deepseek-harness/install-presets.sh
node integrations/deepseek-harness/examples/setup-catalog.mjs
bash integrations/deepseek-harness/examples/run-demo.sh
bash integrations/deepseek-harness/examples/run-contact-demo.sh
export AGENT_TRADE_REPO="$(pwd)"

contact bridge 的长连接与 WakeTask 生成仍由 trade-inboxd 负责;DSH 会话按需取信、回复并确认任务。当前完成的是会话内 pull bridge;trade-inboxd 主动启动或恢复 DSH 会话仍登记在 FUTURE.md

结算能力边界

DEAL.settlement 允许双方约定任意资产与结算方式;参考实现不托管资金。没有模型钱包时,模型仍应继续发现、联系、议价和签约,再选择人工转账、商家内嵌支付、担保或其他双方可执行的方式。当前适配器只实现测试券和人工付款。

V0.2 状态机采用付款后履约顺序,因此货到付款、账期和分阶段付款尚不能跑完整参考状态链。模型不得伪造 PAYMENT_CONFIRMED;该缺口已登记在 FUTURE.md

接口探测记录:integrations/deepseek-harness/INSPECTION.md(运行时验证过的 Cordis API)。

模块卡片见 docs/module-cards/

模板站(2026-08-23)

apps/station/:单工件三角色(indexer / publisher / integrator),配置即角色。首次完整通告即可用公钥自举并建立轻量索引,不复制发布者私钥,也不要求索引站镜像完整目录;整包 PUT 仅是可选缓存。当前 Station 48 测试,含互演 demo(examples/station-demo.sh)和 DSH SKILL 示例。

可直接部署的双站模板见 deploy/station/:同一个 Docker 镜像启动 publisher + indexer,默认只绑定本机端口,适合先接反向代理/隧道再开放。

真实公网 + 双 NAT 电脑的首轮互操作测试见 docs/distributed-pilot-test-plan-v0.1.md:先用轻量索引与可选 HTTP 镜像跑通确定性闭环,再单独测 BT / 公网整合商的目录交付能力。

事件驱动联系运行时

packages/contact-core/adapters/contact-agentmail/apps/trade-inboxd/ 已实现邮件到 WakeTask 的最小链路。正常收件由 WebSocket 事件触发,没有固定十秒轮询;只有断线重连使用有界指数退避。默认模式只写入本地可靠队列,是否自动回复、调用本地模型、转交另一运行时或等待人工确认,由本机策略决定。

npm --prefix packages/contact-core install && npm --prefix packages/contact-core run build
npm --prefix adapters/contact-agentmail install && npm --prefix adapters/contact-agentmail run build
npm --prefix apps/trade-inboxd install && npm --prefix apps/trade-inboxd run build
mkdir -p "$HOME/.agent-trade"
cp apps/trade-inboxd/examples/agentmail.json "$HOME/.agent-trade/inboxd.json"
export AGENTMAIL_API_KEY='your inbox-scoped key'
node apps/trade-inboxd/dist/cli.js doctor --config "$HOME/.agent-trade/inboxd.json"
node apps/trade-inboxd/dist/cli.js run --config "$HOME/.agent-trade/inboxd.json"

把配置中的 inboxId 改成真实 inbox,并把 dataDir 改成 contact;由于配置文件位于 $HOME/.agent-trade/,它会与 DSH 默认的 $HOME/.agent-trade/contact 队列对齐。生产路径为 AgentMail WebSocket → trade-inboxd → WakeTask 队列 → runtime bridge;本地演示用 maildrop + inboxd-sim 生成相同文件格式,不依赖外网。完整的模型接入步骤见 AGENT_SETUP.md,明确推迟项见 FUTURE.md

Plugins associés