首页
/ AutoGPT Challenges 挑战体系:定义、参与方式与 agbenchmark 演进路径

AutoGPT Challenges 挑战体系:定义、参与方式与 agbenchmark 演进路径

2026-09-06 15:32:58作者:咎岭娴Homer

本文介绍 AutoGPT 项目中「Challenges(挑战)」体系的完整脉络:挑战是什么、为什么重要、社区成员如何通过「提交挑战」与「击败挑战」两条路径参与,以及该体系如何演进为仓库中可直接运行的 agbenchmark(direct-benchmark)基准框架。读完本文,你能够理解 AutoGPT 社区驱动的能力评估机制,并在 classic/direct_benchmark 目录中实际运行、筛选和扩展挑战用例。

什么是挑战(Challenges)

挑战是 AutoGPT 难以解决或尚未完成的任务与问题。根据官方介绍(challenges/introduction.md),挑战的典型形态包括:

  • 改进特定功能(improving specific functionalities);
  • 增强模型对特定领域的理解(enhancing the model's understanding of specific domains);
  • 开发当前版本尚不具备的新特性(developing new features that the current version of AutoGPT lacks)。

从源码结构看,挑战在仓库中经历了两代落地形态:

  1. 文档 + pytest 测试形态:早期挑战以 Markdown 文档形式收录于 docs/content/challenges/ 目录,并配套 Python 集成测试;
  2. 数据驱动的基准形态:当前仓库将可执行挑战集中到 classic/direct_benchmark/challenges/,每个挑战是一个包含 data.json 与输入/输出工件目录(artifacts_in/artifacts_out/)的独立文件夹,由 direct-benchmark 框架直接实例化 Agent 执行。

挑战为什么重要

官方文档给出的理由集中在三点:

  • 提升性能、可用性与通用性:逐个击破挑战能持续改进 AutoGPT 的实际表现;
  • 打造更强、更高效的工具:协作攻克挑战使项目对全体用户更有价值;
  • 真正意义的开源贡献:社区通过挑战机制主动参与项目演进,让贡献不再局限于提交代码。

值得注意的是,挑战体系还承担了「能力标尺」的角色——docs/content/challenges/memory/introduction.md 对「记忆类挑战」的定义说明,挑战被设计用于测试 Agent「在一连串任务中记住并使用信息」的能力,涉及指令跟随、文本文件处理与关键数据跟踪。这类能力指标正是基准框架试图量化的对象。

参与方式一:提交挑战(Submit a Challenge)

如果你发现 AutoGPT 在某个任务上表现挣扎,可以将其提交为挑战供社区攻克。根据 submit.md,提交流程为:

  1. 在 AutoGPT 仓库的 challenges 目录中创建一个新的 .md 文件,并选择正确的分类目录;
  2. 用描述性标题命名文件,用连字符代替空格(例如 improve-context-understanding.md);
  3. 在文件内按照 challenge_template.md 模板描述问题、界定范围、定义成功标准;
  4. 提交文件并创建 Pull Request。

挑战模板定义了文档骨架,包含四个必备小节:

小节 作用
Description 清晰简洁地描述挑战,可附示例或文件说明问题
Input 描述挑战涉及的输入文件(文件名与内容,用代码块格式化)
Scope 界定挑战范围,包括相关约束、要求与限制
Success Evaluation 说明如何衡量或评估成功,让他人明确期望结果

提交后,社区会评审并讨论该挑战;若被采纳,就会被收录进挑战列表页(list.md)。

参与方式二:击败挑战(Beat a Challenge)

根据 beat.md,攻克一个已存在挑战的指引如下:

  1. 选择挑战:浏览挑战列表,挑选感兴趣或与自身专长匹配的挑战;
  2. 理解问题:彻底理解问题本身、其范围与期望结果;
  3. 开发解决方案:着手为该挑战构建解决方案,并贡献你的实现。

挑战在代码层面的抽象:输入 → Agent → 工件

早期的挑战编写指南 building_challenges.md 说明了挑战的核心抽象——挑战「扮演一个希望完成某件事的用户」,不绑定特定框架,保持技术中立:

  • 输入(INPUT):用户意图(User desire)+ 文件等其他输入;
  • 输出(Output):工件(Artifact),如文件、图片、代码等。

该文档给出了完整的编写路径,可作为理解挑战运行机制的实例:

  1. 定义 Agent 夹具:在 classic/original_autogpt/tests/integration/agent_factory.py 中创建 agent fixture。文档示例展示了如何为一个「Kubernetes 部署模板专家」Agent 注册命令(file_operationsapp 等模块)、构建 AIProfile(ai_name、ai_role、ai_goals),再实例化 Agent 并关闭连续模式(set_continuous_mode(False));
  2. 编写挑战测试:在 tests/challenges 目录下创建 test_your_test_description.py 并放入对应分类文件夹。文档示例展示了一个典型测试的完整写法:
    • 使用 input_generator 生成器模拟用户输入序列(如 ["s", "s", ..., "EXIT"]);
    • 通过 monkeypatchautogpt.utils.session.prompt 替换为从输入序列取值,从而自动化驱动交互循环 run_interaction_loop
    • 执行后读取输出工件(如 kube.yaml),先做关键字断言(apiVersionkindmetadataspec),再用 yaml.safe_load 做结构化校验;
    • 尚未被攻克(beaten)的挑战以 @pytest.mark.skip("This challenge hasn't been beaten yet.") 标记,并配合 @pytest.mark.vcr(录制/回放 LLM 调用)与 @pytest.mark.requires_openai_api_key 标记管理测试成本与依赖。

这套「mock 用户输入 + 校验输出工件」的模式,是理解后续基准框架评估逻辑的关键。

挑战目录的分类组织

当前仓库的挑战按分类组织,便于社区选择攻关方向。文档侧的分类收录在 docs/content/challenges/ 下,例如:

挑战总览页 list.md 则作为入口,指向各分类的挑战清单,并引导读者按 submit.md 提交新挑战。

演进:从 agbenchmark 到 direct-benchmark

introduction 文档末尾的官方提示值得单独强调:AutoGPT 正在逐步过渡到 agbenchmark——一种更简单的改进 AutoGPT 的方式,只需运行:

agbenchmark

然后尽可能多地击败挑战。这标志着挑战体系从「文档 + 人工测试」向「可自动化批量执行」转变。

当前仓库中的实际形态:direct-benchmark

在当前仓库中,这一演进落地为 classic/direct_benchmark/ 目录——一个高性能基准框架,其特点是直接实例化 Agent,省去 HTTP 服务器开销,支持多配置并行执行。根据 direct_benchmark/README.md,其核心特性包括:

  • 直接 Agent 实例化:无 HTTP 服务器、无 Agent Protocol 开销;
  • 并行执行:同时运行多个策略/模型组合;
  • 多次尝试:每个挑战运行多次以获得统计可靠性;
  • 富 UI:基于 Rich 库的实时进度展示,支持 default(rich)、quiet、verbose、JSON(面向 CI)等输出模式。

安装与常用命令

所有命令从 classic/ 目录(即该目录的上级)执行:

cd classic
poetry install

常用运行方式(完整说明见 classic/direct_benchmark/README.md):

# 以默认配置运行基准
poetry run direct-benchmark run

# 指定策略与模型并行运行
poetry run direct-benchmark run \
    --strategies one_shot,rewoo \
    --models claude,openai \
    --parallel 4

# 只运行单个测试
poetry run direct-benchmark run \
    --strategies one_shot \
    --tests ReadFile

# 每个挑战运行多次
poetry run direct-benchmark run \
    --strategies one_shot \
    --attempts 3

# 只运行回归测试(此前已被击败的挑战)
poetry run direct-benchmark run --maintain

# 只运行非回归测试(尚未稳定击败的挑战)
poetry run direct-benchmark run --improve

# 只运行从未被击败的挑战
poetry run direct-benchmark run --explore

# 列出可用挑战 / 模型预设 / 策略
poetry run direct-benchmark list-challenges
poetry run direct-benchmark list-models
poetry run direct-benchmark list-strategies

关键 CLI 选项

README 中对两类常用选项的说明如下:

挑战筛选类:

  • --strategies, -s:逗号分隔的策略(one_shot、rewoo、plan_execute、reflexion、tree_of_thoughts);
  • --models, -m:逗号分隔的模型预设(claude、openai 等);
  • --categories, -c:按挑战分类筛选;--skip-category, -S:排除分类;
  • --tests, -t:按测试名筛选。

执行控制类:

  • --attempts, -N:每个挑战的运行次数;
  • --parallel, -p:最大并行数(默认 4);
  • --timeout:单挑战超时秒数(默认 300),--cutoff 为其别名,--no-cutoff, --nc 可禁用时限;
  • --max-steps:单挑战最大步数(默认 50)。

其中 --maintain / --improve / --explore 三种模式与「击败挑战」的社区叙事直接对应:已稳定击败的走回归维护,未稳定击败的走改进,从未击败的走探索。已击败挑战的记录保存在 classic/direct_benchmark/challenges_already_beaten.json

挑战目录的实际组织

从源码结构看,classic/direct_benchmark/challenges/ 将挑战按能力维度分为四个子目录,每个挑战文件夹以 data.json 为配置入口,辅以 artifacts_in/(输入工件)与 artifacts_out/(期望输出工件):

目录 内容示例
abilities/ 基础能力:read_filewrite_file
alignment/ 对齐能力:1_distraction(干扰抵抗)、2_injection(注入抵抗)
library/ 外部集成类:如 ethereum/check_price
verticals/ 垂直领域:code(Python 执行、三数之和、文件整理、海战棋等)、data(CSV 排序/标注/合并/问答)、scrape(搜索、价格与营收检索)、synthesize(内容生成)

这种「data.json + 输入/输出工件」的数据驱动结构,正是早期「用户意图 → Agent → 工件」抽象的工程化实现:框架读取 data.json 组装输入,运行 Agent,再由 evaluator.py 对照 artifacts_out 判定是否击败挑战。框架其余关键模块包括 challenge_loader.py(挑战加载)、runner.py(执行)、parallel.py(并行调度)与 report.py(报告生成),多 Agent 协议接入则通过 adapters/ 下的适配层实现。

小结

AutoGPT 的挑战体系是一条完整的社区驱动能力改进链路:

  1. 定义:挑战是 AutoGPT 当前解决不了的任务,按记忆、信息检索等维度分类,以模板化的文档(Description / Input / Scope / Success Evaluation)描述;
  2. 参与:社区通过「提交挑战」(在 challenges 目录按模板建文档并 PR)与「击败挑战」(理解问题、开发方案、贡献实现)两条路径协作;
  3. 执行:挑战从早期 pytest 集成测试(mock 用户输入、校验输出工件)演进为 direct-benchmark 数据驱动基准,支持策略 × 模型组合的并行批量评估,并提供 maintain/improve/explore 三种模式对接「持续击败挑战」的社区目标。

如果你想动手参与,最短路径是:浏览 docs/content/challenges/list.md 挑选一个挑战,然后在 classic/ 目录下执行 poetry run direct-benchmark run --explore 开始验证你的解决方案。

登录后查看全文
热门项目推荐
相关项目推荐