智能助手 CLI Agent 介绍 ​

引言 ​

Witty CLI 开箱即带一个内置智能体 witty-builtin-agent(Witty Assistant)。该智能体面向 openEuler 操作系统场景,提供知识问答、命令查询、故障诊断、方案规划与可视化报告能力,并以 experience-skill 为核心知识引擎、以 openEuler Portal MCP 获取官网实时数据,具备持续学习与经验沉淀能力。

默认智能体 ​

Agent 名称模式定位
witty-builtin-agentprimaryWitty Assistant,提供知识问答、命令查询、故障诊断、方案规划与可视化报告

安装 witty 后,witty-builtin-agent 即作为默认 agent 生效。运行 witty 时提示符会显示当前 agent:

text
witty [witty-builtin-agent] >

可使用 /agent <name> 切换到其他已安装的 agent(例如 OpenCode 内置的 build、plan 等):

text
/agent build

核心能力 ​

内置工具 ​

工具说明
bash在用户机器上执行 shell 命令,用于查询系统信息、诊断问题、执行只读检查;危险动作需用户确认
read / grep / glob读取与检索文件内容,用于查看日志、配置文件等
webfetch / websearch从互联网获取信息

核心 Skill ​

智能体借助以下 Skill 完成复杂任务:

Skill用途
experience-skill核心知识引擎,回答前先检索本地经验库
manpage-skill查询 Linux / openEuler 命令的用法、选项与示例
log-anomaly-detector分析系统日志与性能指标,进行故障初步定位
html-report-generator将诊断报告与方案渲染为网页
brainstorm-beagle当用户目标不明确时,生成完整可执行的方案
plantuml-skill绘制流程图、时序图与架构图

openEuler Portal MCP ​

智能体通过 openEuler Portal MCP 查询 openEuler 官网实时数据,例如兼容性、CVE、软件包、文档、SIG、Issue/PR 等。相关 token(OPENEULER_TOKEN、GITCODE_TOKEN、FORUM_TOKEN)通过环境变量注入,无需用户手工配置。

说明:witty-diagnosis-agent 是一个可选的诊断能力扩展包(安装后为 opencode 注入诊断类 Skill 与插件),并非独立 agent;其诊断能力会注入到当前 agent 中,可通过 witty server restart 使其生效。

使用示例 ​

以下演示内置 Agent 的典型交互场景(GIF 为完整过程录屏)。

场景一:基础系统运维 ​

输入:帮我给当前用户设置一个 SSH 密码

Agent 会将自然语言转化为 shell 命令,并在执行前提示确认,避免误操作。

设置 SSH 密码演示

场景二:南北向兼容性分析 ​

输入:分析一下为什么 Broadcom 9500-8i 板卡在 openEuler 20.03 上无法识别

Agent 调用 openEuler Portal MCP 的论坛搜索、文档搜索、硬件兼容性查询等工具,在 openEuler 社区全站检索相关案例与解决方案,快速定位兼容性问题根因。

驱动兼容性分析演示

智能体工作原则 ​

先检索经验,再作答 ​

当用户提出技术问题、故障症状或需求时,智能体按以下顺序执行:

  1. 先调用 experience-skill 检索本地经验库;
  2. 若本地经验不足,调用 openEuler Portal MCP 查询官网实时数据;
  3. 结合本地经验与 MCP 结果,输出标注时效性的回答。

时效性标注 ​

涉及事实性内容时,智能体会标注:

  • 本地经验:标注最后更新时间;
  • MCP 官网数据:标注查询时间;
  • 时效性状态:valid / outdated / uncertain。

安全优先 ​

  • 只读命令可直接执行:查询系统信息、读取文件、检查状态等只读命令无需额外确认;
  • 危险命令需用户确认:修改系统配置、安装软件、重启服务、删除文件等操作需先说明风险并等待用户确认;
  • 涉及风险时始终提供风险提示与只读验证建议;
  • 敏感数据(系统日志、配置)默认在本地处理,未经授权不上传。

Skill 编排 ​

针对复杂任务,智能体组合多个 Skill:

  • 故障诊断:log-anomaly-detector → experience-skill(+ MCP)→ brainstorm-beagle → plantuml-skill → html-report-generator
  • 命令咨询:manpage-skill → experience-skill(补充场景与注意事项)
  • 方案规划:brainstorm-beagle → experience-skill(+ MCP 获取文档)→ plantuml-skill → html-report-generator
  • 兼容性/包查询:experience-skill → openEuler Portal MCP

结果输出 ​

  • 简单问答:直接给出简洁回答;
  • 诊断/规划:输出结构化 Markdown,并询问是否用 html-report-generator 渲染网页报告;
  • 涉及流程/架构:调用 plantuml-skill 绘图。

经验沉淀 ​

成功解决本地经验库中不存在的全新问题后,智能体会主动询问:

是否将该问题及其解决方案沉淀到 experience-skill 库中,以便后续复用?

experience-skill 使用 ​

experience-skill 是经验技能管理组件,用于统一管理用户工作经验的能力沉淀,支持 Skill(工作流程技能)与 Wiki(资料文档提炼)两类资源的全生命周期管理。

CLI 命令 ​

子命令用途
sync同步 data/ 中所有经验到数据库
add-experiences添加 Skill/Wiki 经验到数据库
list-experiences分页列出经验,支持类型/名称/热门过滤
search-experiences全文检索经验(基于 SQLite + FTS5)
delete-by-ids / delete-by-source / delete-all删除经验
web启动经验管理 Web 界面(默认 http://127.0.0.1:8080,用于经验的图形化管理)

Skill / Wiki 管理能力 ​

  • create-skill / create-wiki:将对话或查阅资料沉淀为标准化 Skill/Wiki;创建前自动查重;
  • eval-skill / eval-wiki:基于评测集开展质量核验;
  • find-skill / find-wiki:结合关键字检索与全文检索快速定位;
  • merge-skill / merge-wiki:合并同质内容,剔除重复;
  • optimize-skill / optimize-wiki:依据评估结果迭代优化。

关于更早一代基于 witty_log_detection 与 light_rag MCP 服务的「已知问题分析 Agent」能力详情,请参见 OpenCode Agent 介绍。

说明:experience-skill 的 web 子命令启动的是经验管理界面,用于图形化浏览与管理本地经验,并非 Witty 的 Web 前端(Witty 已不再提供 Web 端)。