5.5 KiB
OpenCode Agents 配置
本目录包含为 OpenCode 配置的专业 AI 代理。
📁 目录结构
.opencode/
└── agents/
├── team.md # 项目经理与团队协调者(主 Agent)
├── planning.md # 技术架构与规划专家
├── frontend.md # 前端架构与 UI/UX 专家
├── umi-pro.md # UmiJS + ProComponents 专家
├── code-spec.md # 代码规范与质量专家
└── qa-tester.md # 质量保证测试专家
🎯 主 Agent(Primary)
Team Coordinator (team)
角色: 项目经理和团队协调者
模式: Primary(主代理)
权限: 完全访问
职责:
- 理解和 clarify 用户需求
- 拆分任务为合理的子任务
- 协调所有子 Agent 按正确顺序工作
- 管理开发流程和进度
- 在关键检查点停止并征求用户意见
- 唯一有权开始和结束会话的 Agent
使用方式: 这是默认的主 Agent,直接与用户对话,无需特殊调用。
🤖 子 Agent(Subagents)
所有子 Agent 只能被主 Agent (team) 调用,通过 @agent-name 方式。子 Agent 完成任务后必须将结果交回主 Agent,不能自行结束会话或调用其他 Agent。
1. Planning Agent (@planning)
角色: 技术架构师和规划专家
模式: Subagent(子代理)
权限: 只读(不可编辑代码)
用途:
- 深度分析用户需求和代码库
- 生成详细的实施计划和技术方案
- API 契约驱动开发规划
- 技术选型建议
调用方式:
@planning 分析这个需求并给出详细的实施计划
2. Frontend Expert (@frontend)
角色: 前端架构师和 UI/UX 专家
模式: Subagent(子代理)
权限: 完全访问(可编辑代码)
用途:
- 高端 UI/UX 实现
- Ant Design & ProComponents 开发
- Design Tokens 样式化
- 前端性能优化
调用方式:
@frontend 实现一个符合 Ant Design 规范的产品列表页面
3. Umi Pro Agent (@umi-pro)
角色: UmiJS 和 ProComponents 专家
模式: Subagent(子代理)
权限: 完全访问(可编辑代码)
用途:
- 快速 ProComponents 实施
- UmiJS 框架约定和最佳实践
- Mock 数据和服务层开发
- 国际化实现
调用方式:
@umi-pro 创建一个包含搜索功能的商品管理表格
4. Code Spec Expert (@code-spec)
角色: 代码规范和质量专家
模式: Subagent(子代理)
权限: 完全访问(可编辑代码)
用途:
- 执行 Ant Design 和 ProComponents 最佳实践
- 代码审查和重构
- 安全审计(XSS、认证、财务计算)
- 类型安全检查
调用方式:
@code-spec 审查这个组件是否符合 Ant Design 规范
5. QA Tester (@qa-tester)
角色: 质量保证和测试专家
模式: Subagent(子代理)
权限: 有限(仅 bash,不可编辑代码)
用途:
- 功能测试和验证
- i18n 国际化检查
- UI/UX 质量审计
- 运行时错误检测
调用方式:
@qa-tester 测试产品列表页面的所有功能
🎯 核心设计理念
所有代理都遵循以下核心原则:
1. "Separated Card" 设计模式
- < 4 个搜索字段: 使用
ProTable内置search - >= 4 个搜索字段: 使用独立
QueryFilter组件
2. 强制样式 Tokens
{
background: token.colorBgContainer, // 白色背景
padding: token.paddingLG, // 24px
borderRadius: token.borderRadius, // 6px
marginBottom: token.marginLG, // 24px
// 无 boxShadow - 扁平化设计
}
3. 零 CSS 文件政策
所有样式必须通过 Ant Design Design Tokens 内联实现。
4. ProComponents 优先
- 列表 →
ProTable - 表单 →
ProForm/QueryFilter/ModalForm - 布局 →
ProLayout/PageContainer
5. 严格 TypeScript
无 any 类型,所有接口定义在 data.d.ts。
6. 强制国际化
所有用户可见字符串必须使用 intl.formatMessage 并包含 defaultMessage。
📋 使用示例
典型开发流程
-
规划阶段:
@planning 我需要创建一个文章管理系统,包含列表、编辑和删除功能 -
实施阶段:
@umi-pro 根据计划实现服务层和 Mock 数据 @frontend 实现文章列表页面的 UI -
审查阶段:
@code-spec 审查新创建的文章管理代码 -
测试阶段:
@qa-tester 测试文章管理的所有功能并验证 i18n
🔧 配置说明
Markdown 格式
每个代理使用 Markdown 文件定义,包含 YAML frontmatter:
---
description: 代理描述
mode: subagent
model: anthropic/claude-sonnet-4-20250514
temperature: 0.2
tools:
write: true
edit: true
bash: true
---
# 代理提示内容
...
JSON 格式
同时提供了 opencode.json 配置文件,可以在项目根目录使用。
📚 相关文档
🚀 版本信息
- 创建时间: 2026-02-14
- OpenCode 版本: 最新
- 模型: Claude Sonnet 4 (anthropic/claude-sonnet-4-20250514)
维护者: Antigravity Team