OpenCode Agent 介绍
本节介绍 OpenCode 的 Agent / Skill / MCP 体系。这些能力由 OpenCode 提供,Witty CLI 通过托管配置注册并复用。
Agent 体系
Witty 内置 Agent:witty-builtin-agent
witty-builtin-agent 是 Witty 随 witty-builtin-agent 子包提供的默认 primary agent,定义在 /usr/share/witty/opencode/config.d/witty-builtin-agent.json(由 loader 合入 /etc/opencode/opencode.json)。
| 字段 | 值 |
|---|---|
mode | primary |
| 描述 | Witty Assistant,提供知识问答、命令查询、故障诊断、方案规划与可视化报告 |
| 颜色 | #5F87FF |
| 提示词 | \{file:/usr/share/witty/opencode/agents/witty-builtin-agent/witty-builtin-agent.md} |
OpenCode 内置 Agent
除 witty-builtin-agent 外,OpenCode 还提供多个内置 agent(opencode agent list 实测):
| Agent | 模式 | 说明 |
|---|---|---|
build | primary | 默认主 agent |
plan | primary | 规划型 agent |
summary / title | primary | 摘要 / 标题生成 |
explore / general / baize / dayu / kuafu / nuwa | subagent | 各类子 agent |
fuxi | all | 主 agent + 子 agent |
诊断能力扩展包:witty-diagnosis-agent
witty-diagnosis-agent 是一个可选的诊断能力扩展包,它并不注册为独立 agent,而是通过 config.d/witty-diagnosis-agent.json 声明 Plugin,并在 /usr/share/witty/opencode/skills/witty-diagnosis-agent/ 下安装大量诊断类 Skill。安装后,这些 Skill 与插件上下文会注入到当前 agent。
使用方式:
sudo dnf install witty-diagnosis-agent安装后 OpenCode / Witty 会自动加载新增 Skill;若需让已运行的 server 生效,可执行 witty server restart。
Skill 体系
Skill 是 OpenCode 的场景化能力包,通过 skills.paths(Witty 托管为 /usr/share/witty/opencode/skills)加载。
Witty 内置 Skill(witty-builtin-agent 子包)
| Skill | 用途 |
|---|---|
manpage-skill | 查询 Linux / openEuler 命令用法、选项与示例 |
log-anomaly-detector | 分析系统日志与性能指标,进行故障初步定位 |
html-report-generator | 将诊断报告与方案渲染为网页 |
brainstorm-beagle | 当目标不明确时生成完整可执行的方案 |
plantuml-skill | 绘制流程图、时序图与架构图 |
经验技能管理:experience-skill
experience-skill 是 Witty 的核心知识引擎,支持 Skill(工作流程技能)与 Wiki(资料文档提炼)两类经验的创建、评估、检索、合并与优化。其 CLI 提供 sync、add-experiences、list-experiences、search-experiences、delete-*、web 等子命令(web 为经验管理界面,非 Witty 的 Web 前端)。
诊断 Skill(witty-diagnosis-agent 子包)
安装 witty-diagnosis-agent 后包含数十个诊断 Skill,例如:
linux-oom-analyzer、memory-leak-diagnosis、process-hang-diagnosisnetwork-diagnosis、dns-resolution-diagnosis、tls-certificate-diagnosisdisk-health-diagnosis、coredump_diagnose、kernel-io-uring-diagnosisroot-cause-analysis、root-cause-localization、fault-rca-report-generation等
MCP 体系
openeuler_portal
openeuler_portal 是 Witty 内置的本地 MCP,通过 npx -y openeuler-portal-mcp 提供 openEuler 官网数据查询(兼容性、CVE、软件包、文档、SIG、Issue/PR 等)。其 token(OPENEULER_TOKEN、GITCODE_TOKEN、FORUM_TOKEN)通过环境变量注入。
"mcp": {
"openeuler_portal": {
"type": "local",
"command": ["npx", "-y", "openeuler-portal-mcp"],
"environment": {
"OPENEULER_TOKEN": "${OPENEULER_TOKEN}",
"GITCODE_TOKEN": "${GITCODE_TOKEN}",
"FORUM_TOKEN": "${FORUM_TOKEN}"
},
"enabled": true,
"timeout": 30000
}
}Permission 策略
witty-builtin-agent 默认 permission 策略(节选):
"permission": {
"*": "ask",
"read": { "*": "allow", "*.env": "ask" },
"edit": "allow",
"glob": "allow",
"grep": "allow",
"webfetch": "allow",
"websearch": "allow",
"skill": "allow",
"task": "allow",
"openeuler_portal_*": "allow",
"bash": "allow",
"external_directory": { "*": "ask", "/tmp/**": "allow", "/usr/share/witty/**": "allow" }
}- 只读操作(查系统信息、读文件、检查状态)默认允许;
- 危险操作(改配置、装软件、重启服务、删文件)默认
ask,需用户确认; - 敏感数据默认本地处理,未经授权不上传。
permission各字段语义以 opencode.ai/docs 为准。