ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

HyperAgents自定义Domain扩展实战教程:手把手教你为自进化智能体接入新任务

HyperAgents自定义Domain扩展实战教程:手把手教你为自进化智能体接入新任务 HyperAgents自定义Domain扩展实战教程手把手教你为自进化智能体接入新任务【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgents你是否想把自己的任务接入 HyperAgents 自进化智能体框架HyperAgents 是 Meta 开源的自指自改进智能体Self-referential Self-Improving Agents能够针对任何可计算任务持续自我优化。它内置了搜索竞技场、论文评审、游戏、机器人控制等 11 个 Domain领域但真正强大的地方在于你可以用一套固定的模式为自己的新任务接入 Domain让智能体围绕它自动进化。本文带你从零完成一次 Domain 扩展全程以文本问答评测类任务为例。一、先看懂一个 Domain 由哪些部分组成HyperAgents 的 Domain 扩展遵循约定优于配置每个领域一个独立目录放在domains/下。以search_arena为例组件文件作用数据集domains/search_arena/dataset_filtered_100_ids.json评测题目与标准答案CSV 数据集由 curate_subsets.py 生成领域工具domains/search_arena/utils.py声明题目 ID 列、标准答案列、默认模型并提供输入格式化函数评测入口domains/harness.py把 TaskAgent 跑在数据集上输出predictions.csv打分报告domains/report.py对比预测与标准答案计算准确率整个进化的调度入口是 generate_loop.py它决定在哪些 Domain 上评估每一代智能体而领域相关的元信息分数键名、数据集切分、采样数量等全部集中在 utils/domain_utils.py。也就是说接入新 Domain 新建一个 domain 目录 在 2 处注册比想象中简单得多。二、准备数据集一张 CSV 就够了以search_arena的数据结构为模板你的数据集 CSV 至少包含三类列题目 ID 列如question_id——唯一标识用于断点续跑输入列如messages_a、messages_b——交给 TaskAgent 的原始材料标准答案列如winner——report 阶段用来算分 小贴士游戏类 Domain如balrog_nle的输入是环境交互帧而问答类 Domain 的输入是纯文本。你的新任务属于哪一类决定后面走哪条接入路线。三、编写领域工具模块 utils.py在你的 domain 目录比如domains/my_task/下新建utils.py只需声明 3 个常量 1 个函数QUESTION_ID question_id # 题目ID列名 GROUND_TRUTH_KEY answer # 标准答案列名 MODEL gpt-4o # 该域默认使用的基础模型 def format_input_dict(row): # 从数据集一行中提取 TaskAgent 需要的输入 return { domain: my_task, question: row[question], }这套约定与 domains/paper_review/utils.py 完全一致——harness会通过importlib动态导入你的模块见 domains/harness.py拿到format_input_dict、QUESTION_ID和MODEL后就自动跑通整个评测流程。四、注册你的 Domain只需改两个文件1. 在 domain_utils.py 中注册元信息打开 utils/domain_utils.py为my_task补充以下函数中的分支get_domain_score_key返回该域的分数键名如overall_accuracy进化算法靠它比较优劣get_domain_splits返回[train, val]有验证集或[train]get_domain_stagedeval_samples设置预评估小样本数——每代先用少量样本快速淘汰再对达标者全量评测has_domain_val_subset、can_domain_ensembled等按你的需求返回2. 在 generate_loop.py 中注册 Domain 名在 generate_loop.py 的--domains参数choices列表中加入my_task并在 domains/harness.py 的--domainchoices 中同步添加否则命令行会拒绝该名字。五、运行验证三步确认接入成功# 1. 单跑 harness确认能产出 predictions.csv python domains/harness.py --domain my_task --num_samples 5 # 2. 查看报告确认分数可计算 python domains/report.py # 会打印 Accuracy、分类别 Precision/Recall # 3. 启动自进化循环关键一步 python generate_loop.py --domains my_task --max_generation 3 --eval_samples 20第 3 步会让 task_agent.py 生成初始智能体meta_agent.py 开始基于评测分数提出改进补丁每一代都自动在my_task上打分。输出全部保存在outputs/目录可用 analysis/ 下的脚本如 analysis/plot_progress.py绘制进化曲线。六、常见坑与排查清单现象原因解决--domains my_task报 invalid choice未加入 choices同时更新generate_loop.py与domains/harness.py两处harness 报No TaskAgent found动态导入路径错误检查目录名与domains.domain.utils命名是否一致报告 Accuracy 全 0预测与答案大小写/空格不一致report会做 striplower但答案格式需统一进化分数无变化get_domain_score_key返回的键与 report 输出不一致对照 domains/report.py 输出的 JSON 键名七、进阶游戏与机器人域的接入路线如果你的任务不是纯文本问答而是环境交互如 domains/balrog/ 的 4 款游戏或 domains/genesis/ 的四足机器人控制接入路线不同需要实现一个 gym 兼容环境类参考 domains/balrog/environments/babaisai/babaisai_env.py编写 Hydra 配置文件放入对应config/config.yaml如 domains/genesis/config/config.yaml分数键改用average_progress游戏或average_fitness机器人见 utils/domain_utils.py这类 Domain 通常不支持 ensemble 和验证集can_domain_ensembled返回 False注册时按此配置即可。写在最后HyperAgents 的 Domain 扩展模式可以总结为一句话一个目录、一张 CSV、两处注册。一旦接入成功你就拥有了一个能针对自己任务持续自我改进的智能体——这正是该项目 Self-referential self-improving agents that can optimize for any computable task 的承诺。动手试试把你想优化的下一个任务接进来吧【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表