如何在普通聊天中运行AI Agent交响乐团
当你从代码编辑器中的单个AI助手转向多个自主Agent时,你会很快遇到一个控制问题。Agent开始生成后台进程、消耗token,当出现问题时,它们会在Docker深处悄悄破坏环境。当你需要给它们访问API密钥或GitHub权限时,将个人token交给一个能自行生成并执行代码的脚本,坦白说,这让人压力山大。
最近我发现了AgentScope团队的AgentTeams项目。这是一个运行时平台,基于Matrix协议将神经网络Agent打包成统一的团队环境。与抽象的后台守护进程不同,你得到的是一个普通的即时通讯工具,你、管理者Agent和专门的工作者Agent都在同一个聊天室中。
架构理念是什么
AgentTeams并没有尝试自己开发运行LLM的引擎,也没有写另一个prompt封装层。这个项目充当的是容器编排器的角色。整个系统围绕Manager-Workers概念构建:
- 管理者接收你的高层任务,将其分解为子任务,并分配给特定的工作者。
- 工作者在隔离环境中执行任务。
- Matrix即时通讯作为所有消息的统一总线。
最终,你能看到Agent之间所有的通信内容。如果某个工作者偏离了方向,你只需在聊天中给它发消息并实时调整方向,无需重启整个链条。
无需访问真实密钥
大多数自主Agent的主要问题是安全性。对于Agent在GitHub上创建Pull Request或调用第三方API,通常需要将相应的密钥直接传入环境变量。
AgentTeams开发者通过内置的Higress AI网关解决了这个问题。交互流程如下:
- 工作者只收到一个临时消费者token。
- 所有对LLM API、GitHub或MCP服务器的外部请求都通过网关。
- 真实的API密钥和个人token存储在网关内部,永远不会到达工作者容器。
即使工作者内的代码试图读取环境变量并发送出去,它也只能找到本地网关访问token。
同一房间中的不同运行时
该平台的一个有趣特性是能够将不同类型的Agent组合在同一个房间中。目前支持三种运行时:
- 基于Node.js的OpenClaw,用于工具调用和任务协调。
- 基于Python的QwenPaw,专注于轻量级任务和浏览器自动化。
- Hermes,用于自主代码编写,具有隔离的终端沙箱环境。
这提供了相当不错的灵活性。你可以将一个确定性的OpenClaw Agent指定为团队领导,并连接Hermes用于编写和调试代码。Agent通过内置的@提及和共享的MinIO文件存储进行通信。文件系统大大节省了上下文窗口:Agent不在消息文本中直接传递大段代码或日志,而是提供存储中文件的链接。
内部结构是怎样的
从架构上看,AgentTeams作为一组互联服务交付:
- Controller负责资源生命周期和声明式配置。
- Higress AI网关管理流量并存储授权数据。
- Tuwunel和Element Web提供Matrix服务器和Web客户端功能。
- MinIO存储Agent生成的产物。
在本地模式下运行该平台只需Docker即可。最低系统要求为2个CPU核心和4GB内存。如果你计划同时启动3-4个工作进程,最好准备8GB或更多内存。
安装只需一条命令即可启动:
bash <(curl -sSL https://raw.githubusercontent.com/agentscope-ai/AgentTeams/main/install/agentteams-install.sh)
脚本会要求你输入所选LLM提供商的密钥(任何OpenAI兼容的端点都可以),配置本地服务,并提供Element Web的访问链接。
对于更正式的部署,项目提供了官方支持的Helm chart用于Kubernetes。在部署到K8s时,你可以通过CRD风格定义工作者和团队。
在启动controller之前,Helm会自动运行预检:向指定的模型发送一个简短的测试请求,如果API密钥无效或限额耗尽,则立即中止安装。
使用感受与结论
与无尽的控制台脚本相比,这个项目看起来很新鲜。使用经典即时通讯而不是又一个Web控制台的概念出人意料地方便,尤其是考虑到你可以从任何移动客户端(如FluffyChat或Element Mobile)连接Matrix。
缺点包括硬件要求:在本地机器上运行一堆容器以及MinIO和网关会很快耗尽内存。如果你只是需要一个在IDE中提供提示的简单助手,AgentTeams显然是大材小用。
但对于想要构建完整的多AI开发者流水线的团队,同时又不想泄露API密钥或失去对正在发生的事的控制权,这个工具绝对值得一试。
相关项目