Skip to content

新增 Agent 健康页和人话错误提示,提供一键诊断与受控修复 #128

@luoyuctl

Description

@luoyuctl

背景

非技术用户遇到 Hermes/OpenClaw/QwenPaw 不响应时,最痛的是“不知道发生了什么,也不知道下一步点哪里”。直接让用户看 systemd/log/端口/配置文件,门槛太高。

这个 issue 目标是先做 Agent 健康页和人话错误提示,再逐步增加一键修复。fallback AI repair agent 可以作为第二阶段,但不应该一开始默认接管系统自动改文件。

当前代码依据

  • Hermes/OpenClaw/QwenPaw 都是按镜像预装,并通过 user systemd service/gateway 运行:
    • Hermes:scripts/x86_64/make-rootfs-hermes.shscripts/arm64/make-rootfs-hermes.sh
    • OpenClaw:scripts/x86_64/make-rootfs-openclaw.shscripts/arm64/make-rootfs-openclaw.sh
    • QwenPaw:scripts/rootfs-services/qwenpaw.servicescripts/x86_64/make-rootfs-qwenpaw.sh
  • TenBox 已有 LLM proxy,并在 guest 固定暴露为 http://10.0.2.3/v1;Hermes/OpenClaw 已默认使用该入口。
  • daemon 已有 VM runtime logs、状态和 crash 信息:src/daemon/runtime_manager.cppdocs/tenboxd.md
  • qemu guest agent 当前只封装 shutdown/ping/sync-time,没有通用 guest-exec:src/core/guest_agent/guest_agent_handler.*
  • 远程桌面已有 WebRTC DataChannel,但面向浏览器交互,不适合作为后台修复执行通道:src/daemon/remote_webrtc.*src/daemon/cloud_tunnel.cpp

MVP 边界

第一版做“看得懂 + 可点击”的确定性诊断,不引入默认 AI 自修。

建议 MVP:

  1. 新增 Agent 健康页/状态卡:
    • Agent 正常 / 启动中 / 出错。
    • gateway service 是否运行。
    • gateway 端口是否可达。
    • LLM proxy/model 是否可调用。
    • 浏览器是否可启动。
    • 磁盘空间是否足够。
    • 最近一次错误摘要。
  2. 每个异常只给一个主按钮:
    • 重新启动 Agent。
    • 重新测试模型。
    • 恢复 TenBox 默认配置。
    • 重新下载/修复镜像。
    • 导出诊断包给客服/开发者。
  3. 错误提示从技术错误映射到人话:
    • 模型连不上:先检查模型配置。
    • Agent 服务没启动:点击重启。
    • 端口被占用:点击换端口或重启。
    • 磁盘空间不足:清理或调整备份位置。
  4. 修复前先接 默认保护 Agent 数据:自动备份、删除保留、升级前快照和一键恢复 #127:能自动生成一次 Agent 数据快照。

第二阶段:受控 AI repair planner

在确定性诊断稳定后,再考虑 fallback agent:

  • 可选安装 opencode/claude code 等 repair backend,不默认增加重型依赖。
  • 使用 TenBox LLM proxy,不要求用户再配一套 key。
  • 默认只生成 repair plan,不自动改文件。
  • 自动执行只允许白名单动作:重启 service、恢复默认 proxy 配置、执行官方 update、修复明显损坏的 JSON/YAML。
  • 每次修复保存 repair-report.json,记录输入摘要、执行命令、改动文件、结果。

验收标准

  • 非技术用户能在一个页面看到 Agent 是否可用,以及失败原因。
  • 常见故障不需要打开终端即可处理:重启 Agent、重测模型、恢复默认配置、导出诊断包。
  • 错误文案给明确下一步,不直接暴露 systemd/端口/qemu 等底层概念。
  • 修复动作执行前会先创建 默认保护 Agent 数据:自动备份、删除保留、升级前快照和一键恢复 #127 的数据快照,失败可回退。
  • fallback AI repair 不默认自动写文件;需要用户确认或命中白名单。
  • health report 能区分 Agent 挂了、模型不可用、网络不可用、配置损坏、磁盘不足。

风险与注意点

  • “让另一个 Agent 自动修 Agent”权限风险高,必须先从确定性诊断和只读计划开始。
  • LLM proxy/provider 本身故障时,AI repair agent 也可能不可用,所以基础 doctor 不能依赖模型。
  • 不要把技术日志直接甩给非技术用户;日志应该放在“展开详情”或诊断包里。
  • 当前 QGA 没有 guest-exec,host 侧触发 guest 内修复需要谨慎设计;MVP 可以优先通过 rootfs 内 supervisor/report 实现。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions