SIA 自我改进 AI 日志系统解析:--log-level 三级控制与每代日志落盘位置指南
2026/9/17 11:41:31 网站建设 项目流程

SIA 自我改进 AI 日志系统解析:--log-level 三级控制与每代日志落盘位置指南

【免费下载链接】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 系统(模型 / Agent)在基准任务上自主迭代进化的开源框架,其日志系统是排查每一代 Agent 运行问题的关键入口。本文带你快速看懂 SIA 日志系统的三大核心:集中式日志配置 sia/logging_setup.py、日志级别控制方式(CLI 参数、环境变量、默认值),以及每一代(generation)运行日志的落盘位置,新手也能轻松上手。

日志系统全景:一个模块搞定全局配置

SIA 把所有日志配置收敛在 sia/logging_setup.py 一个文件里,取代了过去散落在 sia/orchestrator.py 和 sia/util.py 中重复的logging.basicConfig(...)代码块。核心只有两个函数:

  • configure_logging(level)(sia/logging_setup.py#L37-L52):配置根日志器。采用幂等设计——首次调用安装 handler 和格式,之后再次调用时只有显式传入新级别才会更新,否则直接跳过,不会重复打配置日志。
  • get_logger(name)(sia/logging_setup.py#L55-L58):各模块统一入口,返回模块级 logger 前先确保日志已配置好。

统一格式为时间 [级别] 消息,例如2026-09-16 03:26:09 [INFO] Generation 1 completed,时间精确到秒,读起来一目了然。

日志级别三步走:CLI 参数、环境变量、默认值

想知道 SIA 日志怎么调详细程度?只需记住优先级从高到低三步:

  1. CLI 参数--log-level:支持DEBUG/INFO/WARNING/ERROR/CRITICAL五个级别,定义在 sia/cli.py#L98-L105,优先级最高;
  2. 环境变量SIA_LOG_LEVEL:不传 CLI 参数时读取该变量,同样接受级别名或数字(如10),在 sia/logging_setup.py#L19-L34 的_resolve_level中解析;
  3. 默认 INFO:两者都没设置时回退到 INFO,保证日常运行输出干净不啰嗦。

⚠️ 一个小细节:main()启动时会先无参调用一次configure_logging(),等参数解析完成后再用configure_logging(args.log_level)覆盖级别(sia/orchestrator.py#L765-L780),这就是"CLI 参数永远生效"的实现机制。排查 Agent 对话细节时建议加--log-level DEBUG,可以看到每一轮工具调用和模型响应(见 sia/agent_impls/claude.py#L42-L90 的分轮次 debug 日志)。

每代日志落盘位置:runs 目录结构速查

SIA 采用多代循环进化架构:Meta-Agent 生成初版 Target Agent,Target Agent 执行任务并记录日志,Feedback Agent 分析日志后重写下一代。所有产物按runs/run_{id}/gen_{n}/组织(详见 docs/architecture.md)。

每代目录下的关键日志文件(文件名常量集中在 sia/layout.py#L23-L34):

文件内容产生者
target_agent_stdout.logTarget Agent 的 stdout+stderr 合并输出进程流式落盘
train_stdout.logweights 模式下 train.py 的输出进程流式落盘
evaluation.log评估器 stdout/stderr评估阶段
agent_execution.json结构化执行轨迹(步骤、结果)Target Agent
improvement.mdFeedback Agent 的改进笔记(第 2 代起)Feedback Agent

💡 其中 stdout 日志由_stream_to_log负责写入(sia/orchestrator.py#L291-L309):子进程的 stdout 与 stderr 合并为一条流,边执行边同时打印到控制台和写入文件,所以运行中就能看到实时日志,结束后文件内容也是完整的。

日志不只是给人看的:反馈闭环与在线看板

SIA 日志系统最巧妙的设计是日志既是给人看的,也是给 AI 看的

  • 反馈闭环:Feedback Agent 构建提示词时会读取本代 stdout 日志,执行失败时提示"完整日志见{path}/target_agent_stdout.log"(sia/orchestrator.py#L534-L545),让模型基于真实输出生成改进建议;
  • 指标自动提取:sia/context_manager.py#L372-L386 用正则从target_agent_stdout.log/train_stdout.log中解析评估指标,汇总进 run 级context.md
  • 在线可视化:运行中自动启动的 Web 看板(sia/web/)可直接查看每代的evaluation.log、stdout 日志与执行轨迹,文件映射见 sia/web/runs.py。

总结:三步用好 SIA 日志系统

  1. 想看得更细:启动命令加--log-level DEBUG,或设置环境变量SIA_LOG_LEVEL=DEBUG
  2. 想看某代输出:直接打开runs/run_{id}/gen_{n}/target_agent_stdout.log(weights 模式为train_stdout.log);
  3. 想复盘整个 run:结合 run 级context.md、每代improvement.md和 Web 看板,即可完整追溯每一代的进化轨迹。

集中配置在 sia/logging_setup.py、路径规则在 sia/layout.py、调度落盘在 sia/orchestrator.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),仅供参考

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

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

立即咨询