HeadlinesBriefing favicon HeadlinesBriefing.com

Codex 子代理实践指南

Towards Data Science •
×

当我们要求 Codex 完成任务时,通常将其视为一个单一代理。但如果某些任务足够复杂,涉及多种不同类型的工作,Codex 会尝试将问题分解为更小的任务,并生成独立的代理来处理这些任务。这些被委派的代理称为子代理。每个子代理在自己的线程中工作,只专注于原始任务的一部分。同时,主代理协调它们的工作,并通过汇总子代理的结果来生成最终响应。作为实践者,我们自然会问:如何有意识地使用子代理来解决我们自己的问题?在本文中,我们将通过一个实践案例来探索 Codex 子代理。在此过程中,我们将了解如何定义和委派工作给专业代理,检查它们的独立线程,并让主代理汇总它们的发现以生成最终结果。

在这里,我们考虑一个旅行规划任务。假设我们计划从苏黎世出发的四天单人旅行。我们的总预算为 1,200 瑞士法郎。潜在目的地包括里斯本、布拉格和哥本哈根,我们关心交通便利性、博物馆和当地美食。为此,我们准备了三个专业代理:交通物流代理、预算分析代理和体验研究代理。每个专业代理将从自己的角度评估所有三个目的地。然后,主代理将收集它们的发现,比较权衡,并推荐一个最终目的地。

Codex 允许我们为特定项目定义自定义代理。我们可以通过在 .codex/agents/ 下添加 TOML 文件来实现:每个代理定义需要三个字段:名称、描述和开发者指令。自定义代理还可以指定自己的模型、推理力度、沙箱配置、工具和技能。如果我们不在此处覆盖这些设置,三个专业代理将从主 Codex 会话中继承它们。此外,我们在 .codex/config.toml 中添加一个小型项目级配置,以允许最多三个子代理线程并发运行。

在提示中,我们明确要求主代理在解决任务时使用我们定义的专业代理。我们从项目目录启动 Codex,并启用了网络搜索,注意到我们只需要为主会话启用网络搜索。三个子代理在 Codex 生成它们时继承此能力。我们看到 Codex 并行启动了三个专业代理。我们可以直接从 CLI 使用代理线程视图检查它们的进度,因为每个专业代理都有自己的上下文、工具活动和最终结果。一旦三个代理完成,它们的发现将返回给主代理进行综合。然后我们可以检查它们产生的内容,每个子代理从自己的角度返回了一个推荐。

关键实体:地点:苏黎世、里斯本、布拉格、哥本哈根

常见问题:如何在 Codex 中定义自定义子代理?

您可以通过在 .codex/agents/ 下添加 TOML 文件来定义自定义子代理。每个代理定义需要三个字段:名称、描述和开发者指令。您还可以指定模型、推理力度、沙箱配置、工具和技能。如果未覆盖,它们将从主会话继承设置。

常见问题:如何在 Codex 中定义自定义子代理?

您可以通过在 .codex/agents/ 下添加 TOML 文件来定义自定义子代理。每个代理定义需要三个字段:名称、描述和开发者指令。您还可以指定模型、推理力度、沙箱配置、工具和技能。如果未覆盖,它们将从主会话继承设置。