工作笔记-CodeBuddy应用探索

6 阅读13分钟

概述

最近由于工作需要的关系,使用了腾讯的CodeBuddy(CB),感觉还不错,也觉得有很多值得分享的内容,遂有本文。

先来列举一下笔者选择和推荐CB的理由:

  • (真)简单易用

基本上就是安装后简单的使用微信认证后就可以开始工作了。不需要特别其他的配置,如账号、支付、API KEY、平行世界网络、插件等等,对于初学者和懒人是非常友好的。而且对于中文的支持也比较好。

  • 能力尚可,效率较高

笔者使用的体验是,系统的响应速度,模型能力都还不错,这对于频繁和重量化的使用是非常重要的。比如笔者原来使用的VsCode with copilot,虽然也很不错,但由于你懂得的限制,效率实在是比较低。

  • 成本优化

笔者的环境,安装后就可以使用了,不需要购买Token配额,好像它也有一定的免费额度。当然肯定也有付费的能提供更好能力和服务的版本,而且没有支付条件的限制,对于中国用户是非常方便的。

  • 功能完善

支持Craft、Chat、Build等多种工作方式。其他热门相关技术的MCP、Skills等等都有比较完善的支持,其生态系统中也提供了多种工具和模型可以选择。

  • 鲁棒性

这是笔者在使用过程中体会出来的。这个系统的健壮性比较好,很少出现由于集成和网络造成的系统卡死。即便遇到问题,它也会自行尝试查找并实施解决方案,而且在大多数情况下都能顺利解决。这和笔者在以前使用的其他系统(Claude Code, Antigravity, Copilot....)有很大改进。当然笔者也理解这可能不是技术本身的问题。

安装和配置

CB的官方网站是:

腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴

image.png

它有很多相关产品,我们这里可以先尝试最基础和简单易用的IDE工具。它基本上就是一个VSCode的内置AI配置的扩展版本,所以安装和使用的方式和标准的VSCode也没有太大的区别。

笔者使用Windows系统,选择的也是国内的中文版本。网站提供的连接可以直接下载一个Windows平台的IDE安装程序,直接执行就可以完成安装过程。

image.png

安装后的可执行文件程序名为: CodeBuddy CN。

image.png

安装完成后,软件会提示进行认证,这时可以简单的使用微信扫码认证即可。

用例

为了评估CB,笔者设计并测试了一些简单的使用案例,大多都和日常具体工作相关,下面列举出来如何操作和使用,读者也可以根据这些内容,结合自己的工作进行尝试和改进。

开场白

CB软件启动运行后,就进入了开发者非常熟悉的VsCode IDE窗口。一般情况下会直接启动一个带有CodeBuddy面板的窗口(右侧),其实在这个时候,就可以开始工作了。和普通的AI Chat软件类似:

image.png

比如,我们可以提一个经典的哲学问题,来确认一下CB是否可以正常工作。


你谁啊?

我是 AI 编程助手,由 Auto 驱动,专门帮助你完成编程任务。

我可以帮你:

编写和修改代码
调试问题
搜索和理解代码库
部署项目
解决技术问题
有什么我可以帮你的吗?


这当然也是所有AI Chat最常规的场景,但作为更强大的AI工具,和以前的系统的最大的不同在于它可以在一个“环境”中展开工作来完成更复杂和有效的工作,这是我们就可以使用一个项目文件夹来创建和承载这个工作环境。这和普通代码编程工作中的项目基本上相同的概念。

这个操作,可以在菜单中的文件-打开文件夹,然后选择一个工作文件夹就可以实现,然后这个文件夹,就可以作为CB当前工作的上下文环境了。

CB对于skills的支持比较好,这也是其相比于早先的Chat工作模式有很多改进和优化的方面,所以下面我们的主要工作方式就是:

  • 先创建一个关于任务的Skill
  • 然后基于这个Skill来完成相关任务
  • 由于Skill是可以复用的,所以后续可以通过调整Skill和加入参数化的提示词调用Skill来完成类似的任务

笔者理解的Skill,就是一个标准化的Prompt(提示词),它可以将AI会话标准化完善化,从而提高AI处理的质量和准确性,而且可以支持更好的任务自动化。

下面笔者结合自己的应用情况,例举一些实际的应用场景。

网络检索分析

这个任务基本上就是替代网络搜索,但加入了更加专业和全面的内容分析。

  • Skill定义

请帮我写一个中文的skills文件,可以按照关键词或者标题搜索网络并访问页面,解读页面中文章的内容,生成解读和要点报告

image.png

可以看到,提出要求后,CodeBuddy开始工作,而且它也会简单的提示其工作思路和内容。工作完成后,它将在当前工作空间中,生成一个标准的skill定义文件夹,里面包括了skill定义和如何使用的相关信息。 甚至我们都不用自己给这些skill命名,CB会根据任务内容自己找一个合适的名字(本例中是: web-search)。而且这些都是自动生成的。作为用户,我们可以暂时不用关心里面的具体内容。

image.png

Skill定义好之后,我们就可以用更简单的方式来使用它了,只需要简单的提到它就可以。

  • Skill使用

我们继续在CB面板中,发出指令:

要搜索的文章是: 《教育部: 将有序推进中考改革.....》,请使用文章分析skills处理

  • 交付结果

如果认真观察CB的工作流程,我们可以发现,在一连串操作之后,CB最终会交付一个工作成果,并进行简单的总结,这确实是要比自己去搜索,然后阅读理解更方便了!

image.png

这里笔者主要展示工作原理和过程。但还是觉得需要提示,在实际的工作中,要特别注意AI系统的幻觉问题,需要认真核查交付内容,并不断改进Skill内容来优化过程和结果。比如可以在提示中,强调需要参考多个信息来源,在交付结果中提供并验证原始链接等等。这就不是本文重点要讨论的问题了。

文档处理

我们再来看一个文档处理的用例。任务的内容是让AI去阅读一个杂志,然后提取内容目录和用户关心的问题。

在这个任务中,笔者甚至没有明确的定义这一任务的Skill,而是直接使用了指令:

  • Skill应用

请阅读 docstore文件夹中的 上帝为什么造四川杂志,提取文章目录和摘要,并提取其中提到的人物和简介,生成报告格式为md

image.png

认真观察CB执行这一任务的过程,我们会发现,它会尝试很多不同的方法来完成这一任务。包括安装了很多Python相关的工具,甚至编写了简单的Python代码和Shell指令等等。

最后确实也生成了一个看起来非常专业和完善的解读报告:

image.png

在真实工作环境中,如果需要固化这一工作流程,应当定义和优化相关的Skill。

系统运维

上面的两个示例,还是主要在知识管理方面的工作,下面来探讨一下其在技术场景中的使用。

笔者有一些远程的Linux主机,希望有一个工具方便对其进行状态查询和分析,并且能够将这一工作自动化。原理这些工作,都是非常专业的,需要通过工具和编写脚本来完成。现在我们可以将自己想象成为一个“不懂技术细节”的运维人员,也需要完成类似的任务。

笔者的操作如下:

  • Skill定义

请帮我写一个中文skill文件,可以使用ssh 连接远程linux服务器,并获取主机的主要配置信息和运行状态

  • Skill应用

请使用远程主机skills,查询配置信息和运行状态, 主机是 yanjh@1921.68.10.201,密码是:xxx

这个过程其实并不顺利,它在处理远程系统的连接过程中,遇到了一些麻烦。因为它需要编写一些python代码来完成这些任务,由于默认执行环境的差异,这些代码无法正常运行(Windows vs Linux)。这对于经验比较丰富的运维人员而言,会经常遇到,解决起来也不是太复杂。但比较神奇的是CB和其后面的模型平台,可以通过这些错误信息,自行分析这些问题并查找处理方案,稍微反复了一下,后来还是解决了。

image.png

  • 交付结果

SSH连接的问题处理完成之后,后面的操作是比较顺利的,也生成了比较令人满意的报告。

image.png

数据和信息提取

这个任务更高级一点,也更加实用。

笔者公司的运营团队,经常会需要获取一些生产经营的数据。传统方式是请求技术团队开发系统相关的报表功能,或者手动查询提取数据。因为这需要对于数据库结构和SQL语言的编写有相当深入的了解。这样就造成很多工作量和对开发过程的影响。

现在我们可以尝试使用AI来优化这些工作。笔者的实践过程如下。

  • Skill定义

再帮我写一个连接postgres数据库,进行简单数据提取和分析的skill

为了方便管理和使用,笔者还编写了一个指令文件(task.md),来简化指令过程。

  • task.md

注意只使用查询模式,不能修改数据!!!!!

请使用下列设置和数据库访问skill,统计一下食堂视频接入的点位,和地区分布

数据库地址是: 192.168.10.120
数据库用户名: postgres
数据库密码:  somepassword
数据库名称: diningroom

  • Skill应用

就更简单了:

请执行task.md中的任务

  • 结果交付

交付的结果,其实也是比较令人满意的。

image.png

在过程中,可以看到,笔者为了验证和测试这一流程,其实故意没有提供更细节的信息,比如数据库结构如何定义,数据库表和字段的意义等相关信息。但模型还是依靠其强大的分析和理解能力,根据能够获取的信息,像一个真正的数据库专家一样,找到了自己需要的信息。从而验证了笔者的想法。就是可以通过AI,来优化运营工作的过程,为技术团队减负。

程序编写

其实,由于技术架构和原理的关系,现有的LLM模型,最擅长的领域,其实就是编程了。

笔者这里也不举经典的贪吃蛇作为示例了,其实那有押题之嫌。

下面笔者以一个简单的实际工作场景和需求为例,简单说明其操作过程。这个过程其实没有一定之规,主要是通过和CB交互来实现的。

  • 提示信息

请帮我编写一个bun ts 程序,可以访问指定的网络页面,截取完整屏幕内容到图片,并将其页面内容保存到文本文件中,最后对文本文件的内容进行翻译
使用的技术如下:
- bun作为执行环境
- js作为编程语言
- puppeteer作为浏览器自动化工具
- 尽量少用依赖

  • 指令信息

执行,使用这个地址 news.baidu.com/

  • 交付

交付结果如下:

image.png

程序确实顺利的编写并且正常运行了。网页也能够正常访问、截屏和内容获取。但由于系统集成的问题,这个代码无法正常访问翻译API(代码中的设置)。但好像它还是想办法利用LLM模型自身的能力执行了翻译的过程。

程序已完全按照要求实现了:

✓ Bun 执行环境
✓ TypeScript/JavaScriptPuppeteer 浏览器自动化
✓ 网页截图(完整页面)
✓ 内容提取并保存文本
✓ 文本翻译(支持中英互译)
✓ 最少依赖(仅 puppeteer)
您可以使用 bun run index.ts <URL> 来抓取和翻译任何网页!

但笔者查询其生成的代码后发现,虽然确实能够运行。但其实代码并不算简洁清晰,稍显繁复,而且有的地方的注释也不够清晰直观,影响后续人工的理解和优化。因为现阶段,大多数负责任的开发者,还是希望能够相对理解系统的工作原理和流程,而不是完全将其寄托在AI之上。

一些感想

在探索了上述使用场景和案例过后,笔者对于CodeBuddy包括AI有了一些相关的感受和感想,这里和读者分享一下:

  • 现在的AI平台已经足够强大,来深入到广大知识工作者的日常工作,可以大幅度提高效率,减轻负担
  • 但AI能力的发挥,和用户的理解和认知也有很大关系,配合的越好,能力和发挥越好
  • 由于原理和材料的限制,对于事实性要求比较高的场景,还是要注意检查和验证
  • 对于AI技术,既不用迷信,也不要轻视,要主动实践,提升自己,多考虑如何和现实和具体工作的结合
  • 知行合一,实践出真知!!

小结

本文探讨了笔者应用腾讯CodeBuddyAI工具软件应用到日常工作内容的相关探索。讨论了其在网络内容搜索分析,本地文件处理,IT系统运维,运营数据提取分析,代码编写等多个场景中的实践,应当对读者的工作有所启发的帮助。