codebuddy调试微服务需三步约束固化:①用@引用feign接口文件确保ai读取真实路径与注解;②在codebuddy.md中明文定义全局硬约束(如路径/v1开头、dto必加@notnull);③通过.codebuddy/rules/下naming.rule和error.rule锁死命名与异常处理规范。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在CodeBuddy中调试微服务接口(比如Feign调用404、DTO字段丢失、JWT校验失败),AI反复改错却总漏掉关键约束——如Nacos服务名大小写、Feign客户端路径拼接规则、DTO必须带@NotNull注解——不是模型能力不足,而是你没把约束“钉死”在上下文里。
用@引用把约束条件焊进当前对话
CodeBuddy默认只读取当前编辑文件,它不知道你项目里“所有Feign接口路径必须以/v1开头”这种约定。必须手动注入。
第一步:在VSCode中打开你的Feign客户端接口文件(例如NavigationFacilityFeignClient.java)→右键→选择“Copy File Path”。
第二步:在CodeBuddy输入框中,先输入@,再粘贴该路径(如@src/main/java/com/ship/schedule/client/NavigationFacilityFeignClient.java)→回车。这一步会强制AI加载该文件全文,包括所有注解、路径值、参数绑定方式。
第三步:紧接着输入你的问题,例如:“修复404错误,确保路径匹配nacos注册的服务名navigation-facility-service”。【注意:@引用和问题必须在同一消息中发送,分两次发,AI就看不到文件内容了】
把硬性约束写进CODEBUDDY.md防遗忘
有些约束是全局生效、每次调试都得遵守的,比如“所有Feign接口必须携带X-Auth-Token头”“DTO字段不允许为null”,靠每次@引用太累。这类规则要固化到项目根目录的CODEBUDDY.md里。
方法一:在项目根目录新建CODEBUDDY.md →用纯文本写明3~5条不可协商的约束,每条一行,不加编号不加解释。例如:
Feign接口路径统一以 /v1 开头
所有DTO字段必须标注 @NotNull 或 @NotBlank
HTTP Header必须包含 X-Auth-Token: Bearer {token}
服务间调用超时设为 3000ms
方法二:如果已有CODEBUDDY.md但内容杂乱,直接删掉重写。旧文件残留的模糊描述(如“注意鉴权”)会被AI忽略,只有明确、可执行、无歧义的句子才被识别为硬约束。
CodeBuddy Code CLI 的安装、配置与使用指南。CodeBuddy Code 是腾讯推出的 AI 驱动 CLI 编程助手,支持自然语言驱动开发。 - 必备触发词:CodeBuddy, codebuddy, AI CLI, Tencent AI coding, @tencent-ai/codebuddy-code, terminal AI assistant - 适用场景:安装 CodeBuddy CLI、配置 CodeBuddy、使用 CodeBuddy 命令、排查 CodeBuddy 问题
这一步做完,下次启动CodeBuddy时它会自动加载这些规则,无需重复输入。
用Rules文件锁死编码行为模式
当AI生成的修复代码又偷偷删掉try-catch、又把String类型改成Object、又用英文注释——说明它根本没记住你的风格底线。这时候要祭出Rules机制。
第一步:在项目根目录创建目录 .codebuddy/rules/(注意开头是点)。
第二步:新建文件 naming.rule →写入:变量命名必须使用驼峰式,禁止下划线;DTO类名必须以DTO结尾;Service类方法名必须以动词开头。
第三步:新建文件 error.rule →写入:所有远程调用必须包裹try-catch;catch块内必须记录error日志;禁止吞掉异常。
【Rules文件一旦创建,CodeBuddy每次对话都会自动加载,且优先级高于系统默认行为】 它不会帮你记住“这个接口要加熔断”,但它会永远阻止你生成没有异常处理的Feign调用代码。
调试前强制做三件事
① git stash:把当前未提交的修改暂存,避免AI改乱后无法回退。
② 查终端输出:运行 curl -v http://localhost:8080/actuator/health 确认服务已注册到Nacos,把真实响应复制→用@terminal注入CodeBuddy。AI看到的是真实环境数据,不是猜的。
③ 锁定修改范围:向CodeBuddy明确指令:“只修改FeignClient接口定义和对应fallback类,不要碰Controller层,不要新增依赖”。【不加这句,AI可能顺手给你加个Lombok,导致编译失败】










