← logs/

2026-05-28

训练一个 Safe-Routes 技能:来自循环的笔记

SafeRoutes 是一个围绕严格分离构建的公路旅行规划系统:函数决定路线,agent 只判断世界。

这个项目在设计上就是手动地址输入、无 GPS。给定起点、目的地、车辆约束与行程约束,它会构建一条车辆感知的路线,并检查加油、住宿、维修这类锚点 POI 今天是否可用。

铁律

核心规则很简单:agent 永不编辑路线。

agent 可以回答某个站点是否可用、某段道路描述看起来是否有风险、或者证据是否强到可信。而路线本身通过 Orchestrator 收敛——那是一个掌握规划决策权的确定性函数层。

这条边界让系统保持可调试。如果路线发生变化,原因应当能在代码和数据里看到,而不是藏在一次 LLM 补全里。

函数 + agent 混合

函数层负责地理编码、路线计算、走廊数学、锚点规划、成本评分与持久化。agent 层通过可插拔的搜索、抓取与 LLM provider 提供对世界的判断。

在实践中,这意味着规划器可以保持静态优先、可测试,同时仍然用 agent 处理麻烦的部分:核验当前的外部条件。

这个循环在测什么

有用的测试不只是「agent 答上来没有」。它们是围绕降级与职权的契约测试。

如果 search 失败,验证降级为 unknown。如果 fetch 失败,系统可以回退到片段。如果模型输出格式错误,解析器降级,而不是让一个坏答案变更计划。架构测试还确保 agent 层不会导入路线计算或编排器的内部实现。

要点

这里的经验是:agent 的职权越窄,就越安全。路线规划器可以使用 LLM,而不必让 LLM 成为规划器。

对这类系统,我要 agent 做传感器:收集证据、做有边界的判断、暴露不确定性。最终的路线决策应由确定性代码做出。