可通过五种方法查看与调试workbuddy技能执行日志:一、控制台实时日志;二、容器内日志文件;三、本地debug模式;四、检查skill.yaml日志配置;五、调用api拉取结构化错误事件。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用 WorkBuddy 过程中发现某项技能执行失败或行为异常,需定位具体原因,则可通过查看技能执行日志进行错误分析。以下是查看与调试日志的多种方法:
一、通过 WorkBuddy 管理控制台查看实时日志
WorkBuddy 管理控制台提供 Web 端日志流式展示功能,适用于快速捕获最近一次技能执行的输出与错误堆栈。该方式无需本地环境配置,适合初步排查。
1、登录 WorkBuddy 管理控制台,进入【技能管理】页面。
2、点击目标技能右侧的【执行日志】按钮。
3、在弹出窗口中选择【最近一次执行】或手动输入执行 ID 进行检索。
4、滚动查看日志内容,重点关注以 ERROR 或 Exception 开头的行,以及包含 Traceback 的完整堆栈信息。
二、从容器内直接读取日志文件
当 WorkBuddy 以 Docker 容器方式部署时,技能执行日志默认写入容器内固定路径。该方式可获取完整原始日志,包括未上报至控制台的初始化阶段错误。
1、执行 docker ps | grep workbuddy 获取运行中 WorkBuddy 容器的 CONTAINER ID。
2、运行 docker exec -it <container_id> sh</container_id> 进入容器交互终端。
3、切换至日志目录:cd /var/log/workbuddy/skills/。
4、列出按技能名称和时间戳命名的日志文件:ls -lt。
5、使用 tail -n 200 <skill_name>_<timestamp>.log</timestamp></skill_name> 查看末尾关键段落,特别注意日志中出现的 FileNotFoundError、TimeoutError 或 JSONDecodeError 类型错误。
三、启用本地调试模式并捕获详细日志
在开发或测试环境中,可通过启动参数强制 WorkBuddy 输出 DEBUG 级别日志,并将日志重定向至本地文件,便于逐行追踪技能函数调用链。
1、停止当前 WorkBuddy 服务进程。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
2、在启动命令末尾添加参数:--log-level DEBUG --log-file ./debug_skill.log。
3、触发一次目标技能执行(如通过 API 调用或界面点击)。
4、执行完成后,打开 debug_skill.log 文件,搜索关键词 execute_skill、input_payload、output_result,确认输入数据结构是否符合预期。
四、检查技能定义 YAML 中的日志配置项
部分技能在定义文件(如 skill.yaml)中声明了独立日志路径或错误捕获策略。若日志缺失或截断,可能因配置覆盖了全局日志行为。
1、定位对应技能的定义文件,通常位于 skills/<skill_id>/skill.yaml</skill_id>。
2、查找是否存在 logging: 区块,及其下 file_path: 或 level: 字段。
3、确认 file_path 指向的目录容器内可写,且路径未被硬编码为绝对路径导致挂载失效。
4、若存在 error_handler: 配置,检查其是否静默吞掉了原始异常,应临时注释该段以暴露底层报错。
五、通过 API 接口拉取结构化错误事件
WorkBuddy 提供 RESTful 接口用于程序化获取技能执行元数据及错误摘要,适用于集成监控系统或批量分析失败案例。
1、构造 GET 请求:GET /api/v1/executions?skill_id=<id>&status=failed&limit=10</id>。
2、在响应体中提取每个 execution 对象的 error_code 和 error_message 字段。
3、对高频出现的 error_code 值(如 SKILL_TIMEOUT、INPUT_VALIDATION_FAILED)进行归类统计。
4、针对 error_message 中含 “context missing key” 或 “invalid type for field” 的条目,立即核查技能 input_schema 定义与实际传入 payload 的字段一致性。










