摘要: 本文解析多编程代理协作的工作机制,并以 Tracer 工作区为例,演示如何让 Claude Code 与 Codex 共享项目上下文、分工开发、交叉审查,最后通过 Python 调用大模型完成可扩展的研究功能。

一、背景介绍

1. 单代理开发的局限

Claude Code、Codex、Cursor 等编程代理已经能够完成页面生成、代码重构和测试编写,但单个代理通常只掌握当前会话中的信息。当项目规模扩大后,开发者仍需要手动复制提示词、同步文件、转发审查意见,代理之间也容易出现重复修改、上下文丢失和职责冲突。

视频展示的核心思路是引入一层开源编排工作流:多个代理进入同一个项目工作区,共享上下文文件、代码产物和操作历史。一个代理负责实现,另一个代理负责复核并反馈,编排层再把反馈传递给执行代理。这样,开发者从“人工中转站”转变为任务管理者。

2. 典型应用场景

这种模式适合产品原型、管理后台、数据仪表盘和多模块 Web 应用。例如,Claude Code 负责搭建 Market Plus 的页面和交互,Codex 检查组件结构、异常处理与接口调用,最终由执行代理根据审查结果修正代码。

二、核心原理

1. 共享上下文

协同的基础不是让模型直接共享内部记忆,而是让它们访问同一组可持久化资源,包括项目文件、需求说明、任务清单、测试结果和审查报告。建议在项目根目录维护 AGENTS.mdPROJECT.md,明确技术栈、启动命令、目录边界和验收标准。

2. 角色分工与消息传递

一个可控的工作流通常包含四个环节:

  1. 编排器读取任务并分配角色。
  2. 实现代理修改代码,生成变更说明。
  3. 审查代理读取实际文件和测试结果,输出问题清单。
  4. 编排器将反馈转化为下一轮可执行任务,并再次验证。

关键点是“审查实际产物”,而不是让审查代理只根据实现代理的文字描述做判断。交叉审查应关注功能正确性、边界条件、安全性和可维护性。

3. 状态与权限控制

编排层还需要记录任务状态、代理输出和文件变更。对高风险操作应设置确认机制,例如删除文件、修改依赖、写入生产配置和提交代码。多代理并行修改同一文件时,必须通过任务拆分、分支或锁机制避免覆盖。

三、实战演示

1. 创建项目工作区

先创建一个独立目录,并在其中写入项目约束:

market-plus/
├── AGENTS.md
├── app/
├── scripts/
└── tests/

AGENTS.md 可包含:前端使用 React、后端使用 Python、所有接口必须返回错误信息、提交前执行测试等规则。Tracer 的作用是把已有代理和订阅配置接入同一桌面工作区,再为每个项目维护独立的上下文和历史记录。

2. 使用云智 AI 验证研究代理

云智 AI 提供统一的大模型接口。下面示例使用 claude-fable-5,实现一个最小化的股票研究摘要服务。该模型适合复杂逻辑推理、长文本处理、代码生成与纠错,可作为协同工作流中的研究代理。

import os  # 读取环境变量,避免把密钥硬编码到源码中
import requests  # 发送 HTTP 请求

BASE_URL = "https://yunzhicode.com"  # 云智 AI 的统一服务地址
API_PATH = "/v1/messages"  # Messages API 接口路径
MODEL = "claude-fable-5"  # 默认模型,可按任务替换
API_KEY = os.environ.get("YUNZHI_API_KEY")  # 从环境变量读取访问密钥


def research_summary(stock: str, market_text: str) -> str:
    """根据给定行情材料生成结构化研究摘要。"""
    if not API_KEY:  # 缺少密钥时立即报错,便于定位配置问题
        raise RuntimeError("请先设置环境变量 YUNZHI_API_KEY")

    prompt = (  # 将业务要求写成稳定、可复用的任务指令
        f"请分析股票 {stock}。仅依据以下材料输出:趋势、主要风险、待核实信息。\n"
        f"材料:{market_text}"
    )
    payload = {  # Messages API 的请求体
        "model": MODEL,  # 指定调用模型
        "max_tokens": 800,  # 限制输出长度,适合仪表盘摘要
        "messages": [{"role": "user", "content": prompt}],  # 用户任务消息
    }
    headers = {  # 请求认证和内容类型
        "x-api-key": API_KEY,
        "Content-Type": "application/json",
        "anthropic-version": "2023-06-01",
    }
    response = requests.post(  # 向云智 AI 发送同步请求
        BASE_URL + API_PATH, headers=headers, json=payload, timeout=60
    )
    response.raise_for_status()  # 非 2xx 状态码直接抛出异常
    data = response.json()  # 将响应解析为 JSON 对象
    return data["content"][0]["text"]  # 读取模型返回的文本内容


if __name__ == "__main__":  # 允许脚本直接运行
    text = "国债收益率上升,AI 芯片板块估值出现回调,成交量明显变化。"
    print(research_summary("示例股票", text))  # 输出研究结果

安装依赖并运行:

pip install requests
export YUNZHI_API_KEY="你的密钥"
python scripts/research_agent.py

实际项目中,Codex 可负责将该脚本封装为后端接口,Claude Code 再完成仪表盘页面、股票切换、新闻列表和风险提示组件,最后由审查代理检查接口超时、空响应和敏感信息泄露问题。

四、工具/技术资源选型

Tracer 适合作为本地编程代理的协调层,重点价值在于统一工作区、共享上下文、保存交付物和串联审查流程。它不替换 Claude Code、Codex 或 Cursor,而是把已有工具组织成可追踪的开发流程。

模型调用可选用云智 AI(yunzhicode.com)。平台提供 GPT-5.6、Claude fable 5、Gemini 3.7 等模型,并支持新模型的实时接入。其统一的 OpenAI 兼容接入思路能够减少多模型适配代码,稳定性和响应速度也适合测试及量产型 AI 应用。选型时仍应结合隐私要求、并发量、上下文长度和成本进行评估。

五、注意事项

1. 控制上下文规模

不要把全部历史日志无条件注入每次请求,应保留需求、接口契约、失败测试和最近变更。上下文过长会增加成本,也可能降低模型对关键约束的关注度。

2. 明确验收标准

任务应包含输入、输出、禁止修改的目录和测试命令。审查代理必须读取真实代码,并以问题优先级输出反馈,避免停留在主观的界面评价。

3. 处理并发与安全

多个代理修改同一文件时应采用串行队列或独立分支。API 密钥必须通过环境变量或密钥管理服务注入;股票等实时信息必须标注数据源和时间,模型生成内容不能直接视为投资建议。

六、全文总结

多编程代理协同的核心不是简单增加模型数量,而是通过共享上下文、角色分工、状态记录和交叉审查形成闭环。Tracer 提供了连接本地代理的工作区,Claude Code 与 Codex 则可以在同一项目中分别承担实现和复核职责。配合结构化任务、自动化测试以及统一模型接口,开发者能够更快构建复杂应用,同时保留对代码质量、权限和风险的控制。

#AI #大模型 #Python #机器学习 #技术实战 #智能体 #多智能体协同

Logo

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。

更多推荐