主题
OpenCode 本机配置审计
结论
当前 OpenCode 已经从早期“双 Plugin + 多套隐式能力”整理为较清晰的原生结构:
text
OpenCode 1.17.18
├── 3 个自定义 Provider
├── 默认 build Agent
├── 3 个 gh-sdd 专用 Subagent
├── 48 个 gh-sdd Command
├── 1 个用户 Skill
├── 2 个已连接 MCP
└── 0 个外部 Plugin官方当前文档还列出只读外部资料研究用的 Scout Subagent,但本机 opencode agent list 未显示它,因此本机手册不能把它写成当前可用能力。
当前最需要处理的不是继续增加功能,而是 Secret 安全、Command 规模治理、权限收紧和配置可移植性。
一、实际运行状态
本次命令检查:
text
OpenCode 版本:1.17.18
二进制:D:\data\env\node\node-v26.1.0-win-x64\node_global\opencode.ps1
全局配置:C:\Users\GhostCloud\.config\opencode\opencode.json
默认模型:ghostcloud-gpt/gpt-5.6-sol
Small model:ghostcloud-glm/GLM-5.1-Turbo
默认 Agent:build
Plugin:[]
认证存储:0 credentials0 credentials 不代表模型不可用。当前自定义 Provider 通过 Secret 文件引用完成认证,而不是 OpenCode auth store。
二、Provider 与模型
当前配置了:
| Provider | 模型 |
|---|---|
ghostcloud-gpt | gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna |
ghostcloud-glm | GLM 5.x 与 DeepSeek 代理模型 |
ghostcloud-kimi | kimi-k2.7 |
优点:
baseURL和 API Key 已使用{file:...}引用;- 默认大模型与 small model 分开;
- 当前无 Plugin 修改模型路由,行为比旧配置更透明。
建议:
- Provider 名称和模型名称继续保持稳定,不频繁改别名。
- 若服务端不要求额外 Authorization Header,避免同时维护
apiKey和headers.Authorization。 - Secret 目录加入备份排除和权限保护,不进入 Git。
- 配置变更后用
opencode debug config验证最终合并结果。
三、重大安全问题
DevOps MCP 凭据明文
当前 opencode.json 的 devopsmcp.environment 中存在明文用户名和密码。即使文件未提交 Git,也存在以下风险:
- 被备份、同步或日志收集;
- 调试配置输出时暴露;
- 被本机其他进程或 Agent 读取;
- 未来误提交到仓库。
P0 建议:
- 轮换当前密码;
- 将用户名、密码迁移到 Secret 文件或环境变量;
- 检查备份文件
opencode.json.bak-*是否也含旧凭据; - 检查 Git 历史、聊天和日志是否出现过完整值;
- 重启 OpenCode,并重新测试 MCP。
示意配置:
jsonc
{
"mcp": {
"devopsmcp": {
"type": "local",
"command": ["D:\\data\\project\\ai-agent\\gh-sdd\\devopsmcp.exe"],
"enabled": true,
"environment": {
"DEVOPS_URL": "{file:~/.config/opencode/secrets/devops_url}",
"DEVOPS_PROVIDER": "DEVOPS",
"DEVOPS_USERNAME": "{file:~/.config/opencode/secrets/devops_username}",
"DEVOPS_PASSWORD": "{file:~/.config/opencode/secrets/devops_password}"
}
}
}
}NOTE
environment 是当前本机配置中已经真实连接成功的字段。修改前仍应使用当前 https://opencode.ai/config.json 校验,避免版本差异。
四、MCP
真实状态:
| MCP | 类型 | 状态 | 用途 |
|---|---|---|---|
exa-websearch | remote | connected | Web 搜索 |
devopsmcp | local | connected | 公司 DevOps 系统 |
当前组合已经覆盖“外部资料 + 内部业务”,没有必要为了数量再安装多个重复搜索 MCP。
优化建议:
- 为
devopsmcp明确只读工具和写工具清单; - 查询默认 allow,创建/触发操作 ask,删除 deny;
- 记录 MCP 版本和更新方式;
- 增加连接、查询、写操作三层烟雾测试;
- 若 Exa 只用于搜索,继续限制为单一 Web Search 工具。
五、Agent
用户级专用 Agent
| Agent | 模式 | 用途 | 当前风险 |
|---|---|---|---|
CodeAgent | hidden subagent | gh-sdd 编码任务 | edit、bash、task 范围较宽 |
GhSddGeneralAgent | hidden subagent | 分析、拆解、产物准备 | 声明可写 artifact,但 edit 全局 allow |
GhSddUiAnalysisAgent | hidden subagent | UI 图片分析 | 当前固定 GLM-5.2,需确认支持图片 |
优点:
- 都是隐藏 Subagent,不会污染主 Agent 选择;
- 职责和阻塞状态定义清楚;
- 禁止从历史推断 issueId/taskId,减少串单;
- 禁止 Web 和 Skill,执行边界较明确。
优化建议:
GhSddGeneralAgent只允许修改.gh-sdd/artifacts/**,其他 edit deny。GhSddUiAnalysisAgent同样只写 UI spec 目标目录。CodeAgent对危险 Bash 命令使用 ask/deny,而不是全部 allow。- 如子 Agent 不需要再次委派,关闭
task,避免递归复杂化。 - UI Agent 增加真实图片烟雾测试,不能只依靠 Prompt 声明。
六、Command
当前用户级目录有 48 个 gh-sdd-* Command。它们覆盖:
- 需求分析与拆解;
- Task 开始、开发、测试、验证、完成;
- Fullstack 与 Fast Lane;
- UI 生成、运行、调试和录制;
- 性能、静态检查和 Golden Master;
- 知识采集、整理、评审与发布;
- DevOps、提交、工时和反馈。
优点是入口标准化,风险是命令过多、名称中英混合、流程规则重复,维护时容易漂移。
建议把 48 个命令分为 6 组,并为用户只暴露高频入口:
text
核心流程:start / next / back / status
任务执行:task-start / task-develop / task-test / task-done
质量保障:verify / static-verify / perf-verify / test-review
专项流程:ui-* / fullstack-* / fast-runner-*
知识管理:knowledge-*
管理操作:commit / work-hour / feedback / devops-config重复的 session 绑定、证据约束、auto 控制流应尽量由 gh-sdd CLI 或共享模板生成,而不是手工复制到每个 Command。
七、Skill
真实发现:
| Skill | 来源 | 用途 |
|---|---|---|
customize-opencode | 内置 | 配置 OpenCode 本身 |
powershell-reliable | 用户级 | PowerShell/CMD 与 Windows 管理 |
本机用户级 Skill 只有一个,结构清晰。当前 gh-sdd 流程主要通过 Command + CLI 管理,不需要为了对称性再复制成 OpenCode Skill。
建议:
- 通用 Windows SOP 保持用户级;
- gh-sdd 内部技能继续由 gh-sdd 自己作为真源;
- 只有不依赖 gh-sdd Command、且会被其他项目复用的流程才提升为 OpenCode Skill。
八、Permission
全局配置主要允许读取 ~/.gh-sdd 和临时目录。最终 Agent 权限中存在大量内置和合并规则,应关注“最后匹配生效”。
优化优先级:
- Secret 目录显式 deny;
bash默认 ask;- Git status/diff/test 等只读命令 allow;
- 删除、强推、生产发布 deny 或 ask;
- Subagent 按职责限制 edit 路径;
- 定期用
opencode agent list查看最终权限,而不是只读源文件。
九、配置和项目整理建议
当前 OpenCode 配置本身是用户级的,D:\data\project\ai-agent\gh-sdd 是其主要相关项目和本地 MCP 来源。建议:
text
~/.config/opencode/
├── opencode.json 通用 Provider、MCP、权限
├── secrets/ 所有 Secret
├── agents/ 仅跨项目复用的 Agent
├── commands/ gh-sdd 生成或同步的入口
└── skills/ 通用 Skill
D:/data/project/ai-agent/gh-sdd/
├── devopsmcp.exe MCP 可执行文件
├── 版本化源码/发布包
├── 用户手册
└── Command/Agent 生成源 建议明确建立关键是确定 48 个 Command 和 3 个 Agent 的真源。如果它们由 gh-sdd 安装器生成,应在文档中记录版本和更新命令,不要手工逐个维护。
十、优化顺序
P0:立即处理
- 轮换并迁移 DevOps 明文密码;
- 检查备份、日志和历史残留。
P1:权限
- 收紧 3 个 Subagent 的 edit/bash/task;
- 为 DevOps 写操作建立 ask/deny 规则。
P2:治理
- 为 48 个 Command 建立分类、真源和自动同步方式;
- 清理废弃 Command,统一中英文命名策略。
P3:持续验证
powershell
opencode --version
opencode debug config
opencode debug info
opencode debug skill
opencode agent list
opencode mcp list
opencode --pure最后执行一个真实只读查询、一个隔离的代码任务和一个安全的 DevOps 测试,确认配置不是“看起来正确”。