260 lines
5.5 KiB
Markdown
260 lines
5.5 KiB
Markdown
# OpenCode Agents 配置
|
||
|
||
本目录包含为 [OpenCode](https://opencode.ai) 配置的专业 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
|
||
|
||
```typescript
|
||
{
|
||
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`。
|
||
|
||
---
|
||
|
||
## 📋 使用示例
|
||
|
||
### 典型开发流程
|
||
|
||
1. **规划阶段**:
|
||
|
||
```
|
||
@planning 我需要创建一个文章管理系统,包含列表、编辑和删除功能
|
||
```
|
||
|
||
2. **实施阶段**:
|
||
|
||
```
|
||
@umi-pro 根据计划实现服务层和 Mock 数据
|
||
@frontend 实现文章列表页面的 UI
|
||
```
|
||
|
||
3. **审查阶段**:
|
||
|
||
```
|
||
@code-spec 审查新创建的文章管理代码
|
||
```
|
||
|
||
4. **测试阶段**:
|
||
```
|
||
@qa-tester 测试文章管理的所有功能并验证 i18n
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 配置说明
|
||
|
||
### Markdown 格式
|
||
|
||
每个代理使用 Markdown 文件定义,包含 YAML frontmatter:
|
||
|
||
```markdown
|
||
---
|
||
description: 代理描述
|
||
mode: subagent
|
||
model: anthropic/claude-sonnet-4-20250514
|
||
temperature: 0.2
|
||
tools:
|
||
write: true
|
||
edit: true
|
||
bash: true
|
||
---
|
||
|
||
# 代理提示内容
|
||
|
||
...
|
||
```
|
||
|
||
### JSON 格式
|
||
|
||
同时提供了 `opencode.json` 配置文件,可以在项目根目录使用。
|
||
|
||
---
|
||
|
||
## 📚 相关文档
|
||
|
||
- [OpenCode 官方文档](https://opencode.ai/docs/zh-cn/agents/)
|
||
- [Ant Design 官方文档](https://ant.design/)
|
||
- [ProComponents 官方文档](https://procomponents.ant.design/)
|
||
- [UmiJS 官方文档](https://umijs.org/)
|
||
|
||
---
|
||
|
||
## 🚀 版本信息
|
||
|
||
- **创建时间**: 2026-02-14
|
||
- **OpenCode 版本**: 最新
|
||
- **模型**: Claude Sonnet 4 (anthropic/claude-sonnet-4-20250514)
|
||
|
||
---
|
||
|
||
**维护者**: Antigravity Team
|