探索“三大实时代理”:一个语音控制的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/ # 协调器日志和截图
这种结构确保了代理的工作产出井然有序,且易于管理。
如何开始:从零到一的设置指南
理论很精彩,实践更关键。以下是基于文件内容的完整设置步骤,请严格遵循:
前置条件:
-
确保你的Python版本为3.11或更高。 -
准备三个必需的API密钥:OpenAI(用于语音协调)、Anthropic(用于Claude)、Google Gemini(用于浏览器自动化)。
第一步:安装 uv 包管理器
项目推荐使用高性能的Python包管理器uv。在终端执行以下命令安装:
curl -LsSf https://astral.sh/uv/install.sh | sh
第二步:克隆项目并配置环境
-
进入项目协调器目录: cd apps/realtime-poc -
复制环境变量模板并填写你的密钥: 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频道 上观看该项目的实际运行演示,获得更直观的感受。
