Swarms Logo
Product

AgentHQ 正式发布:一间让 AI 智能体真正干活的办公室

AgentHQ 把多智能体编排变成了一个你可以走进去的地方。雇佣真实的 Claude 和 Codex 智能体,给它们安排工位,分派任务,并实时看着每一次工具调用发生。本文介绍它背后的架构、智能体之间的四种协作方式、办公室主题,以及如何获取早期访问资格。AgentHQ 目前处于预测试版(pre-beta)阶段,可在 swarms.ai/agenthq 加入等待名单。

Kye Gomez13 min read
AgentHQ 正式发布:一间让 AI 智能体真正干活的办公室

多智能体系统有一个可见性问题。你写好编排代码,启动运行,然后就只能看着一整屏 JSON 在终端里滚过去。在这堆输出里,五个智能体正在做五件不同的事。哪一个卡住了?哪一个已经完成、现在闲着?哪一个刚刚执行了一条你没有预料到的 shell 命令?你只能事后翻日志才知道。

AgentHQ 目前处于预测试版(pre-beta)阶段,早期访问通过 swarms.ai/agenthq 的等待名单开放,它采用了另一种思路:给你的智能体一个可以待着的地方。每个智能体都是一间俯视视角像素风办公室里坐在工位上的员工。你雇佣它,给它起名字,选好模型,走到它的工位前把任务交给它。它会走到自己的椅子边坐下,然后开始工作。对话气泡和实时办公室动态会在过程中同步呈现它真实的工具调用与输出。

这间办公室就是界面。而在它之下,每一位员工都是拥有真实文件与 shell 权限的编码智能体,通过 Claude Agent SDKOpenAI Codex SDK 运行,在磁盘上自己的目录里工作。

它解决了哪些问题

对于运行智能体的人

编排过程是不可见的。 仪表盘告诉你某个智能体正在“运行中”,但它没法让你感受到那意味着什么。在 AgentHQ 里,状态是空间化且即时的:正在走向工位的智能体在思考,正在打字的在干活,站着不动的则随时可以接任务。你只要看一眼这个房间,就读懂了整个团队的状态。

智能体会遗忘。 大多数智能体框架把每个任务都当作一次全新的调用,于是你问的第四件事完全不记得前三件。在 AgentHQ 中,每个智能体都是一段持续运行、每次任务都会续接的对话,因此它记得你下过的每一条指令以及自己做过的每一件事,并且跨越服务器重启依然有效。

错误的代价要很久之后才看得到。 当输出是实时流式呈现的,一条糟糕的指令几秒钟内就会暴露出来,而一次按键就能停止运行。

对于构建智能体的人

设计团队名单才是最慢的环节。 决定一项工作需要多少智能体、各自负责什么,占据了大部分时间。AgentHQ 把团队名单变成一个你可以一次雇一个人慢慢扩张的实体,并提供了一个可以替你规划分工的管理者角色。

协作通常是你必须自己写的代码。 扇出、汇聚、流水线、交接:在大多数框架里,每一种都是需要你实现并长期维护的管道代码。AgentHQ 把四种协作模式做成了界面中的一等操作,详见下文。

影响范围难以推理。 这里每个智能体都拥有自己的工作目录、自己的对话,以及自己的沙箱设置。隔离是默认状态,而不是你需要记得补上的东西。

厂商锁定。 运行器层只是一个接口。Claude 智能体和 Codex 智能体坐在同一间办公室的工位上,处理同样的目标,并且可以互相交接结果,因此你可以让深度推理模型和快速廉价模型处理同一个问题,再并排比较两份报告。

架构

AgentHQ 在生产环境中以单个进程运行:一个 Node 服务器,通过同一个端口既提供游戏客户端的 HTTP 服务,也提供智能体 WebSocket。

┌─────────────────────┐        WebSocket         ┌──────────────────────┐
│  Client (Phaser 3)  │ ◄───── same-origin ────► │  Server (Node + ws)  │
│  office scene, HUD  │         /ws path         │  AgentManager        │
└─────────────────────┘                          │   ├─ Claude runner ──┼──► @anthropic-ai/claude-agent-sdk
                                                 │   └─ Codex runner ───┼──► @openai/codex-sdk
                                                 └──────────┬───────────┘
                                                            │ each agent works in
                                                            ▼
                                                  workspace/<name>-<id>/

客户端是一个 Phaser 3 游戏。它渲染办公室,为智能体在工位之间寻路,绘制对话气泡,并承载一个用于雇佣、派活和读取日志的 DOM HUD。它不持有任何权威状态:它只是服务器状态的一个视图,外加一个键盘。

服务器掌握全部真实状态。团队名单、每个智能体的日志、正在运行的 SDK 会话以及各项设置,全都存放在一个 AgentManager 中。客户端通过 WebSocket 连接,在连接时收到完整快照,之后随着状态变化接收增量消息。

提供方层只是一个很小的契约。一个运行器就是一个异步生成器,它接收任务以及运行上下文(工作目录、模型、系统提示词、中止信号、会话 id),并产出带类型的事件:

export type ProviderRunner = (
  task: string,
  ctx: RunContext,
) => AsyncGenerator<TaskEvent, void, void>;

export interface TaskEvent {
  kind: "text" | "tool" | "result" | "error";
  text: string;
}

办公室关于一个运行中智能体所知道的一切,都通过这个流抵达。接入第三个提供方,意味着实现这一个函数。

智能体是什么

每位员工都是服务器上的一条记录,每次变化都会持久化:

字段含义
nametitle你起的名字,以及随机分配的职位头衔(Code Gremlin、Bug Whisperer、Refactor Goblin 等)
providermodelClaude 还是 Codex,以及支撑这个智能体的具体模型
roleworker(执行任务)或 manager(规划并派发)
statusidlethinkingworkingdoneerror,并同步反映在游戏世界中
systemPrompt你在雇佣时设置的可选长期指令
sessionId承载该智能体记忆的提供方对话 id
deskIndexspriteaccent它坐在哪里、使用哪套精灵图、在界面中的配色
tasksDone累计完成任务数,管理者在决定把什么交给谁时会参考它

职位头衔并不只是装饰。每个头衔都带有一种语气,并会被写进系统提示词,因此 Docs Bard 汇报时带着几分文采,而 Loop Unroller 会逐条列举自己的步骤。个性伴随工作而存在,而不是取代工作。

记忆

这里没有向量库,也没有摘要文件。智能体的记忆就是它的那段对话。

每个任务都会向 Claude SDK 传入 resume: sessionId,或续接对应的 Codex 线程。SDK 在首次运行时回传会话 id,服务器把它存在智能体身上,之后的每个任务都续接同一段线程。由此带来三个特性:

  • 群发的指令同样会被记住。 发给整间办公室的指令,会像私下单独下达那样,落进每个智能体各自的对话里。
  • 记忆能挺过重启。 会话 id 与团队名单一同持久化,因此重启服务器不会丢失任何东西。
  • 停止任务不等于失忆。 被中止的运行仍然发生在那段对话里,下一个任务会从那里继续。

记忆同时也是私有的。智能体之间不会读取彼此的对话,这让上下文保持精简、成本可预测、行为可复现。智能体之间共享的一切,都通过下面这些显式通道流动。

智能体之间如何协作

这正是大多数多智能体系统要求你自己搭建的部分。AgentHQ 内置了四种模式,你在分派任务的那一刻做出选择。

1. 直接分派

走到工位前,输入任务,完成。一个老板,一个智能体,一段对话。这是基础用法,对大多数工作来说也是正确答案。由于智能体拥有记忆,第五个任务可以直接引用第一个任务,而不需要你重述任何内容。

2. 群发

一个任务,发给此刻所有空闲的智能体。整间办公室会聚成一次简短的碰头动画,随后每个智能体各自走回工位,在自己的工作目录里、用自己的模型,独立地开始同一份工作。

群发是获得多样化解法最省事的方式。把同一个研究问题同时交给一个 Claude Opus 智能体和一个 Codex 智能体,然后并排阅读两份报告。运行期间它们之间不共享任何东西,因此输出是真正独立的,而不是对最先发言者的附和。

3. 管理者派发

雇佣一个带管理者角色的智能体,它就不再自己执行任务。当你给管理者一个目标时,它收到的是一份规划简报:目标本身、此刻所有空闲工人的名单(含头衔、提供方、模型以及各自完成过多少任务),以及一条指令,要求它把目标拆成若干条自足的子任务,每条对应一位它希望调动的工人。它会回复一份计划:

[
  { "name": "Pixel", "task": "在样本语料上对三个候选解析器做基准测试,并汇报吞吐量。" },
  { "name": "Byte",  "task": "为我们最可能选定的解析器起草迁移指南。" }
]

服务器解析这份计划,把每个名字与名单匹配,并把每条子任务派给对应的工人,同时标注派发它的管理者以及它所服务的老板目标。没有被点到的工人保持空闲。如果没有人有空,管理者会返回一份空计划并如实说明。

有两个设计选择值得指出。管理者被明确要求不使用工具、也不自己动手做事,这让规划保持低成本和高速度。而子任务必须自足,因为每一条都在不同的工作目录中运行,彼此互不可见。

4. 交接

在分派任务时,你还可以指定由谁接收结果。第一个智能体一完成,服务器就为第二个智能体组装一条后续任务,内容包含第一个智能体被要求做什么、它的最终报告,以及它工作目录的路径,并授权对方读取那些文件,同时要求它在自己的目录里完成自己的工作。

这就是不写一行代码搭出流水线的方式:研究,起草,再评审。每个阶段是不同的智能体,甚至可以是不同的提供方,而每个阶段都在流水线的每一轮运行中保留着对自身角色的记忆。如果交接触发时接收方正忙,发送方会在自己的日志里说明这一点,而不是悄悄丢弃结果。

如何选择

模式拓扑智能体之间流动的内容最适合
直接分派一对一大多数工作,以及任何需要反复迭代的任务
群发一对多,并行就同一个问题比较不同模型或不同思路
管理者派发规划者对多人为每位工人量身写的子任务能干净拆分为独立部分的目标
交接链式上一位智能体的报告及其工作目录路径每个阶段都建立在上一阶段之上的流水线

还有第五个通道,它安静得多:你自己。走到任意一个智能体面前,和它聊。这段对话运行在它工作所用的同一段会话里,因此它会记得这次交谈,但它被明确告知不要使用工具、不要动文件。这是走廊里的闲聊,而不是命令,而且它往往是弄清楚某个智能体为何那样做的最快途径。

贯穿其中的原则是:智能体共享结果,而从不共享上下文。除非你主动转达,否则一个智能体对你说的任何话都不会泄漏进另一个智能体的对话。这让每个智能体的上下文窗口保持精简,让一次运行的成本可预测,也意味着一个行为异常的智能体无法污染办公室里的其他人。

主题

办公室提供三种外观,随时可以在设置中切换。布局逻辑完全一致,变化的是图块集、配色与氛围。

主题房间样貌
Classic木地板,暖色灯光,温馨的创业公司办公室
Lumon绿色地毯,白色墙面,共用桌区,荧光灯下的平静
Arasaka黑红配色的企业高塔,窗外是夜之城

主题的意义比听起来更大。你会盯着这块屏幕看上好几个小时,而你所注视的房间,决定了这份工作的基调。

这栋楼里还有什么

  • 员工名单列出每个人的配色、头衔与实时状态,同时也是跳转到任意工位的快捷菜单。
  • 组织架构图画出汇报关系:你在最上方,管理者居中,工人在下。
  • 办公室动态是所有智能体的文本、工具调用、结果与错误汇成的合并信息流,当你只想读某一个时,还有独立的单智能体日志面板。
  • 小地图在镜头跟随你移动时,让整层楼始终保持可见。
  • 闲逛模式允许智能体在任务之间起身走动,这听上去只是装饰,实际却是一眼看出谁有空的最快方式。
  • 停止与解雇。 中止正在运行的任务而不丢失该智能体的记忆,或者彻底移除一位员工并腾出工位。
  • 自带密钥。 在设置中粘贴 Anthropic 或 OpenAI 密钥,它的优先级高于服务器环境变量。已保存的密钥留在服务端,绝不会回传到浏览器。
  • 权限模式。 Claude 智能体可以无人值守运行,也可以切换到允许文件编辑但拒绝未经批准的 shell 命令的模式。Codex 智能体运行在 Codex CLI 沙箱中,提供只读、工作区可写与完全访问三种选项。

关于安全的一段说明

这些都是拥有真实工具权限的真实程序,因此有必要把话说清楚。在默认模式下,Claude 智能体会在其工作目录内无人值守地执行 shell 命令,而这个目录边界是由提示词约定的,并非操作系统层面的隔离。Codex 智能体则运行在 Codex CLI 自身强制执行的沙箱中。请把智能体的工作目录视为不可信的输出,不要把智能体指向机密数据,并在需要收紧时调整权限模式。一切都在发生的同时可见,这正是它的价值所在,但可见并不等同于受控。

获取早期访问

AgentHQ 目前处于预测试版(pre-beta)阶段,正在分阶段开放。想要尽早进入:

  1. swarms.ai/agenthq 报名加入等待名单。在预测试版阶段,这是唯一的入口。
  2. swarms.ai/newsletter 订阅 Swarms 通讯。通讯订阅者会最先收到早期访问邀请,并随新办公室、新主题与新协作模式的发布收到更新说明。

结语

智能体编排之所以难以推理,是因为它没有形态。进程、队列和日志都是真实的,但你没法看着它们。AgentHQ 的主张是:给多智能体系统一副身体,工位、房间、走动,以及一条你可以盯着看的信息流,会改变你注意到什么,以及你多快注意到它。

在像素画面之下,工程上的取舍都是常规而刻意的。一个服务器掌握全部状态。每个智能体是一段长期续接、彼此私有的对话。每个智能体在自己的目录里工作。提供方位于同一个很小的接口之后,因此 Claude 智能体与 Codex 智能体是对等的。协作是四种显式模式,而不是某种涌现出来的性质,并且其中每一种都在共享结果的同时保持上下文隔离。

这些换来的,是一个你可以持续扩张的团队。从一个智能体和一个任务开始。当你想要第二种意见时,加入第二个提供方。当目标不再装得进一个脑袋时,雇一位管理者。当工作分成若干阶段时,串起一次交接。办公室会慢慢坐满,而在每一步,你都能清楚看到谁在做什么。

AgentHQ 目前处于预测试版(pre-beta)阶段。在 swarms.ai/agenthq 加入等待名单,获取早期访问资格,雇佣你的第一位员工。

相关链接与资源

资源链接
AgentHQ 早期访问swarms.ai/agenthq
Swarms 通讯swarms.ai/newsletter
Claude Agent SDKdocs.anthropic.com
OpenAI Codex SDKgithub.com/openai/codex
Swarms 框架 GitHubgithub.com/kyegomez/swarms
文档docs.swarms.ai
Swarms on Xx.com/swarms_corp
Discord 社区discord.gg/VapjxpSyHC

有问题或反馈?欢迎加入我们的 Discord 社区,或查阅文档