我造了一个“Kratos 外挂”:让 AI 帮你写符合规范的微服务代码
受 zero-skills 启发,我把 Kratos 开发规范做成了 AI 技能库,Claude/Cursor/Copilot 都能用。
先问一个问题
你用 AI 写过 Kratos 项目吗?
试过让 Claude 生成一个用户服务,结果出来的代码:
- 把业务逻辑直接写在 Handler 里
- 没用 Wire 做依赖注入
- 错误处理不规范
- 分层混乱,Data 层调 Service 层
然后你陷入无限的重写和 Prompt 调优……
问题不是 AI 不够强,是 AI 不知道 Kratos 的"规矩"。
受 zero-skills 启发
之前用过 zero-skills,把 Go-Zero 的框架规范教给 AI,效果惊人。
我突发奇想:Kratos 是不是也可以?
于是结合 kratos/examples 和官方文档,整理出了这套 kratos-skills —— 一个让 AI 学会"正确写 Kratos"的技能库。
kratos-skills 是什么
简单来说:给 AI 看的 Kratos 开发手册。
它不是一个示例项目,而是一套结构化的知识库,包含:
kratos-skills/
├── getting-started/ # 各 AI 工具接入指南
│ ├── claude-code-guide.md
│ ├── cursor-guide.md
│ ├── copilot-guide.md
│ └── windsurf-guide.md
├── references/ # 核心开发模式
│ ├── http-api-patterns.md # HTTP API 规范
│ ├── grpc-patterns.md # gRPC 服务规范
│ ├── clean-architecture-patterns.md # 整洁架构
│ ├── data-patterns.md # 数据层、ORM、缓存
│ ├── error-patterns.md # 错误码规范
│ ├── validation-patterns.md # 参数校验
│ ├── tracing-patterns.md # 链路追踪
│ ├── registry-patterns.md # 服务注册发现
│ ├── event-patterns.md # 事件驱动(Kafka)
│ ├── cqrs-patterns.md # CQRS 模式
│ └── middleware-patterns.md # 中间件
├── best-practices/ # 生产环境建议
├── troubleshooting/ # 常见问题排查
└── examples/ # 验证示例
它能帮你解决什么问题
1. 分层混乱 → 四层架构标准模板
AI 不知道 Kratos 的 Transport → Service → Biz → Data 四层怎么分?
直接加载 clean-architecture-patterns.md,AI 会自动按规范生成:
// ✅ AI 生成:Handler 只负责解析请求和返回响应
func (s *UserService) GetUser(ctx context.Context, req *pb.GetUserRequest) (*pb.UserReply, error) {
// 调用 Service 层
return s.uc.Get(ctx, req.Id)
}
// ❌ 不会这样:把业务逻辑写在 Handler
func (s *UserService) GetUser(...) {
// 直接查数据库……
}
2. 不会用 Wire → 依赖注入生成指南
Wire 的 Provider 怎么写?怎么区分 Interface 和实现?
AI 参考 references/ 里的模式,能自动生成正确的 Provider 和 Wire 文件。
3. 错误处理随意 → 统一错误码规范
Kratos 的错误码体系(HTTP Status + gRPC Code + 业务 Code)很容易搞混。
加载 skill 后,AI 会生成符合规范的错误处理:
return nil, errors.BadRequest("USER_NOT_FOUND", "用户不存在")
4. 中间件瞎写 → 标准拦截器模板
JWT 验证、限流、日志记录……每个中间件的注入顺序和实现方式都有参考。
怎么用(以 Claude Code 为例)
1. 安装
# 项目级安装(推荐)
git clone https://github.com/LittleMoreInteresting/kratos-skills.git .claude/skills/kratos-skills
# 或个人全局安装
git clone https://github.com/LittleMoreInteresting/kratos-skills.git ~/.claude/skills/kratos-skills
2. 使用
Claude Code 会自动识别项目中的 Kratos 文件,或手动唤起:
/kratos-skills 创建一个用户管理 API,包含 CRUD 和 JWT 认证
然后看着 AI 生成符合规范的四层架构代码。
和其他 AI 工具的配合
| 工具 | 使用方式 | 体验 |
|---|---|---|
| Claude Code | 原生支持 Skill,自动加载 | ⭐⭐⭐⭐⭐ 最佳 |
| GitHub Copilot | 通过 .github/copilot-instructions.md 加载 |
⭐⭐⭐⭐ |
| Cursor | 通过 .cursorrules 加载 |
⭐⭐⭐⭐ |
| Windsurf | 通过 .windsurfrules 加载 |
⭐⭐⭐⭐ |
与 kratos/examples 的关系
kratos/examples 是给人看的示例代码。
kratos-skills 是给 AI 看的开发规范。
我在整理 skill 时,参考了 examples 里的所有示例,但做了几件事:
- 提炼模式:把示例代码提炼成可复用的开发模式
- 补充规范:examples 里没说的"为什么要这样",skill 里解释了
- AI 优化:格式和结构针对 AI consumption 优化,便于解析
一起来完善
这个项目刚刚起步,还有很多可以补充的:
- 更完整的单元测试模式
- Kubernetes 部署配置模板
- Prometheus 监控接入指南
- 分布式事务(Saga/TCC)模式
- 更多中间件实战(熔断、降级)
- 其他 AI 工具的适配(如 Continue、Codeium)
如果你:
- 发现模式文档有错误或过时
- 想补充一个开发模式
- 有更好的 AI 工具接入方式
- 只是想加个 Star 鼓励一下
都欢迎来 GitHub:
🔗 https://github.com/LittleMoreInteresting/kratos-skills
写在最后
用 AI 写代码已经成为日常,但"能用"和"用得好"是两回事。
kratos-skills 的目标是让 AI 不仅"会写 Go",还要"会写规范的 Kratos"——节省你的 review 和返工时间。
技术社区的价值在于降低后来者踩坑的成本。
zero-skills 让我少走了弯路,希望 kratos-skills 也能帮到你。
微服务这条路很长,我们一起走。
如果这个项目对你有帮助,欢迎 Star ⭐ 和分享给需要的朋友。