☰
如何用看板管理AI Agent?Multica让26个智能体与人类共用一个团队
2026/9/26 6:26:33 网站建设 项目流程

我最近接手的一个项目里,同时跑了多个 AI Agent 做代码生成、文档整理和数据分析,结果最大的问题不是 Agent 能力不够,而是我根本盯不过来:这个 Agent 卡在哪个任务上了?那个是不是已经做完了一直在等我验收?上下文里说的"任务 A"到底对应需求列表里的哪一条?说实话,那种感觉就像一群很能干但各说各话的新员工,没有一个共同的工作台。

后来我把开源看板工具 Multica 引入到工作流里,让 26 个 AI Agent 和人类团队成员真正"共用一个团队"。这篇文章就把我实际部署、配置、使用 Multica 的完整过程写出来,包括为什么看板形态天然适合 Agent 协作、26 个 Agent 怎么分工不打架、哪些配置项值得折腾、以及在真实项目里踩过的坑。如果你也在搞 AI Agent 多智能体协作,或者正想把 Agent 引入团队但不知道怎么管理它们,这篇应该能帮到你。

1. 为什么"人和 26 个 AI Agent 共用一个团队"是个真问题

先说个反常识的结论:现在大家最热衷的"多 Agent 对话协作",也就是让几个 Agent 在同一个聊天窗口里你一言我一语地互相呼叫,其实是最难落地、也最不稳定的协作形态。因为它本质上是把"协作状态"放在对话流里,而对话流既没有明确的进度定义,也没有"谁负责什么"的边界感。真正在生产环境里跑过的团队都会发现,Agent 之间需要的是像人一样的项目管理结构,而不是无限长的消息串。

1.1 传统多 Agent 方案的协作断层

我之前用过的多 Agent 框架,典型流程是这样的:主 Agent 收到用户需求后,拆解成子任务,分发给工具 Agent,工具 Agent 返回结果,主 Agent 汇总。听起来很顺,但实际跑起来有几个让人抓狂的问题:

  • 进度不可见。你只能看到一轮轮的对话输出,但分不清哪些子任务完成了、哪些还在排队、哪些已经失败了正在重试。
  • 状态没有持久化。一旦主 Agent 的上下文窗口溢出,或者中途断连,所有子任务的状态全部丢失,必须从头再来。
  • 人工介入很难。你想在某一个环节插入人工审核——比如让 Agent 生成的代码先过一遍你的检查再往下走——在纯对话流里几乎无法优雅实现。
  • 责任归属模糊。多个 Agent 都自称"在做",但没人对最终交付负责。

这当中有个本质问题:对话流是面向"即时沟通"的形态,不是面向"长期协作"的形态。人跟人协作这么久,早就找到了更好的协作载体——共同的项目板和任务卡片。

1.2 看板为什么是人和 Agent 的"通用语言"

看板最核心的价值是它把复杂的协作关系压缩成了几个简单概念:列(状态)、卡片(工作项)、负责人(Assignee)、标签(类型/优先级)。这四个概念对人类团队有效,对 AI Agent 同样有效。

Agent 说白了就是一个能读状态、做决策、执行动作的程序。只要给它一个结构化的任务卡片,它就知道自己该干什么;只要给它看板的位置信息,它就知道当前进展到哪一步;只要给它明确的"负责人"字段,它就知道这是不是自己的活。更关键的是,看板天然支持人工参与——一张卡片的某个状态流转可以设定为"只有人类成员才能执行",这样 Agent 干活、人类审批,各司其职。

Multica 这个开源项目,本质上就是把这套逻辑做成了产品:让看板成为人和 Agent 共用的协作层,Agent 不再藏在对话框里,而是直接以"团队成员"的身份出现在看板上,有自己的任务、有自己的进度、有自己的交付物。

1.3 Multica 解决的核心场景

我用了之后,把它解决的核心场景归纳成三类:

  1. 多 Agent 任务编排:26 个 Agent 各司其职,不再靠"主 Agent 分发"这种脆弱模式,而是靠看板状态驱动——卡片进入某一列,对应的 Agent 自动认领并开始工作。
  2. 人在回路的审批节点:看板的列流转规则被配置成"需要人类成员移动到下一列",相当于人工质检关卡,Agent 做完活不能自己"一键发布",得有人确认。
  3. 团队级透明协作:整个团队(包括人类成员)都能看到所有 Agent 在干什么、卡在哪个环节、产出物在哪,彻底告别"Agent 黑盒"。

2. Multica 的核心设计:Agent 如何成为看板上的"真成员"

理解 Multica 的架构,关键是抓住一个词:成员模型。它没有把 Agent 当成一个后台插件,而是把每个 Agent 都作为看板空间里的一个成员(Member),享有和人类成员一样完整的对象模型——有自己的头像、Name、角色(Role)、可被指派、可执行看板动作。

2.1 "成员模型"背后的设计取舍

传统集成方案里,Agent 通常被设计成"外部调用者",通过 API 来读写画板。这种方案的问题在于:Agent 与看板是分离的,Agent 本身不被赋予身份,所有动作都归属于集成应用的 API Key,一旦出问题很难追溯是哪个 Agent 干的,审计和权限管理都是个大麻烦。

Multica 选择把 Agent 提升为"成员",这带来的好处非常明显:

  • 权限可精细管控。给每个 Agent 分配看板成员角色,比如"开发者"只能在看板中移动自己负责的卡片,"管理员"才能修改看板配置。
  • 审计链路完整。看板的活动记录里能看到"Agent-代码生成器 将卡片 #102 从 In Progress 移动到 Review",出了问题能精准回溯。
  • 协作体验统一。团队成员在看板上的话题评论里 @ 某个 Agent,它就能收到通知并回应,跟 @ 人类同事完全一致。

这对工程团队来说是很顺手的设计,因为你不需要单独学一套 Agent 管理语法——你只需要理解看板的权限体系就够了。

2.2 26 个 Agent 不打架,靠的是"角色 + 队列"双维度隔离

26 个 Agent 听起来很多,但真正要解决的是"怎么让它们不重复干活、不互相覆盖产出"。用 Multica 的阶段,我把 26 个 Agent 按两个维度组织起来了。

第一个维度是角色(Role)分组。每一个 Agent 在最上层绑定业务能力,例如:

Agent 名称角色负责的事务
code-writer开发者按卡片描述生成代码,自动提交 Pull Request
code-reviewer审查者审查代码质量,在卡片里输出审查意见
doc-writer文档工程师把完成的任务卡片更新成项目文档
>version: "3.8" services: postgres: image: postgres:15 restart: unless-stopped environment: POSTGRES_USER: multica POSTGRES_PASSWORD: multica_pass POSTGRES_DB: multica volumes: - pgdata:/var/lib/postgresql/data redis: image: redis:7 restart: unless-stopped multica: image: multica/multica:latest restart: unless-stopped ports: - "8080:8080" environment: DATABASE_URL: postgresql://multica:multica_pass@postgres:5432/multica REDIS_URL: redis://redis:6379 LLM_API_BASE: http://your-llm-server:8000/v1 LLM_API_KEY: ${LLM_API_KEY} LLM_MODEL: qwen-plus depends_on: - postgres - redis volumes: - "./config/agents.yaml:/app/config/agents.yaml:ro" volumes: pgdata:

启动命令:

docker compose up -d

启动后访问http://服务器IP:8080,先用管理员账号登录,创建团队空间。这里有一个小提醒:默认管理员密码一定在登录后立刻改掉,我就是因为偷懒没改,测试期间被外部扫描器扫到后台登录页尝试过爆破。别等出了问题再后悔。

3.2 Agent 编排配置:先规划,再写配置

我强烈建议:不要在界面上一个个去添加 Agent,而是先在本地把agents.yaml这个配置文件写好,再一次性导入。这样配置文件可以纳入 Git 管理,改起来也有版本记录。

这是我最常用的配置结构:

agents: - name: code-writer display_name: 代码生成 Agent role: developer llm_model: qwen-plus description: 根据卡片描述编写高质量代码,并提交 PR watch_list: - board: dev-board column: Ready for Dev actions: - type: pull_request target: github max_parallel_tasks: 2 - name: code-reviewer display_name: 代码审查 Agent role: reviewer llm_model: qwen-max description: 审查 PR 中的代码,输出审查意见到卡片评论 watch_list: - board: dev-board column: Review actions: - type: comment target: card max_parallel_tasks: 3

这块配置的核心是watch_list和actions。

watch_list决定这个 Agent 关注哪个看板的哪一列。当一张卡片进入该列,Agent 就会收到事件并开始认领执行。actions决定它干活的方式,可以是提交 PR、写评论、调用接口等。max_parallel_tasks是一个很实用的参数,控制 Agent 同时处理的卡片数上限,避免我一次性把 20 张卡片都拖进某一列时,单个 Agent 直接被打爆。

我实际跑下来,max_parallel_tasks建议保守一点。能力比较单一的 Agent 设 2-3 就行,数据处理类的可以设高一点,但要留意底层 LLM 的并发限制。之前我一次挪了 12 张卡片到开发列,code-writer 的并发默认是 8,结果模型服务端直接 429 限流,一堆任务卡在队列里。后来统一设成 2,虽然排队长了一些,但整个系统稳定多了。

3.3 LLM 服务接入:选 API 还是本地模型

Multica 本身不附带 LLM,它需要对接外部模型服务。做生产级部署时,我建议两步走。

第一步,先用云端大模型 API 跑通业务流程。这一步重点验证的是"流程逻辑",也就是 Agent 认领、干活、回写卡片这套链路是否顺畅。我基于自己的对比经验,综合效果和多语言能力选了通义千问的 qwen-plus 和 qwen-max,实际表现都不错——qwen-plus 对中文代码注释的理解比较到位,qwen-max 在复杂代码审查场景下更稳。你完全可以用自己习惯的模型,关键是看板流程跑起来。

第二步,当流程稳定以后,再考虑把推理切到本地或内网部署的模型服务。原因很简单:业务 API 毕竟有数据出域的问题,对很多团队来说,代码数据是不能传到外部服务的。Multica 支持标准的 OpenAI 兼容接口,意味着你自己用 vLLM、Ollama、SGLang 等起一个本地推理服务,Multica 直接就能对接,不需要改代码。

我后来在内网用 vLLM 部署了量化版模型,配置是这样的:

python -m vllm.entrypoints.openai.api_server \ --model /data/models/qwen2.5-14b-instruct-awq \ --served-model-name qwen-plus \ --port 8000 \ --gpu-memory-utilization 0.85 \ --max-model-len 32768

Multica 侧只需要把LLM_API_BASE指向http://内网地址:8000/v1即可。这里要注意--served-model-name必须和 Multica 配置里的LLM_MODEL保持一致,不然请求会 404。

4. 初始化团队看板:怎么把人机协作流真正跑起来

部署其实是最不费脑的一步,真正的功夫在于把看板的列结构、状态流转规则和 Agent 职责对应关系设计好。我折腾过几轮之后,总结出了一套推荐配置,可以当成模板直接用。

4.1 看板结构与状态流转配置

先决定看板长什么样。我给项目设计的是五列主流程,每一列都对应一类成员的工作状态:

看板列默认负责人进入条件离开动作
Backlog(待办)人类产品经理需求录入人工梳理后移动到下一列
Ready for Dev(待开发)code-writer人工移动或 Agent 拆解子任务生成code-writer 自动认领
In Review(审查中)code-reviewercode-writer 完成后自动移动code-reviewer 输出意见,人工确认
Done(完成)人类成员review 通过后移动归档与复盘
Blocked(阻塞)任何成员发现问题时移动问题解决后移回原列

关键设计的思路是:开发、审查这两个环节的流转可以全自动,但"进入 Ready for Dev"和"从 Review 到 Done"两个节点保留人工干预。这是我对"人在回路"的落地理解——自动化解决重复劳动,但关键决策点留给人。

在界面操作时,你需要为每个"看板列 → Agent 认领"建立一条规则。Multica 的规则配置里有一个"条件 + 动作"的机制,我建议至少配置四条:

  1. 卡片进入Ready for Dev列时,分配给code-writer,自动打上标签dev。
  2. 卡片进入Review列时,分配给code-reviewer,自动移除dev标签,加上review标签。
  3. code-reviewer在评论里标记approve时,看板卡片自动移动到Done列(这个属于高级玩法,通过动作回调触发)。
  4. 任何卡片超过 3 天未移动时,给值班人类成员发送提醒通知。

第 4 条很值得开,Agent 毕竟是程序,有时候会静默失败——比如模型响应超时、上下文过长报错,结果卡片卡在某一列两周都没人发现。有了超时提醒,至少能及时发现并手动介入。

4.2 Agent 认领机制的细粒度控制

很多人在配置时容易忽略一个问题:多个 Agent 同时盯着一列,卡片进列的时候到底归谁?这里面有几个常见原则:

  • 职责优先:同一列最多只有一个 Agent 负责自动认领。比如code-writer负责开发列,那就不要再放一个"全自动助手"也盯着同一列。
  • 轮询隔离:如果同一列确实需要多个 Agent(比如不同语言项目的开发 Agent),要按标签做分流——lang:python的开发卡片只分配给 Python Agent,lang:go的分配 Go Agent。

我当时的做法是在规则里加了标签过滤条件,只有卡片拥有匹配标签时,对应 Agent 才会认领。这个细节非常关键,不然会出现 Python Agent 抢了 Go 卡片,然后"一本正经"地用 Python 实现 Go 需求,那场面相当混乱。

4.3 从人工到 Agent:一个任务卡片的完整生命周期

为了让你感受这套系统的真实运转状态,我描述一个我实际跑通过的任务流程:

一张卡片从待办列开始,标题是"重构用户认证模块,支持多因素认证"。我在描述里写清楚验收标准:新增 TOTP 验证流程、兼容已有密码登录、单元测试覆盖率不低于 85%。然后我把卡片移动到Ready for Dev列。十几秒钟后,code-writer认领了这张卡片,看板上的 Assignee 变成了它的名字。

接下来的过程,我在卡片评论区能看到流水账式的更新:创建分支 → 修改 6 个文件 → 执行单测 → 提交 PR → 卡片自动移动到Review列。然后code-reviewer开始审查,输出意见,比如"建议把 TOTP 密钥存储改为加密后落库""工具函数缺少边界判断"。这些意见都挂在卡片评论里,我作为人类成员只需要看评论做决策。

如果审查通过,我手动把卡片拉到Done列,同时doc-writer会自动触发生成变更文档的任务,新卡片出现在文档队列里。整个过程里,我没有去跟任何 Agent 对话,只是移动卡片、审阅评论、做判断。这就是这套设计的精髓——Agent 是被结构化任务驱动的,而不是被对话驱动的。

5. 生产实践中的深水区:跑起来之后才知道的坑与对策

前面说得挺顺,但实际跑了两周之后,各种问题开始冒头。我总结为五类高发问题,每一个都是我真实踩过、并且花时间修复过的。把这些写出来,是希望你能跳过这些坑。

5.1 状态覆盖与冲突:多 Agent 同时操作同一张卡片

这是最高频的问题。当一个 Agent 在执行任务时,如果它把自己的处理意见写入卡片描述,而另一个 Agent(比如审查 Agent)同时也在修改描述,后写入的一方会直接覆盖前一方,丢失信息。

解决思路是:约定 Agent 之间互不修改同字段。开发 Agent 只允许写"开发记录"子区块,审查 Agent 只允许写"审查意见"子区块,互不碰对方的地盘。Multica 的自定义字段天然支持这种设计。如果字段不够用,就把评论区和附件区作为信息交换的主要通道,而不是直接改正文。总体原则是:卡片正文是"共识区",评论区和附件是"工作区"。

5.2 Agent 上下文过长导致的静默失败

一个 Agent 如果持续处理复杂的卡片,挂了很多评论和附件之后,它的上下文会越来越长,最终超出模型限制时报错。这个报错不会自动重试,因为 Multica 会把任务标记为失败,然后停在那里。如果没人盯,这个任务就永远卡住了。

我从配置层面做了三件事来缓解:

  1. 定期归档已完成卡片,把它们移出活跃看板,防止 Agent 检索到过多历史内容。
  2. 控制卡片评论的数量,让代码生成 Agent 把详细日志写到外部日志服务,只在评论里贴链接和结论,不在卡片里堆大段日志。
  3. 必要的时候,让 Agent 从模板生成新卡片而不是无限处理一张巨型卡片,把大任务物理拆开。

5.3 权限收敛问题:Agent 能做的事别给太多

早期为了方便,我把所有 Agent 都设成了管理员角色,结果有个 Agent 在跑一个"批量整理标签"的任务时,误改了看板规则配置,差点把整套自动化流程搞乱。教训很直接:Agent 的权限遵循最小够用原则。开发 Agent 只需要读写自己负责的卡片和队列,根本不需要管理员权限。Admin 权限只保留给人类管理员或少数需要管理看板配置的 Agent(而且这种 Agent 应该只有 1 个,并且加专门的人工审批规则)。

5.4 本地模型与 API 模型的效果差异

如果你在评估"用本地模型替代 API",请做好心理预期:效果大概率肉眼可见地下降,尤其在代码审查这种需要深度推理的场景。我实测下来,API 模型做代码审查能准确指出边界情况和安全风险,本地 14B 模型更多是"表面风格建议"。我的建议是混合架构——开发任务用本地模型(省钱、数据不出域),关键审查用 API 模型(效果好),两边通过 Multica 的看板规则天然隔离。数据敏感的环节进出都走你信任的服务,这个方案既保住了质量,也没把所有数据都送出去。

5.5 26 个 Agent 的动态扩缩容

26 个 Agent 不是"同时跑着 26 个线程",更像"26 个随时待命的角色"。真正决定资源消耗的是并发任务数,而不是 Agent 数量。我跑了一段时间后,把 Agent 数量调到了 18 个,压缩掉了一批低频角色(比如两个重复的文档 Agent 合并成一个);操作上,配合max_parallel_tasks把同时处理任务数控制在个位数,内存占用就基本平稳了。刚开始不用追求数量,先把 5-8 个核心 Agent 跑顺,再慢慢加。

6. 在真实项目里的长期体验与扩展想法

最后聊聊我跑了两个多月以后的一些体会。这个项目改变了我管理 AI 协作者的方式——以前我总是担心"Agent 到底在干什么",现在我只需要管理看板:哪些卡片在等 Agent 处理,哪些卡住了,哪些需要我人为介入,一目了然。我第一次觉得,AI 协作不是"人类的替代",而是真正"团队的一部分"。

如果你也想在自己的项目里复刻这套玩法,我建议按这个路径来:先从最核心的开发 Agent 和审查 Agent 两个角色开始,不需要一上来就铺 20 多个 Agent;跑通一个完整的任务迭代循环后,再慢慢加文档、测试、数据分析这些"辅助角色";有了稳定跑两周以上的经验,再去做规模化扩展——比如用 26 个 Agent 拆成一个完整的虚拟研发团队。这个节奏会顺畅很多。

另外还能再往前想一步:Multica 的看板模式其实可以延伸到更多场景。比如把每个 Agent 的前置任务做成"技能卡片",把知识沉淀做成"文档队列",甚至让 Agent 之间互相派活。每张卡片都是一个明确的、可交付的工作单元——这套结构化协作的心智模型,可能比具体的工具更值钱。我的经验是,把复杂协作"看板化",让人和 AI 都遵循同一套游戏规则,才是真正可落地的多智能体协作方式。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询