ARTICLE DETAIL

资讯详情

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

SIA layout.py 导读:任务布局、venv 路径与名称解析的单一事实来源

SIA layout.py 导读:任务布局、venv 路径与名称解析的单一事实来源 SIA layout.py 导读任务布局、venv 路径与名称解析的单一事实来源【免费下载链接】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/siaSIASelf Improving AI是一个自改进 AI 框架能让 Meta、Target、Feedback 三个智能体在基准任务上循环迭代、自主提升性能。而 sia/layout.py 正是整个框架里任务布局、venv 路径与文件名解析的单一事实来源所有目录结构、产物文件名、虚拟环境可执行文件路径都在这一个文件里统一定义。本文带你快速读懂它。为什么要有一个单一事实来源在大型 Python 项目里路径字符串如runs/run_1/gen_2/target_agent.py最容易散落各处、改一处漏一处。SIA 在 layout.py 的开头就写明了设计意图路径与文件名常量此前散落在 orchestrator.py 和 context_manager.py 中现在统一收口于此路径构建方法返回str而非Path以匹配既有的os.path调用点保证行为逐字节一致。对新手的意义以后想找某个产物文件到底叫什么、放在哪只需要打开这一个文件。layout.py 的四大构件1️⃣ Names所有文件名的集中登记表Names 类 以类属性的形式登记了运行产物与任务输入的全部文件名例如常量值用途TARGET_AGENTtarget_agent.py每代的目标智能体代码AGENT_EXECUTION_JSONagent_execution.json智能体执行日志IMPROVEMENT_MDimprovement.md改进方案说明gen 2 起VENV_DIRvenv每次运行的隔离虚拟环境目录RUNS_ROOT./runs所有运行产物的根目录TASK_MDdata/public/task.md任务描述文件EVALUATE_PYevaluate.py任务评估脚本2️⃣ RunLayoutruns 目录的地图RunLayout 数据类frozenTrue即不可变描述一次运行如./runs/run_1下的完整目录结构提供了一组按代次取路径的方法runs/run_1/ ├── venv/ ← layout.venv_dir ├── context.md ← layout.context_md └── gen_{n}/ ← layout.gen_dir(n) ├── target_agent.py ← layout.target_agent(n) ├── improvement.md ← layout.improvement_md(n) └── agent_execution/ ← layout.agent_execution_dir(n)有个细节值得注意stdout_log(n, focus...)会根据改进焦点模式返回不同日志名——harness模式改代码/提示词记录target_agent_stdout.logweights模式基于 RL 调参记录train_stdout.log。这让同一条路径逻辑适配了两种完全不同的训练方式。3️⃣ TaskLayout任务目录的地图TaskLayout 数据类 描述任务目录本身把task_dir数据与任务描述和shared_dir共享资源组织成属性dataset_dir数据集目录、task_md任务描述、reference_agent参考智能体模板、evaluate_script()评估脚本等。 任务目录的标准结构详见 docs/walkthrough.md整体目录布局见 docs/architecture.md。4️⃣ venv 路径与任务名解析函数函数作用venv_python_path()返回 venv 内python可执行文件路径venv/bin/pythonvenv_pip_path()返回 venv 内pip可执行文件路径find_evaluate_script()按data/public/evaluate.py→task_dir/evaluate.py的优先级定位评估脚本resolve_task_dir()把 CLI 参数解析成真实路径对resolve_task_dir--task 与 --task_dir 的解析规则这是新手最关心的我怎么告诉 SIA 用哪个任务。resolve_task_dir() 把两个互斥的 CLI 参数统一解析为(task_dir, shared_dir)真实路径--task gpqa→ 定位到打包进 wheel 的内置任务sia/tasks/gpqa/共享目录用内置sia/tasks/_shared/。内置任务清单 BUNDLED_TASKS 共 4 个gpqa、lawbench、longcot-chess、spaceship-titanic任务不存在时会直接报错并列出可用名称。--task_dir ./my-task→ 定位外部任务目录若其同级存在_shared/目录则优先使用否则回退到内置_shared/。两者都没传→ 直接报错提示必须二选一。这种外部优先、内置兜底的设计让自定义任务可以完全独立于仓库运行。venv 路径为什么单独封装SIA 每次运行都会为智能体创建隔离的 Python 虚拟环境runs/run_{id}/venv/并优先使用uv提速、没有则回退标准venv模块。见 sia/run_setup.py 中的_create_venv()# 有 uv 时更快 uv venv runs/run_1/venv uv pip install --python runs/run_1/venv/bin/python packages # 无 uv 时标准库 python3 -m venv runs/run_1/venv runs/run_1/venv/bin/pip install packages如果venv/bin/python这个相对路径写死在多处将来支持 Windowsvenv\Scripts\python.exe就要改 N 个地方——而封装成venv_python_path()后只需改一处。此外orchestrator.py 在每代评估前都用该 venv 的 python 执行evaluate.py路径一致性保证了装好的环境和运行的环境永远是同一个。layout.py 在项目中被谁使用模块使用方式sia/orchestrator.py主循环逐代读写target_agent.py、results.json、improvement.mdsia/run_setup.py创建 run 目录、venv加载任务参考文件sia/cli.py解析--task/--task_dirsia web默认读取./runssia/agent_reference.py解析任务reference/下的智能体模板与requirements.txt 阅读源码的三个建议从常量表读起先扫一遍 Names 类把所有文件名过一遍脑中形成文件清单。对着目录结构读方法RunLayout/TaskLayout的每个方法都对应目录树里的一格配合 docs/architecture.md 的目录布局图读事半功倍。跑一次真实运行验证理解pip install sia-agent[openhands]后执行sia run --task gpqa --max_gen 2 --run_id 1再对照runs/run_1/的实际文件与本文目录树逐一核对。相关资料项目 README 与快速上手README.md任务目录完整说明docs/walkthrough.md配置与 Profile 参考docs/configuration.md排错指南docs/troubleshooting.md内置任务示例含参考智能体模板sia/tasks/【免费下载链接】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),仅供参考
返回列表