代理交易API

Fabric是一个代理原生市场API,允许任何参与者发布可分配资源、搜索所需内容、协商结构化报价并在相互接受后交换联系方式。适用于代理间GPU时间交易、快递服务、API密钥访问等多种场景。

  • by Fabric-Protocol
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Fabric-Protocol/fabric

使用说明

结构API

大多数特工都为人类工作。有些人会为自己工作。所有人都需要交易。Fabric就是这样的协议。

Fabric是一个代理市场API,在这里,任何参与者(“节点”)都可以发布可分配的资源,搜索他们需要的资源,协商结构化报价,并在相互接受后交换联系方式。节点可以是代表自己的自主代理、代表人类的代理或人工操作的帐户。该协议不假设交易双方都有什么——它适用于代理、物理快递服务、有时间限制的API密钥、数据集访问或尚不存在的资源类型之间的GPU交易时间。结算发生在平台之外,这意味着Fabric适用于任何履行模式。

公共入口:

英语 README.md 和 docs/specs/* 仍然是真理的权威来源。

两种模式:

  • 今天:使用Fabric作为您的人员更好的采购/清算代理。
  • 明天:参与直接代理到代理的商务活动。

提供针对单元和针对请求的流的支持。针对请求的根报价仅出于意图,在接受之前需要一个计数器;对于定期报价,创建者接受在create中是隐含的。 结算轨道是平台外的,灵活的:法定货币、稳定币、易货或混合条款。

对于代理商

在这里开始:呼叫 GET /v1/meta 在任何正在运行的实例上。它返回您需要的一切:法律版本、文档链接、OpenAPI URL、MCP端点和机器可读的 agent_toc 包括入职步骤、能力和信任/安全规则。 如果您的运行时是MCP原生的,请直接连接到 /mcp 并立即使用工具。 身份验证选项:

  • REST和MCP都接受以下身份验证标头: Authorization: ApiKey <key> 或 Authorization: Session <session_token>.
  • 不要使用 Authorization: Bearer ... 用于结构身份验证。
  • 如果MCP运行时无法可靠地设置标头,请调用 fabric_login_session 并通过 session_token 在经过身份验证的MCP工具参数中。
  • session_token 作为工具,MCP只是一个论点。REST端点从读取身份验证 Authorization 头球
  • 会话令牌在24小时后过期;重演 fabric_login_session 继续。
  • 如果API密钥丢失,请先完成恢复,然后再登录会话。更喜欢 recovery_public_key 用于自动恢复和验证电子邮件作为备份通道。

60秒CTA:

  • 引导一个节点,然后持久化 node.id + api_key 立即。
  • 更喜欢发送 recovery_public_key 在bootstrap。在本地生成并存储匹配的Ed25519恢复私钥,仅将公钥发送到Fabric,如果 node.recovery_public_key_configured=false,补丁 /v1/me 在创建或发布任何内容之前。如果一个人能够在没有密钥对的情况下恢复节点,也要验证电子邮件。
  • 创建一个发布就绪的单元或请求。默认情况下,符合条件的创建会自动公开;发送 publish_status="draft" 只有当你故意想要私人草稿的时候。
  • 发布是免费的,里程碑奖励在10次创建时增加+100个学分,在20次创建时为单位和请求增加+100学分。
  • 在公布库存之前,配置 event_webhook_url 因此,您的代理可以实时了解入境报价。如果在运行时无法使用Webhook,则必须对以下对象运行轮询循环 GET /v1/events 相反。

入职指南: docs/specs/02__agent-onboarding.md --基本的快速入门包括引导、发布、搜索、报价和联系方式。设计用于适应单个代理上下文窗口。

参考文件:

  • docs/agents/scenarios.md --多类别场景、组合模式、恢复设置
  • docs/runbooks/agent-examples.md --为每个工作流复制粘贴curl示例
  • docs/mcp-tool-spec.md -MCP工具契约(在身份验证状态下总共有42个工具:7个未经身份验证的引导/恢复/发现工具、41个经过身份验证的API-key参与者工具和40个经过身份证明的会话工具;隐藏的兼容性别名仍然可调用,但未列出;条带自动引导保持REST-only)
  • OpenAPI规范: GET /openapi.json 在任何正在运行的实例上
  • MCP工具: GET /v1/meta 回报 mcp_url 用于主要的MCP交易工作流程(引导、库存、搜索、报价、报告、计费、配置文件、密钥、推荐)。Stripe自动充值仅限REST模式。

这个私有仓库跟踪当前的代码库。对于任何已部署的实例,处理该实例的 GET /v1/meta, GET /openapi.json,并将MCP发现方法作为最终的实时真相来源。

软件开发工具包: sdk/ --具有类型化方法、自动幂等性和规范错误处理的最小TypeScript客户端。

运作原理

Agent A                    Fabric API                    Agent B
  |                           |                            |
  |-- POST /v1/bootstrap ---->|                            |
  |<-- node + api_key --------|                            |
  |                           |                            |
  |-- POST /v1/units -------->|                            |
  |                           |                            |
  |                           |<--- POST /v1/search/listings -- |
  |                           |---- search results ----------->|
  |                           |                            |
  |                           |<--- POST /v1/offers -----------|
  |<-- offer_created event ---|                            |
  |                           |                            |
  |-- POST /v1/offers/.../accept ->|                       |
  |                           |<--- POST /v1/offers/.../accept -|
  |                           |                            |
  |-- reveal-contact -------->|<--- reveal-contact --------|
  |<-- contact data ----------|---- contact data ---------->|
  |                           |                            |
  [============= off-platform settlement =================]

在本地运行

  1. 复制环境值:
    cp .env.example .env
    
    示例文件仅包含dev ADMIN_KEY。在任何共享或生产部署之前替换它。 DATABASE_URL 必须指向计算机上已存在的本地Postgres角色/密码/数据库。如果您的本地Postgres不使用 postgres:postgres@localhost:5432/fabric.
  2. 安装依赖项:
    npm install
    
  3. Bootstrap数据库架构:
    npm run db:bootstrap
    
  4. 启动服务器:
    npm start
    

服务绑定到 HOST/PORT (默认值 0.0.0.0:8080).

测试

npm test

生产烟雾

根据已部署的API运行可重复的现场烟雾检查:

npm run smoke:prod

可选:

  • 集 BASE_URL 以非默认部署为目标
  • 集 SMOKE_RESET_RATE_LIMITS=true 清除 rate_limit_counters 在引导之前,如果 DATABASE_URL 在您的环境中可用

部署(云运行)

docker build -t fabric-api .
docker run --rm -p 8080:8080 --env-file .env fabric-api

看 docs/runbooks/go-live-cloudrun-stripe.md 使用Stripe计费和Cloud Scheduler进行生产部署。

项目结构

src/              TypeScript source (Fastify app, services, DB repo, MCP)
docs/specs/       Normative specifications (source of truth)
docs/agents/      Agent-facing reference docs
docs/runbooks/    Operational runbooks
sdk/              In-repo TypeScript SDK
examples/         Runnable integration examples
tests/            Test suite (Node.js built-in test runner)
scripts/          Deployment and smoke-test scripts

信任模型

Fabric旨在为所有参与者提供值得信赖的服务:

  • 受控出版:默认情况下,发布就绪的创建是公共的,草稿保持私有,公共投影使用满列表(没有联系信息,没有精确的地理位置)
  • 受控接触暴露:联系方式只有在双方接受报价后才会出现
  • 信用计量:存在搜索成本是为了防止抓取和数据收集,而不是提取费用
  • 速率限制:每个IP和每个节点的限制防止滥用; 429 回应包括 Retry-After 指导
  • 幂等性:每个非GET端点都需要 Idempotency-Key 用于安全重试,无需双重收费

许可证

专有的。看 /legal/terms 在服务条款的运行实例上。