OpenCode 部署(直接使用)
本手册介绍在 openEuler 上直接部署 / 使用 OpenCode 的步骤。通常安装 witty 后即会自动完成 OpenCode 的部署与配置,本节适用于需要绕过 Witty CLI、自行管理 OpenCode 的进阶场景。
一般用户请直接使用 Witty CLI 一键部署,无需手动部署 OpenCode。
环境要求
- 操作系统:openEuler 24.03 LTS SP3 或更高版本
- 依赖:
nodejs >= 20(来自everything仓库)opencode(来自update仓库)
- 系统权限:需具备 sudo 权限
安装 OpenCode
sudo dnf install nodejs opencode验证安装:
opencode --versionWitty 托管配置
安装 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 通常包含:
{
"$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
无头服务
opencode serve --port 4096Witty 默认即通过这种方式连接 OpenCode;在开放了 server.auto_start = false 时,用户可手动启动该服务。
交互式 TUI
opencodeopencode 默认会在当前目录启动交互式终端界面,并自动加载 /etc/opencode/opencode.json 中的 agent / skill / mcp 配置。
如何扩展
安装内置 Agent 与 Skill
内置智能体与技能随 Witty 一并安装,无需额外操作。安装额外的诊断能力:
sudo dnf install witty-diagnosis-agent安装后需让 OpenCode 重新加载配置:
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 endpoint 与 server management 检查项。