跳转到内容

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 credentials

0 credentials 不代表模型不可用。当前自定义 Provider 通过 Secret 文件引用完成认证,而不是 OpenCode auth store。

二、Provider 与模型

当前配置了:

Provider模型
ghostcloud-gptgpt-5.6-solgpt-5.6-terragpt-5.6-luna
ghostcloud-glmGLM 5.x 与 DeepSeek 代理模型
ghostcloud-kimikimi-k2.7

优点:

  • baseURL 和 API Key 已使用 {file:...} 引用;
  • 默认大模型与 small model 分开;
  • 当前无 Plugin 修改模型路由,行为比旧配置更透明。

建议:

  1. Provider 名称和模型名称继续保持稳定,不频繁改别名。
  2. 若服务端不要求额外 Authorization Header,避免同时维护 apiKeyheaders.Authorization
  3. Secret 目录加入备份排除和权限保护,不进入 Git。
  4. 配置变更后用 opencode debug config 验证最终合并结果。

三、重大安全问题

DevOps MCP 凭据明文

当前 opencode.jsondevopsmcp.environment 中存在明文用户名和密码。即使文件未提交 Git,也存在以下风险:

  • 被备份、同步或日志收集;
  • 调试配置输出时暴露;
  • 被本机其他进程或 Agent 读取;
  • 未来误提交到仓库。

P0 建议:

  1. 轮换当前密码;
  2. 将用户名、密码迁移到 Secret 文件或环境变量;
  3. 检查备份文件 opencode.json.bak-* 是否也含旧凭据;
  4. 检查 Git 历史、聊天和日志是否出现过完整值;
  5. 重启 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-websearchremoteconnectedWeb 搜索
devopsmcplocalconnected公司 DevOps 系统

当前组合已经覆盖“外部资料 + 内部业务”,没有必要为了数量再安装多个重复搜索 MCP。

优化建议:

  • devopsmcp 明确只读工具和写工具清单;
  • 查询默认 allow,创建/触发操作 ask,删除 deny;
  • 记录 MCP 版本和更新方式;
  • 增加连接、查询、写操作三层烟雾测试;
  • 若 Exa 只用于搜索,继续限制为单一 Web Search 工具。

五、Agent

用户级专用 Agent

Agent模式用途当前风险
CodeAgenthidden subagentgh-sdd 编码任务editbashtask 范围较宽
GhSddGeneralAgenthidden subagent分析、拆解、产物准备声明可写 artifact,但 edit 全局 allow
GhSddUiAnalysisAgenthidden subagentUI 图片分析当前固定 GLM-5.2,需确认支持图片

优点:

  • 都是隐藏 Subagent,不会污染主 Agent 选择;
  • 职责和阻塞状态定义清楚;
  • 禁止从历史推断 issueId/taskId,减少串单;
  • 禁止 Web 和 Skill,执行边界较明确。

优化建议:

  1. GhSddGeneralAgent 只允许修改 .gh-sdd/artifacts/**,其他 edit deny。
  2. GhSddUiAnalysisAgent 同样只写 UI spec 目标目录。
  3. CodeAgent 对危险 Bash 命令使用 ask/deny,而不是全部 allow。
  4. 如子 Agent 不需要再次委派,关闭 task,避免递归复杂化。
  5. 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 权限中存在大量内置和合并规则,应关注“最后匹配生效”。

优化优先级:

  1. Secret 目录显式 deny;
  2. bash 默认 ask;
  3. Git status/diff/test 等只读命令 allow;
  4. 删除、强推、生产发布 deny 或 ask;
  5. Subagent 按职责限制 edit 路径;
  6. 定期用 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 测试,确认配置不是“看起来正确”。

相关笔记

基于 MIT 许可发布