2026年6月30日 2 分钟阅读

多个 AI 编程 Agent 在同一项目协作总是冲突?用 gojaja 给每个 Agent 分配角色

tinyash 0 条评论

你是否有过这样的经历:打开 Cursor 写前端、Claude Code 写后端、Codex CLI 当 PM,三个 AI Agent 同时在一个代码库上工作,结果它们互相覆盖文件、做出冲突的决策,而且没有任何沟通记录?

这不是你的问题——这是目前多 Agent 协作的普遍痛点。每个 AI 编程工具都有出色的单机编码能力,但它们之间缺乏最基础的协调机制。今天要介绍的开源工具 gojaja(中文名「过家家」)就是专门解决这个问题的:一个纯本地的文件系统协调层,让多个 AI Agent 窗口在同一项目上有序协作。

问题:多 Agent 协作的三个典型困境

在深入 gojaja 之前,先聊聊多 Agent 协作中常见的三类问题:

  1. 任务冲突:前端 Agent 和后端 Agent 同时修改同一个接口文件,Git 冲突成了日常
  2. 信息孤岛:Agent A 已经确认了一个架构决策,Agent B 不知道,从零开始重新讨论
  3. 没有审计:谁在什么时候做了什么决定?出了问题完全回溯不了

现有的解决方案要么太重(LangGraph、AutoGen、CrewAI 需要部署服务端),要么太轻(纯靠 prompt 约定,没有强制机制)。gojaja 走的是中间路线——文件即协议,所有通信都沉淀为仓库中的普通文件,可以 git diff、可以回溯、不需要额外启动服务。

gojaja 是什么

gojaja 是一个 TypeScript CLI 工具(MIT 许可证),它的核心理念非常简单:在项目的 .gojaja/ 目录下,用文件系统模拟一个团队协作空间。每个 Agent 窗口被分配一个「角色」(PM、Tech Lead、Backend 等),通过 CLI 命令进行任务分配、状态更新和决策沟通。

它的独特之处在于不依赖任何后端服务或数据库。所有状态就是文件——.gojaja/ 下的 YAML 和 Markdown 文件,可以正常提交到 Git,也可以在团队间共享。

快速上手

安装

npm install -g gojaja

验证安装:

gojaja --version
gojaja help

如果不想全局安装,也可以用 npx gojaja@latest watch 临时运行。

初始化一个项目

在你的项目根目录中:

cd /path/to/your-project
gojaja init

这会在项目下创建 .gojaja/ 目录,包含基本的配置文件和状态目录。

从 Dashboard 开始(推荐)

最友好的方式是用 gojaja watch 启动一个本地 Dashboard:

gojaja watch    # 会在 http://127.0.0.1:7421 打开一个浏览器界面

在浏览器中,你可以通过点击完成全部设置:

  1. Initialize:点击一个大按钮初始化项目
  2. Create roles:创建角色(PM、Backend、TL、QA 等)
  3. Fill contracts:编辑 .gojaja/roles/.md 填充角色描述和职责
  4. Install runtime:选择你的 Agent 类型(Cursor、Claude Code、Codex 等),安装运行时规则
  5. Activate:为每个 Agent 窗口生成激活代码片段,粘贴到对应的 Agent 中

从命令行设置

如果你更喜欢终端,也可以纯命令行操作:

gojaja role create PM "Product Manager" --owns "state/project_state.md,state/task_board.yaml"
gojaja role create TL "Tech Lead" --owns "state/architecture.md"
gojaja role create Backend "Backend Engineer"
gojaja role create QA "Quality Assurance"

gojaja prompt --target agents --write

gojaja activate PM --target agents
gojaja activate Backend --target agents

每个 activate 命令会输出一段需要粘贴到对应 Agent 窗口的代码片段。Agent 通过这段代码「认领」自己的角色。

日常协作流程

设置好之后,Agent 们就可以开始协作工作了。以下是一个典型的流程:

PM 分配任务

在 PM 的 Agent 窗口中:

gojaja task new --title "构建登录页面" --owner Backend --priority P1 --deliverable 'file:apps/auth/login.ts::实现'

这条命令创建一个任务,指定给 Backend 角色,并定义交付物。

Backend 接收任务

在 Backend 的 Agent 窗口中:

gojaja plan    # 查看分配给自己的任务

输出会显示待办任务、当前状态和阻塞项。Agent 可以自己更新任务状态:

gojaja task status T-0001 InProgress
gojaja task status T-0001 Review
gojaja worklog --message "登录页面完成,已提交 PR"

跨角色决策(RFC 机制)

当某个决策涉及多个角色时,Agent 可以发起 RFC(Request for Comments):

gojaja rfc new switch-to-postgres \
  --title "从 SQLite 迁移到 PostgreSQL" \
  --options "A:立即迁移(4周),B:先做 WAL 调优" \
  --voters "Backend,DevOps" \
  --deciders "TL"

其他角色的 Agent 可以看到 RFC,发表评论,最终由指定的决策者关闭 RFC:

gojaja rfc comment RFC-0001 --option A --rationale "迁移方案成熟,风险可控"
gojaja rfc decide RFC-0001 --option A --rationale "决议:Q3 启动迁移"

查看整体进度

任何时候,可以通过 Dashboard 查看所有 Agent 的实时状态:

gojaja watch

Dashboard 会展示:

  • 每个角色的当前状态(在线/空闲/停滞)
  • 任务看板(Backlog → InProgress → Review → Done)
  • 开放的 RFC 讨论
  • 活动事件流

如果某个角色被标记为红色 stalled,说明它忘记在完成任务后调用 gojaja wait 来释放执行权,需要你提醒一下。

gojaja 的设计哲学

gojaja 的架构有几个值得关注的设计决策:

文件即状态

一切都是文件。.gojaja/ 目录下的内容分为两部分:

  • 合约文件(git 跟踪):角色定义、配置、项目状态——这些是团队协作的”宪法”,应该版本控制
  • 运行时状态(不跟踪):任务看板、事件、会话锁——这些在 ~/.gojaja/projects// 下,不污染 Git

两个关键的安全机制

  1. 写入权限控制:每个角色通过 --owns 指定自己能写的文件范围,越权写入会被拒绝(exit code 9 FORBIDDEN)
  2. 主持人模式:Dashboard 绑定到 127.0.0.1 时有完整操作权限,如果通过 --host 0.0.0.0 共享到局域网,自动进入只读模式——任何人都可以围观,但没人能通过 Dashboard 发送指令

不用角色的你能做什么

Shell 中没有 GOJAJA_SESSION 时,你作为项目所有者(SYSTEM)可以:创建/删除角色、分配任务、打开 RFC、评论 RFC、发送消息给特定角色。但你不能投票、不能发广播(worklog)、不能关闭 RFC——这些需要先通过 gojaja claim 认领一个角色。

适用场景

gojaja 最适合以下场景:

  • 同时开多个 Agent 窗口做同一个项目:这是最直接的用例——Cursor 写前端、Claude Code 写后端、Codex 做 QA
  • 想给 Agent 明确分工边界:通过 --owns--must-not-edit 限制每个 Agent 的写入范围
  • 需要决策记录和审计:所有 RFC、任务变更、工作日志都在文件系统中,永久可查
  • 不接受外部依赖:纯本地,不需要服务端、不需要数据库、不需要网络

不适合的场景:单 Agent 工作流、跨机器协作(gojaja 目前只支持单机)、已经有 LangGraph/CrewAI 等托管平台的团队。

结语

gojaja 解决的是一个很具体但很真实的痛点:多个 AI 编程 Agent 在同一项目上如何有序协作。它用最朴素的方式——文件系统——实现了任务分配、角色管理、决策讨论和审计回溯,没有引入任何外部依赖。

如果你正在同时使用多个 AI 编码工具,或者想尝试「多 Agent 协作开发」的工作流,gojaja 值得一试。用 npm install -g gojaja 安装,跑 gojaja watch 启动 Dashboard,几分钟就能搭建一个多 Agent 协作团队。

💡 gojaja 需要 Node.js 20+,目前只支持 Linux 和 macOS。安装后记得先用 gojaja init 初始化项目,再通过 Dashboard 创建角色和激活 Agent。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。