OpenCode 不仅能独立工作,还能深度融入你的团队协作工具和开发工作流。从 GitHub/GitLab 集成到 LSP 服务器,从 References 引用系统到上下文管理,从会话分享到团队标准化——本文将覆盖所有协作相关功能。
OpenCode 可以直接在 GitHub Issues 和 Pull Requests 中工作:
# 处理 Issue opencode -p "查看 GitHub issue #42 的描述,实现其中要求的功能" # 审查 PR opencode -p "审查 PR #128 的代码变更,关注安全性和性能"
通过 GitHub MCP 服务器可以获得更完整的 GitHub 集成:
{
"mcp": {
"github": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
配置后可以:
帮我创建 Issue:「用户登录页面需要支持 OAuth 2.0」 帮我把当前分支推送到 origin 并创建一个 Draft PR 查看 repo 中所有标记为 bug 且 assignee 是我的 Issue
安装 OpenCode GitHub App 后,可以在 Issue 中通过 /opencode 命令触发 AI 操作:
<!-- 在 GitHub Issue 评论中 --> /opencode 帮我实现这个功能 /opencode review
{
"mcp": {
"gitlab": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-gitlab"],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "${GITLAB_TOKEN}",
"GITLAB_API_URL": "https://gitlab.com/api/v4"
}
}
}
}
OpenCode 内置了 Git Worktree 支持,可以在隔离的工作副本中执行实验性修改:
@using-git-worktrees 创建一个 worktree 来实验新的认证方案
通过接入 LSP(Language Server Protocol),OpenCode 可以获得编辑器级别的代码理解能力。
{
"lsp": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"]
},
"rust": {
"command": "rust-analyzer",
"args": []
},
"go": {
"command": "gopls"
},
"python": {
"command": "pyright-langserver",
"args": ["--stdio"]
},
"lua": {
"command": "lua-language-server"
},
"svelte": {
"command": "svelte-language-server",
"args": ["--stdio"]
},
"vue": {
"command": "vue-language-server",
"args": ["--stdio"]
}
}
}
接入 LSP 后,OpenCode 可以:
启用 TypeScript LSP 后:
帮我重构 UserService 类,把直接的数据库调用改成 Repository 模式。 注意:需要更新所有引用 UserService 的地方。
OpenCode 会通过 LSP 找到所有引用点,确保重构的完整性。
References 让 OpenCode 可以跨项目引用代码和知识。
在对话中使用 @ 符号引用:
@path/to/file.ts # 引用当前项目的文件 @/absolute/path/file.rs # 引用绝对路径文件 @../other-project/src/ # 引用其他项目的目录 @https://example.com/doc # 引用网页内容 @file:src/utils.ts:42-58 # 引用文件的特定行范围
{
"references": {
"enabled": true,
"maxReferencedFiles": 10,
"followSymlinks": true,
"sharedKnowledge": [
"~/dev/shared-docs/",
"~/dev/company-standards/"
]
}
}
@~/dev/shared-docs/api-standards.md 参考这个文档,检查当前项目的 API 是否合规
合理管理上下文窗口是使用 LLM 高效工作的关键。
{
"session": {
"maxContextTokens": 180000,
"autoSummarize": true,
"summarizeThreshold": 0.75
},
"context": {
"indexOnStart": false,
"maxFiles": 40,
"maxFileSize": 100000,
"exclude": [
"node_modules",
"dist",
".git",
"vendor",
"*.lock",
"*.min.js",
"*.map",
"*.generated.*"
],
"includeExtensions": [
".ts", ".tsx", ".js", ".jsx",
".rs", ".go", ".py",
".json", ".yaml", ".yml",
".md"
]
}
}
当上下文接近上限时,OpenCode 会自动总结历史对话:
[自动总结] 本次会话已进行了 15 轮对话,以下是要点摘要: - 完成了用户认证模块的重构 - 添加了 JWT token 刷新机制 - 修复了登录页面的 XSS 漏洞 - 正在进行:API 速率限制功能
你也可以手动触发总结:
/compact
| 策略 | 适用场景 |
|------|----------|
| 保持完整历史 | 同一功能开发,需要连贯上下文 |
| 定期总结 | 长时间开发,涉及多个模块 |
| 新会话开始 | 切换到完全不同的任务 |
OpenCode 支持将当前会话导出为可分享的链接:
/share
生成一个临时链接,团队成员可以通过浏览器查看你的对话:
配置会话分享:
{
"sharing": {
"enabled": true,
"defaultExpiry": "24h",
"maxExpiry": "7d",
"requireAuth": false,
"allowFork": true
}
}
当 allowFork 为 true 时,其他人可以从你的分享链接创建自己的会话副本继续工作。
将项目配置提交到 Git,确保团队统一的工作方式:
// .opencode/opencode.json(提交到 Git)
{
"agent": "build",
"agents": {
"build": {
"permissions": {
"allow": ["src/**", "tests/**"],
"deny": [".env", "**/secrets/**"]
}
}
},
"formatters": {
"prettier": {
"command": "npx",
"args": ["prettier", "--write"],
"extensions": [".ts", ".tsx", ".json", ".md"]
}
},
"formatOnSave": true,
"context": {
"exclude": ["node_modules", "dist", ".git"]
}
}
.opencode/commands/ ├── pr.md # 创建 PR 的标准流程 ├── test.md # 运行测试的标准流程 ├── review.md # Code Review 标准流程 └── deploy.md # 部署标准流程
.opencode/skills/
├── api-design/
│ └── SKILL.md # API 设计规范
├── code-style/
│ └── SKILL.md # 编码风格规范
└── database/
└── SKILL.md # 数据库操作规范
通过 AGENTS.md 建立团队知识库:
# 团队知识库 ## 项目架构决策 (ADR) 1. **为什么使用 NestJS**:团队熟悉 TypeScript,需要企业级架构 2. **为什么使用 PostgreSQL 而非 MongoDB**:需要复杂的事务和关系查询 3. **微服务还是单体**:当前阶段使用模块化单体,未来按需拆分 ## 常见问题 ### Q:如何添加新的 API 端点? 1. 在对应 Module 的 controllers 中定义路由 2. 使用 class-validator 添加参数验证 3. 在 Swagger 装饰器中添加文档 4. 运行 `npm run test:e2e` 验证 ### Q:如何添加数据库迁移? 1. 创建迁移文件:`npm run db:migrate:create -- --name=description` 2. 编写迁移 SQL 3. 运行迁移:`npm run db:migrate`
<!-- .opencode/commands/review-pr.md --> 请作为 Code Reviewer 审查当前分支相对于 main 的所有变更: ## 审查维度 ### 必须通过 - [ ] 代码逻辑是否正确,无明显的 bug - [ ] 安全漏洞检查(SQL注入、XSS、敏感信息泄露) - [ ] 数据库查询是否有 N+1 问题 ### 应该检查 - [ ] 测试覆盖率是否充分 - [ ] 代码风格是否与项目一致 - [ ] 是否有重复代码可以抽取 ### 建议检查 - [ ] 命名是否清晰易懂 - [ ] 注释是否必要且准确 - [ ] 是否有性能优化空间 请按严重程度列出所有发现的问题。
{
"agents": {
"reviewer": {
"description": "自动代码审查 Agent",
"tools": ["read", "bash", "glob", "grep"],
"permissions": {
"edit": false,
"bash": true,
"network": false
},
"instructions": "你是一个严格的代码审查员。始终从安全性、正确性、性能和可维护性四个维度审查代码。"
}
}
}
使用方式:
/agent reviewer 请审查我刚才编写的认证模块代码
1. 启动 OpenCode ↓ 2. Plan 模式 → 分析今天要做的任务 /agent plan 分析 issues #42 和 #45,确定实现方案 ↓ 3. Build 模式 → 实现功能 /agent build 按照计划实现功能 ↓ 4. Reviewer Agent → 自查代码 /agent reviewer 审查今天的所有修改 ↓ 5. 创建 PR /pr
1. 先写测试 帮我为 UserService.createUser 写测试用例 2. 让 AI 运行测试,确认失败 运行新写的测试,确认它们如预期地失败 3. 实现代码让测试通过 实现 UserService.createUser 让所有测试通过 4. 重构 在不改变测试的前提下优化实现
/agent plan 分析这个项目的整体架构: 1. 入口文件在哪里 2. 核心模块有哪些 3. 数据流是怎样的 4. 配置是如何管理的
OpenCode 的协作与工作流集成使其从一个「个人工具」升级为「团队平台」。GitHub 集成让 AI 融入代码评审流程,LSP 集成让 AI 获得语言级的代码理解,References 系统打通了跨项目知识共享,会话分享让协作无处不在。
下一篇我们将深入 OpenCode 的调试、网络与故障排除,解决使用过程中可能遇到的所有问题。