架构技术评论

体验了下这个1万多星的开源Cowork: Eigent

最早看到这个项目是因为一个转发,后来使用的感觉是这个项目有样子了但还很粗糙。团队可能说服不了自己继续投入时间,不得不提前开源了。(仅仅个人猜测)
Image

人工智能正从单一、庞大的语言模型,迈向由无数专业化、协同工作的 AI 智能体(Agent)构成的全新生态。这些智能体被设计成能够自主感知、决策和执行任务的“专才”,像人类团队一样协作处理复杂问题。在这股浪潮中,CAMEL (https://www.camel-ai.org/) 和 Eigent (https://www.eigent.ai/) 两个项目脱颖而出,描绘了一条从前沿学术研究到成熟商业应用的清晰路径。CAMEL 作为一个开创性的研究框架,致力于探索智能体社会的“缩放定律”;而Eigent则是一个将多智能体协作理念产品化的开源桌面应用。本文将深入分析这两个项目,解读它们如何协同作用,推动多智能体系统从实验室走向我们的桌面。


CAMEL:奠定智能体社会学的科学基石

CAMEL 项目的核心使命是 “寻找智能体的缩放定律(Finding the Scaling Laws of Agents)”,即理解当智能体的数量、能力和交互复杂度增加时,整个系统会涌现出怎样的行为和能力。其核心思想源于 2023 年在顶级 AI 会议 NeurIPS 上发表的同名论文 (https://proceedings.neurips.cc/paper_files/paper/2023/hash/a3621ee907def47c1b952ade25c67698-Abstract-Conference.html),该论文至今已被引用超过 1170 次,足见其学术分量。

设计哲学与核心创新

CAMEL 的架构设计围绕四大核心原则:可进化性 (Evolvability)、可扩展性 (Scalability)、有状态性 (Statefulness) 和 **代码即提示 (Code-as-Prompt)**。这些原则记录在其 GitHub 仓库 (https://github.com/camel-ai/camel) 中,旨在构建一个能够自我完善、大规模协作且具备长期记忆的动态智能体社会。

其最核心的创新是 **“角色扮演框架” (Role-Playing Framework)**。该框架通过一个“初始提示”,为两个或多个 AI 智能体设定明确的角色和任务(如“程序员”和“产品经理”),让它们在无需人类干预的情况下,通过对话自主协作完成任务。这种方法巧妙地解决了自主合作中的任务对齐和持续对话两大难题。更重要的是,这个过程产生了海量的、高质量的 合成数据,这些数据已被证明对于训练和微调其他语言模型非常有价值,例如 Teknium 的 OpenHermes 和微软的 Phi 模型都曾使用 CAMEL 生成的数据集。

此外,CAMEL 还通过 OASIS (https://oasis.camel-ai.org/) 项目模拟高达一百万个智能体的社会行为,用于研究信息传播等复杂社会现象,并构建了一个拥有超过 100 名研究人员的开放社区,支持几乎所有主流模型平台,为多智能体系统的发展铺平了道路。


Eigent:将 AI 工作团队带入现实

如果说 CAMEL 是理论家,那么Eigent就是应用工程师。Eigent将自己定位为 “开源协作桌面应用” (https://www.eigent.ai/),其核心目标是将 CAMEL 框架中强大的多智能体协作能力,封装成一个普通用户都能轻松使用的生产力工具。它强调 “本地优先(Local-First)” 和 “100% 开源”,在关注数据隐私和技术透明度的今天极具吸引力。

架构与关键技术

Eigent的核心架构是 “多智能体工作团队(Multi-Agent Workforce)”,这是 CAMEL “角色扮演”框架的直接应用,其细节可以在Eigent的 GitHub 页面 (https://github.com/eigent-ai/eigent) 找到。用户向一个由多个专业智能体(如 Developer Agent、Browser Agent、Document Agent)组成的“团队”下达指令,Eigent会根据任务复杂性,动态地将任务分解并激活相应的智能体并行工作。

应用领域
Eigent
扮演的角色
示例任务
软件开发
自动化开发团队
根据需求文档编写代码、运行测试、修复 Bug。
市场研究
虚拟分析师团队
抓取竞品信息、分析市场趋势、生成研究报告。
内容创作
AI 内容工作室
搜集素材、撰写初稿、生成配图、进行 SEO 优化。

要让智能体在现实世界中发挥作用,必须让它们能够使用各种“工具”。Eigent深度集成了 模型上下文协议(Model Context Protocol, MCP) (https://modelcontextprotocol.io/),这是一个由 Anthropic 等公司推出的开放标准,旨在为 AI 应用连接外部系统(如 API、数据库)提供统一接口。这极大地扩展了智能体的能力边界。同时,Eigent还引入了 “人在环路(Human-in-the-Loop)” 机制,在关键决策点请求人类用户进行澄清或确认,确保了 AI 的自主性始终处于人类的监督和控制之下。


协同与展望

CAMEL 与Eigent的关系是典型的 “科研驱动创新,应用反哺科研” 的共生模式。CAMEL 的理论突破为Eigent提供新功能,而Eigent在真实应用中遇到的问题和收集的数据,又为 CAMEL 的研究提供了宝贵的验证场景。与 LangChain、AutoGen 等更偏向于“框架”的项目相比,CAMEL-Eigent组合提供了一个从理论到实践的完整闭环。

展望未来,我们可以预见智能体将拥有更深度的自主性与进化能力,协作模式也将演变为更复杂的谈判和博弈。虽然Eigent目前以桌面应用为主,但其架构完全有能力向云端企业级平台扩展。

小总结

CAMEL 和Eigent的故事揭示了 AI 发展的一个核心趋势:通过模拟和构建复杂的智能体社会,来解锁超越单一模型能力的集体智能。CAMEL 以其严谨的学术探索奠定了理论基础,而Eigent则以其出色的工程实践将这一愿景带入了我们的工作和生活。它们正在重新定义我们与 AI 的交互方式——我们不再仅仅是使用者,更是 AI 工作团队的“管理者”和“指挥官”。一个由无数 AI 智能体赋能的、更高效、更智能的未来正加速到来。

然后我下载体验了下:

安装包很大
Image
需要登录
Image
登录后的样子
Image
开始一个任务:
Image

执行的很慢,至少过了几分钟,执行中:

Image

最后完成

Image

左右滑动中间agent卡片区域时,UI会有闪动的bug

结果还算勉强。问题是有几个空文件夹:Archives和_Inbox Projects都是。

Image

总的来说,虽然这个项目有1万多star了。。但是感觉UI设计过于复杂

Image

目前看有4个agent:

Image

下面这里也可以切换不同的agent,但是总感觉UI设计的奇怪。可能刚使用,不知道哪个按钮是哪个页面,有的按钮点了之后还是相同页面。

Image
Image

看了下模型是gpt5.1,应该模型不是大问题。

Image

mcp支持如下,不知道团队还会继续开发吗?

Image

总之,感觉这个软件(至少官网下载的版本)还略有粗糙,虽然整体流程已经勉强跑通。

又跑了个任务,虽然右侧Document Agent给出了结果,但左侧还是没提取到document agent的输出。

Image

不管怎样,这个项目目前看还在开发,作者还很积极的开发和处理问题

https://github.com/eigent-ai/eigent

Image
Image

又看了作者,年轻有为 https://github.com/Wendong-Fan

Image
Image

代码上看了看,安装包大基本就是Electron

Image

使用的库都很全,非常值得学习。radix-ui , xyflow , cmdk 等等。

生产依赖 (dependencies)

1. Electron 相关

这些依赖用于支持 Electron 应用的核心功能,包括代码签名、日志记录和自动更新。

依赖包
版本
功能说明
@electron/notarize
^2.5.0
macOS 应用公证工具,用于 Apple 代码签名和公证流程
electron-log
^5.4.0
Electron 应用的日志记录库,支持文件和控制台输出
electron-updater
^6.7.3
Electron 应用自动更新功能,支持增量更新和后台下载

2. UI 组件库 (Radix UI)

Radix UI 是一套无样式的可访问性优先的 React 组件库,提供了完整的交互组件基础。

依赖包
版本
功能说明
@radix-ui/react-accordion
^1.2.11
手风琴折叠面板组件
@radix-ui/react-dialog
^1.1.14
模态对话框组件
@radix-ui/react-dropdown-menu
^2.1.15
下拉菜单组件
@radix-ui/react-label
^2.1.7
表单标签组件
@radix-ui/react-popover
^1.1.13
弹出层组件
@radix-ui/react-progress
^1.1.7
进度条组件
@radix-ui/react-select
^2.2.5
选择器组件
@radix-ui/react-separator
^1.1.7
分隔线组件
@radix-ui/react-slot
^1.2.3
插槽组件,用于组件组合
@radix-ui/react-switch
^1.2.4
开关切换组件
@radix-ui/react-tabs
^1.1.11
标签页组件
@radix-ui/react-toggle
^1.1.9
切换按钮组件
@radix-ui/react-toggle-group
^1.1.10
切换按钮组组件
@radix-ui/react-tooltip
^1.2.7
工具提示组件

3. 代码编辑器 (Monaco Editor)

Monaco Editor 是 VS Code 使用的代码编辑器,提供了强大的代码编辑功能。

依赖包
版本
功能说明
@monaco-editor/loader
^1.5.0
Monaco Editor 的加载器
@monaco-editor/react
^4.7.0
Monaco Editor 的 React 封装组件
monaco-editor
^0.52.2
Monaco Editor 核心库

4. 终端模拟器 (Xterm.js)

Xterm.js 是一个功能完整的终端模拟器,支持在浏览器中运行终端应用。

依赖包
版本
功能说明
@xterm/xterm
^5.5.0
Xterm.js 核心库
@xterm/addon-fit
^0.10.0
自动调整终端大小的插件
@xterm/addon-web-links
^0.11.0
识别和点击终端中的链接插件

5. 动画库

这些库用于创建流畅的动画效果和交互体验。

依赖包
版本
功能说明
framer-motion
^12.17.0
React 动画库,提供声明式动画 API
gsap
^3.13.0
GreenSock 动画平台,专业级动画库
@gsap/react
^2.1.2
GSAP 的 React 集成
motion
^12.23.24
轻量级动画库
lottie-web
^5.13.0
Lottie 动画播放器,支持 After Effects 导出的动画

6. 3D 图形库

用于创建和渲染 3D 图形和视觉效果。

依赖包
版本
功能说明
three
^0.180.0
Three.js 3D 图形库
postprocessing
^6.37.8
Three.js 后期处理效果库

7. 流程图和可视化

用于创建交互式流程图和节点编辑器。

依赖包
版本
功能说明
@xyflow/react
^12.6.4
React Flow 的新版本,用于构建节点式编辑器和流程图

8. 轮播组件

用于创建图片或内容轮播效果。

依赖包
版本
功能说明
embla-carousel-react
^8.6.0
Embla Carousel 的 React 封装
embla-carousel-autoplay
^8.6.0
自动播放插件

9. 路由和导航

用于管理应用的页面路由和导航。

依赖包
版本
功能说明
react-router-dom
^7.6.0
React 路由库,用于单页应用导航

10. 状态管理

用于管理应用的全局状态。

依赖包
版本
功能说明
zustand
^5.0.4
轻量级状态管理库,基于 hooks

11. 样式和主题

用于样式处理、主题切换和 CSS 工具。

依赖包
版本
功能说明
@fontsource/inter
^5.2.5
Inter 字体包
class-variance-authority
^0.7.1
CSS 类变体管理工具,用于组件样式变体
clsx
^2.1.1
条件类名合并工具
tailwind-merge
^3.3.0
Tailwind CSS 类名合并工具,避免冲突
tailwindcss-animate
^1.0.7
Tailwind CSS 动画扩展
tw-animate-css
^1.2.9
Tailwind CSS 动画工具
next-themes
^0.4.6
主题切换库(支持暗色模式)

12. 命令面板

用于创建命令面板和快捷键交互。

依赖包
版本
功能说明
cmdk
^1.1.1
Command + K 风格的命令面板组件

13. 通知和提示

用于显示通知消息和提示。

依赖包
版本
功能说明
sonner
^2.0.6
优雅的 Toast 通知组件

14. Markdown 渲染

用于渲染和处理 Markdown 内容。

依赖包
版本
功能说明
react-markdown
^10.1.0
React Markdown 渲染组件
remark-gfm
^4.0.1
GitHub Flavored Markdown 支持插件

15. 布局组件

用于创建可调整大小的面板布局。

依赖包
版本
功能说明
react-resizable-panels
^3.0.4
可调整大小的面板组件

16. 网络请求

用于发起 HTTP 请求和处理服务器推送事件。

依赖包
版本
功能说明
axios
^1.9.0
HTTP 客户端库
@microsoft/fetch-event-source
^2.0.1
Server-Sent Events (SSE) 客户端

17. 文件处理

用于处理各种文件格式的压缩、解压和解析。

依赖包
版本
功能说明
adm-zip
^0.5.16
ZIP 文件处理库
archiver
^7.0.1
多格式压缩文件创建库
unzipper
^0.12.3
ZIP 文件解压库
tar
^7.4.3
TAR 归档文件处理库
csv-parser
^3.2.0
CSV 文件解析器
papaparse
^5.5.3
强大的 CSV 解析库
mammoth
^1.9.1
Word 文档 (.docx) 转换为 HTML
xml2js
^0.6.2
XML 转 JSON 解析器

18. 工具库

通用工具函数和辅助库。

依赖包
版本
功能说明
lodash-es
^4.17.21
Lodash 工具库的 ES 模块版本
mime
^4.1.0
MIME 类型检测和处理
tree-kill
^1.2.2
跨平台杀死进程树工具
dompurify
^3.2.7
HTML 内容净化库,防止 XSS 攻击

19. 自定义包

项目内部的自定义包。

依赖包
版本
功能说明
@stackframe/react
file:package/@stackframe/react
本地自定义 React 组件包