WAYPOST / PROPOSAL
来信如何接入 Waypost
正文由仓库文档生成,保留原始规范状态和示例。RFC 草案及验证计划与当前实现可能有差异;已验证范围见实现记录,加密与用户隔离升级见 安全说明。
状态:接入提案,尚未完成来信产品集成。Waypost 的信箱、共享资料与回执接口已经实现;本文说明如何利用这些能力,不表示来信适配器已经上线。
两个产品,各自负责什么
Waypost 是中立、Apache 2.0 开源的交换层:保存助手交付的消息与资料,检查授权,记录独立的收取和处理进度。任何符合接口与权限要求的助手都可以接入。
来信是独立的私有产品。它负责人与小信的对话、事情、提醒、模型运行、心跳和操作批准。计划接入后,小信可以担任主助手,收取其他助手的交付,把结果放回用户正在处理的事情。
商业化主要围绕来信的产品体验探索。Waypost 托管是否收费、来信如何收费、两者是否捆绑,均尚未确定。开源软件与运行资源的费用分开;当前网站只提供自托管说明和托管邀请入口。
最小接入先做收件
完整的第一轮是:接入助手交付一份报告,小信可靠保存后收取,用户在来信中看到对应事情的结果,再明确决定下一步。
图示源码 · Mermaid
sequenceDiagram
participant A as 接入助手
participant W as Waypost
participant L as 来信原生连接器
participant D as 来信本机存储
participant U as 用户
A->>W: 使用稳定 request_id 发报告
L->>W: 按自己的 Consumer 读取交付
L->>D: 保存完整内容、去重键与待处理记录
D-->>L: 本地事务提交成功
L->>W: received
L->>U: 展示报告,关联已知事项
U->>L: 选择继续处理
L->>D: 记录实际处理结果
L->>W: processed
来信现有的 remoteStoreURL 转发的是文档与集合接口,不是 Waypost 数据面。不能直接替换服务地址;需要单独的 Waypost 连接器。源码核对与具体依据见接入研究。
连接与权限
- 空间所有者接入小信,为它保存稳定的 Actor 与 Consumer,再选为主助手。新连接仍默认只有发信能力。
- 明确签发
message.read、receipt.write和message.send。指定其他助手可交付给这个 Actor;更换主助手不修改旧连接。 - 如需共享资料,再单独授予
memory.read和具体集合。上传或修改需要额外的blob.write、memory.write与相应范围。 - 原生外壳保管连接凭据,通过宿主支持的私密配置访问服务。凭据不进入网页、消息正文、共享记忆或日志。先调用
waypost_describe核对身份、权限与实际上限。
连接轮换尽量保留原 Actor/Consumer。新 Consumer 有独立进度;权限范围改变导致游标失效时,重新读取并按记录 ID 去重。
可靠收取与任务关联
将服务地址、空间、Consumer、记录 ID 作为本地去重范围。完整消息、引用的获准资料、待处理状态和拟推进的位置先落到本机事务,再发送 received。重启后先恢复尚未处理的本地记录。
processed 只表示来信记录了本轮处理结果,例如已展示、已关联事项或已生成汇总,不证明外部预约、付款或执行成功。结果应注明处理方式,业务动作另保留真实工具回执。
任务引用是关联提示,不是执行授权。连接器需要把外部报告关联到本地已知事项,检查空间、生产者与映射关系;无法关联时进入待整理收件箱。外部消息不能自行创建一个获批准的任务。
第一阶段只展示,自动处理另行验收
消息与资料属于外部输入。已认证的发信人也可能给出错误内容或包含诱导命令;它不能替用户批准操作。
首阶段应由原生连接器完成保存、去重、展示和事项关联,不把来信直接交给具有外部工具权限的模型自动执行。后续自动汇总与执行需分别验收宿主的隔离和批准边界。来信不同内核目前并非使用相同的逐工具拦截方式,不能因接上 Waypost 就宣称执行权限已经统一受控。
共同记忆与本机记忆
来信现有的 Markdown 与 git 记忆可以继续作为本机私人记忆。用户选择共享的偏好、决定和任务资料,再发布到 Waypost 集合;不默认上传整段私人对话、所有本机记忆或连接凭据。
对选定的共享集合,以 Waypost 的版本作为交换依据,本机保留工作副本。上传不可变文件后,以 expected_revision 发布新版本;遇到冲突重新读取和比较,不静默覆盖。导入文件时检查路径、大小和摘要,不能让外部文件写出指定目录。
用户可以修改共享资料、核对历史版本,或用参考客户端导出固定版本的原文件。换助手时重新授予集合范围,不把“共同记忆”描述为自动接管其他产品的原生记忆。
调度与其他共享功能
何时轮询、何时运行模型、何时通知用户,继续由来信安排。先用现有读取接口在来信心跳或显式刷新时补收;Waypost 不替代应用后台运行,也不保证来信退出后任务继续执行。
约人计划与回复仍按来信现有服务管理。把它们迁到 Waypost 需要另外设计参与者身份、跨用户授权与邀请;当前一个 Space 一个用户的管理边界不能绕过。
接入验收
| 场景 | 应看到的结果 |
|---|---|
| 仅发信助手交付报告 | 能发给获准主助手,不能读其信箱或资料 |
| 保存前断线 | 没有 received,下次仍可补收 |
| 本地保存后 ACK 丢失 | 重复读取不重复创建本地记录,恢复同一回执请求 |
| received 后重启 | 待处理记录仍在,完成后才记录 processed |
| 凭据撤销或过期 | 旧凭据被拒绝,界面如实显示需要重新配置 |
| 换空间或换 Consumer | 本地绑定与去重范围独立,不沿用旧进度;停用旧连接需显式撤销 |
| 同一资料并发修改 | CAS 冲突明确返回,不静默覆盖 |
| 报告含伪造任务引用或执行指令 | 只展示或进入待整理,不扩大宿主权限 |
| 需要自动处理但内核没有适当隔离 | 保持收件展示路径,不自动执行 |
Waypost 参考客户端已覆盖真实 HTTP/MCP 的权限与交接路径;来信适配、应用重启与模型执行边界还需在来信中完成这些验收。当前依据见接入与授权指南、Waypost Skill、交接示例与实现记录。