智能助手 CLI Agent 介绍
引言
Witty CLI 开箱即带一个内置智能体 witty-builtin-agent(Witty Assistant)。该智能体面向 openEuler 操作系统场景,提供知识问答、命令查询、故障诊断、方案规划与可视化报告能力,并以 experience-skill 为核心知识引擎、以 openEuler Portal MCP 获取官网实时数据,具备持续学习与经验沉淀能力。
默认智能体
| Agent 名称 | 模式 | 定位 |
|---|---|---|
witty-builtin-agent | primary | Witty Assistant,提供知识问答、命令查询、故障诊断、方案规划与可视化报告 |
安装 witty 后,witty-builtin-agent 即作为默认 agent 生效。运行 witty 时提示符会显示当前 agent:
witty [witty-builtin-agent] >可使用 /agent <name> 切换到其他已安装的 agent(例如 OpenCode 内置的 build、plan 等):
/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 命令,并在执行前提示确认,避免误操作。
场景二:南北向兼容性分析
输入:分析一下为什么 Broadcom 9500-8i 板卡在 openEuler 20.03 上无法识别
Agent 调用 openEuler Portal MCP 的论坛搜索、文档搜索、硬件兼容性查询等工具,在 openEuler 社区全站检索相关案例与解决方案,快速定位兼容性问题根因。
智能体工作原则
先检索经验,再作答
当用户提出技术问题、故障症状或需求时,智能体按以下顺序执行:
- 先调用
experience-skill检索本地经验库; - 若本地经验不足,调用 openEuler Portal MCP 查询官网实时数据;
- 结合本地经验与 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_ragMCP 服务的「已知问题分析 Agent」能力详情,请参见 OpenCode Agent 介绍。说明:
experience-skill的web子命令启动的是经验管理界面,用于图形化浏览与管理本地经验,并非 Witty 的 Web 前端(Witty 已不再提供 Web 端)。

