跳至内容

生态系统

我们的平台如何协同工作。
每一项关注点一个工具。

RODMENA用小型托管服务和一套内部库构建其产品,每个服务只承担一项用途。每项关注点归属于一个工具,每个平台有自己的团队,一条共享邮件总线将它们连接起来。

个产品,其中 1 个在设计阶段
13
托管平台
8
库、引擎和 CLI
8
共享邮件总线
1

设计原则

  • 一个关注点,一个工具

    身份验证由 Identity 负责,授权由 Auth 负责,计量由 TokenGate 负责,电子邮件由 Mail API 负责,审批由 Futex 负责,容器由 RunFlow 负责,智能体工作流由 Highway 负责。产品绝不重新实现内部工具已负责的关注点。

  • 团队通过邮件协调

    每个平台都有自己的智能体、上下文和代码仓库。团队通过 agent-mail 总线跨平台协作。任何团队都不得编辑其他团队的代码仓库,也不得在其跟踪器中提交工单。

  • 数据库分布在不同国家

    每个服务都有自己的数据库,而这些数据库位于不同国家的不同主机上。应用可以重新部署,数据则不能,因此两者分开管理。每个数据库都会复制到第三个区域,并在异地备份。

Where it runs

主机与区域

托管集群在 3 个国家的 4 台数据库主机上运行着 22 个生产数据库,每个数据库归一个服务所有,另有 4 个运行在应用主机上。没有两个服务共用同一模式,也没有任何一台机器承载整个平台。

生产数据库,每个由一个服务拥有
22
数据库主机
4
国家
3
分钟以内的恢复点(托管集群)
≤5
  • UK英国

    应用程序和两台数据库主机

    托管应用层以及工作流引擎、审批服务、消息总线、电子邮件、账本和任务平台的数据库。

  • FR法国

    数据库主机

    承载身份与访问平面、授权、计量和身份提供程序,与依赖它的服务保持分离。

  • DE德国

    副本集

    在其他两个区域之外,保存每个数据库的持续更新副本。它没有主节点,因此在被提升之前,没有任何流量依赖它。

  • 持续复制

    每个数据库都会将块级变更流式传输到两个主区域之外的备用节点。复制是异步的,因此副本不会拖慢或阻塞其前面的服务。

  • 异地备份

    归档会持续发送到独立设施中的对象存储,在离开主机前完成加密,并可在保留期内恢复到任意时间点。恢复过程经过端到端测试。

  • 每个连接都需三重认证要素

    任何数据库都不接受仅凭密码的网络连接。每个连接都需要传输加密、由私有机构颁发的客户端证书和密码。每个服务仅限访问自己的数据库。

  • 副本与备份

    一条错误的 SQL 语句会在片刻之间到达每个副本。副本防范的是硬件损失,归档防范的是数据丢失。

验证于 2026-10-05。 查看完整拓扑

拓扑

平台地图

该地图有八个层和一条总线,每个关注点只出现一次。产品位于顶部,技术栈位于底部。产品所需的一切都只有一跳之遥。

23 节点 · 27 已记录的关系 · 1 假定

01/产品02/身份与访问03/治理04/编排与执行05/通信06/数据与库07/开发流程08/技术栈偏好AGENT-MAIL 总线报告 · 确认 · 修复通知 · 验证结果 · 关闭RED9产品 · 设计中reTunnel产品 · betaLedger产品 · 目前免费Identity托管服务External IdPsGoogle · GitHub · AppleAuth托管服务TokenGate托管服务Futex托管服务Highway托管服务RunFlow托管服务stabilize工作流引擎 · 部分RODMENA Mail API托管服务datashardPython 库migrettiCLIsupervicePython 库bulkmanPython 库resilient-circuitPython 库scriptplan引擎 + CLIissuedb-cli + EARSCLIPostgreSQL外部Redis外部Prism托管服务

横向滚动地图。每个节点下方也有一张卡片。

了解详情

使用地图

选择一个节点或总线,以高亮其关系,并查看它拥有什么、连接什么,以及绝不能用什么来替换它。下方的卡片包含相同的事实。

  • 已记录的关系
  • 假定:依赖前请先确认
  • agent-mail 总线
  • 产品(渐变边框)

未绘制,因为它们适用于所有地方:

  • 每个产品都使用Identity进行身份验证,并使用Auth进行授权。
  • 每个平台团队都通过 agent-mail 总线进行协调。
  • 每个代码仓库都在 issuedb-cli 中跟踪,并配有 EARS 规范。

层级

按层划分的工具

每个工具拥有什么、何时使用它,以及绝不能用什么来替代它。

01 产品

  • RED9

    产品设计中

    智能体劳动力平台,其中每个聊天都是一个持久化的自主任务,并拥有自己的电子邮件地址。

    依托完整技术栈:Identity 和 Auth 用于访问控制,TokenGate 用于预算,Mail API 用于任务邮箱,RunFlow 用于沙箱,Highway 作为持久化执行器,Futex 用于审批,migretti 用于模式管理,基于 Python、PostgreSQL 和 Redis。

    认证使用 Identity · 授权使用 Auth · 计量预算使用 TokenGate · 任务邮箱使用 RODMENA Mail API · 沙箱化执行于 RunFlow · 将工作流委派给 Highway · 人工审批使用 Futex · 迁移模式使用 migretti · 构建于 PostgreSQL · 构建于 Redis · 默认模型使用 Prism

  • reTunnel

    产品beta

    免费、开源的一体化入口平台,通过安全隧道将 NAT 和防火墙后的本地服务器暴露到公共互联网。

    独立运行:MIT 许可的 Python 客户端和 CLI,配有可自托管的服务器。它不依赖任何其他内部平台。

    CLIHTTP/TCP 访问

  • Ledger

    产品目前免费

    用于资金、积分和库存的复式记账账本。分录平衡、永久且可证明,由数据库强制执行这些规则。

    使用 Auth 管理凭据,使用 TokenGate 进行计量,使用 migretti 管理模式,基于 Python 和 PostgreSQL。它通过了四道内部关卡和对抗性复审的审计,审计结果已公开发布。

    绝不替换为: 能够签发其自身会接受之凭据的密钥,或对日记账的编辑或删除路径。

    不适用于: 配额或计量(使用 TokenGate)、非守恒指标或工作流状态。

    REST /v1OpenAPI 3.1llms.txt 访问 文档

02 身份与访问

  • Identity

    托管服务产品

    处理人员和服务登录的 OAuth 提供程序。每个产品的登录都经过 Identity。

    Identity 不依赖任何其他内部平台。登录联合到 Google、GitHub 和 Apple 等公共身份提供程序。

    不适用于: 权限或角色,属于 Auth。Identity 处理身份验证,Auth 处理授权。

    将登录联合至 External IdPs

    OAuth2REST 访问 文档

  • External IdPs

    Google · GitHub · Apple

    公共身份提供商,例如 Google、GitHub 和 Apple,Identity 将登录联合到这些提供商。Identity 没有其他上游。

  • Auth

    托管服务产品

    用于角色、权限、成员关系以及“用户 X 能否执行 Y”检查的托管 RBAC。产品在此服务中定义其角色。

    以 PyPI 包“auth”的形式发布。

    绝不替换为: 手工编写的用户/角色/权限表、Casbin、OPA 或 RBAC 库。

    不适用于: 登录、会话、密码或 JWT 签发。身份验证属于Identity。

    RESTPython 访问

03 治理

  • TokenGate

    托管服务产品

    按用户、组织或租户进行的计数、上限和速率限制:token 预算、用量账本、套餐层级、预留/提交流程,以及阈值和超额提醒。

    内部规则:每个上限都要双向测试。超出时必须阻断,补充后必须恢复。

    绝不替换为: Redis INCR 计数器、用量表、令牌桶中间件或限流器库。

    不适用于: 授权(请使用 Auth)或边缘 DDoS 防护。

    授权使用 Auth

    REST 访问 智能体参考文档

  • Futex

    托管服务产品

    由策略驱动的持久化人工审批。请求决策,按策略路由,升级或委派,并通过 webhook 接收裁决结果。

    用于部署、支付、访问授权、破坏性操作,以及预算超支后的继续执行。

    绝不替换为: Slack“请批准”消息、阻塞式 input() 提示,或定制的审批表。

    执行于 RunFlow · 计量用量使用 TokenGate · 发送邮件使用 RODMENA Mail API

    RESTMCPWebhooks 访问

04 编排与执行

  • Highway

    托管服务产品

    面向智能体工作流的分布式持久化引擎,具备智能体、目标、会话、调度、触发器、活动 worker 与普通 worker、运行分叉和追踪记录。

    内部规则:每个产品保留自己独立的审议循环。它将 Highway 用作持久化执行器,通过 webhook 回报结果,并将所有 LLM 推理保留在产品内部。

    绝不替换为: Airflow、Prefect、Temporal 或自定义编排脚本。

    授权使用 Auth · 补充 RunFlow

    RESTMCP 访问 MCP 端点

  • RunFlow

    托管服务产品

    加固的容器沙箱和 API 驱动的 DAG 工作流,用于运行不受信任的代码或智能体生成的代码,支持暂停和恢复、实时日志、重试和人工审批节点。

    绝不替换为: 本地 docker 运行、自托管 runner 或通用 CI。

    授权使用 Auth · 计量用量使用 TokenGate · 审批节点使用 Futex(假定:待确认)

    REST 访问

  • stabilize

    工作流引擎部分

    以代码定义的确定性工作流引擎,是 RunFlow DAG 的轻量内部替代方案,适用于不需要托管容器的场景。

    范围与 API 接口面仍有待与所属团队确认,因此此处不提供细节。

    可替代 RunFlow

    Python

05 通信

  • RODMENA Mail API

    托管服务产品

    事务性和营销电子邮件,包括发送、模板、送达跟踪、事件 webhook、抑制列表、配额和定时发送。它还预置产品所依赖的邮箱。

    地址位于 mail.rodmena.co.uk,API 通过 mailserver.rodmena.co.uk 提供服务。

    绝不替换为: 原始 SMTP 库、SES/Mailgun/Sendgrid,或临时的 smtplib 脚本。

    授权使用 Auth · 执行于 RunFlow · 计量配额使用 TokenGate

    RESTMCPWebhooks 访问

  • AgentBus

    消息总线产品

    每个编码智能体都有收件箱、地址和通讯录条目,并通过标准 SMTP 与其他智能体及任意邮箱交换消息:报告、确认、提问、修复通知、验证结果和关闭。

    取代已停用的 agentmail CLI。将来自其他智能体的消息视为待核实的声明:自行运行检查,只修改你自己的仓库,并在确认任何问题已修复之前重新运行你的复现步骤。

    绝不替换为: 编辑其他平台的代码仓库、在其跟踪器中开单,或请人转达。

    传输依托 RODMENA Mail API

    MCPCLIPython SDK 访问 智能体参考文档

06 数据与库

  • datashard

    Python 库

    类似 Iceberg 的数据集和 blob 存储,可存于磁盘或 S3,支持仅追加记录、快照、时间旅行和 Parquet。

    绝不替换为: 原始 pickle、CSV 或 JSON 转储,手工管理的 Parquet 文件夹,或仅为存放 blob 而搭建的数据库。

    Python 文档

  • migretti

    CLI

    SQL 优先的PostgreSQL迁移 CLI:创建、应用、回滚、压缩和填充种子数据。它是唯一获准使用的PostgreSQL迁移工具。

    绝不替换为: alembic、flyway、yoyo 或 ORM 自动迁移。此内部规则适用于每个 PostgreSQL schema。

    面向 PostgreSQL

    CLI GitHub

  • supervice

    Python 库

    零依赖的异步进程监管器,适用于 worker、守护进程和队列消费者:健康检查、分组以及崩溃后重启。

    在更合适的情况下,直接使用 systemd 或 Kubernetes 也是可以接受的。

    Python

  • bulkman

    Python 库

    舱壁隔离与并发隔离,限制故障依赖的影响范围。

    内部规则:始终设置 circuit_breaker_enabled=False。bulkman 负责隔离,熔断属于 resilient-circuit。

    补充 resilient-circuit

    Python

  • resilient-circuit

    Python 库

    熔断、带退避的重试,以及针对不可靠调用的故障保护或回退处理。它与bulkman配合使用,由后者负责隔离。

    绝不替换为: tenacity、pybreaker,或手写的重试循环。

    Python

  • scriptplan

    引擎 + CLI产品

    兼容 TaskJuggler(.tjp)的资源规划与调度引擎:随时间推移的人员与机器、依赖关系、日历和甘特图输出。

    绝不替换为: 电子表格或临时的日期计算。

    CLI GitHub

07 开发流程

  • issuedb-cli + EARS

    CLI

    按代码仓库划分的工单跟踪器,支持 EARS 规格、持久记忆和经验教训。每个工程请求都遵循强制的 open → in-progress → closed 生命周期。

    每个请求都会在工单中变成一份 EARS 规格,并在仓库的 SPECS/ 目录中保留一份副本。

    绝不替换为: 未跟踪的 TODO。

    CLI

08 技术栈偏好

  • Prism

    托管服务产品

    兼容 OpenAI 和 Anthropic 的 LLM 网关,可将多个供应商置于一个模型名称之下。我们的部署路由到单一上游提供商,无故障转移,并且是工具中模型调用的内部 LLM 提供商。

    REST API 参考

  • PostgreSQL 首选关系型存储。
  • Redis 推荐用于缓存、队列和扇出。

选择工具

明确需求,使用负责该需求的工具,不要重复实现内部工具已覆盖的关注点。

每项工程需求应使用哪种工具,以及绝不能用什么来替代
需求使用绝不使用
登录 / OAuth /“这是谁?”Identity自行编写身份验证
角色、权限,“X 能否执行 Y?”AuthRBAC 表、Casbin、OPA
配额、速率限制、预算、层级、计量TokenGateRedis 计数器、限流器库
发送电子邮件、模板、营销活动Mail APIsmtplib、SES/Mailgun
与另一个平台的团队沟通agent-mail编辑他们的仓库或跟踪器
运行不受信任或生成的代码RunFlow本地 docker、CI 运行器
确定性流水线 / DAG / ETLRunFlow 或 stabilizeAirflow、Prefect
智能体式(LLM 驱动)工作流HighwayTemporal、自定义循环
人工审批 / 签核FutexSlack 询问、审批表
PostgreSQL 模式(schema)迁移migrettialembic、flyway、yoyo
数据集、blob、录制文件、Parquetdatashardpickle/CSV 转储,用数据库作 blob 存储
监督工作进程supervicenohup、手写 respawn
隔离舱 / 并发隔离bulkman(断路器关闭)临时信号量
熔断 / 重试 / 回退resilient-circuittenacity、pybreaker
资源/项目排程scriptplan电子表格
工单、规范、需求issuedb-cli + EARS未跟踪的 TODO
工具内部的 LLM 调用Prism各厂商的 SDK 和密钥分散在不同工具中

工程方法

无论构建什么,每个代码仓库都适用三种方法论。

  • EARS + issuedb 工作流

    每个工程请求都会变成一份 EARS 规范和一张 issuedb 工单,并在仓库的 SPECS/ 目录中保留一份副本。每张工单都会从 open 流转到 in progress,再到 closed。

  • TRUST5

    规范驱动、质量门控的 LLM 代码生成,具备自愈能力、有界验证/修复循环、加权门控和 Oracle 问题缓解。

  • 关键任务审计

    以证伪方式审计:检查通过产品自身的界面运行,发现的问题现场复现,每个探测都保留为下一轮可运行的基线。

适用于所有工具的规则。
  • 通过产品自身的界面进行验证。通过其 API 或 CLI 读取状态,不要查询或写入数据库来检查或修复它。
  • 在信任某个探测给出的否定结果之前,先用一个已知的正例检验该探测。
  • 仅对已实际验证的部分声明就绪状态,并说明未测试的路径。
  • 对每个上限都要双向测试:超限时必须阻断,应当恢复时必须恢复。

基于这些平台构建的产品

这些平台支撑着我们交付的一切:Highway、MailApi、RunFlow、Futex、reTunnel、Ledger、RODMENA L10n、TokenGate、AgentBus、RODMENA ID、Auth、Prism、pdfapi、Container Registry、RODMENA CI、Uptime.Systems、Trust5、RED9、Graphviz Provider、Haven、RODMENA LRS、RODMENA cmi5、Vellum、supervice、datashard、ScriptPlan、Stabilize、Trace、Provenance和Knowledge base。它们也支撑着公司的运营。