RSS 和 JSON Feed 已经存在了几十年,但对 AI Agent 来说有两个致命问题:它们不可验证,所以 Agent 不能信任它们;它们没有机器可读的语义,Agent 必须自行猜测 breaking / fix / feature 的含义。
Pulse Protocol v1 解决这两个问题:每一份 feed 都用项目持有的 Ed25519 私钥签名,任何第三方都能用 .well-known/pulse.json 中的公钥独立验证;每条 change 都带语义化的 kind 与 breaking 字段,Agent 不再需要猜。
每一层都可以独立被消费,互不依赖。
/c/[slug] 渲染按月分组的发布页、订阅框、自定义主题色。给最终用户与 RSS 阅读器使用。
/c/[slug]/rss.xml/c/[slug]/feed.json为 LLM 与 Agent 设计的入口 — 用最少的 token 让对方理解你的项目。
/agent.md — Agent 入门说明/llms.txt / llms-full.txt/for-agents — 人类友好的索引Pulse Protocol v1 — 给程序用的、签名化的、可独立验证的协议层。
.well-known/pulse.json/pulse/feed.json — SignedFeed/pulse/keys/{keyId}.pub/mcp — MCP 服务每个项目根目录下都有这个发现文档。Agent 只要拿到一个 slug,就能从这里得到所有需要的元数据——公钥、端点 URL、上下文字典。
pulse_version — 协议版本(v1)identifier — 项目 slugendpoint — 协议根路径owner — 项目名称 + 主页 URLpublic_key — Ed25519 公钥 + verify_urlcontext — JSON-LD 上下文vocabulary — 协议字典 YAMLfeed / stream — 主端点llms_txt / agent_md — AI 入口federates — 是否参与 Pulse 联邦每一个 SignedFeed 与 SignedChange 都是一份"信封"——内部是业务数据,外部追加一个 Ed25519 签名块。
POST /api/projects/{id}/pulse/rotate 签发新密钥,旧密钥自动标记为 rotated_at所有端点都是 CORS-enabled、JSON-RPC 友好的对外接口,按功能分组。
| 方法 | 路径 | 说明 | 状态 |
|---|---|---|---|
| GET | /.well-known/pulse.json | 自描述发现文档(公钥、端点、上下文字典) | v1 |
| GET | /pulse/context.jsonld | JSON-LD 上下文,映射协议字段到 schema.org 词汇 | v1 |
| GET | /pulse/vocabulary.yaml | 协议字典(kind / tag / source_type 等枚举) | v1 |
| GET | /pulse/feed.json | 完整 SignedFeed,含所有已发布条目 | v1 |
| GET | /pulse/breaking.json | 只包含 breaking 变更的子集 | v1 |
| GET | /pulse/since/{isoDate} | 指定 ISO-8601 时间之后的变更 | v1 |
| GET | /pulse/c/{entryId}.json | 单条 SignedChange(按 entryId 取) | v1 |
| GET | /pulse/r/{yyyy-MM}.json | 按月归档("release") | v1 |
| GET | /pulse/keys/{keyId}.pub | 取回指定 key 的公钥 | v1 |
| GET | /pulse/trust.json | Trust Score:A/B/C/F 等级 + 5 个维度评分 | v1 |
| GET | /pulse/search?q=... | TF-IDF 关键词搜索(title 3x / summary 2x / md 1x) | v1 |
| GET | /pulse/stream | SSE 实时流,事件:entry.published、entry.updated、key.rotated | v1 |
| POST | /mcp | MCP / JSON-RPC 2.0 端点(pulse_* 工具) | v1 |
| GET | /api/public/leaderboard | 全局 Trust Score 排行榜(≥ 3 releases) | v1 |
| POST | /api/projects/{id}/pulse/rotate | 轮换签名密钥(owner only) | v1 |
每个项目都有一个独立的 MCP 端点:/api/public/projects/{slug}/mcp。Claude Desktop / Cursor / Windsurf 等客户端可以直接接入。
声明协议版本(2024-11-05)和能力(tools)。
返回 6 个 pulse_* 工具的清单与 JSON Schema。
按需调用 read-only 工具获取数据。
健康检查。
pulse_* 工具pulse_get_well_known返回发现文档(含公钥)。Agent 第一次握手必用。
pulse_get_feed取完整 SignedFeed。可选 limit、breaking。
pulse_get_entry按 entry_id 取单条 SignedChange。
pulse_search关键词搜索(TF-IDF),title 3x / summary 2x / md 1x 权重。
pulse_get_trust返回项目的 Trust Score 与 5 个维度的分项评分。
pulse_get_stream返回 SSE 信息(事件列表、建议直连 /pulse/stream)。
不必相信 Pulse 服务器,Agent 拿到任意一段数据都可以在本地完成验证。
owner 在控制台点 "Verify" 按钮调用:
用 @pulse-protocol/sdk 在 Node / 浏览器里验证:
协议不应该只活在服务端 —— 我们提供官方 TypeScript SDK 与 Node CLI,把签名化 feed 变成任何应用都能用的依赖。
TypeScript SDK:canonicalise / verify / client。
命令行:实时 watch / 搜索 / 验证。
为 AI Agent 准备的独立速率桶与项目作用域,方便对外分发最少权限的密钥。
注册用户使用,默认 per-user 速率限制。
通过 POST /api/account/api-tokens 签发,可选 project_id 限定范围。
未携带 token 的公共读取,限流防止滥用。