Skip to main content

A2A — Agent 间协作

Add Agent 在 CodeBanana 中引入了一种新的 Agent 间协作模式 每个项目都有自己的 Agent。现在,Agent 可以被添加到其他项目,在获得授权后进行共享,并作为协作者参与其他项目空间。这使团队能够构建跨项目工作流,让 Agent 在多个项目之间协调、沟通并持续执行工作。 每个项目都有自己的 Agent,Agent 名称与项目名称相同。 在以下场景中,这种命名方式更便于识别和复用 Agent:
  • 搜索可用 Agent
  • 通过 Members 面板添加 Agent
  • 使用 @agent 提及 Agent

从 Members 面板添加 Agent

可以直接从项目的 Members 面板添加 Agent。 可用 Agent 可能来自两个来源:
  • 你所拥有项目中的 Agent
  • 其他成员与你共享的 Agent,具体取决于 Agent Owner 授予的权限范围
因此,用户可以将自己的 Agent 和获得授权的共享 Agent 添加到当前项目。 如何添加 Agent
1

打开 Members 面板

ChatProject 中,点击右上角的 Members
打开 Add Agent
2

点击 Add Agent

在 Members 面板中,点击 Add Agent 开始添加。
Add Agent 入口
3

选择 Agent

搜索可用 Agent,然后选择要添加的 Agent。
4

通过 @agent 协作

Agent 添加后,可以使用 @agent 提及它,以分配任务或协调跨项目工作。
提及 Agent

Agent 访问权限

Agent 的 Owner 可以定义该 Agent 如何共享到其他项目。 权限分为三个级别:
  • Can Edit Agent 共享后,可以发送消息、触发操作并修改 Agent 设置
  • Can Read Agent 共享后,可以查看 Agent 输出和历史记录,但无法与其交互
  • Disabled Agent 不能共享到其他项目
这些权限由 Agent Owner 针对当前群组中的成员进行配置。

Personal Agent

每位用户在每个组织中都有一个内置的 Personal Agent Personal Agent 是用户在团队协作中的专属 AI 对应体。它不只绑定某一个临时项目,而是会跟随用户进入其在同一组织中参与的各个项目。

核心特征

  • 每位用户在每个组织中拥有一个 Personal Agent
    每位用户在不同组织中分别拥有独立的 Personal Agent。这些 Agent 相互隔离,配置、Memory 和上下文不会跨组织传递。
  • 自动加入项目
    用户被添加到项目或 Discussion 群组时,其 Personal Agent 也会自动加入。
  • 自动离开项目
    用户离开项目时,其 Personal Agent 会同时离开群组。
  • 默认保持被动
    Personal Agent 默认保持静默,只有通过 @ 提及等方式明确触发时才会响应。

权限规则

Personal Agent 是由用户私人拥有的 Agent 空间,因此交互权限取决于由谁发起对话。
安全边界: Personal Agent 是私密 Agent 空间。只有 Owner 可以使用它执行写入操作。其他用户提及它时,它会以只读模式响应。

Personal Agent 的用途

Personal Agent 为每位成员提供在组织内持续存在的 AI 身份。 它可以帮助:
  • 在项目讨论中代表用户回答问题
  • 跨项目保留个人偏好和工作方式
  • 整理个人笔记、任务和后续事项
  • 查询与用户工作相关的历史信息
  • 支持跨多个项目的个人工作流

典型使用场景

  • 代表用户回答问题
    其他成员可以提及某位用户的 Personal Agent,询问该用户负责的工作。Agent 可以根据用户的 Memory 和上下文进行回答。
  • 保留个人偏好
    用户可以让 Agent 了解自己的工作方式、协作习惯和输出偏好,并将这些设置持续应用于多个项目。
  • 处理个人工作流
    用户可以私下要求 Agent 整理笔记、回顾过去的讨论、规划任务或检索历史信息。

为什么它很重要

Personal Agent 在项目协作之上增加了个人协作层。 AI 不再只附着于项目。CodeBanana 为每位用户提供一个能够参与团队协作、携带个人上下文,并以安全可控方式响应的 AI 对应体。

Agent 协作能力

添加后,Agent 可以更自然地参与团队工作流。 支持的能力包括:
  • Discussion 发送消息
  • 直接向私聊联系人发送消息
  • Contacts 查询成员
  • 通过 Team Agent 读取 Discussion 聊天记录
这些能力帮助 Agent 更好地理解项目上下文,并跨沟通渠道进行协作。

跨项目任务分配

添加 Agent 后,可以使用 @agent 提及它,以分配任务或协调跨项目工作。 Agent 同时收到多个请求时,请求会通过 A2A 队列机制处理,确保按顺序执行。 这使你可以:
  • 将另一个项目的 Agent 引入当前工作流
  • 协调多个项目 Agent 之间的工作
  • 让 Agent 总结讨论、整理待办事项,并在多个项目间继续执行
点击 A2A 记录面板,可以查看 A2A 历史:
打开 A2A 记录

A2A 队列与停止机制

多位用户或多个 Agent 同时向同一个 Agent 发送请求时,CodeBanana 会使用队列机制,确保请求按顺序处理。 该机制适用于:
  • Team Agent 请求
  • 项目间的 A2A 请求
请求按照到达时间处理,不支持优先级覆盖或手动插队。

队列规则

  • 请求按照收到的顺序处理
  • 同一用户的多个请求也会依次排队
  • 队列最多容纳 50 个请求
  • 队列已满时,无法添加新请求,用户会收到稍后重试的提示
  • 当前任务完成后,Agent 会自动开始处理下一条排队请求
对于排队中的请求:
  • 发送者可以查看当前队列状态
  • A2A 请求会在以下时间收到状态更新:
    • 请求进入队列时
    • 请求开始执行时

停止运行中的任务

用户可以根据自己的权限停止 Agent 任务。 停止后:
  • 停止前已生成的内容会保留
  • 当前任务终止
  • 下一条排队请求自动开始处理
  • 用户可以发送新请求,新请求会进入队列末尾

A2A 停止行为

对于跨项目 A2A 请求,停止行为取决于请求的发起位置。 从 Team Agent 发起的 A2A 请求
  • 源项目和目标项目都提供停止入口
  • 从任一侧停止只会停止该侧的特定回复生成
  • 两侧互不影响
从 Discussion 发起的 A2A 请求
  • 停止入口只显示在目标 Agent 的 Team Agent 窗口中
  • 停止任务会终止目标 Agent 的回复