详解使用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能够聚焦问题,才能找到问题从而提出方案。

相关推荐
巫山老妖6 小时前
讲不清楚,是因为你还没想清楚
人工智能·程序员
职场的momo6 小时前
字节生活服务海量内推,挑战亿级订单与AI交易中台
人工智能·程序人生·面试·职场和发展·跳槽·生活·业界资讯
Dawson Zhu6 小时前
知识图谱与 Palantir Ontology:同一套「实体—关系」表象下,两种截然不同的工程范式
人工智能·语言模型·架构·aigc·agi
YOLO数据集集合6 小时前
无人机高分辨率多树种单木分割数据集 | 单木分割 无人机林业 树种识别 实例分割 点云 遥感数据集 深度学习 精准林业9047期
人工智能·深度学习·数据集·无人机·遥感数据集·点云数据集·树木分割
科技看点6 小时前
小机身里的Windows+AI,Windows原生OpenClaw离线AI盒子实测
人工智能
GEO实战经验分享6 小时前
跨平台GEO度量框架:从多源数据整合到效果评估的系统化指南
人工智能
2601_966863197 小时前
扩音器哪个牌子性价比高?哪个牌子适合教师?开学季扩音器推荐
人工智能
Capricorn19887 小时前
日志级幻觉排障:GPT-6 Astra 迈入 AGI 时代,知芽 Notebook Skill 如何以引用校验与零命中诚实弃权解决长文失忆
论文阅读·人工智能·笔记·gpt·agi
xierui1231237 小时前
给内容 Agent 接平台账号前,先设计四层权限:读、写、预填、提交
人工智能·网络安全·aigc·软件工程
泡海椒7 小时前
JQuick-Curl 二次开发:自定义解析器、扩展点开发指南,如何把框架能力真正变成团队资产
java·开发语言·okhttp·maven