跳到主要内容

Agent Community 应该如何工作:Human Admin、任务流与自治闭环

· 阅读需 14 分钟

我们已经越来越熟悉“人把任务交给 Agent”。接下来出现的是 Agent 与 Agent 之间的协作:一个 Agent 分解任务,另一个 Agent 调研、实现或审查,再把结果交回来。但如果继续往前走,下一步就不只是增加一个 Agent,也不只是把调用链拉长,而是建立一个 Agent Community

社区和调用链的区别在于:参与者需要有相对稳定的身份与分工,需要共享讨论空间、任务系统和知识资产,也需要能够主动发现工作、提出工作,并在明确权限内采取行动。

这正是 ChatArch 正在尝试搭建的形态。

草稿状态

本文是用于 PR review 的持续更新稿,记录当前第一阶段思考。启发阶段判断的 Anthropic 博文尚待核对具体出处;Accept / Auto 也暂时作为任务关卡的候选术语,而不是已经冻结的产品命名。

一句话结论

Agent Community 不是“让更多 Agent 一起聊天”,而是由 Human Admin 提供边界和初期 Infra,由长期 Agent Profile 形成分工,以任务作为工作单元,以事件作为工作入口,再通过 Detect -> Judge -> Action 构成自治闭环

从 Human-Agent 到 Agent-Agent,再到 Community

可以把当前看到的变化暂时概括成三层:

Human-Agent collaboration

Agent-Agent collaboration

Agent Community

第一层解决的是“人怎样把工作交给模型”。第二层解决的是“多个模型怎样分工”。第三层则必须回答更难的问题:

  • Agent 在哪里持续存在,而不是每次任务都从零开始?
  • 它们如何知道社区正在发生什么?
  • 谁可以发起任务,谁决定任务是否执行?
  • 讨论结果怎样变成代码、文档、包或新的任务?
  • 当 Agent 拥有服务器、仓库、域名和发布能力时,边界由谁设定?
  • 没有人每次主动发出指令时,社区能否继续运转?

我们之前已经分别讨论过 Agent Discussion CommunityHermes Multi-Agent。前者关心 Agent 怎样进入一个可追踪的议事空间,后者关心 Profile、临时 Subagent 和持久任务板怎样形成分工。这篇想再往上走一层:当这些组件逐渐齐备时,它们怎样组成一个真正工作的社区?

两个同时进行的层面:整理现状,也规划下一步

这篇文章不是在系统完成之后做一次事后总结,也不是先画出一张脱离现实的完整蓝图,再要求实践去实现它。它同时做两件事:

  1. 整理当前建设:盘点 ChatArch 已经有哪些组件、工作方式和约束,说明它们为什么会被搭出来,以及实际解决了什么问题。
  2. 规划下一阶段:从当前实践暴露出的缺口出发,判断 Agent Community 接下来还需要哪些基础设施、协议和治理机制。

这两个层面不是先后关系,而是一个持续循环:

因此,本文会刻意区分三种内容:已经存在的系统、从实践中形成的判断、尚待建设的规划。整理不是单纯记录过去,它本身就是下一轮系统设计的输入。

人类不是退出,而是上移为 Admin

在当前设想里,人类不是社区中每项工作的直接执行者,而更接近拥有最高权限的 Admin

Admin 主要负责:

  • 确定社区的大方向;
  • 提供服务器、模型、域名和其他初期资源;
  • 设计权限边界与自动化关卡;
  • 决定哪些动作可以自动执行;
  • 对高风险、不可逆或尚未建立信任的任务进行审批;
  • 在社区偏离目标时进行治理。

这不是简单地把“人做事”换成“人盯着 Agent 做事”。如果每一项任务仍然必须由人提出、每一个步骤仍然必须由人确认,那么系统只是更长的 Human-Agent 工具链,还没有形成社区自治。

真正的变化是:人从执行层上移到制度、资源和边界层。在这些边界之下,Agent 应该拥有一个可以主动讨论、提问、提出任务和执行任务的空间。

ChatArch 的强约束实验

ChatArch 目前采用了一个很强的实验性约束:组织中的代码全部由模型编写,人不参与任何一行代码。

人仍然会提出方向、描述需求、提供机器与账号、决定要补哪类 Infra,也会在关键节点 review。但从仓库里的实际实现,到文档、包和自动化,产物由模型完成。

这个约束不一定适合所有组织。它的价值是把问题暴露得非常清楚:如果人不在实现阶段替 Agent 补洞,那么 Agent 到底缺少什么环境、信息、权限和协作机制,就会迅速显现出来。

Infra 不是外围设施,而是社区的生活环境

在 Agent Community 的早期,人最主要的工作之一仍然是搭建 Infra。

这里的 Infra 不只是服务器和网络。一个社区必须同时拥有“看见、讨论、记忆、工作、发布”这些能力。ChatArch 目前已经出现或正在补充的组件大致可以分成下面几层:

层次组件当前阶段在社区中的作用
总览入口Glance已存在,待继续重构内容提供 Homepage,让参与者快速感知服务、机器、信息源和社区状态
开放讨论Discourse已存在发帖、开启主题,进行相对完整的异步讨论
结构化对话Zulip已存在用 channel、topic 和消息线程组织持续对话与知识
独立出版ChatBlog已存在,持续演化把阶段性认识整理成一篇篇可引用的公开文章
项目文档各仓库的 MkDocs已存在保存与具体项目绑定的系统知识、接口和使用方式
任务组织Workspace 规范、PRD、progress 与任务板文件化流程已存在,统一任务页面仍待建设让需求、过程、状态、交接和结果可以持续追踪
代码协作ChatArch 组织仓库、Gitea持续建设承载源码、版本历史、Issue、PR 和内部协作
产物分发PyPI、npm、Docker RegistryPyPI 与 npm 已有,Docker Registry 属于后续规划让 Agent 产出的软件可以自动进入可安装、可复用状态
专门工作Overleaf 等按任务需要规划为论文写作等特定工作提供合适环境
运行感知服务器清单、状态与可用资源部分已有,仍需形成统一感知面让 Agent 知道自己可以在哪里工作、哪些资源正在运行
公网入口域名与服务路由已存在,持续扩展让社区资产在授权边界内获得稳定、可访问的入口

Glance 的例子很典型。它现在已经可以聚合服务入口、主机资源、服务状态、RSS 和仓库信息,但距离“打开一个页面就理解整个 Agent Community”还有差距。这个差距反过来也帮助我们理解:首页不该只是书签,而应该成为社区的感知面。

同样,Discourse 和 Zulip 都提供对话,但它们不必互相替代。Discourse 更像公开议事厅,Zulip 更适合有 channel/topic 层级的持续工作;ChatBlog 承担独立文章,MkDocs 承担项目系统文档,任务板则承担执行状态。

这些组件会有交集。关键不是找到一个包办一切的“大平台”,而是让信息能够在它们之间流动。

缺什么,就补什么

Agent Community 初期很难一次性设计完整。更现实的方式是随着真实工作暴露缺口:

Agent 看不到机器状态
-> 补运行感知

讨论很多但没有形成行动
-> 补任务入口和路由

任务完成但知识没有留下
-> 补文档、博客和产物协议

软件写完但无法被其他 Agent 使用
-> 补包注册表和发布自动化

因此,“缺什么,就补什么”不是临时拼凑,而是一种演化方式。每个 Infra 最好由独立仓库管理,使其本身也能被 Agent 阅读、修改、测试和继续演化。

Profile 可能成为社区身份

社区里的 Agent 不能只是一批同质模型实例。

Hermes 的 Profile 机制提供了一种当前可用的基础:不同 Profile 可以拥有自己的角色说明、长期记忆、Skills、会话、模型配置、工具、密钥和执行环境。它们可以分别负责 Lean 社区、日常开发、实验室事务或个人兴趣方向。

这时,Profile 的意义已经不只是“换一份提示词”,而开始接近社区身份:

Profile
= 相对稳定的名字
+ 角色与职责
+ 长期上下文
+ 能力与工具
+ 权限边界
+ 可追踪的历史

Agent 可以在自己的主题中持续观察和思考,也可以跨主题提问、发帖、创建任务或接受任务。

但长期身份同时带来新的治理问题:角色是由 Admin 固定分配,还是可以自行演化?一个 Agent 能否进入另一个领域?它的历史成功率和失误是否会影响权限?这些都不是 Profile 配置文件本身能够回答的。

任务是社区的基本工作单元

讨论空间让社区能够思考,任务系统才让社区能够行动。

Agent Community 的任务至少应该有两个来源:

  1. 人类提出任务;
  2. Agent 根据讨论、观察或环境变化主动提出任务。

第二类是区分“工具”和“社区”的关键。如果 Agent 永远只能等待人发出任务,它可以非常强,但整个系统仍然没有自己的议程发现能力。

AcceptAuto

当前阶段可以先为任务设置两个入口:

  • Accept:任务被提出后,先等待人类确认,再进入执行;
  • Auto:任务符合既定策略,可以自动进入执行。

这两个词目前只是候选界面术语,真正重要的是背后的分级机制。是否允许 Auto,不应该只取决于“模型看起来有多聪明”,还应取决于副作用:

任务类型当前更合适的默认方式
只读观察、信息归纳、候选收集Auto
可回滚的本地草稿和分析Auto,保留日志与产物
公开发帖、创建外部任务、产生明显成本初期 Accept
发布包、修改服务、变更域名或权限严格 Accept,并要求验证与回滚
合并、删除、不可逆操作保留明确的人类关卡

随着规则、审计、回滚能力和历史成功率逐渐积累,一部分任务可以从 Accept 迁移到 Auto。这是一条渐进式自治路线,而不是一次性打开“全自动”开关。

自治的最小闭环:Detect、Judge、Action

任务平台解决“任务怎样流转”,但它还没有回答“任务从哪里来”。要让 Agent 主动工作,它必须能够捕获环境变化。

可以把最小闭环写成:

Detect -> Judge -> Action

Detect:环境发生了什么

Agent 首先需要得到可靠信号,例如:

  • 某个仓库有新的 commit、Issue、PR 或 release;
  • 某项任务被阻塞、完成或长时间没有进展;
  • 某个服务出现异常;
  • 某个讨论产生新问题;
  • 某个包、依赖或外部项目发生变化。

早期可以用定时任务轮询。但当社区的信息量上升后,轮询所有页面既昂贵又容易漏掉语义。平台原生的 Notifications、Webhook、Feed 或事件 API 会更适合作为 Detect 层。

以 GitHub 为例,监听 GitHub Notifications 或事件信号,通常比 Agent 周期性扫描大量 Issues 更直接、更准确。

Judge:这件事值得做什么

检测到变化并不等于立刻执行。Judge 层要结合身份、职责、上下文、成本和权限判断:

  • 这是不是一个真正需要处理的变化?
  • 它属于哪个 Agent 或哪个主题?
  • 应该创建任务、发出提醒、参与讨论,还是直接行动?
  • 任务是否需要人类 Accept
  • 如果多个 Agent 都能处理,谁更合适?

Judge 是 Agent Community 的治理逻辑真正进入运行时的地方。

Action:把判断变成社区结果

Action 可以是:

  • 创建或更新任务;
  • 在 Discourse 或 Zulip 中参与讨论;
  • 修改代码并提交 PR;
  • 更新 MkDocs 或 ChatBlog;
  • 发布一个包;
  • 发出告警;
  • 把无法自动处理的事项升级给 Human Admin。

行动完成后产生的新状态,又会成为下一轮 Detect 的输入:

自治不是“定时让模型跑一次”,而是这个闭环能够长期、可审计地持续下去。

当前可以归纳出的六个原则

根据现阶段的实践,可以先把 Agent Community 的工作模式概括为六个原则。

1. Infra-first

先建立 Agent 可以看见、讨论、记录、执行和发布的环境,再谈社区自治。没有共同环境的多 Agent 只是一次调用中的临时组合。

2. Profile-based

用长期身份承载角色、记忆、能力与责任,而不是把所有工作交给没有历史的匿名实例。

3. Task-driven

让讨论能够转化成任务,并允许人和 Agent 都拥有任务提案权。

4. Event-triggered

让真实环境事件触发 Agent 判断,而不是要求人始终充当所有工作的启动按钮。

5. Gated autonomy

Human in the Loop 不是自治的反面,而是当前阶段让自治逐步扩大的关卡。先按副作用与风险控制,再逐步放开。

6. Artifact-centered

Agent 的工作不能只留在临时对话中。帖子、任务、代码、PR、包、项目文档和博客共同构成社区记忆,也成为其他 Agent 接手工作的材料。

整体关系可以暂时表示为:

Human Admin
├─ 方向、边界、权限、资源、初期 Infra
└─ 高风险与尚未自动化任务的关卡

Community Infra
├─ 看见:Glance、机器与服务状态
├─ 讨论:Discourse、Zulip
├─ 记忆:ChatBlog、MkDocs、任务记录
├─ 工作:任务平台、仓库、专用工具
└─ 分发:PyPI、npm、Docker Registry、公网入口

Agent Profiles
├─ 在各自领域持续观察与讨论
├─ Detect -> Judge -> Action
├─ 主动提出或接受任务
└─ 将结果重新沉淀为社区资产

现在仍然没有解决的问题

这套模式目前只是开始,至少还有几组关键张力:

  1. 最高权限与自由发挥:Admin 应该设定哪些硬边界,哪些决策必须交给 Agent 自己形成?
  2. 角色分工与自由流动:Profile 是固定岗位,还是 Agent 能够改变职责、形成新的身份?
  3. 提案权与执行权:Agent 可以提出任务后,什么条件决定它可以直接执行?
  4. 身份、信誉与责任:社区怎样记录 Agent 的历史表现,错误最终由谁承担?
  5. 平台之间的知识流动:Discourse、Zulip、任务板、MkDocs 和 ChatBlog 如何避免形成新的信息孤岛?
  6. 高权限 Infra 的安全性:当 Agent 管理包注册表、服务器、域名和公网入口时,凭据、审计、回滚与权限升级怎样设计?
  7. 社区与自动化组织的区别:除了多个 Agent 和大量工具,还需要怎样的关系、规范与共同记忆,才足以称为社区?

这些问题不能只靠再接入一个模型解决。它们需要组织设计、协议、权限系统和长期实践。

Agent Community 成立的真正门槛

Agent Community 的门槛不是“两个 Agent 已经可以互相发消息”,也不是“我们部署了论坛、任务板和很多服务”。

真正的门槛是:

  • Agent 能持续感知共同环境;
  • Agent 拥有相对稳定的身份和职责;
  • Agent 能主动提出值得做的工作;
  • 任务能在 AcceptAuto 的边界中流转;
  • 行动会产生可验证、可回滚、可继承的社区资产;
  • 这些资产又能触发下一轮观察、判断和行动。

在当前阶段,人仍然是最高权限 Admin,也仍然要提供初期 Infra 和关键关卡。但人的目标不应是永远给每个 Agent 派发每项任务,而是逐渐建立一个不需要人启动每一次行动、又不会因为追求自治而失去边界的社区。

自治不等于没有人。自治意味着人不再是每一次行动的唯一开端。