配置参考(~/.loopforge/config.toml)¶
LoopForge 把配置存放在 ~/.loopforge/config.toml(路径为兼容保留)。
心智模型¶
可以把这个文件理解成四层:
providers.*—— 每个模型 provider 怎么连router.*—— planning / coding / summary 分别走哪个 provider/modelsecurity.*—— 工具执行时使用什么 secret、网络、leak guard 规则skills.*—— 本地 skills 的白名单与审批策略
实际使用时:
loopforge init会生成基础配置loopforge config validate用来检查配置能不能被正确解析、结构是否完整loopforge doctor用来解释“配置虽然合法,但当前环境还不能正常工作”的问题
验证与检查¶
config validate 更适合查语法/结构问题。
doctor 更适合查运行时就绪性问题,比如缺少环境变量、浏览器依赖、或安全姿态告警。
最小起步示例¶
这已经足够支撑本地优先的 Ollama 起步;后续如果要收紧安全边界,可以继续加 security.egress.rules 和更严格的 skills 策略。
Providers¶
每个 provider 条目包含:
kind:驱动类型(openai_compatible、zhipu_native、minimax_native等)base_url:API base URLapi_key_env:读取 API key 的环境变量名(本地 provider 可为空)default_model:当路由里写model = "default"时使用的默认模型名
示例:
Router¶
每个任务类型会选择一个 (provider, model)。这就是 runtime 决定 planning、coding、summary 是否走同一模型还是不同模型的方式:
Security¶
字段说明:
security.secrets.modeenv_first:从宿主机环境变量解析 provider 凭证security.leaks.modeoff:不增加额外处理warn:标记疑似 secret 泄漏,但保留原始输出redact:在落盘和后续模型调用前做脱敏enforce:检测到疑似 secret 时直接阻断工具结果security.egress.rules- 为空时,LoopForge 只使用基础 SSRF / 私网访问防护
- 非空时,出站请求除了基础防护外,还必须命中允许规则
每条 egress rule 包含:
tool:工具名,例如web_fetchhost:目标 host 精确匹配path_prefix:必须命中的 URL path 前缀methods:允许的 HTTP 方法
当前的出站白名单会应用到 web_fetch、A2A 请求和浏览器导航入口。
内置 presets¶
LoopForge 默认包含一些常用 provider presets(名称可能会演进):
- OpenAI-compatible:
deepseek、kimi、qwen、glm、minimax - Provider-native:
glm_native、minimax_native、qwen_native
Skills¶
这一节控制的是本地 skills 策略。它和普通工具沙盒不是一回事:即使 workspace 本身合法,skill 仍然可能因为审批/白名单策略被拦下。
字段说明:
allowlist:可选,全局 skill 白名单require_approval:是否强制对非只读 skill 进行审批auto_approve_readonly:为 true 时,只读 skill 自动通过experimental:用于灰度 / 发布提示的实验开关