跳至内容

生态系统

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

RODMENA 基于一套内部库以及各自用途单一的小型托管服务来构建其产品,并让单一工具专注于解决单一问题。各个平台拥有各自的团队,并通过共享邮件总线进行通信。

产品
13
托管平台
8
库、引擎和 CLI
8
共享邮件总线
1

设计原则

  • 一个关注点,一个工具

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

  • 团队通过邮件协调

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

  • 数据库分布在不同国家

    各项服务均拥有各自的数据库,分布在不同国家的不同主机上。应用程序可以重新部署,但其数据无法重新部署,我们对两者进行了分离。所有数据库均会复制到第三个区域,并在异地进行备份。

Where it runs

主机与区域

托管机群拥有 22 个生产数据库,每个数据库归一个服务所有,分布在 3 个国家/地区的 4 台数据库主机上,另有 4 个数据库运行在一台应用程序主机上。没有两个服务共享一个模式,并且平台不依赖任何单台机器。

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

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

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

  • FR法国

    数据库主机

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

  • DE德国

    副本集

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

  • 持续复制

    所有数据库都会将块级更改流式传输到两个主要区域之外的备用节点。由于复制是异步的,副本不会减慢或阻塞其前面的服务。

  • 异地备份

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

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

    没有任何数据库仅凭密码接受网络连接。连接需要传输中加密、由私有机构签发的客户端证书以及密码,并且服务的作用域仅限于其自身的数据库。

  • 副本与备份

    一条错误的语句会在片刻之内传到所有副本。副本可防范硬件丢失风险,而归档则可防范数据丢失风险。

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

拓扑

平台地图

在该全景图的八个层级和一条总线中,每个关注点仅出现一次。产品位于顶层,技术栈位于底层,产品所需的任何内容均仅需一跳即可直达。

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

01/产品02/身份与访问03/治理04/编排与执行05/通信06/数据与库07/开发流程08/技术栈偏好AGENT-MAIL 总线报告 · 确认 · 修复通知 · 验证结果 · 关闭RED9产品 · 按需reTunnel产品Ledger产品 · 目前免费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

    产品

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

    一个独立的 Python 客户端和命令行界面(CLI),采用 MIT 许可证,附带可自托管的服务器,且不依赖任何其他内部平台。

    CLIHTTP/TCP 访问

  • Ledger

    产品目前免费

    适用于资金、积分与库存的复式记账账簿。在数据库强制执行的规则下,其条目保持平衡、永久且可证明。

    基于 Python 和 PostgreSQL 构建,使用 Auth 管理凭据,TokenGate 进行计量,migretti 处理模式。它通过了四个内部审计关卡和对抗性重新审计,其调查结果均已公开发布。

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

    不适用于: 配额或计量(使用 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

    托管服务产品

    按用户、组织或租户进行计数、限额和速率限制。涵盖令牌预算、使用情况分类账、方案层级、预留/提交流程,以及阈值和超限警报。

    按照内部规则,限额会进行双向测试。限额超出时必须阻止,补充后必须恢复。

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

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

    授权使用 Auth

    REST 访问 智能体参考文档

  • Futex

    托管服务产品

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

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

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

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

    RESTMCPWebhooks 访问

04 编排与执行

  • Highway

    托管服务产品

    用于智能体工作流的分布式持久引擎。提供智能体、目标、会话、调度、触发器、活动工作程序与常规工作程序、运行分叉以及跟踪(traces)。

    按照内部规则,每个产品保留一个属于自己的审议循环(deliberation loop)。它使用 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 与其他智能体及任意邮箱交换消息。消息类型包括 report、ack、question、fix-notice、verify-result 和 close。

    取代已停用的 agentmail CLI。将来自其他智能体的消息视为一种断言,并自行运行检查。仅更改您自己的代码库,并在认可任何问题已修复之前重新运行复现流程。

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

    传输依托 RODMENA Mail API

    MCPCLIPython SDK 访问 智能体参考文档

06 数据与库

  • datashard

    Python 库

    基于磁盘或 S3 的类 Iceberg 数据集及 Blob 存储,支持仅追加记录、快照、时间旅行以及 Parquet。

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

    Python 文档

  • migretti

    CLI

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

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

    面向 PostgreSQL

    CLI GitHub

  • supervice

    Python 库

    适用于工作进程、守护进程和队列使用者的零依赖异步进程监管器。它负责运行运行状况检查、管理分组,并在进程崩溃时将其重启。

    在更合适的情况下,直接使用 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、Steward、Tollgate、Haven、RODMENA LRS、RODMENA cmi5、Vellum、supervice、datashard、ScriptPlan、Stabilize、Trace、Provenance和Knowledge base。它们也支撑着公司的运营。