SIA 自定义任务实战:目录结构设计 + task.md 写作要点(附完整清单)
2026/9/19 22:15:42 网站建设 项目流程

SIA 自定义任务实战:目录结构设计 + task.md 写作要点(附完整清单)

【免费下载链接】siaSIA is a Self Improving AI framework to autonomously improve the performance of any AI system (Model / Agent) on a benchmark task.项目地址: https://gitcode.com/GitHub_Trending/sia4/sia

SIA(Self-Improving AI)是一个让 AI 系统自主自我改进的开源框架:它由 Meta-Agent、Target Agent 和 Feedback Agent 三个角色协作迭代,在基准任务上持续提升任意模型 / Agent 的表现。本文面向新手,带你从零搭建 SIA 自定义任务:先设计标准任务目录结构,再掌握task.md任务描述文件的写作要点——两者就绪,一条sia run --task_dir命令即可启动自改进循环。

一张图看懂:为什么你的任务需要"目录结构 + task.md"

图中控制流:Meta、Target、Feedback 三类智能体逐代协作,构成 SIA 的自改进闭环

理解这张图,你就理解了自定义任务的两个设计目标:

  • 目录结构决定了"哪些数据 Agent 能看到、哪些答案必须藏起来"——这是评分公平性的基础;
  • task.md是 Meta-Agent 的"第一份需求文档"——它直接决定第一代 Target Agent 的上限,也是整个自改进循环优化的起点。

SIA 自定义任务目录结构:四件套一次搭好 📁

SIA 对任务目录有严格的布局约定,内置的四个任务(gpqa / lawbench / longcot-chess / spaceship-titanic)全部遵循同一套结构。自定义任务只需照抄:

my-task/ ├── data/ │ ├── public/ # 公开数据:Agent 可见 │ │ ├── task.md # 任务描述(SIA 读取的核心文件) │ │ ├── *.csv / *.json # 输入数据 │ │ └── evaluate.py # 自定义任务的评估脚本 │ └── private/ # 私有数据:留出答案,Agent 永远看不到 └── reference/ ├── reference_target_agent.py # 参考智能体模板 └── SAMPLE_TASK_DESCRIPTIONS.md # 示例任务(可选)
路径职责
data/public/task.md任务描述,Meta-Agent 生成初始智能体前会完整读取
data/public/(数据文件)Agent 被允许看到的输入,如题目、训练集、样例提交
data/public/evaluate.py评估脚本,决定"什么算做好了"
data/private/留出的评测答案,对 Agent 完全隐藏
reference/reference_target_agent.py参考智能体模板,自改进的"底稿"
reference/SAMPLE_TASK_DESCRIPTIONS.md示例任务描述,帮 Meta-Agent 举一反三(可选)

核心设计原则只有一个:公开 / 私有严格隔离。评测期间 SIA 不会把data/private/的任何内容告诉模型——这防止 Agent 偷看答案刷分,保证每一代的评分都是真实水平。目录搭建的细节可对照官方 docs/walkthrough.md 的 Step 1。

如何写好 task.md:五要素清单 ✍️

task.md是整篇实战里最值得花时间的文件。你可以把它理解为"给 Meta-Agent 写的需求说明书":写得含糊,第一代智能体就会跑偏。对照内置任务 sia/tasks/gpqa/data/public/task.md,一份合格的task.md应包含五个要素:

要素要写什么反例
📌 任务目标一句话说明"做什么",指标必须可量化(如"答对题数最大化"、"准确率最高")"尽量答得多一点"
📊 数据格式数据文件每个字段的名称与含义,例如字段Question是题干、options的键为 A/B/C/D只写"见附件 json"
📤 输出规范保存路径、文件格式、字段名精确到可直接解析,如"写入results/submission.jsondetails数组中每条必须含question_idmodel_answer""结果写到结果文件"
🎯 模型与方式指定求解模型与输出约定,如"每个问题独立求解,不得共享上下文"空缺
⛔ 约束边界明确禁止事项:只能从给定选项作答、不得发明第五个选项、不得跨题共享信息

其中"目标"这一栏最容易被低估:评估分数正是反馈智能体(Feedback Agent)的优化信号,目标不可量化,自改进循环就失去了方向盘。

Target Agent 的每一代执行都会被记录,最终由evaluate.py对照私有数据打分

参考模板怎么用:拷贝 + 微调 🧩

  • 参考智能体模板:直接从 sia/tasks/_shared/reference_target_agent.py 拷贝一份到reference/。它是 Meta-Agent 的起点,也是 Feedback Agent 每一代迭代的底稿,不需要自己从零写
  • 示例任务描述:可选。reference/SAMPLE_TASK_DESCRIPTIONS.md里放几道与真实任务同类的示例(可参考 sia/tasks/gpqa/reference/SAMPLE_TASK_DESCRIPTIONS.md 的写法),能帮助 Meta-Agent 泛化,减少对task.md具体措辞的过拟合。

这两项加上data/public/里的数据与task.md,任务目录即告完成。

验证目录 + 跑起来:两条命令 🚀

结构就绪后,一条命令把外部任务接进 SIA(--task_dir--task二选一):

sia run --task_dir ./my-task --max_gen 5 --run_id 1
  • 运行期间仪表板会自动启动在http://127.0.0.1:8000(加--no-web关闭),可以实时观察每一代落地;
  • 产物按代际存放在runs/run_{run_id}/gen_{n}/target_agent.py(该代智能体)、agent_execution.json(执行日志)、improvement.md(第 2 代起的改进理由);
  • 对比两代代码的演化:diff runs/run_1/gen_1/target_agent.py runs/run_1/gen_2/target_agent.py

💡 提示:驱动自改进循环的两条核心提示词(初始生成与反馈改进)定义在 sia/prompts.py;task.md 的读取位置与任务目录解析逻辑可参考 sia/layout.py 和 sia/orchestrator.py,排障时非常有用。

当 task.md 与目录结构都写对之后,逐代分数曲线就是你收获的最大惊喜

本篇小结:3 步搭好你的 SIA 自定义任务 ✅

  1. 搭目录data/public+data/private+reference三块,公私隔离是铁律;
  2. 写 task.md:目标可量化、数据逐字段、输出到字段级、约束防作弊——五要素一个都不能少;
  3. 放模板:拷贝 reference_target_agent.py,按需补SAMPLE_TASK_DESCRIPTIONS.md

至此,"目录结构设计 + task.md 写作要点"就讲完了。接下来只需给data/public/放入 EVALUATION_GUIDE.md 中约定的evaluate.py,即可把真实任务完整跑进 SIA 的自改进循环。

【免费下载链接】siaSIA is a Self Improving AI framework to autonomously improve the performance of any AI system (Model / Agent) on a benchmark task.项目地址: https://gitcode.com/GitHub_Trending/sia4/sia

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询