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.json,details数组中每条必须含question_id与model_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 自定义任务 ✅
- 搭目录:
data/public+data/private+reference三块,公私隔离是铁律; - 写 task.md:目标可量化、数据逐字段、输出到字段级、约束防作弊——五要素一个都不能少;
- 放模板:拷贝 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),仅供参考