OpenCode 部署(直接使用)

本手册介绍在 openEuler 上直接部署 / 使用 OpenCode 的步骤。通常安装 witty 后即会自动完成 OpenCode 的部署与配置,本节适用于需要绕过 Witty CLI、自行管理 OpenCode 的进阶场景。

一般用户请直接使用 Witty CLI 一键部署,无需手动部署 OpenCode。

环境要求

  • 操作系统:openEuler 24.03 LTS SP3 或更高版本
  • 依赖
    • nodejs >= 20(来自 everything 仓库)
    • opencode(来自 update 仓库)
  • 系统权限:需具备 sudo 权限

安装 OpenCode

bash
sudo dnf install nodejs opencode

验证安装:

bash
opencode --version

Witty 托管配置

安装 Witty 后,witty-agent-loader 负责在 /etc/opencode/opencode.json 中聚合生成 OpenCode 的托管配置。该文件为生成产物,不建议手工维护。

托管目录

目录说明
/usr/share/witty/opencode/config.d/各子包提供的标准 opencode.json 配置片段
/usr/share/witty/opencode/agents/<agent>/Agent 角色提示词等资源
/usr/share/witty/opencode/skills/Skill 包(含 experience-skill、内置 5 个 Skill、诊断 Skill 等)
/usr/share/witty/opencode/plugins/OpenCode Plugin
/etc/opencode/opencode.json由 loader 生成的托管主配置

生成配置要点

生成的 /etc/opencode/opencode.json 通常包含:

json
{
  "$schema": "https://opencode.ai/config.json",
  "skills": {
    "paths": ["/usr/share/witty/opencode/skills"]
  },
  "agent": {
    "witty-builtin-agent": {
      "description": "Witty Assistant,提供知识问答、命令查询、故障诊断、方案规划与可视化报告",
      "mode": "primary",
      "prompt": "{file:/usr/share/witty/opencode/agents/witty-builtin-agent/witty-builtin-agent.md}",
      "color": "#5F87FF",
      "permission": { "*": "ask", "read": { "*": "allow", "*.env": "ask" }, "bash": "allow" }
    }
  },
  "mcp": {
    "openeuler_portal": {
      "type": "local",
      "command": ["npx", "-y", "openeuler-portal-mcp"],
      "enabled": true
    }
  }
}
  • skills.paths 固定指向 /usr/share/witty/opencode/skills,安装或卸载 Skill 子包后目录集合自动变化;
  • agent / mcp / permission 等字段来自 config.d/ 片段,loader 会合并且把 {file:...} 相对引用改写为绝对路径;
  • plugin 字段来自各子包声明,多个子包的 plugin 条目会被去重合并。

直接启动 OpenCode

无头服务

bash
opencode serve --port 4096

Witty 默认即通过这种方式连接 OpenCode;在开放了 server.auto_start = false 时,用户可手动启动该服务。

交互式 TUI

bash
opencode

opencode 默认会在当前目录启动交互式终端界面,并自动加载 /etc/opencode/opencode.json 中的 agent / skill / mcp 配置。

如何扩展

安装内置 Agent 与 Skill

内置智能体与技能随 Witty 一并安装,无需额外操作。安装额外的诊断能力:

bash
sudo dnf install witty-diagnosis-agent

安装后需让 OpenCode 重新加载配置:

bash
opencode agent list     # 确认 agent 可见

附录

手动部署(不通过 witty)

若不想依赖 Witty 的托管 loader,可自行维护 /etc/opencode/opencode.json,但需自行处理配置片段合并与 {file:...} 路径改写。建议仅在测试环境中使用,正式环境推荐保留 Witty 的托管部署。

常见问题

Q:opencode 安装在哪?

opencode 来自 update 仓库。若安装失败,请确认 /etc/yum.repos.d/ 已启用 update 仓库。

Q:如何确认 OpenCode 配置已被 Witty 托管生成?

查看 /etc/opencode/opencode.json 是否存在,以及 witty doctor 输出的 /doc endpointserver management 检查项。