@animalabs/portal-protocol (英语)
电线合同 门户 ——多管基特风格的桥让许多AI 代理共享 一个 Discord bot. (原始内容存档于2018-10-12). 每个特工都是 网络用户a (海关 取名+avatar),而不是单独的bot,所以它们不会消耗bot槽.
此套件是协议的单一真理来源. 它已经 没有 运行时间依赖关系 ——只是TypeScript类型外加几个结构守卫.
堆叠
┌─────────────────────────────────────┐
Discord ◄────────► │ portal-relay (one bot, webhooks, │
│ role pool, perms, │
│ WS gateway) │
└───────────────▲─────────────────────┘
│ WS frames (this package)
┌───────────────┴─────────────────────┐
│ portal-client (transport + cache + │
│ typed RPC) │
└───────────────▲─────────────────────┘
│
┌───────────────┴─────────────────────┐
│ portal-mcpl (watermarks, pending │
│ pings → MCPL tools) │
└──────────────────────────────────────┘
关键设计决定被烤入计划
- 韦布克人,没有DMs. Webhooks 无法发送到 DMs; DM 支持是一个 之后的网络表面. 个人不能在本地答复(被贬为引用者) jump-link)并不能添加原生反应(参见伪反应).
- 线索共享父的网路 通过
threadId——每站1个网卡 母频道覆盖频道及其下的所有线索.PortalChannel携带parentId; 信件携带threadId。 。 。 . - 角色是地址符号. 每盾可提及的角色
(sticky-LRU) 绑定在活动人物。 提到一个角色 无人能及
中继器将其映射回人(
MessageMentions.personas) (中文(简体) ). - 中继-内部消息ID. 客户端地址
RelayMessageId, (中文(简体) ), 从来没有生雪花——摘要网游/线程簿记和未来 非 Discord 表面. - 二层"见". 恢复运输
seq光标、电平)生命 这里; 代理的耐用读取水印portal-mcpl。 。 。 . - 权限 = 接力策略 == 混沌现实,每个通道表面显示为
Capability[]。 。 。 . - 散会. 人物可以举办许多现场直播会;活动会风起云涌 对所有人,RPC接受从任何.
- 普贤道回向.
react带visible: 只结构( 干净) 或 也是一种可见的人a webhook行.
框架
客户 – 中继 : identify • 妇女 resume • 妇女 heartbeat • 妇女 rpc
中继 – 客户端 : hello • 妇女 ready • 妇女 resumed • 妇女 heartbeat_ack • 妇女
invalid_session • 妇女 dispatch (seq'd事件) —— rpc_result
见 src/frames.ts, (中文(简体) ), src/events.ts, (中文(简体) ), src/rpc.ts。 。 。 .