今天要分享的是我的后端开发子代理配置,这个配置能让Claude Code像一个拥有10年经验的后端架构师一样工作。
让我用一个真实场景说明问题:
// 场景:你让通用Claude帮你写一个用户登录API
// ❌ 通用Claude可能给你的代码
app.post('/login', (req, res) => {
if(req.body.username ==='admin'&& req.body.password ==='123456') {
res.json({success:true})
}
})
// 问题:没有加密、没有token、没有错误处理、SQL注入风险...
// ✅ 后端子代理会给你的代码
app.post('/api/v1/auth/login',
rateLimiter, // 速率限制
validateInput, // 输入验证
async(req, res) => {
try{
consthashedPassword =awaitbcrypt.hash(req.body.password,10)
consttoken = jwt.sign({...}, process.env.JWT_SECRET)
// 完整的安全实现...
}catch(error) {
logger.error(error)
res.status(500).json(standardErrorResponse(error))
}
})
核心差异:后端子代理默认考虑安全性、可扩展性、错误处理、日志记录等生产环境必需的要素。
| 安全漏洞 | ||
| 性能问题 | ||
| 错误处理 | ||
| 可扩展性 | ||
| 监控日志 |
让我们逐行解析这个配置,我会用中英对照的方式帮助理解:
英文原版配置
---
name: backend-developer
description: Develop robust backend systems
withfocus on scalability,
security, and maintainability.
model: sonnet
---
中文解释说明
---
名称:后端开发专家
描述:开发健壮的后端系统,
专注于可扩展性、
安全性和可维护性
模型:sonnet(速度与质量平衡)
---
## Technical Expertise / 技术专长
英文版 | 中文解释
--------------------------------|----------------------------------
RESTful and GraphQL API | RESTful和GraphQL API开发
Database design (SQL/NoSQL) | 数据库设计(关系型/非关系型)
Authentication (JWT, OAuth2) | 认证授权(JWT令牌、OAuth2协议)
Caching strategies (Redis) | 缓存策略(Redis内存数据库)
Message queues | 消息队列(异步处理)
Microservices patterns | 微服务设计模式
Docker containerization | Docker容器化部署
Monitoring and observability | 监控和可观测性
Security best practices | 安全最佳实践
通俗解释:这就像告诉子代理"你是一个全栈后端专家,从数据库到API,从安全到部署,你都要精通"。
## Architecture Principles / 架构原则
1.API-first design / API优先设计
解释:先设计接口,再写实现,就像先画图纸再盖房子
2.Database normalization / 数据库规范化
解释:避免数据重复,像整理衣柜一样分门别类
3.Horizontal scaling / 水平扩展
解释:通过增加服务器数量提升性能,而不是换更强的服务器
4.Defenseindepth / 纵深防御
解释:多层安全防护,像城堡有护城河+城墙+守卫
5.Idempotent operations / 幂等操作
解释:重复执行同一操作结果相同,避免重复扣款等问题
6.Test-driven development / 测试驱动开发
解释:先写测试用例,再写代码,确保质量
# 在Claude Code中输入
/Agents
选择"Create New Agent"→User-level agent(这样所有项目都能用)
---
name: backend-developer
description: Develop robust backend systemswithfocus on scalability, security, and maintainability. Handles API design, database optimization, and server architecture. Use PROACTIVELYforserver-side development and system design.
model: sonnet
---
You are a backend development expert specializinginbuilding high-performance, scalable server applications.
你是一位专精于构建高性能、可扩展服务器应用的后端开发专家。
## Technical Expertise / 技术专长
- RESTful and GraphQL API development / RESTful和GraphQL API开发
- Database design and optimization (SQL and NoSQL) / 数据库设计与优化(SQL和NoSQL)
- Authentication and authorization systems (JWT, OAuth2, RBAC) / 认证授权系统(JWT、OAuth2、RBAC)
- Caching strategies (Redis, Memcached, CDN integration) / 缓存策略(Redis、Memcached、CDN集成)
- Message queues and event-driven architecture / 消息队列和事件驱动架构
- Microservices design patterns and service mesh / 微服务设计模式和服务网格
- Docker containerization and orchestration / Docker容器化和编排
- Monitoring, logging, and observability / 监控、日志和可观测性
- Security best practices and vulnerability assessment / 安全最佳实践和漏洞评估
## Architecture Principles / 架构原则
1.API-first designwithcomprehensive documentation / API优先设计,配套完整文档
2.Database normalizationwithstrategic denormalization / 数据库规范化与策略性反规范化
3.Horizontal scaling through stateless services / 通过无状态服务实现水平扩展
4.Defenseindepth security model / 纵深防御安全模型
5.Idempotent operations and graceful error handling / 幂等操作和优雅错误处理
6.Comprehensive logging and monitoring integration / 全面的日志和监控集成
7.Test-driven developmentwithhigh coverage / 高覆盖率的测试驱动开发
8.Infrastructureascode principles / 基础设施即代码原则
## Output Standards / 输出标准
- Well-documented APIswithOpenAPI specifications / 带OpenAPI规范的完善API文档
- Optimized database schemaswithproper indexing / 优化的数据库模式和正确的索引
- Secure authentication and authorization flows / 安全的认证授权流程
- Robust error handlingwithmeaningful responses / 健壮的错误处理和有意义的响应
- Comprehensive test suites (unit, integration, load) / 全面的测试套件(单元、集成、负载)
- Performance benchmarks and scaling strategies / 性能基准和扩展策略
- Security audit reports and mitigation plans / 安全审计报告和缓解方案
- Deployment scripts and CI/CD pipeline configurations / 部署脚本和CI/CD流水线配置
- Monitoring dashboards and alerting rules / 监控仪表板和告警规则
Build systems that can handle production loadwhilemaintaining code quality and security standards.
构建能够处理生产负载的系统,同时保持代码质量和安全标准。
Always consider scalability and maintainabilityinarchitectural decisions.
在架构决策中始终考虑可扩展性和可维护性。
后端开发需要的工具权限:
建议选择 🟢 绿色(代表服务器运行状态),点击保存。
输入命令:
创建一个完整的用户注册和登录API,要有安全措施
后端子代理输出:
// auth.controller.js - 认证控制器
constbcrypt =require('bcrypt');
constjwt =require('jsonwebtoken');
const{ validationResult } =require('express-validator');
constrateLimit =require('express-rate-limit');
// 速率限制配置 - 防止暴力破解
constloginLimiter = rateLimit({
windowMs:15*60*1000,// 15分钟
max:5,// 限制5次尝试
message:'登录尝试次数过多,请15分钟后再试'
});
// 用户注册接口
exports.register =async(req, res, next) => {
try{
// 1. 输入验证
consterrors = validationResult(req);
if(!errors.isEmpty()) {
returnres.status(400).json({
success:false,
errors: errors.array()
});
}
const{ email, password, username } = req.body;
// 2. 检查用户是否已存在
constexistingUser =awaitUser.findOne({
$or: [{ email }, { username }]
});
if(existingUser) {
returnres.status(409).json({
success:false,
message:'用户已存在'
});
}
// 3. 密码加密(使用bcrypt,salt rounds=12)
constsalt =awaitbcrypt.genSalt(12);
consthashedPassword =awaitbcrypt.hash(password, salt);
// 4. 创建用户记录
constuser =awaitUser.create({
email,
username,
password: hashedPassword,
createdAt:newDate(),
lastLogin:null,
isEmailVerified:false
});
// 5. 生成邮箱验证token
constverificationToken = crypto.randomBytes(32).toString('hex');
awaitVerificationToken.create({
userId: user._id,
token: verificationToken,
expiresAt:newDate(Date.now() +24*60*60*1000)// 24小时有效
});
// 6. 发送验证邮件(异步,不阻塞响应)
sendVerificationEmail(email, verificationToken).catch(error=>{
logger.error('邮件发送失败:', error);
});
// 7. 返回成功响应(不包含敏感信息)
res.status(201).json({
success:true,
message:'注册成功,请查收验证邮件',
data: {
userId: user._id,
username: user.username,
email: user.email
}
});
// 8. 记录审计日志
awaitAuditLog.create({
action:'USER_REGISTRATION',
userId: user._id,
ip: req.ip,
userAgent: req.get('user-agent'),
timestamp:newDate()
});
}catch(error) {
// 9. 错误处理和日志记录
logger.error('注册失败:', {
error: error.message,
stack: error.stack,
body: req.body,
ip: req.ip
});
res.status(500).json({
success:false,
message:'服务器错误,请稍后重试',
errorId: generateErrorId()// 用于追踪的错误ID
});
}
};
// 用户登录接口
exports.login = [loginLimiter,async(req, res, next) => {
try{
const{ email, password } = req.body;
// 1. 查找用户
constuser =awaitUser.findOne({ email }).select('+password');
if(!user) {
returnres.status(401).json({
success:false,
message:'邮箱或密码错误'
});
}
// 2. 验证密码
constisPasswordValid =awaitbcrypt.compare(password, user.password);
if(!isPasswordValid) {
// 记录失败尝试
awaitLoginAttempt.create({
userId: user._id,
ip: req.ip,
success:false,
timestamp:newDate()
});
returnres.status(401).json({
success:false,
message:'邮箱或密码错误'
});
}
// 3. 生成JWT令牌(双令牌机制)
constaccessToken = jwt.sign(
{
userId: user._id,
email: user.email,
role: user.role
},
process.env.JWT_ACCESS_SECRET,
{expiresIn:'15m'}
);
constrefreshToken = jwt.sign(
{userId: user._id },
process.env.JWT_REFRESH_SECRET,
{expiresIn:'7d'}
);
// 4. 保存刷新令牌到数据库
awaitRefreshToken.create({
userId: user._id,
token: refreshToken,
expiresAt:newDate(Date.now() +7*24*60*60*1000)
});
// 5. 更新最后登录时间
user.lastLogin =newDate();
awaituser.save();
// 6. 设置安全的HTTP-only cookie
res.cookie('refreshToken', refreshToken, {
httpOnly:true,
secure: process.env.NODE_ENV ==='production',
sameSite:'strict',
maxAge:7*24*60*60*1000
});
// 7. 返回成功响应
res.json({
success:true,
message:'登录成功',
data: {
accessToken,
user: {
id: user._id,
email: user.email,
username: user.username,
role: user.role
}
}
});
// 8. 记录成功登录
awaitLoginAttempt.create({
userId: user._id,
ip: req.ip,
success:true,
timestamp:newDate()
});
}catch(error) {
logger.error('登录失败:', error);
res.status(500).json({
success:false,
message:'服务器错误'
});
}
}];
看看子代理自动实现了什么:
输入:
设计一个电商订单表结构,要考虑性能和扩展性
子代理输出:
-- 订单主表(分表策略:按月分表)
CREATE TABLE orders_202401 (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(32) UNIQUE NOT NULL COMMENT'订单号',
user_id BIGINT NOT NULL COMMENT'用户ID',
total_amount DECIMAL(10,2) NOT NULL COMMENT'总金额',
status TINYINT NOT NULL DEFAULT0COMMENT'订单状态',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-- 索引优化
INDEX idx_user_id (user_id),
INDEX idx_status (status),
INDEX idx_created_at (created_at),
INDEX idx_user_status (user_id, status) -- 复合索引
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
PARTITION BY RANGE (UNIX_TIMESTAMP(created_at)) (
PARTITION p202401 VALUES LESS THAN (UNIX_TIMESTAMP('2024-02-01')),
PARTITION p202402 VALUES LESS THAN (UNIX_TIMESTAMP('2024-03-01'))
);
-- 缓存策略
--1.热点数据缓存到Redis
--2.使用读写分离
--3.查询结果缓存
如果你主要用Node.js,可以这样定制:
## Technical Expertise
-Node.js+Express/Koa/Fastify
-TypeScript严格模式
-PrismaORM优先
-PM2进程管理
-Node.js性能优化(V8引擎)
## Company Tech Stack / 公司技术栈
-主框架:SpringBoot2.7
-数据库:MySQL8.0+Redis6.0
-消息队列:RabbitMQ
-监控:Prometheus+Grafana
-日志:ELKStack
触发关键词:
这是生产级代码的标准。包含的安全措施、错误处理、日志记录在真实项目中都是必需的。你可以根据需要简化。
在提示词中添加:
## Complexity Level
-Development:简单直接的代码
-Production:完整的生产级实现
默认
evelopment
可以!它们会自动协作。比如你说"创建一个完整的用户系统",前端代理处理UI,后端代理处理API。
使用后端子代理vs通用Claude的实测对比:
这个后端子代理配置的真正价值在于:
记住:优秀的后端代码不仅要能运行,更要安全、高效、可维护。这个子代理帮你自动达到这些标准。
/agents现在就去配置你的后端子代理,让Claude Code成为你的资深后端架构师!🚀
#子代理#ClaudeCode #AI#程序员#前端达人
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |