多语言 Prompt 管理
Multi-Language Prompt Management
Agent 系统中 prompt 分散在各模块,需要统一管理、支持多语言、热更新和版本控制。该域解决如何将 prompt 从代码中解耦,实现结构化的 prompt 资产管理。
子问题
1.Prompt 与代码解耦(YAML/JSON 外部化)
2.多语言 fallback 链设计
3.Prompt 缓存与热重载
4.按 module/agent 层级组织 prompt 文件
5.Prompt 安全访问与缺失兜底(get_prompt fallback 机制)
6.嵌套子目录下的 prompt 路径解析(rglob 递归发现)
7.BaseAgent 层自动注入 prompt 的集成模式
各项目的解法1 solutions
Signals
横向对比
| 维度 | DeepTutor |
|---|---|
| 存储格式 | YAML 文件,多行字符串(|),扁平 key-value 结构 |
| 组织层级 | module/prompts/lang/[subdir/]agent.yaml 三级+可选子目录 |
| Fallback 策略 | 硬编码 fallback 链 zh→cn→en,未知语言默认 en |
| 缓存机制 | 类级别字典缓存 + 单例模式,支持模块级清除和强制 reload |
| 集成方式 | BaseAgent 构造函数自动注入,6 模块 50+ YAML 统一管理 |
| 路径解析 | 三级策略:子目录优先 → 直接路径 → rglob 递归搜索 |
最佳实践
1.使用 YAML 文件外部化 prompt,按 module/agent/language 三级目录组织
2.实现语言 fallback 链,确保缺失翻译时优雅降级到默认语言
3.通过 Singleton + 类级别缓存避免重复 I/O,支持模块粒度的缓存清除
4.BaseAgent 构造函数统一注入 prompt 加载,子类无需手动调用
5.parse_language() 标准化多种语言输入格式,统一为内部语言码