AgentKit CLI调试观测:Agent运行时日志、链路追踪和性能监控
[1] 一句话结论
AgentKit CLI调试观测用dev模式实时调试、logs查日志、trace看链路、metrics看性能,四件套定位问题从表象到根因。
[2] 适用场景与不适用场景
适用场景
你开发的Agent部署后出现了问题——回复慢、偶尔报错、工具调用失败、用户反馈效果不好。你需要排查问题,但不知道从哪里入手,也不清楚AgentKit CLI提供了哪些调试和观测工具。
这篇文章详解AgentKit CLI的完整调试观测体系,从本地开发调试(agentkit dev)、运行时日志(logs)、链路追踪(trace)、性能监控(metrics)到问题定位方法论,帮你快速从现象定位根因。
适合:遇到Agent运行问题需要排查的开发者、负责线上Agent稳定性的运维/SRE、想优化Agent性能的技术人员、需要建立观测体系的技术负责人。
不适用场景
- 还在开发阶段没部署:本地调试用
agentkit dev即可,不需要完整的观测体系。 - 非技术用户:调试观测是开发者操作,非技术用户可以看监控面板。
- 问题非常明确(如API Key错误):直接修正配置即可,不需要完整的排查流程。
[3] 前置准备
- AgentKit CLI已安装,有一个运行中的Agent(本地或云端)
- 基本的调试和排查经验
- 对Agent的运行流程有了解(输入→模型→工具→输出)
- 预计耗时:阅读7分钟,实战练习10分钟
[4] 分步实现
步骤1:调试观测体系总览
AgentKit CLI提供四层观测能力,从开发到生产全覆盖:
| 层级 | 工具 | 用途 | 适用阶段 |
|---|---|---|---|
| 1. 开发调试 | agentkit dev | 本地实时调试,热重载,工具调用日志 | 开发阶段 |
| 2. 运行日志 | agentkit logs | 查看Agent运行日志,错误信息,调试输出 | 开发+生产 |
| 3. 链路追踪 | agentkit trace | 查看单次请求的完整调用链路(模型→工具→模型) | 开发+生产 |
| 4. 性能监控 | agentkit metrics | 查看聚合指标(QPS、延迟、错误率、token) | 生产 |
问题定位流程:
用户反馈问题 ↓ 看metrics(是否有异常指标?错误率升高?延迟突增?) ↓ 看logs(错误日志?异常堆栈?) ↓ 看trace(具体某次请求的链路?哪一步慢/失败?) ↓ 本地dev复现(修改代码/配置验证修复) ↓ 修复→测试→重新部署
步骤2:本地开发调试(agentkit dev)
agentkit dev是开发阶段最常用的调试工具:agentkit dev
dev模式的调试能力:
- 实时对话界面:浏览器打开http://localhost:8080,直接和Agent对话
- 热重载:修改
agent.yaml、system-prompt.md、工具代码后自动重载,不需要重启 - 工具调用日志:右侧面板显示每次工具调用的名称、输入参数、输出结果、耗时
- Token统计:每次对话显示输入/输出token数和预估费用
- 系统提示词预览:查看实际发送给模型的完整prompt(包含系统提示词、历史、检索结果)
- 调试模式:
agentkit dev --debug显示更详细的调试信息(API请求/响应、模型原始输出)
dev模式高级用法:
# 调试模式,显示API请求响应详情 agentkit dev --debug # 指定端口 agentkit dev --port 9000 # 不自动打开浏览器 agentkit dev --no-browser # 指定环境配置 agentkit dev --env staging
常见调试场景:
- Agent回复不符合预期→看系统提示词预览,确认提示词是否正确发送
- 工具不被调用→看工具调用日志,确认工具description是否清晰
- 工具调用失败→看工具调用日志的输出,确认工具代码是否有错误
- 回复慢→看token统计,确认是否输入太长(提示词+历史+检索结果)
技巧:开发阶段遇到问题,先开
--debug模式,看完整的API请求和响应,大多数问题能从请求/响应中找到原因。
步骤3:运行时日志(agentkit logs)
查看Agent运行时的日志输出:
本地日志:agentkit logs --local --tail 50
云端日志:agentkit logs --env prod --tail 100
logs参数:
| 参数 | 说明 |
|---|---|
--env | 环境(dev/staging/prod),本地用--local |
--tail N | 显示最近N行日志 |
--follow | 实时跟踪日志(Ctrl+C停止) |
--level | 过滤日志级别:debug/info/warn/error |
--since | 显示指定时间以来的日志,如"1h"(1小时)、"30m" |
--grep | 关键词过滤,如"error"、"timeout" |
日志级别说明:
| 级别 | 说明 | 示例 |
|---|---|---|
| debug | 详细调试信息 | API请求/响应、模型原始输出、工具调用详情 |
| info | 正常运行信息 | 请求开始/结束、工具调用成功 |
| warn | 警告信息 | 重试、降级、token接近上限 |
| error | 错误信息 | API调用失败、工具异常、模型返回错误 |
常见错误日志及排查:
| 日志关键词 | 可能原因 | 解决 |
|---|---|---|
| 401 Unauthorized | API Key无效/过期 | 检查API Key,重新生成 |
| 429 Too Many Requests | 调用频率超限 | 降低QPS,提升配额,加重试 |
| 500 Internal Server Error | 模型服务端错误 | 重试,联系客服 |
| timeout | 请求超时 | 检查网络,增加超时时间,简化请求 |
| tool execution failed | 工具代码异常 | 看错误堆栈,修复工具代码 |
| context length exceeded | 上下文超长 | 精简提示词,减少历史,降低top_k |
排查技巧:1)先用
--level error过滤错误日志,快速定位问题;2)再用--grep关键词搜索相关日志;3)最后用--follow实时观察,复现问题看实时日志;4)本地问题用agentkit dev --debug看更详细的信息。
步骤4:链路追踪(agentkit trace)
链路追踪查看单次请求的完整调用链路,适合排查"哪一步慢"和"哪一步失败":
查看最近的请求链路:agentkit trace list --env prod --limit 10
输出最近10次请求的摘要(时间、耗时、状态、输入摘要)。
查看某次请求的详细链路:agentkit trace show <trace-id> --env prod
输出完整的调用链路(瀑布图形式):
Request ID: trace-xxxxxxxx Total Time: 2.3s Status: success ├── 1. 接收用户输入 (5ms) ├── 2. 知识库检索 (120ms) │ ├── 嵌入模型调用 (80ms) │ └── 向量数据库查询 (40ms) ├── 3. 模型调用 - 第一轮 (800ms) │ ├── 输入token: 1500 │ └── 输出token: 50 ├── 4. 工具调用 - weather_query (500ms) │ ├── 输入: {"city": "北京"} │ └── 输出: {"weather": "晴", "temp": "25°C"} ├── 5. 模型调用 - 第二轮 (850ms) │ ├── 输入token: 1600 │ └── 输出token: 200 └── 6. 返回结果 (5ms)
链路追踪能回答的问题:
- 总耗时多少?哪一步最耗时?
- 工具调用是否成功?输入输出是什么?
- 模型调用了几轮?每轮的token消耗?
- 知识库检索返回了什么结果?
- 错误发生在哪一步?错误信息是什么?
trace参数:
| 参数 | 说明 |
|---|---|
--env | 环境 |
--limit | list时显示的条数 |
--status | 过滤状态:success/error/all |
--min-duration | 过滤最小耗时(ms),如"1000"找慢请求 |
--output | 输出格式:text/json |
技巧:排查"回复慢"时,用
--min-duration 3000过滤慢请求,看trace的瀑布图,找到最耗时的步骤。如果是模型调用慢,考虑换更快的模型或优化提示词;如果是工具调用慢,优化工具代码或换更快的API;如果是知识库检索慢,优化向量数据库或减少top_k。
步骤5:性能监控(agentkit metrics)
metrics查看聚合的性能指标,适合监控整体健康状况和趋势:agentkit metrics --env prod
核心指标:
| 指标类别 | 指标 | 说明 | 健康阈值 |
|---|---|---|---|
| 流量 | 请求总数 | 总调用次数 | - |
| 流量 | QPS | 每秒请求数 | - |
| 流量 | 并发数 | 同时处理的请求数 | < 实例数*2 |
| 延迟 | 平均延迟 | 平均响应时间 | < 3s |
| 延迟 | P50延迟 | 50%请求的响应时间 | < 2s |
| 延迟 | P95延迟 | 95%请求的响应时间 | < 5s |
| 延迟 | P99延迟 | 99%请求的响应时间 | < 10s |
| 质量 | 错误率 | 失败请求占比 | < 1% |
| 质量 | 工具调用成功率 | 工具调用成功占比 | > 95% |
| 质量 | 平均回复长度 | 平均输出token数 | - |
| 成本 | 输入token总量 | 累计输入token | - |
| 成本 | 输出token总量 | 累计输出token | - |
| 成本 | 预估费用 | 累计预估费用 | - |
| 资源 | CPU使用率 | 实例CPU平均使用率 | < 70% |
| 资源 | 内存使用率 | 实例内存平均使用率 | < 80% |
| 资源 | 实例数 | 当前运行实例数 | - |
metrics参数:
| 参数 | 说明 |
|---|---|
--env | 环境 |
--since | 时间范围,如"1h"、"24h"、"7d" |
--interval | 聚合间隔,如"1m"、"5m"、"1h" |
--output | 输出格式:text/json/csv |
--metric | 只显示指定指标,如"latency,error_rate" |
导出指标用于报告:agentkit metrics --env prod --since 7d --output csv > weekly-metrics.csv
导出为CSV,可用于周报、成本分析、容量规划。
告警建议:1)错误率>5%持续5分钟→告警;2)P95延迟>10s持续5分钟→告警;3)CPU使用率>90%持续10分钟→告警(可能需要扩容);4)预估费用日环比增长>50%→告警(可能有异常调用)。用
agentkit alert create配置告警,推送到飞书/钉钉/邮件。
步骤6:问题定位方法论和最佳实践
常见问题定位路径:
| 问题现象 | 第一步 | 第二步 | 第三步 |
|---|---|---|---|
| 回复慢 | metrics看P95延迟 | trace看慢请求的链路 | 找到最耗时步骤优化 |
| 偶尔报错 | metrics看错误率 | logs --level error看错误 | trace看失败请求详情 |
| 工具不调用 | dev看工具调用日志 | 检查工具description | 优化工具描述和参数 |
| 回复质量差 | dev看系统提示词预览 | 检查知识库检索结果 | 优化提示词/知识库 |
| 成本高 | metrics看token消耗 | trace看输入token构成 | 精简提示词/减少历史 |
| 实例资源高 | metrics看CPU/内存 | logs看是否有异常循环 | 优化代码/升级实例 |
最佳实践:
- 开发时开debug:
agentkit dev --debug,提前发现问题 - 部署后看metrics:部署后立即看metrics,确认指标正常
- 配置告警:关键指标配置告警,问题发生时立即通知
- 保留日志:生产环境日志保留至少7天,便于回溯问题
- 定期review:每周看一次metrics,发现趋势性问题(如延迟逐渐升高、成本逐渐增长)
- 建立Runbook:常见问题的排查步骤写成文档,团队共享
- 灰度发布:重大更新先灰度,观察metrics确认无异常再全量
[5] 实际验证
掌握调试观测工具后验证:测试1 agentkit dev --debug启动,确认能看到API请求响应详情;测试2 agentkit logs --env prod --tail 50查看生产日志;测试3 agentkit trace list --env prod查看最近请求,trace show查看某次详情;测试4 agentkit metrics --env prod --since 1h查看最近1小时指标;测试5 模拟一个错误(如用错误的API Key),确认logs能看到错误日志,metrics错误率升高。成功标志:5项全部通过,能熟练使用四件套定位问题。
[6] 常见问题 FAQ
Q1:本地dev正常,部署到云端就出问题,怎么排查?
A:这是常见的"本地正常线上异常"问题,排查步骤:1)确认环境配置一致:对比environments/dev.yaml和prod.yaml,确认model_id、api_key、工具配置等一致;2)看云端错误日志:agentkit logs --env prod --level error,看具体错误信息;3)确认云端依赖完整:本地可能有全局安装的包,云端只安装requirements.txt中的依赖,确认所有依赖都在requirements.txt中;4)确认云端能访问外部服务:工具调用的外部API(如天气API、数据库),云端网络可能无法访问,需要配置VPC或白名单;5)确认文件路径:工具代码中如果用了相对路径,云端工作目录可能不同,用绝对路径或基于项目根目录的路径;6)在云端开debug:临时将云端日志级别调到debug(agentkit config set log_level debug --env prod),复现问题看详细日志。建议:保持dev和prod环境配置一致,用Docker容器保证环境一致性。
Q2:Agent回复越来越慢,怎么排查和优化?
A:回复变慢的常见原因和优化:1)上下文累积:对话历史越来越长,输入token增加,模型处理变慢。优化:设置history_window限制历史轮数,或定期/clear开始新对话;2)知识库膨胀:知识库文档越来越多,检索时间增加,检索结果也更多(增加输入token)。优化:定期清理过时文档,优化chunk_size,降低top_k;3)工具调用变慢:外部API响应变慢或超时。优化:检查外部API性能,加超时和重试,考虑缓存常用结果;4)模型负载高:高峰期模型服务负载高,响应变慢。优化:错峰调用,或配置备用模型(主模型慢时自动切换);5)实例资源不足:CPU/内存使用率高,处理能力下降。优化:升级实例规格或增加实例数(自动扩缩容)。排查:用trace看慢请求的链路,找到最耗时的环节,针对性优化。用metrics看延迟趋势,确认是逐渐变慢还是突然变慢。
Q3:怎么监控Agent的成本?会不会突然产生高额费用?
A:成本监控和控制:1)查看成本:agentkit metrics --env prod --since 1d看当天的token消耗和预估费用;2)导出成本数据:agentkit metrics --env prod --since 30d --output csv > monthly-cost.csv,用于月度成本分析;3)设置预算告警:agentkit alert create --metric cost --threshold 100 --channel email --url your@email.com,日费用超过100元时告警;4)设置调用限额:在agent.yaml中配置max_daily_tokens(每日最大token消耗),达到限额后自动停止服务,防止费用失控;5)优化成本:精简系统提示词(减少输入token)、设置max_tokens(限制输出长度)、用缓存(重复请求不重复调用模型)、选合适的模型(简单任务用轻量模型);6)定期review:每周看成本趋势,发现异常增长及时排查(可能是循环调用、恶意请求、提示词膨胀)。建议:上线前就设置预算告警和调用限额,避免"账单惊喜"。
Q4:链路追踪(trace)对排查问题帮助大吗?什么时候用?
A:trace对排查复杂问题非常有帮助,尤其是涉及多轮对话、工具调用、知识库检索的Agent。适用场景:1)排查"回复慢":trace的瀑布图清晰显示每一步的耗时,快速找到瓶颈;2)排查"工具调用失败":trace显示工具的输入参数和输出结果,确认是参数传错还是工具本身异常;3)排查"回复质量差":trace显示知识库检索返回了什么、模型每轮的输入输出,确认是检索结果不对还是模型理解有问题;4)排查"异常行为":trace显示完整的决策链路,确认Agent为什么做了某个操作;5)性能优化:trace显示各环节耗时占比,针对性优化。不适用场景:1)简单的单轮对话(没有工具调用和知识库),看logs就够了;2)问题非常明确(如API Key错误),直接修正即可。建议:生产环境默认开启trace(AgentKit默认开启),保留最近7天的trace数据,排查问题时随时可查。
[7] 相关阅读
- AgentKit CLI构建部署,部署和状态管理
- AgentKit CLI资源清理,资源回收和成本优化
- agent.yaml配置规范,日志级别和监控配置
- 火山引擎云监控,专业监控告警
- 火山引擎日志服务,日志存储和分析
[8] 参考资料
[1] 火山引擎官方文档 - AgentKit CLI:支持日志、链路追踪、性能监控等完整观测能力,2026-08-27
本文基于火山引擎官方文档(2026年8月)和AgentKit CLI调试观测实战编写。工具版本更新较快,具体命令请以官方最新文档为准。
[9] 时间
2026-08-27

