我造了一个“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 里的所有示例,但做了几件事:

  1. 提炼模式:把示例代码提炼成可复用的开发模式
  2. 补充规范:examples 里没说的"为什么要这样",skill 里解释了
  3. 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 ⭐ 和分享给需要的朋友。

wx

关注公众号

©2017-2023 鲁ICP备17023316号-1 Powered by Hugo