mode=offline（脚本驱动器，非模型推理）
turn=1 tool=read_doc args={"name":"missing.md"} result={"ok": false, "error": "FileNotFoundError", "message": "文档不存在；调用 list_docs 查找正确文件名。"}
turn=2 tool=list_docs args={} result={"ok": true, "data": {"files": ["learning.md", "safety.md", "setup.md"]}}
turn=3 tool=read_doc args={"name":"setup.md"} result={"ok": true, "data": {"source": "setup.md", "text": "# 环境\n本实验推荐 Python 3.11，使用虚拟环境隔离依赖。\n\nAPI 密钥存放在 .env 中，.env 必须加入 .gitignore，不要提交到仓库。\n"}}
status=completed turns=4 tool_calls=3 tokens=0
# 环境
本实验推荐 Python 3.11，使用虚拟环境隔离依赖。

API 密钥存放在 .env 中，.env 必须加入 .gitignore，不要提交到仓库。
来源：setup.md
