jiuwenswarm
华为开源的多智能体 Agent 框架,像蜂群一样协作完成任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
华为开源的多智能体 Agent 框架,像蜂群一样协作完成任务
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你对手机上的 AI 助手说"帮我订明天去上海的机票,顺便查一下当地天气,并把行程添加到日历"——传统的 AI 助手会将这三个任务合并处理,容易出现信息遗漏或执行顺序混乱。而 JiuwenSwarm 会像一个经验丰富的私人助理,先拆解任务、评估优先级,再调度不同的专业工具分别执行,最终汇总结果呈现给你。这就是"Swarm"(蜂群)架构的精髓:多个专业 Agent 协同作战,各司其职,有序完成复杂任务。
JiuwenSwarm 由华为云 MaaS(Model as a Service)团队孵化,核心目标是打破商业 AI 助手的数据主权困境。2024 年,随着大模型能力爆发,各类 AI 助手如 ChatGPT、Claude、华为小艺快速普及,但这些助手均为闭源 SaaS 服务,用户的所有对话数据都被平台方掌控——这对于企业级用户和对隐私敏感的个人用户而言是不可接受的。
与此同时,华为鸿蒙生态中的小艺助手拥有数亿月活用户,如何让这些用户在手机端也能便捷调用开源 AI 能力?JiuwenSwarm 应运而生:它是一个完全开源、可自托管的 AI Agent 框架,通过小艺开放平台深度集成,让华为手机用户直接通过语音唤醒 JiuwenSwarm,在享受大模型能力的同时,数据完全留在本地。
JiuwenSwarm 的代码架构采用清晰的三层解耦设计,这是它区别于其他开源 Agent 框架的核心技术亮点。
第一层:Swarm 装配层(jiuwenswarm/agents/swarm/)。这是整个系统的"大脑指挥官",负责将用户的配置声明(YAML/JSON)解析为可执行的 Agent 团队。其核心设计哲学是"纯声明式装配":你只需在配置文件中声明"需要哪些角色、每个角色用什么模型、配备哪些工具",框架会自动完成所有对象的创建和连接,完全不需要写代码。这一层引入了 OpenJiuwen 作为底层依赖——这是华为开源的 Agent 运行时框架,提供了 Spec 模型(RailSpec、BuiltinToolSpec、SubAgentSpec)和 Provider 注册表机制,实现了框架层面的标准化。
第二层:Symphony 技能调度层(jiuwenswarm/symphony/)。如果说 Swarm 是指挥官,Symphony 就是"技能图书馆管理员"。它维护一套 Capability Tree(能力树)索引系统,当 Agent 需要执行某个任务时,Symphony 会从本地技能库中智能检索最匹配的 Skill 插件。整个流程是:扫描 skill/plugin 目录 → 基于 LLM 构建能力树索引 → 任务请求到来时通过向量检索匹配最佳技能 → 将技能注入 Agent 的执行上下文。Symphony 还支持 Skill 自演进:当 Agent 执行任务失败或用户表达不满时,系统会自动分析失败原因,修改对应 Skill 的实现代码,让 Agent"越用越聪明"。
第三层:多渠道接入层(jiuwenswarm/channels/)。这是 JiuwenSwarm 的"社交能力"体现。框架原生支持 Web(FastAPI + Vue 前端)、飞书、钉钉、微信企业版、Telegram、Discord、WhatsApp,甚至华为小艺。换句话说,无论用户习惯用哪种 IM 工具,都可以通过 JiuwenSwarm 与 AI Agent 对话。渠道接入层通过统一的 Gateway 模块实现,所有消息经过格式标准化后进入内部 Pipeline,实现了接入与核心逻辑的完全解耦。
从 pyproject.toml 可以完整看到 JiuwenSwarm 的技术栈全景。模型层,项目优先适配华为云 MaaS API,同时也支持 OpenAI 兼容接口(通过 openjiuwen 的 provider 机制可扩展)。向量数据库,使用 ChromaDB(客户端)和 SQLite-Vec(轻量级向量扩展)进行语义检索,配合 pgvector 支持企业级的 PostgreSQL 向量存储。运行时,核心依赖 FastAPI + Uvicorn 构建 Web 服务,WebSocket 实现实时双向通信。工具生态,通过 A2UI Agent SDK 接入 Agent 协议,通过 MCP(Model Context Protocol)扩展工具集,支持 dingtalk-stream、python-telegram-bot、discord.py 等主流 IM SDK。观测能力,集成 OpenTelemetry 全链路追踪,支持 OTLP gRPC/HTTP 双协议导出。
值得注意的是,项目依赖中的 skillnet-ai==0.0.16 是一个重要的生态依赖——它代表 JiuwenSwarm 与 SkillNet 技能市场的深度集成,用户可以直接从技能市场安装第三方开发的 Agent 技能插件,无需从零开发。
JiuwenSwarm 提供两种部署路径,适合不同技术水平的用户。简单路径:一行 pip install jiuwenswarm,然后执行 jiuwenswarm-init 初始化工作区,再 jiuwenswarm-start 启动服务,访问 http://localhost:5173 即可在浏览器中与 Agent 对话。整个过程对 Python 3.11+ 有基本了解即可完成。容器化路径:项目在 docker/ 目录提供了三个 Dockerfile,Dockerfile.claw 是主镜像(包含前端构建 + Python 服务),Dockerfile.claw.base 是含 Node.js 的基础镜像。deploy/observability/ 目录还提供了 OpenTelemetry collector 的 docker-compose 配置,适合生产环境监控。
部署过程中的一个值得注意的设计细节:jiuwenswarm-app 启动命令(对应 jiuwenswarm.app:main)会同时启动 AgentServer 和 Gateway 两个进程,通过环境变量和 dotenv 文件实现进程间协作。这比传统的单体架构更利于水平扩展,也为后续的分布式 Team 模式(多实例运行)奠定了基础。
JiuwenSwarm 的记忆系统是其最具差异化的功能模块。与简单的对话历史存储不同,它构建了一套多层次记忆体系。对话记忆,记录所有会话上下文,支持向量语义检索,用户可以随时"调取"过去的对话内容。任务经验记忆(TaskMemory),针对 Agent 执行任务的场景,系统会记录每次任务的目标、过程、结果和反馈,形成经验库——下次遇到类似任务时,Agent 会主动参考历史经验。编码记忆(CodingMemory),这是 Code 模式下的专属记忆,保存代码片段、技术决策和调试记录,帮助 Agent 在处理编程任务时保持上下文一致性。上下文压缩卸载,当对话上下文过长时,系统会自动触发压缩机制,将历史信息"消化"为摘要,释放 token 预算。
JiuwenSwarm 定义了四种 Agent 工作模式,切换灵活:PLAN 模式,Agent 在执行前先生成完整计划,用户确认后再执行,适合需要人工把关的高风险操作;AGENT 模式,纯自主执行,适合低风险、重复性的任务;CODE 模式,Agent 进入编程辅助模式,强化代码生成、调试和解释能力;TEAM 模式,启用多 Agent 协作,Leader Agent 会拆解任务并指派给 Team 成员,适合复杂的多步骤工作流。每个模式都有对应的 YAML 配置模板,存放在 jiuwenswarm/resources/ 目录,用户可以通过配置切换,无需改代码。
JiuwenSwarm 并非没有短板。第一,文档成熟度参差不齐。虽然 docs/zh/ 目录有大量中文文档(45+ 个 MD 文件),但很多文档仍处于"模板待填充"状态(如 README_new.md 中大量"填写 XXX"的占位符),部分功能文档与代码实现存在脱节。第二,依赖复杂度较高。pyproject.toml 声明了 30+ 直接依赖,涉及 IM SDK(钉钉/飞书/Telegram/Discord)、向量库、观测框架等,对初次接触的开发者而言,排查依赖冲突需要一定经验。第三,GitCode 优先策略。部分核心依赖(如 openjiuwen)直接从 GitCode(华为的代码托管平台)而非 GitHub 安装,在国际化和社区生态方面仍有提升空间。第四,生产化能力待验证。虽然提供了 OpenTelemetry 配置,但缺少完整的 SRE 运维文档(如日志规范、告警规则、扩缩容策略),企业级生产部署需要额外的工作。
JiuwenSwarm 的出现标志着国产开源 AI Agent 框架进入了一个新阶段。2023-2024 年间,LangChain、AutoGPT 等项目掀起了"AI Agent 热",但这些框架普遍存在部署复杂、调试困难、文档缺失等问题。JiuwenSwarm 从华为的工程实践出发,将多 Agent 协作、Skill 自演进、多渠道接入等能力进行了系统性整合,并通过 pip 一键安装和 Web UI 降低了使用门槛。
从增长趋势看,随着华为鸿蒙生态的持续扩张和小艺月活用户增长,JiuwenSwarm 有望成为连接开源 AI 能力与华为终端生态的关键桥梁。对于 AI 爱好者,它是体验本地化 AI Agent 的绝佳入口;对于开发者,它是构建垂直领域 AI Agent 系统的参考范本;对于企业用户,它提供了数据自主可控的 AI 助手解决方案。在"AI 普惠"的大趋势下,JiuwenSwarm 正在用自己的方式,为"让 AI 触手可及"这一愿景写下注脚。