探索“三大实时代理”:一个语音控制的AI代理协调系统

你是否曾想象过,仅凭语音指令就能指挥多个AI助手协同工作?一个帮你写代码,一个帮你操作浏览器验证效果,而你只需要动动嘴皮子?这听起来像是科幻场景,但“Big Three Realtime Agents”项目正将这一想象变为现实。这是一个集成了OpenAI、Anthropic Claude和Google Gemini三大尖端AI的语音协调系统,旨在通过自然对话,无缝调度不同类型的AI代理完成复杂的数字化任务。本文将带你深入解析这一系统的架构、工作原理及实际应用,无论你是开发者、技术爱好者,还是对AI自动化感兴趣的读者,都能从中获得实用见解。

摘要

“Big Three Realtime Agents”是一个统一的多AI代理协调平台,其核心是一个基于OpenAI Realtime API的语音代理,它能理解用户指令,并动态调度两种功能型代理:Claude Code代理(负责软件开发和文件操作)与Gemini Browser代理(负责网页自动化与验证)。该系统要求Python 3.11+环境、相应的API密钥以及Playwright浏览器自动化工具,通过模块化工具调用和会话管理机制,实现了超过3000行代码的复杂协调逻辑,并将所有代理活动集中在用户可配置的工作目录(默认为apps/content-gen/)中执行。

系统核心:三大代理如何协同工作?

这个项目的精髓在于“协调”。它并非简单地将三个AI堆砌在一起,而是设计了一个清晰的指挥链。

1. 总指挥:OpenAI 实时语音代理
这是你与系统交互的主要接口。它通过OpenAI的Realtime API,持续处理你的语音或文本输入。它的核心职责是“理解”与“决策”:听懂你的意图,然后判断该创建哪种代理、下达什么指令、或查询哪个状态。你可以把它看作项目的“大脑”。

2. 执行者一:Claude Code 代理式编码器
当任务涉及编写代码、创建文件、分析项目结构时,大脑就会调用这位专家。它基于Anthropic的Claude模型,被设计成一个具有代理能力的程序员。它的活动范围被限定在一个指定的工作目录(Working Directory)内,通常是apps/content-gen/。在这里,它可以自由地读取、创建、修改后端和前端代码文件,所有操作都会被记录和追踪。

3. 执行者二:Gemini 浏览器代理
当任务需要与现实世界的网页交互时——例如:“去我的网站看看登录按钮还在不在”,或者“搜索最新的React文档”——大脑就会派遣这位代理。它利用Gemini的“计算机使用”(Computer Use)能力,通过Playwright控制的真实浏览器来导航、点击、填写表单并验证结果。它看到的和你看到的一样,并能基于视觉信息做出行动规划。

深入系统架构:从用户指令到任务完成

一张图胜过千言万语,项目的架构图清晰地揭示了数据流与控制流。整个过程可以概括为以下几个关键环节:

用户输入:一切始于你的语音或文本命令,例如:“创建一个新的Claude代理,让它列出工作目录下的所有文件。”

工具调用与任务分派:语音代理内置了一系列“工具”(Tools),这是它指挥其他代理的手段。主要工具包括:

  • create_agent(tool, type, agent_name):创建指定类型的新代理。
  • command_agent(agent_name, prompt):向已有代理发送具体指令。
  • list_agents():查看所有活跃代理及其状态。
  • browser_use(task, url):直接向浏览器下达任务。

代理执行与状态管理:每个被创建的代理都会获得一个唯一的会话ID,其状态(如历史记录、当前任务)会被保存在工作目录下的专用注册表文件中(例如agents/claude_code/agents/gemini/)。这意味着会话可以暂停和恢复,实现了跨交互的持久化工作。

结果返回与反馈:执行代理将操作结果(如代码文件、浏览器截图、执行日志)保存到指定位置(如output_logs/screenshots/),然后通过协调器将结果摘要反馈给你,形成一个完整的闭环。

亮点功能:多代理可观察性

管理一个代理已不简单,协调多个代理的活动更是需要清晰的视野。该项目集成了多代理可观察性功能,这是一个开箱即用的监控方案。

  • 如何工作:系统通过Claude Code Hooks,自动捕获每一个工具调用、文件操作和会话生命周期事件。这些事件被实时发送到一个独立的观察性服务器仪表盘。
  • 你能看到什么:打开http://localhost:3000,你将看到一个实时事件流,包括AI生成的任务摘要、API调用成本、完整的聊天记录等。这为调试和理解系统行为提供了前所未有的透明度。
  • 零配置启动:该功能已预先配置,只需克隆并运行观察性服务器,你的代理活动数据便会自动流入仪表盘,无需额外设置。

核心组件与项目结构

要真正掌握这个系统,需要了解它的物理构成。项目的主干是一个超过3000行代码的Python脚本(big_three_realtime_agents.py),但其内部是高度模块化的:

  • 第184-616行:定义了GeminiBrowserAgent类,封装了所有浏览器自动化逻辑。
  • 第617-1540行:定义了ClaudeCodeAgenticCoder类,包含了代码代理的所有能力和会话管理。
  • 第1541-2900行:定义了OpenAIRealtimeVoiceAgent类,这是整个系统的协调中枢。

项目目录结构也经过精心设计,隔离了不同 concerns:

big-3-super-agent/
├── apps/
│   ├── content-gen/           # 【核心】代理工作区
│   │   ├── agents/            # 代理会话注册表
│   │   ├── backend/           # 代理将在此编写后端代码
│   │   ├── frontend/          # 代理将在此编写前端代码
│   │   └── logs/              # 执行日志
│   └── realtime-poc/          # 协调器代码所在目录
│       ├── big_three_realtime_agents.py  # 主脚本
│       ├── prompts/           # 各代理的系统提示词
│       └── output_logs/       # 协调器日志和截图

这种结构确保了代理的工作产出井然有序,且易于管理。

如何开始:从零到一的设置指南

理论很精彩,实践更关键。以下是基于文件内容的完整设置步骤,请严格遵循:

前置条件

  1. 确保你的Python版本为3.11或更高
  2. 准备三个必需的API密钥:OpenAI(用于语音协调)、Anthropic(用于Claude)、Google Gemini(用于浏览器自动化)。

第一步:安装 uv 包管理器
项目推荐使用高性能的Python包管理器uv。在终端执行以下命令安装:

curl -LsSf https://astral.sh/uv/install.sh | sh

第二步:克隆项目并配置环境

  1. 进入项目协调器目录:cd apps/realtime-poc
  2. 复制环境变量模板并填写你的密钥:

    cp .env.sample .env
    

    用文本编辑器打开.env文件,至少填写以下三项:

    OPENAI_API_KEY=sk-你的真实密钥
    ANTHROPIC_API_KEY=sk-ant-你的真实密钥
    GEMINI_API_KEY=你的真实密钥
    

    你还可以设置ENGINEER_NAME(你的名字)和AGENT_WORKING_DIRECTORY(自定义代理工作目录,留空则使用默认的apps/content-gen)。

第三步:安装浏览器自动化工具
系统使用Playwright驱动真实浏览器。运行以下命令安装所需浏览器:

playwright install

第四步:运行系统
你可以根据需求选择不同模式启动:

  • 全功能语音模式(推荐体验):uv run big_three_realtime_agents.py --voice
  • 纯文本测试模式uv run big_three_realtime_agents.py --input text --output text
  • 快速自动任务模式uv run big_three_realtime_agents.py --prompt “创建一个Claude代理,列出工作目录文件”
  • 经济快速模式(使用小型模型):uv run big_three_realtime_agents.py --mini --voice

启动后,你就可以通过麦克风与系统对话,指挥你的AI团队了。

常见问题与故障排除(FAQ)

Q1: 启动时报错“OPENAI_API_KEY not set”,怎么办?
A: 这表示系统未读取到API密钥。请确保:1) 你已在apps/realtime-poc/目录下;2) 该目录中存在已正确填写的.env文件;3) 密钥格式正确无误。

Q2: 运行命令时提示“playwright not found”或浏览器相关错误。
A: 你需要完整执行playwright install命令。这条命令会下载Chromium等浏览器内核,对于Gemini代理的视觉操作是必需的。

Q3: 我创建的代理好像没有在我指定的目录里工作?
A: 代理的工作目录由环境变量AGENT_WORKING_DIRECTORY控制。请检查你的.env文件中该变量的值。如果为空,则默认为apps/content-gen/。确保你指定的路径是存在的。

Q4: 语音输入没有反应,如何调试?
A: 首先,确保你的操作系统已授予Python程序麦克风访问权限。其次,可以尝试先用--input text --output text文本模式测试核心代理功能是否正常,以排除语音硬件或权限问题。

项目的演进与未来

任何一个复杂的系统都有改进空间,该项目的README也诚实列出了其演进方向,这为我们理解其设计权衡和未来潜力提供了窗口:

已知的改进点

  • 代码重构:主协调脚本超过3000行,虽然已模块化,但未来可进一步拆分为更小、职责更单一的模块以提升可维护性。
  • 健壮性增强:需要更完善的API失败重试机制和错误恢复流程。
  • 隔离与安全:可以考虑对代理的文件系统操作进行更严格的沙箱隔离。
  • 可观测性深化:实现基于追踪ID的结构化日志,并细化每个代理/会话的API成本追踪。

未来的想象空间
项目展望了诸多激动人心的可能性,包括支持图像/视频的多模态输入、可共享的预制代理模板、支持自定义工具的插件系统、多人协同编码支持,乃至容器化云部署等。这些方向勾勒出一个更为强大、开放和易用的AI代理协作平台的蓝图。

结语:掌握面向未来的开发范式

“Big Three Realtime Agents”不仅仅是一个酷炫的技术演示。它代表了一种新兴的软件开发范式——代理式编码。在这种范式下,工程师的角色逐渐从直接的代码编写者,转变为AI能力的协调者、任务的定义者和质量的控制者。

通过深入了解这个项目的架构、设置和工作流程,你不仅学会了一个工具的使用,更是在亲身体验和思考:在AI能力日益强大的今天,我们如何更高效、更智能地组织这些能力来解决实际问题?这或许是每一个面向未来的技术从业者都需要探索的课题。


延伸学习
如果你想深入研究这种代理式编码的模式与最佳实践,可以参考项目作者推荐的 Tactical Agentic Coding 资源。你也可以在 IndyDevDan的YouTube频道 上观看该项目的实际运行演示,获得更直观的感受。