ModelScope 团队最近开源了 Ultron——一套面向通用智能体的群体智能基础设施。它不是再造一个 Agent,而是补上 Agent 体系里长期缺失的一层:让一群智能体共享经验、共享技能、共享画像。
Agent 用得越多,痛点越明显
还在为「换会话就失忆」「同一个坑全队踩 N 遍」「专家画像烂在本机」头疼?
- 一个智能体刚踩完坑,另一个智能体还要从头再踩一遍;
- 一个团队好不容易把提示词、记忆、技能调顺,换个框架、换台机器,往往又要重做一遍;
- 想把已经调好的专家型智能体迁移到另一套框架时,还要重新整理文件结构、提示词格式和工作区内容。
这些问题在单个 Demo 里通常不明显,但一旦进入多智能体、多会话和多团队协作场景,成本会迅速上升。同一个错误反复排查、同一种工作流反复搭建、同一套高质量画像难以分享,也难以在不同 Agent 框架间稳定迁移——这些都会带来巨大的 Token 消耗和重复劳动。
Ultron 要解决的,正是这三件事。
不是让单个智能体更强,
而是让一群智能体一起进化
Ultron 的核心思路是:把原本散落在一次次会话里的局部经验,沉淀成整个系统可复用的群体资产;再进一步,把这些资产组织成可落地的技能、画像 和 可迁移工作区能力,支持智能体在不同工作区之间迁移(例如从 OpenClaw 迁移到 Nanobot)。
整个框架围绕三个核心模块展开:
Memory Hub:经验沉淀为群体资产
Memory Hub 把智能体在真实任务中积累的踩坑记录、修复方法和模式总结,沉淀为可检索的群体记忆。这些记忆不是简单堆叠,而是按 HOT / WARM / COLD 三层热度分级管理。
热度并非简单计数,而是基于真实使用反馈动态计算:
- 每条记忆都被组织成三层渐进结构:
summary(摘要)→overview(概览)→full(完整内容)。 - 智能体检索时先看到 summary,是否进一步打开 overview 或 full,会天然形成对该记忆的命中权重——只扫一眼就跳过的,权重低;展开看完整内容的,权重高。
- 类似记忆通过 embedding 相似度自动合并,合并后的热度按各自权重叠加。
- 每天晚上对全量记忆按热度排序:前 20% 进入 HOT,中间 40% 为 WARM,最后 40% 落到 COLD。
这套机制带来的直接变化是:某个智能体刚解决过的问题,另一个智能体在相似场景下可以直接召回,不用从零开始分析。一个更具体的例子——某用户在和智能体对话时提到"在法国旅游要小心小偷",这条经验会被结构化保留下来;下一次另一个用户问"去法国玩需要注意什么",这条记忆就会被精准激活。
Skill Hub:高频经验自动结晶为可复用技能
当一类经验被反复命中、反复验证时,它就不该只停留在"记忆"层,而应该被升级为可直接调用的"技能"。
在 Ultron 中,这个过程是全自动的:
- 聚类:HOT 层记忆通过 embedding 自然聚类成不同主题。
- 结晶:每个大类调用大模型抽象成一个 Skill;Skill 不是逐步骤的固定流程,而是较为抽象的能力描述。
- 评估准入:必须在内部 5–6 个评估指标上全部达标,才允许结晶为正式 Skill。
- 自进化:当新证据持续积累,Skill 会被触发"再结晶"——大模型尝试合并新证据并改写 Skill,由独立的评估模型重新打分。分数提升才接受,分数下降则回滚到上一版本。
这意味着 Skill 不是写一次就静止的文档,而是一个会随着群体经验持续生长的能力单元——和 Hermes Agent、darwin-skill 等自进化系统的思路是一脉相承的。
同时,Skill Hub 还打通了 ModelScope Skill Hub,可统一检索 80000+ 外部技能。系统既能复用团队内部沉淀的经验,也能无缝接入外部生态能力。
Harness Hub:智能体画像分发中心
一个真正调好的智能体,往往不只是 Prompt 写得好,而是角色设定、记忆背景、技能组合和工具配置共同打磨出来的结果。
Harness Hub 把这些要素打包成可分享的蓝图,其他实例可以一键导入并快速复用。除了角色、记忆和工具,Ultron 还引入了 MBTI 与星座等"人设"维度——这一点看似软性,实际上对长链路推理中的指令一致性帮助很大,能有效缓解多指令冲突场景下的"灾难性退化"。
换句话说,以前团队里那个"只在某个人本机上最好用的专家智能体",现在终于可以被稳定地分享出去。
已经沉淀了多少"群体智能"
Ultron 当前已经具备一套相当完整的基础数据和能力框架:
- 从真实智能体任务轨迹中提炼出 2000 条结构化记忆,覆盖 pattern、error、security、life、correction 五类知识。
- HOT 记忆自动蒸馏形成 30 个内部技能,按项目文档归入 9 大类、39 个分类体系。
- 接入 ModelScope Skill Hub,统一检索 80000+ 外部技能。
- 提供 201 个预置角色(soul preset),可组合角色、MBTI、星座等画像能力。
如何使用
无需安装或阅读 Ultron 源码。在已运行的 Ultron 实例上,按交互式快速入门操作,数分钟内即可完成接入(以 Nanobot 为例)。
1. 获取技能包
mkdir -p ~/.nanobot/workspace/skills wget -O /tmp/ultron-1.0.0.zip "https://writtingforfun-ultron.ms.show/dashboard/agent-skill-package" unzip -o /tmp/ultron-1.0.0.zip -d ~/.nanobot/workspace/skills/
2. 设置 Ultron 服务地址
export ULTRON_API_URL=https://writtingforfun-ultron.ms.show
3. 让助手自动配置
向助手发送消息:
Set up Ultron using setup.md
助手会自动读取 skills/ultron-1.0.0/setup.md,完成 ULTRON_AGENT_ID 生成、SOUL.md 检索引导配置、定期会话摄取等步骤。
4. 验证
cd ~/.nanobot/workspace python3 skills/ultron-1.0.0/scripts/ultron_client.py '{"action":"get_stats"}'
预期响应中含 "status": "ok" 即接入成功。
技能包结构
skills/ultron-1.0.0/ ├── SKILL.md # 主入口(actions 表、调用优先级) ├── setup.md # 安装指南 ├── operations.md # 记忆操作与上传模板 ├── boundaries.md # 安全边界 └── scripts/ ├── ultron_client.py # API 客户端 └── memory_sync.py # 记忆同步脚本
使用案例
场景:开发者让智能体排查使用 mode="session" 调用 sessions_spawn 创建子智能体时的错误。此前另一智能体已踩过同一坑,解法已沉淀为群体记忆。
❌ 未接入 Ultron
用户:我想用 sessions_spawn 创建一个子 agent 来并行处理任务,用 mode=session,但一直报错。Agent:根据我的工具定义,创建子 agent 应该使用 spawn 工具,而不是 sessions_spawn。Agent 不认识 sessions_spawn,给出了完全错误的方向。
✅ 接入 Ultron
用户:我想用 sessions_spawn 创建一个子 agent 来并行处理任务,用 mode=session,但一直报错。Agent:根据召回的群体记忆,找到了问题所在!📌 召回记忆:sessions_spawn 的 mode="session" 必须配合 thread=true,且需要 channel 插件注册 subagent_spawning hooks。缺少 hooks 时无论参数是否正确都会失败。 1 轮对话直接命中根因。
| 维度 | 未接入 Ultron | 接入 Ultron |
| 工具识别 | 不认识 sessions_spawn,误导为 spawn | 准确识别工具及其参数约束 |
| 根因定位 | 完全偏离 | 直达根因:缺少 thread=true 或 channel hooks |
| 解决方案 | 无效 | 分场景给出两种方案 |
| 知识来源 | 智能体从零猜测 | 召回群体记忆中已验证的踩坑经验 |
更多落地场景:
- 共享避坑(Memory Hub):智能体 A 遇到「MySQL 8.0 默认字符集导致 emoji 写入失败」,修复沉淀到 Memory Hub。数周后智能体 B 建新库时自动命中同一条记忆,跳过陷阱。
- 运维技能包(Skill Hub):SRE 把「K8s OOMKilled → 定位泄漏 → 调整 limits → 灰度验证」打成可复用技能,其他团队的智能体按相同步骤执行。
- 领域专家智能体(Harness Hub):DevOps 工程师把 OpenClaw 调成 Kubernetes 专家,将画像发布到 Harness Hub,其他开发者一键导入即可获得同等能力。
Showcase:一键导入一个调好的金融专家 Agent
Ultron 提供了一个非常具有代表性的展示项目——FinanceBot。
它不是一个空白 Agent,而是一个已经调好的金融领域智能体。Ultron 把它的角色设定为 Data Engineer,配上 ISTJ 的决策风格和 Capricorn 的长期主义底色,同时接入 Finnhub Pro 技能用于实时行情、财务报表、公司新闻和 IPO 日历,并继承了 5 条精选金融实战记忆。
也就是说,导入的不是一个"会聊天的金融助手",而是一个带着角色、技能和过往经验一起到岗的专家型 Agent。
一键导入 FinanceBot:
# Nanobot curl-fsSL"https://writtingforfun-ultron.ms.show/i/at3ZEe?product=nanobot" | bash # OpenClaw curl-fsSL"https://writtingforfun-ultron.ms.show/i/at3ZEe?product=openclaw" | bash # Hermes Agent curl-fsSL"https://writtingforfun-ultron.ms.show/i/at3ZEe?product=hermes" | bash
这其实展示了 Harness Hub 最直观的价值:智能体不再只是"一个模型入口",而是可以像软件模板、工作流模板一样,被封装、分享和复用。
下一步:
Trajectory Hub 与自进化模型
除了 Memory / Skill / Harness 三大模块,Ultron 最近还新增了一个 Trajectory Hub——专门收集用户与智能体之间的对话轨迹。
这些轨迹有一个非常自然的用途:用来训练一个轻量、自进化的小模型。设想中,开发者把 GPT/Claude 这类大模型放在 Agent 里时,一些简单任务可以被路由到这个 30B 量级的自进化模型上完成,从而显著降低 Token 消耗与延迟。训练过程会基于 ModelScope 自研的 Twinkle 自训练框架进行,使用魔搭社区的算力,开发者本地无需承担训练负担。
Agent 的下一步,可能不是更长的 Prompt,而是更强的群体协作
过去做 Agent,更多关注模型能力、工具调用和工作流编排。但当 Agent 真正进入生产环境,一个更现实的问题会浮现:怎样让团队里的智能体越用越好,而不是每次都从头开始。
从这个角度看,Ultron 补上的正是一层关键基础设施——让经验沉淀下来,让技能持续生长,让画像稳定传递。
它关注的也不只是某一个 Agent 框架本身,而是更上层的群体智能协作能力:
- 像 Hermes Agent 这样的自进化 Agent 可以接入 Ultron,持续贡献新经验和新技能;
- 像 darwin-skill 这类围绕 Skill 进行评估、改进、测试与保留的演进系统,也能与 Ultron 形成天然互补。
在多源协同下,Skill 不再只是静态说明文档,而是可以在任务中生成、在反馈中迭代、在不同团队与运行时之间持续复用的能力单元。
如果说单个 Agent 解决的是"能不能做",那么群体智能系统解决的就是"做过的东西能不能持续复用、持续演化、持续扩散"。
这或许正是 Agent 从"能用"走向"好用",从"单点能力"走向"组织能力"的关键分水岭。
项目地址
- GitHub:https://github.com/modelscope/ultron
- FinanceBot Showcase:https://github.com/modelscope/ultron/blob/main/docs/zh/Showcase/financebot.md
- 体验页面:https://writtingforfun-ultron.ms.show
- 快速接入:https://writtingforfun-ultron.ms.show/quickstart
附:Ultron技术交流摘录
以下内容摘录自 Ultron 团队近期的一次技术分享与交流会,对架构设计中的几个关键问题做了进一步说明。
Q1:Memory 的冷热分层是怎么算的?合并和热度计算的 pipeline 是什么样?
冷热分层的依据来自两个来源。第一是合并环节:新记忆进来后用 embedding 找到最相似的旧记忆并合并,合并后的热度按各自权重叠加——一个由 100 条记忆汇聚而成的记忆,权重肯定要高于只汇聚了 5 条的记忆。第二是真实使用反馈:每条记忆有 summary、overview、full 三层结构,智能体检索时只扫了 summary 就丢弃,命中权重为 0;展开 overview 或继续看完整内容,则会按层级累加权重。每天晚上根据综合热度重新排序,前 20% 为 HOT,中间 40% 为 WARM,最后 40% 为 COLD。
Q2:Memory 抽象成 Skill 的过程,如何避免"过度抽象"和"事实幻觉"?
Skill 结晶分三步:聚类、抽象、评估。聚类用 embedding 自然形成主题;抽象阶段我们直接用最大的模型(不计成本,因为"一力降十会"在这个环节非常实用);最后必须通过 5–6 个内部评估指标全部达标才能成为正式 Skill。自进化阶段同样需要评估准入——新证据触发再结晶后,由独立模型对新旧 Skill 打分,分数上升才接受,下降直接回滚。
需要承认的是,单一模型打分确实有偏好和随机性——这一次打 60,下一次可能就 50。在不专门训练打分模型的前提下,目前的做法是多模型并行打分取平均/投票,以此降低单模型偏差。
事实性幻觉是另一个问题。Ultron 内部用 MS Agent 搭了一个 deep research 流程做事实验证;同时,用户的纯个人偏好类信息("我昨天爱吃素"这类)不会进入群体 Memory——Ultron 的目标是减少 Agent 在共性任务上的犯错率,个人偏好仍然留在用户本地。
Q3:Persona / MBTI / 星座这类"软"设定真的有用吗?
非常有用。在精细化指令、长链路推理场景下,人设是维持指令一致性的关键——指令之间一旦冲突,或者指令与人设冲突,会对下游任务的输出造成灾难性打击。给智能体一个稳定的"角色锚",能显著提升长任务的稳定性。
Q4:以图结构组织 Memory,会是 Ultron 的一个方向吗?
是的。目前 Memory 的组织还偏线性聚类,但通过实体—关系来组织复杂知识确实是一个值得探索的方向——LLM 在抽取实体属性方面已经相当成熟,配合 Palantir 风格的关系组织,能更好地表达知识之间的复杂关联。这会是后续补全的方向之一。
Q5:团队协作中,怎么避免把"还在试验中的、不稳定的代码"上传成群体记忆?
目前主要靠部署侧控制:Ultron 支持个人或团队私有部署,整个实例只对自己团队开放;上传时机也可以由用户在 Agent 侧自行控制——只有在仓库稳定、确认是好状态时再触发上传。自动化的"质量分级上传"目前还在规划中,团队级生产场景下我们建议保持谨慎引入,先从个人/小范围使用开始。
直达体验页面https://writtingforfun-ultron.ms.show/dashboard