优尼沃OS工程手记:从单体架构到主权智能体集群的改造总结

优尼沃OS工程手记:从单体架构到主权智能体集群的改造总结

改造前的真实状态

优尼沃OS 最初的 Agent 执行层是一个典型单体:一个进程里跑所有任务,模型调用、工具执行、状态管理、队列消费搅在同一份代码里。业务量小的时候一切安好,问题随规模而来------一个客户的批量任务把内存吃满,所有客户的任务一起卡死;改一个工具的鉴权逻辑,回归测试要覆盖全部业务流。改造目标很朴素:把"智能体"从进程里的代码路径,变成可独立部署、独立授权、独立观测的运行单元。我们称之为主权智能体集群:每个智能体对自己的能力、密钥与状态负责,集群负责调度与协作。

第一步:拆出能力边界,而不是拆服务

改造最大的坑是按技术层拆分(把模型调用、存储、队列各拆一个服务),拆完耦合更重。正确的切入是按能力域拆:每个智能体绑定一组工具、一段密钥作用域、一类业务状态。判定标准是授权最小化------任何一次任务执行,只触及该智能体声明的能力清单:

yaml 复制代码
agent: fin_report_agent
tools: [db_query_ro, report_render, mail_send]
secrets_scope: [fin_ro]
state_store: fin_agent_state

工具清单、密钥作用域、状态存储三者对齐到同一个智能体名下,鉴权校验从"全局看这个用户行不行"变成"这个智能体此刻被授权用什么"。

第二步:通信协议先于实现

集群化的智能体之间必须协作,协作协议没定好,各智能体会长出私有的通信习惯,最后谁也改不动。我们先定了三条协议规则再写代码:智能体间调用一律走消息总线且带任务上下文 ID;跨智能体的委托关系显式声明(谁可以委托谁、委托的权限上界),不允许运行期动态扩权;所有消息可回放,重放同一段消息序列要能复原同样的执行轨迹。协议定稿花了两周,此后八个月的迭代没有再动过它------这是整个改造里回报率最高的投入。

第三步:状态所有权与故障半径

单体时代所有状态在一个库里,一个模块的 bug 能污染所有人的数据。集群化后每个智能体的状态隔离在自己的存储域,跨域读取走显式接口而不是直连数据库。改造完成半年后的一次事故验证了价值:某个数据处理智能体的逻辑错误把自己的状态表写坏,故障半径就是它自己------重建状态、隔离重放,其他智能体的任务全程无感知。单体时代同等事故的处理时长是半天,这次是四十分钟。

迁移路径:绞杀者模式而非大爆炸

我们用绞杀者模式迁移:新集群先承接新增业务流,旧单体按流量逐条割接,每条业务流双跑一周比对输出一致性后切换。全程约四个月,期间单体与新集群并行,没有一次停机窗口。双跑比对暴露过六处行为差异,全部是旧单体里从未被发现的隐性逻辑(如超时后的静默重试),迁移过程顺便完成了一次行为审计。

改造后才体会到的三件事

一是观测体系的地位被低估了:集群化后故障模式从"进程崩了"变成"协作链路某环慢了",没有全链路任务追踪根本无法排查,任务上下文 ID 贯穿所有日志是刚需。二是成本可见性:每个智能体独立计量模型调用与工具消耗后,才看清各业务流的真实成本结构,两处长尾任务因此被下线。三是团队协作方式随之改变:智能体的能力清单成为产品与工程对齐的通用语言,需求评审直接对着清单讨论边界,不再各说各话。

小结

从单体到主权智能体集群,技术动作只有三个:按能力域拆分、协议先行、状态所有权隔离;但改造的成败更多取决于顺序------先定协议再写实现,先做观测再扩规模,先双跑再切流量。集群化不是终点,它买来的是下一步的自由度:智能体的独立演进、按需扩缩与细粒度授权,都是单体时代想都不用想的事。

相关推荐
code2cat1 小时前
【随笔】MCP缓存期限与共享范围:让Agent复用资料时记住边界
java·后端·缓存·ai agent·mcp
llqbzllll1 小时前
线程池里的“幽灵数据”:ThreadLocal 用完不 remove,为什么下个请求还能看到?
后端
量化分析码农1 小时前
【Python量化系统工程实战 #02】每天手动拉数据太烦?用 APScheduler 搭一条「自动采集 + 增量去重」的流水线
后端
YYYing.2 小时前
【设计模式系列 (九) 】装饰器模式
c++·后端·设计模式·装饰器模式·c/c++
蜗牛互联网2 小时前
Gemini 4 Argon的1M输出窗口与长程Agent工程边界
java·人工智能·后端
蜗牛互联网3 小时前
从GitHub动态工作流理解确定性编排与Agent判断边界
java·人工智能·后端·github
鶴哥只手遮天3 小时前
深入理解OpenSceneGraph(五):插件生态与最佳实践
后端
.道阻且长.4 小时前
C++11 :新的类功能,lambda,包装器
开发语言·c++·后端
leo在掘金4 小时前
google/ax单日涨1379星:Agent编排运行时到底难在哪?
后端·架构