详解使用CodeBuddy解决高难度项目问题

要问近几年什么技术最革新,毫无疑问只能是AI了,AI可以写文、画图、做视频,也可以写代码。

要想不被时代抛弃,AI必须得会用。

1、前情提要

不论是生活中遇到问题、开发中遇到问题,要解决问题基本是下面四步:描述问题、寻找问题、提出方案、解决问题。使用AI助手CodeBuddy依然是如此。

解决问题步骤

2、描述问题

这里先描述一下当前项目的技术背景,项目是一个基于事件的流程引擎,技术需求是输出的日志必须精确的,哪一天发生了什么事件,A事件的发生催生了B事件,其中催生的时间是无比重要的,需要十分精确,不能把发生在三天前的事件输出后是今天发生的事件,而又导致了后续所有事件都不准确了。

但问题就出在了时间上,刚开始的问题更严重,A事件结束的时间应该是B事件的开始时间,但输出的结果是时间完全错乱;经过整整一天的改造,终于把大问题找到了。但依然有一些小问题,输出的事件发生日期不是按照发生时间顺序输出的,它先是把所有的完成事件执行了,再去统一执行完成事件触发的开始事件。问题截图如下,可以看到几乎所有的事件输出都是错乱的。

问题详情

程序上的逻辑是没问题的,至少自认为是没问题的,手动逻辑梳理了一个执行流程,可以与后续CodeBuddy分析后的结果进行比较一下。

代码逻辑

2.1、构建分析问题的Prompt

在和人工智能(AI)交流时,Prompt(提示语)是与 AI 模型进行交互的最核心的"工具"。Prompt是一个人类输入的指令,目的是引导 AI 执行特定的任务或生成相应的内容。

针对上面介绍的问题,下面是发送给CodeBuddy的Prompt内容,同时引用了觉得很可能存在问题的类。

注意!让CodeBuddy分析问题时建议勾选图中我箭头所指的**"问答模式"** ,还是最开始的那句话,一定要围绕描述问题→寻找问题→提出方案→解决问题的路线,先让CodeBuddy寻找出来问题并提出方案后由开发者提出CodeBuddy应该使用的解决方案。

1、检查当前项目中生成"流程日志"的时机。

2、dispatch方法内部应该都是同步的,但为什么处理完所有的完成事件后才去处理完成事件触发的开始事件。

3、理想状态应该是完成事件的回调函数触发了下一个开始事件,下一个开始事件的时间早于下一个完成事件的事件时应该排序排到最前面。

描述问题Prompt

2.2、拆解Prompt

下面开始拆解Prompt这三条内容:

第一条:检查当前项目中生成"流程日志"的时机。

让CodeBuddy能够确定思考方向,由于项目代码工程量非常大,这能够避免CodeBuddy无意义的逻辑分析。

可以看到CodeBuddy在分析时会进行预期,根据预期也可以了解自己的Prompt是否精确到病根,正所谓药到病除,下药得下对地方:

预期结果:我会查看这些类中关于事件添加、determined 列表的添加与处理、回调调用点、以及任何写日志(流程日志)的代码位置。

第二条:dispatch方法内部应该都是同步的,但为什么处理完所有的完成事件后才去处理完成事件触发的开始事件。

此条说明了当前的问题,让CodeBuddy知道我的病因在哪里,上了手术台得让大夫知道病灶在哪。

第三条:理想状态应该是完成事件的回调函数触发了下一个开始事件,下一个开始事件的时间早于下一个完成事件的事件时应该排序排到最前面。

此条说明期望的效果,给CodeBuddy制定一个明确的目标,否则即使知道"病因"在哪,CodeBuddy也不知道自己应该干什么,是干掉病灶还是重写病灶。

3、寻找问题

寻找问题当然是由CodeBuddy进行,这里CodeBuddy分析内容是很多的,这里贴一下核心部分。

我并没有向CodeBuddy描述程序的执行逻辑,而这里CodeBuddy只用了1分钟时间把代码执行逻辑完整的分析出来了。如下图所示为CodeBuddy代码逻辑分析:

CodeBuddy代码逻辑分析

根据上面这个代码逻辑,CodeBuddy又继续对当前看似合理的代码提出了一些可能的问题:

CodeBuddy寻找问题

4、提出方案

针对分析出来的问题,CodeBuddy提出了自己的解决方案,同时还给了一些优化方案。

CodeBuddy提出方案

5、解决问题

此时开发者可以针对CodeBuddy给出的方案选择合适的方案,复制并粘贴到输入框中,并切换至**"** 智能体 模式",因为只有"智能体模式"CodeBuddy才会去修改你的代码。

开发者"选择方案"

我觉得这里有必要放一下CodeBuddy整个编辑代码的过程,根据我要求的方案,CodeBuddy多次修改了代码文件。

CodeBuddy解决问题

最后!重启项目,验证效果,注意看如下修改后的"事件发生日期",跟前文中贴的有问题时的状态,完美解决。到这里,我只跟CodeBuddy说了两句话,并且这两句话我在上文中都完整的截图放在文中了,再并且CodeBuddy完美的解决了我可能需要调试半天,甚至一天才能处理的问题。

最终效果-解决问题

6、总结

一定要学会与CodeBuddy学会**"沟通"** ,拒绝无效沟通。再重复一次我的理论:描述问题、寻找问题、提出方案、解决问题。

开发者只需要先通过"问答模式"描述问题,之后由CodeBuddy寻找问题并提出解决问题的方案,再由开发者根据CodeBuddy的方案驱使CodeBuddy解决问题;除了描述问题,其他的三步都由CodeBuddy来进行。

当然最重要的自然是描述问题,这里有很大学问,不能盲目的提问题,让CodeBuddy能够聚焦问题,才能找到问题从而提出方案。

相关推荐
小朱爱编程123几秒前
我用 Jev 做了三个实用工具:整理标签页、分诊飞书反馈、找回 GitHub 收藏
java·开发语言·人工智能·后端·python·架构·ai编程
AI职业加油站4 分钟前
大模型开发工程师证书怎么考?零基础学习路径与价值拆解
大数据·人工智能·学习·职场和发展·数据分析
镭封8 分钟前
基于微信小程序的移动端AI配音工作流设计
人工智能·小程序·媒体
酷虎软件14 分钟前
视频加标题字幕 API 接口文档
java·数据库·mysql
leoZ23117 分钟前
第 40 篇 AI 团队搭建与角色分工
人工智能·大模型·agent
海宇大数据21 分钟前
零信任架构实战:基于海宇车辆出险记录核验构建自动化二手车收车评估网关
运维·人工智能·架构·自动化
谢亮_vipxieliang25 分钟前
Java 8/11/17/21/25 怎么选?一篇讲清 LTS 升级路线
java·开发语言
搞科研的小刘选手26 分钟前
【中国南京&新加坡 双会场 | EI-JA期刊、CA会议征稿】2026年绿色能源与人工智能国际学术会议(GEAI 2026)
人工智能·学术会议·会议推荐·绿色能源·新加坡·南京
hunteritself30 分钟前
卷卷卷!GPT-6 Sol、Luna 正式发布,OpenAI 开始卷价格了
大数据·前端·人工智能·深度学习·transformer
东方佑32 分钟前
权重绑定深度语言模型:深度缩放、免费早退与一个基本权衡
人工智能·语言模型·自然语言处理