AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


【Agent智能体指北】告别996,LangGraph 打造代编程智能体!
发布日期:2024-06-14 07:06:16 浏览次数: 1813



代码生成和分析是大型语言模型(LLMs)最重要的应用场景之一,比如我们可以直接让Kimi写一段Python程序。

不过对于复杂的程序,有时候效果并不能满足我们的期望。

不过现在有了工作流,可以通过LangGraph打造一个编程智能体,通过迭代的方式,让Agent自我进化,实现更好的编程效果,主要包含两个步骤:

(1)测试答案

(2)反思这些测试的结果,以改进解决方案。

但是,通过 LangGraph 打造智能体究竟能带来多大的提升效果?我们想需要对比两种不同的架构:

  • 通过提示词编写代码

  • 通过LangGraph 构建编写代码的流程,如果有错误则自我纠正

我们实现了一个包含以下组件的代码生成的工作流:

  • 受最近长上下文 LLMs 趋势的启发,我们使用 GPT-4 和 128k 令牌上下文窗口对 60k 令牌 LCEL 文档进行上下文填充。我们将一个关于 LCEL 的问题传递给我们填充了上下文的 LCEL 链以生成初始答案。

  • 我们使用 OpenAI 工具将输出解析为 Pydantic 对象,该对象包含三个部分:(1)描述问题的序言,(2)import 代码块(3)代码。

  • 我们首先检查 导入 执行,因为我们发现在代码生成过程中,导入语句中可能会出现幻觉。

  • 如果 导入 检查通过,我们接下来检查代码本身是否可以执行。在生成提示中,我们指示 LLM 不要在代码解决方案中使用伪代码或未定义的变量,这应该产生可执行的代码。

  • 重要的是,如果任一检查失败,我们将堆栈跟踪与之前的答案一起传回生成节点以进行反思。我们允许重试 3 次(仅作为默认值),重试次数可以根据需要扩展。

使用 LangSmith 进行评估

作为基线,我们实现了没有 LangGraph 的提示词代码生成使用 GPT-4 和 128k 令牌上下文窗口对 60k 令牌 LCEL 文档进行内容生产。将一个关于 LCEL 的问题传递给我们填充了上下文的 LCEL 链以生成答案。


使用 LangSmith 进行评估,主要评估两项:import的内容和代码执行是否正确。

在评估集上用 20 个问题对提示词生成的代码进行了四次评估。我们看到 大约98% 的导入测试是正确的,大约 55% 的代码通过了执行测试。

失败的内容主要是它没有意识到 RunnableLambda 函数的输入将是一个 dict 并认为它是一个 string:AttributeError: 'dict' object has no attribute 'upper'

然后我们测试了 提示词 + LangGraph 在导入和代码执行中执行此类错误的检查,然后在执行更新答案生成时反思任何错误。

在相同的评估集上,我们看到 100% 的导入测试是正确的,以及 大约 81% 的代码通过了测试。

使用LangGraph也遇到了相同的错误,在错误的反思过程中,通过三次反思,最终生成正确处理了 RunnableLambda 函数中的输入 dict。

总体而言,添加这个简单的反思步骤并使用 LangGraph 重试,导致代码执行有了显著改进,大约有 26% 的改进。

结论

LangGraph 可以有效地通过编程智能体解决代码编写过程中的一些问题,通过对失败结果的反思,并自我迭代改进代码结果。

在不远的将来,Agent智能体已经可以替代大部分初级开发的工作,人人都能编程的时代已经到来!

欢迎关注我,获取更多关于 AI 优化的前沿资讯。别忘了将今天的内容分享给你的朋友们,让我们一起见证 AI 技术的飞跃!

觉得我的文章对你有帮助的话,请不要吝啬你的点赞、在看和转发~


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询