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)。

字段值
modeprimary
描述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模式说明
buildprimary默认主 agent
planprimary规划型 agent
summary / titleprimary摘要 / 标题生成
explore / general / baize / dayu / kuafu / nuwasubagent各类子 agent
fuxiall主 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。

使用方式:

bash
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-diagnosis
  • network-diagnosis、dns-resolution-diagnosis、tls-certificate-diagnosis
  • disk-health-diagnosis、coredump_diagnose、kernel-io-uring-diagnosis
  • root-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)通过环境变量注入。

json
"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 策略(节选):

json
"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 为准。