核心用法
model-alias-append 是一个 OpenClaw 框架的响应拦截技能,通过 Hook 机制在每次模型输出返回前自动追加模型别名标识。技能读取 openclaw.json 中的 agents.defaults.models.{modelDict}.alias 配置字段,动态解析当前响应对应的模型名称,并以干净格式附加到回复末尾。
工作流程:
1. 拦截即将返回的模型响应
2. 从配置中匹配当前使用的模型实例
3. 提取对应的 alias 值
4. 将别名追加至响应尾部,保留原有格式标签
配置检测: 技能内置配置变更监控,当 openclaw.json 被修改时会触发 [Model alias configuration updated] 提示,便于用户感知配置热更新。
显著优点
- 零侵入设计:无需修改模型调用代码,纯后置处理
- 配置即代码:别名完全由用户通过 JSON 定义,灵活可控
- 透明追溯:解决多模型 A/B 测试、降级切换时的来源混淆问题
- 实时感知:配置热更新通知避免缓存导致的别名滞后
潜在缺点与局限性
- 格式依赖:严格要求配置路径为
agents.defaults.models.*.alias,非标准结构需手动迁移 - 仅支持单别名:无法同时展示多模型协作(如 primary + fallback)的完整链路
- 无内置持久化:配置变更通知仅单次显示,不记录历史版本
- 框架绑定:专为 OpenClaw 设计,无法直接迁移至其他 LLM 编排工具
适合人群
- 运行多模型路由策略的团队(主备/灰度/实验对照)
- 需要审计日志明确标注模型来源的合规场景
- 频繁调试配置、需要确认别名生效的开发者
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 配置漂移 | 手动修改 JSON 可能导致别名与实际模型不匹配 | 建议 CI/CD 中增加配置校验 |
| 信息泄露 | 别名若包含内部服务器信息可能被输出截获 | 避免在 alias 字段写入敏感主机名 |
| 响应污染 | 自动追加内容可能被下游解析器误判为正文 | 约定固定分隔符或前缀标识 |