Agent Skills从入门到工程化(十二):Skill 如何做日志、监控和评估?
Agent Demo 通常只关心“能不能跑通”,但工程系统必须关心“为什么失败、哪里慢、哪个 Skill 常出错、任务是否完成”。没有日志、监控和评估,Agent 系统就是黑盒。
一次调用要记录什么
推荐记录:
request_id
session_id
user_id
skill_name
skill_version
input
output_status
error_type
latency_ms
retry_count
timestamp
敏感信息要脱敏或不记录明文。
调用日志和决策日志
调用日志记录 Skill 执行情况,决策日志记录为什么选择这个 Skill。
{
"selected_skill": "web_search",
"reason": "用户询问最新信息"
}
很多问题不是执行失败,而是选错 Skill,所以决策日志很重要。
监控指标
常见监控指标:
调用次数
调用成功率
失败率
平均耗时
P95 耗时
超时率
空结果率
错误类型分布
重试次数
调用成本
这些指标能帮助发现线上问题。
评估和监控的区别
监控关注系统运行是否稳定,评估关注能力效果是否好。
例如搜索 Skill 不仅要看成功率,还要看结果相关性、来源可信度和新鲜度。
不同 Skill 的评估指标
搜索 Skill:结果相关性、来源可信度、结果新鲜度、空结果率。
RAG Skill:召回率、top-k 相关性、引用准确性、幻觉率。
文件解析 Skill:解析成功率、文本完整性、表格识别准确率。
邮件 Skill:草稿成功率、收件人识别准确率、误发送率。
任务级评估
Skill 调用成功不等于用户任务成功。还要看:
最终任务是否完成
答案是否准确
用户是否满意
是否需要人工修改
是否多次重试
Agent 系统应同时评估 Skill 层和任务层。
测试集设计
可以为每个 Skill 准备正例、反例、边界例和异常例。
例如搜索 Skill:
正例:用户询问最新新闻,应调用 web_search。
反例:用户要求翻译文本,不应调用 web_search。
边界例:用户问题含糊,需要追问。
异常例:搜索结果为空。
面试中怎么回答
可以这样回答:
我会把每次 Skill 调用记录成结构化日志,包括 request_id、skill_name、version、输入、状态、错误类型、耗时、重试次数等,同时记录 Agent 为什么选择该 Skill。监控上关注调用次数、成功率、失败率、P95 耗时、超时率、空结果率和错误分布。评估上按 Skill 类型设计指标,比如搜索看相关性和来源可信度,RAG 看召回和引用准确性,文件解析看文本完整性。最后还要评估任务是否真正完成。
小结
这篇文章的核心是:Skill 如何做日志、监控和评估? 不是一个孤立概念,而是 Agent 工程化中必须讲清楚、设计清楚、验证清楚的一部分。
下一篇继续讨论:Skill 与 RAG 的关系。
更多推荐



所有评论(0)