Trace 生成式优化框架

利用执行轨迹和多种反馈,端到端优化 AI 智能体的提示词、代码与可训练参数。

Star 数
★ 762
最近更新
1 年前
License
MIT
主语言
Python

30 秒速览

运行形态
代码库 / SDK开发框架
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Python >= 3.9LiteLLM 或 AutoGen v0.2LLM API 凭证克隆时可能需要 Git Large File StorageShell / 命令行网络访问本地文件系统
典型场景
正在开发带有多个提示词和 Python 处理步骤的智能体团队,希望依据端到端任务反馈联合优化提示词与代码。
不适合
  • 需要稳定生产级 API 的团队,当前仅为研究用 beta 版
  • 无法接受把提示与数据发送给外部 LLM 服务的团队

这个 Agent 能做什么,适合哪些场景?

Trace 是一个采用类似自动微分机制的 Python 库,用于通过数值奖励、自然语言评价、损失值或编译错误等反馈训练 AI 系统。开发者使用 node 声明计算图节点,以 bundle 包装可优化的 Python 函数,并可用 model 组织智能体。运行工作流时,库会捕获相关操作的执行轨迹,再由 OptoPrime、OPRO 或 TextGrad 沿计算图处理反馈并更新可训练内容。它采用类似 PyTorch 的 zero_feedback()、backward() 和 step() 接口,可同时覆盖提示词与实际 Python 函数。Trace 以本地 Python 库形式运行,通过 LiteLLM 或兼容的 AutoGen v0.2 后端调用模型 API;它并不是托管式智能体服务。项目属于研究用途的 beta 版本,适合能够评估生成结果并保留人工监督的团队。

用户先用 opto.trace.node(..., trainable=True) 标记可修改数据,用 @bundle(trainable=True) 包装可优化函数,或以 @trace.model 定义包含提示词、LLM 调用和普通 Python 逻辑的智能体。Trace 自动记录节点运算和被包装函数,形成计算图;工作流可以通过 trace.operators.call_llm 调用模型,并产出正常返回值或在失败时提供 trace.ExecutionError 中的异常节点。应用将预测结果与目标比较,再把文本反馈、奖励、损失或编译错误交给优化器。OptoPrime、OPRO 或 TextGrad 随后通过 zero_feedback()、backward(...) 和 step() 更新可训练节点与函数。内置 backward(..., visualize=True) 还能显示计算图。

  1. 正在开发带有多个提示词和 Python 处理步骤的智能体团队,希望依据端到端任务反馈联合优化提示词与代码。
  2. 研究人员复现实验,评估 OptoPrime、OPRO 和 TextGrad 在同一 Trace 计算图接口下的表现。
  3. NLP 工程师处理 BigBench-Hard 一类任务,需要把提示词优化与程序逻辑优化放在同一流程中。
  4. 多智能体研究者在 VirtualHome 环境中研究协作工作流,并希望利用完整执行轨迹提供优化信号。
  5. 机器人研究人员在 MetaWorld 一类环境中,根据完整交互轨迹优化机械臂控制代码。
  6. 编程系统研究者希望将编译错误、性能评价或其他通用反馈用于迭代改写可训练函数。

如何安装或部署这个 Agent?

需要 Python 3.9 或更高版本。标准安装命令为 pip install trace-opt,默认 LLM 后端为 LiteLLM。若需要兼容的 AutoGen 后端,使用 pip install trace-opt[autogen]。开发安装方式是克隆仓库后在仓库目录运行 pip install -e .;若 Git 无法完成克隆,可能还需安装 Git LFS。

如何使用这个 Agent?

使用 LiteLLM 时,先按提供商设置凭证,例如 export OPENAI_API_KEY="<key>" 或 export ANTHROPIC_API_KEY="<key>",再以 export TRACE_LITELLM_MODEL='gpt-4o' 选择默认模型。最小流程是导入 from opto.trace import node,创建 x = node(1, trainable=True),执行普通 Python 运算,然后调用 z.backward("maximize z", visualize=True, print_limit=25)。优化函数时,以 @bundle(trainable=True) 包装函数,创建 optimizer = OptoPrime(function.parameters()),每轮运行函数并生成反馈,再依次执行 optimizer.zero_feedback()、optimizer.backward(result, feedback) 和 optimizer.step()。如需切换后端,在导入 opto 前设置 TRACE_DEFAULT_LLM_BACKEND 为 LiteLLM 或 AutoGen;AutoGen 方式还可通过工作目录中的 OAI_CONFIG_LIST 文件或同名环境变量配置模型与 API 密钥。

这个 Agent 有哪些优点和局限?

优点
  • 不仅优化字符串提示词,还能把实际可执行的 Python 函数纳入计算图并联合更新。
  • 接受数值奖励、损失、自然语言反馈和编译错误等多种反馈,不要求传统可微损失。
  • 提供接近 PyTorch 的节点、反向传播和优化器接口,并支持计算图可视化。
  • 同一框架内可切换 OptoPrime、OPRO 和 TextGrad;文档称 OptoPrime 比 TextGrad 快约 2–3 倍。
  • 通过 LiteLLM 或 AutoGen v0.2 支持 OpenAI 与 Anthropic 模型配置,并提供智能体、NLP、多智能体和机器人教程。
局限
  • 项目明确定位为研究用途的 beta 版本,功能和接口未来可能变化,不宜直接假定生产稳定性。
  • 优化过程依赖外部 LLM API、有效凭证和网络访问,因此会产生提供商费用,并受模型可用性与行为影响。
  • OptoPrime 会把完整计算图放入上下文;文档指出超过数百个操作的大图可能遇到上下文长度问题。
  • TextGrad 虽较少受上下文长度限制,但文档指出它在大型计算图上可能非常慢。
  • 效果会随工作流、数据集、查询和响应而变化,生成结果需要人工监督,不适用于错误输出可能造成严重伤害的高度监管领域。
  • AutoGen 支持限定在 v0.2 兼容路径,采用该后端的团队需要维护额外安装项和 OAI_CONFIG_LIST 配置。

这个 Agent 与同类方案有什么区别?

README 将 Trace 与 OPRO 和 TextGrad 对照。OPRO 没有计算图、可执行函数或配套库的概念,因此速度快且可处理大图;TextGrad 支持计算图和库,但不把代码表示为函数,速度也更慢。Trace 同时支持计算图、实际 Python 函数和库接口,并可运行 OPRO、OptoPrime 与 TextGrad;其代价是 OptoPrime 将完整计算图放入模型上下文,大图可能触及长度限制。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Trace 生成式优化框架 当前 67 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 762 1 年前 Python OpenAI API · Claude API
Weco 自动研究优化器 63 · 存在缺口 命令行工具免费 + 模型费 ★ 117 2 天前 Python Codex · Claude Code · OpenAI API
aiXplain SDK 29 · 缺口较多 代码库 / SDK免费版 + 付费版 ★ 59 9 天前 Python —
OpenAI Agents SDK 64 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 30k 2 天前 Python OpenAI API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
67/ 100 五分制 3.4 / 5
信任安全 12/29
可靠稳定 8/14
适用触发 16/18
规范维护 16/18
有效结果 10/13
证据核验 5/8
查看各维度的扣分理由
信任安全12 / 29 · 2.1/5

仓库清楚归属于 Microsoft,包含正式许可证、贡献渠道和专门的安全漏洞报告流程,因此来源归属证据充分。工作流仅授予 contents: read,也体现了局部的最小权限意识;但产品本身没有权限模型或沙箱边界。README 说明会调用 LiteLLM 或 AutoGen、从环境变量或配置文件读取 API 密钥,并明确 trainable 参数会被优化器修改,因此主要外部效果可见;但没有完整说明提示词、执行轨迹及其他数据具体会发送给哪些提供商、如何保留或保护。人类监督仅作为免责声明提出,没有逐次确认机制。依赖安全证据限于一个固定版本的可选 AutoGen 依赖、安全报告政策和普通 CI;未见锁文件、依赖审计或散列固定。未提供优化变更的撤销、检查点或回滚机制。

可靠稳定8 / 14 · 2.9/5

README 的 node、bundle、优化器和异常处理叙述与所示测试代码基本一致,且测试运行器能用非零状态报告失败。ExecutionError 示例和测试脚本提供了基本失败信息路径,但没有系统化错误分类、恢复策略或面向用户的诊断指南。安装声明简洁,不过 pyproject 将核心依赖、版本及 Python 要求设为动态字段,而相应定义未出现在证据中;因此无法从给定文件确认完整依赖集合或离线可解析性。未因缺少执行结果而扣分。

适用触发16 / 18 · 4.4/5

材料明确面向 Python 开发者和研究用户,并覆盖代码优化、提示词优化、多智能体、NLP、机器人控制及自适应智能体等不同场景。trainable 标记、装饰器以及显式 optimizer.step() 使触发边界较精确。README 也充分披露研究用途、Beta 状态、大图上下文限制、模型版本问题、高风险领域限制和人工监督要求。环境适配包括 Python 3.9 以上、pip、开发安装、Git LFS、LiteLLM/AutoGen 和多模型配置,但主要围绕单一 Python/环境变量工作流,部署、网络和平台差异说明有限。

规范维护16 / 18 · 4.4/5

README 结构完整,包含设置、快速入门、教程、优化器、API 配置、评估、限制、贡献和隐私入口;示例覆盖从基础图操作到完整智能体训练。MIT 文本与包元数据一致,维护渠道、安全响应、CLA 和组织归属都很明确。版本变化可从日期更新、Beta 分类及 v0.1.3.5 说明中部分追踪,但没有正式 CHANGELOG、迁移指南或发布兼容策略。命名整体稳定,但同时出现 Trace、trace-opt、opto、TraceGraph 等多个层级名称,且免责声明承认功能未来可能改变。没有专门 FAQ,不过教程和问题报告说明在普通使用中提供了较好的替代。

有效结果10 / 13 · 3.8/5

PyTorch 风格接口、可视化、丰富反馈、可替换优化器以及代码与提示词联合优化,对构建和调试生成式优化流程具有明显增量价值;示例输出能直接用于训练循环。成本方面,文档指出 OptoPrime 相对 TextGrad 的速度主张、上下文长度问题和模型可靠性差异,但没有系统披露 API 调用量、令牌成本、延迟或资源预算。输出质量依赖 LLM、反馈函数和工作流,且文档明确要求用户自行验证,因此可用性良好但不能视为生产级保证。

证据核验5 / 8 · 3.1/5

核心方法、比较和评估主张关联到论文、教程、图表及仓库测试,代码示例也能与公开接口相互对应。README、pyproject、CI、测试、安全政策和许可证在身份、安装与基本开发流程上形成交叉佐证。不过性能数字和“fully functional”等较强主张主要由项目自身陈述,给定材料中没有独立复核数据或完整实验配置;静态徽章也不是本次修订的可验证测试证明。事实、经验观察和免责声明大多有明确措辞,但部分推广性表述与实证结论的界线仍不够严格。

风险与缓解建议
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 优化过程会把执行轨迹和提示内容交给外部 LLM 后端;在处理私密代码、个人数据或机密反馈前,应单独核查提供商、传输范围、日志和保留政策。
  • API 密钥可放入环境变量、配置文件或 JSON 字符串;应避免提交 OAI_CONFIG_LIST 等含密钥文件,并使用受控的密钥存储和轮换机制。
  • 项目明确处于 Beta 和研究用途阶段,优化器可修改可训练代码或提示词;在应用更新前应保存原始版本、审查差异并建立外部回滚点。
  • 不要把 README 徽章、性能表或论文引用视为本修订已独立复现;给定证据未包含执行结果、依赖审计或完整成本测量。
  • 不应将生成结果直接用于高监管、安全关键、法律、金融或生命机会相关决策。
证据充分度:低 评估于 2026年8月16日 审查版本 8190d032e43f
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.1.3.8
    发布说明摘录
    This is a light update from v0.1.3.6. In this update, we fixed the line continuation error by adding the Python code formatting library Black. https://github.com/microsoft/Trace/issues/45 In addition, if the code update suggestion contains no method body (i.e., not even the function signature is present), then the update is silently ignored: updated by @chinganc
    在 GitHub 查看 ↗
  2. v0.1.3.6
    发布说明摘录
    This is a light update from v0.1.3.5. In this update, we have added the ability to switch between different LLM backends through setting environment variables. This update also fix the missing feature of running __iter__ over a node of numpy.ndarray, reported in https://github.com/microsoft/Trace/issues/41 .
    在 GitHub 查看 ↗
  3. v0.1.3.5 Upgrade to v0.1.3.5
    发布说明摘录
    This release includes changes up to v0.1.3.5. The major changes are - Migrate to use LiteLLM as the default backend (v0.1.3.5) - Bug fixes of bundle and TraceGraph (v0.1.3.4) - Various bug fixes and add small utility features (v0.1.3.1-v0.1.3.3) - Include AbstractModel and add asyncio tracing support (v0.1.3) - Include TextGrad as optimizer (v0.1.2) What's Changed * [ci] fix python unit test ci by @lalo in https://github.com/microsoft/Trace/pull/2 * fix error handling in extracting llm suggestion by @FrankZheng2022 in https://github.com/microsoft/Trace/pull/4 …
    在 GitHub 查看 ↗

常见问题

运行 Trace 是否需要付费模型 API?
框架本身采用 MIT 许可证,但使用 LiteLLM 或 AutoGen 调用 OpenAI、Anthropic 等模型时,需要相应 API 凭证;实际 API 费用取决于所选提供商和模型。
它只能优化提示词吗?
不是。node 可以标记可训练内容,bundle 可包装实际 Python 函数,Trace 还能基于计算图联合优化提示词与代码。
可以替换模型或优化器吗?
可以。模型后端可在 LiteLLM 与兼容的 AutoGen v0.2 之间切换,示例配置覆盖 OpenAI 和 Anthropic;优化器可选 OptoPrime、OPRO 或 TextGrad,也可基于 TraceGraph 实现自定义优化器。
大型工作流有什么已知限制?
OptoPrime 把完整计算图放进上下文,数百个以上操作可能触及上下文长度限制;TextGrad 不受同样的上下文问题影响,但可能明显变慢。
适合在高风险业务中自动决策吗?
不适合无人监督使用。项目要求由用户验证生成内容、保留人工监督,并明确不应把它用于错误输出可能影响人身、法律、财务或人生机会的高度监管领域。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents