自配置与恢复¶
OLAV 的设计目标是:改配置永远不需要手动编辑配置文件,一次错误的变更也 永远不会毁掉可用的环境。本页覆盖对话式配置工具、回滚、撤销,以及运行 途中出故障时该怎么办。
对话式修改 LLM / 嵌入配置¶
向 admin agent 提出请求(它会把配置类请求路由给 editor 子代理):
olav --agent admin "把 LLM 模型换成 deepseek-chat"
olav --agent admin "把我的 LLM api key 更新为 sk-..."
olav --agent admin "嵌入切换到 api 模式,key 是 sk-..."
也可以在 TUI 内先 /workspace admin,再用自然语言提出。
先验证,后落盘¶
每一次对话式配置变更都会先对真实 provider 测试,通过才写入:
- 候选配置可用 → 保存并立即生效(无需重启),且写入前自动快照旧配置。
- 候选配置有问题(key 错误、模型名不存在、endpoint 不可达)→ 带着 provider 的真实报错被拒绝,你正在使用的配置不受任何影响。
> 把我的 LLM api key 更新为 sk-wrong-key
Rejected — candidate config failed to connect: Error code: 401 —
Authentication Fails... Current config unchanged.
这正是推荐用对话而不是手改 api.json 的原因——手动编辑没有任何验证,
可能留下一个无法启动的配置。
回滚¶
每次生效的变更都会先快照旧配置。一句话撤销最近一次变更:
撤销 Agent 的写操作¶
除配置外,agent 的写状态操作——工作区文件写入和 cron 计划任务变更 ——都会自动记录。撤销最近一次:
agent 可以先预览将要撤销的内容再执行。撤销是单步、最近优先的:再问一次 即撤销更早的那次操作。
| 操作 | 撤销行为 |
|---|---|
| 覆盖了文件 | 恢复原内容 |
| 新建了文件 | 删除该文件 |
| 新增了 cron 任务 | 移除该任务 |
| 修改了 cron 调度 | 恢复原调度 |
| 删除了 cron 任务 | 按存档重建 |
范围
配置类变更走专用的"回滚我的 LLM 配置"路径(带验证的快照)。服务 部署目前不可撤销。
运行途中出故障怎么办¶
使用过程中的 LLM 故障(key 过期、配额耗尽、模型下线)不会只留给你一段 裸堆栈——错误后面紧跟着下一步该做什么:
Error: Error code: 401 - {'error': {'message': 'Authentication Fails...'}}
The LLM provider rejected the API key (invalid or expired) — run
`olav doctor` to diagnose. If this started after a config change, undo
it: olav --agent admin "rollback my LLM config"
健康体检(Doctor)¶
确定性、零 LLM 的探测——即使坏掉的恰恰是 LLM 配置本身,它也能工作:
✓ scaffolding: .olav/ deployed
✓ llm: connected
⚠ embedding: sentence-transformers unavailable; cannot create local embeddings
fix: check embedding.mode / embedding.api.* in .olav/config/api.json
overall: needs attention
每个失败项都带一行 fix:——目标是告诉你该做什么,而不只是哪里坏了。