SWE-Agent 这是针对本地模型的新人工智能一个开源项目

这篇具有很好参考价值的文章主要介绍了SWE-Agent 这是针对本地模型的新人工智能一个开源项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

完全自主的编码代理,可以解决 GitHub 问题。 它在编码基准测试中的得分几乎与 Devin 一样高。 这是完整的评论和教程。

SWE-agent 将 LM(例如 GPT-4)转变为软件工程代理,可以修复真实 GitHub 存储库中的错误和问题。

🎉 在完整的 SWE-bench 测试集上,SWE-agent 修复了 12.29% 的问题,这是完整测试集上最新的结果。

我们通过设计简单的以 LM 为中心的命令和专门构建的输入和输出格式来实现这些结果,使 LM 更容易浏览存储库、查看、编辑和执行代码文件。 我们将此称为代理计算机接口 (ACI),并构建 SWE 代理存储库,以便轻松迭代存储库级编码代理的 ACI 设计。

swe-agent源码解析,AI,swe-agent,人工智能

Agent-Computer Interface 代理计算机接口 (ACI)

我们通过设计简单的以 LM 为中心的命令和反馈格式来实现这些结果,使 LM 更容易浏览存储库、查看、编辑和执行代码文件。 我们将其称为代理计算机接口 (ACI),并构建 SWE 代理存储库,以便轻松迭代存储库级编码代理的 ACI 设计。

就像典型的语言模型需要良好的提示工程一样,良好的 ACI 设计在使用代理时会带来更好的结果。 正如我们在论文中所示,没有经过良好调整的 ACI 的基线代理的表现比 SWE 代理差得多。

SWE-agent 包含我们发现在代理-计算机界面设计过程中非常有用的功能:
  1. 我们添加了一个在发出编辑命令时运行的 linter,并且如果代码语法不正确,则不会让编辑命令通过。
  2. 我们为代理提供了一个专门构建的文件查看器,而不仅仅是 cat 文件。 我们发现此文件查看器在每轮仅显示 100 行时效果最佳。 我们构建的文件编辑器具有用于上下滚动以及在文件中执行搜索的命令。
  3. 我们为代理提供了专门构建的全目录字符串搜索命令。 我们发现该工具简洁地列出匹配项非常重要 - 我们只需列出至少有一个匹配项的每个文件。 事实证明,向模型显示有关每场比赛的更多上下文对于模型来说太混乱了。
  4. 当命令的输出为空时,我们会返回一条消息,指出“您的命令已成功运行,但未产生任何输出”。

请阅读我们的论文了解更多详细信息。

@misc{yang2024sweagent,
      title={SWE-agent: Agent Computer Interfaces Enable Software Engineering Language Models}, 
      author={John Yang and Carlos E. Jimenez and Alexander Wettig and Shunyu Yao and Karthik Narasimhan and Ofir Press},
      year={2024},
}
Setup 设置
  1. 安装 Docker,然后在本地启动 Docker。
     
  2. 安装 Miniconda,使用
    conda env create -fenvironment.yml
     创建 swe-agent 环境 使用 
     
  3. 使用
    conda activate swe-agent
    激活。
     
  4. 运行
     ./setup.sh 
    创建 swe-agent docker 镜像。
     
  5. 在此存储库的根目录下创建一个keys.cfg 文件并填写以下内容:
    GITHUB_TOKEN: 'GitHub Token Here (required)'
    OPENAI_API_KEY: 'OpenAI API Key Here if using OpenAI Model (optional)'
    ANTHROPIC_API_KEY: 'Anthropic API Key Here if using Anthropic Model (optional)'
    TOGETHER_API_KEY: 'Together API Key Here if using Together Model (optional)'
    AZURE_OPENAI_API_KEY: 'Azure OpenAI API Key Here if using Azure OpenAI Model (optional)'
    AZURE_OPENAI_ENDPOINT: 'Azure OpenAI Endpoint Here if using Azure OpenAI Model (optional)'
    AZURE_OPENAI_DEPLOYMENT: 'Azure OpenAI Deployment Here if using Azure OpenAI Model (optional)'
    AZURE_OPENAI_API_VERSION: 'Azure OpenAI API Version Here if using Azure OpenAI Model (optional)'

    请参阅以下链接,获取有关获取 Anthropic、OpenAI 和 Github 令牌的教程。

Usage 用途

SWE-agent 管道有两个步骤。 第一个 SWE 代理接受输入 GitHub 问题并返回尝试修复它的拉取请求。 我们称该步骤为推理。 第二步(目前仅适用于 SWE-bench 基准测试中的问题)是评估拉取请求以验证它确实解决了问题。

注意:目前,少数存储库存在已知问题,无法为arm64 / aarch64 架构计算机正确安装。 我们正在努力修复,但如果您想在整个 SWE-bench 上运行和评估,最简单的方法是使用 x86 机器。

Inference 推论

对任何 GitHub 问题进行推理:使用此脚本,您可以在任何 GitHub 问题上运行 SWE-agent!

python run.py --model_name gpt4 \
  --data_path https://github.com/pvlib/pvlib-python/issues/1603 \
  --config_file config/default_from_url.yaml

SWE-bench 上的推理:在 SWE-bench Lite 上运行 SWE-agent 并生成补丁。

python run.py --model_name gpt4 \
  --per_instance_cost_limit 2.00 \
  --config_file ./config/default.yaml

如果您想从 SWE-bench 运行单个问题,请使用 --instance_filter 选项,如下所示:

python run.py --model_name gpt4 \
  --instance_filter marshmallow-code__marshmallow-1359
  • 请参阅 script/ 文件夹以获取其他有用的脚本和详细信息。
  • 有关如何定义自己的配置的详细信息,请参阅 config/ 文件夹!
  • 有关基于配置的工作流程背后的逻辑的详细信息,请参阅 sweagent/agent/ 文件夹。
  • 有关 SWEEnv 环境(接口 + 实现)的详细信息,请参阅 sweagent/environment/ 文件夹。
  • 有关 run.py 输出的详细信息,请参阅 trajectories/文件夹。
Evaluation 评估

此步骤仅适用于 SWE 基准集中的问题。 要评估生成的拉取请求:

cd evaluation/
./run_eval.sh <predictions_path>

将 <predictions_path> 替换为模型预测的路径,该路径应从推理步骤生成。 <predictions_path> 参数应类似于 ../trajectories/<username>/<model>-<dataset>-<hyperparams>/all_preds.jsonl

有关评估如何工作的详细信息,请参见评估/文件夹文章来源地址https://www.toymoban.com/news/detail-858477.html

到了这里,关于SWE-Agent 这是针对本地模型的新人工智能一个开源项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能 | 一文介绍五种基本 Agent

    在讨论智能化 Agent 之前,我们首先来了解一下,什么是 Agent? Agent 是一个通过 传感器 感知所处环境、通过 执行器 对环境产生作用的东西。 如果将人类看成一个 Agent,那么传感器就是眼睛、耳朵等器官,执行器就是手、腿等身体的其他部位。 接下来,我们就来介绍一下五

    2024年04月12日
    浏览(43)
  • 人工智能入门教学——AI代理(AI Agent)

    目录 一、简介 二、特征 三、结构 四、工作流程 五、类型 六、应用 AI代理 (Artificial Intelligence Agent)是指 使用人工智能技术和算法来执行特定任务、解决问题或实现目标的 程序或系统 。 这些代理可以是简单的程序,也可以是复杂的系统,其设计目的是模拟和执行类似人类智

    2024年02月03日
    浏览(56)
  • 人工智能 Agent 简介:核心原理 / 数学公式 / 实现算法 / 代码实例

    人工智能Agent(AI Agent)是一个自动化的系统,它可以感知其环境并根据其感知进行决策以实现特定的目标。这些Agent可以是简单的程序,如搜索引擎的爬虫,也可以是复杂的系统,如自动驾驶汽车。AI Agent的主要目标是通过学习和优化来提高其性能。 AI Agent的实现原理主要基

    2024年02月12日
    浏览(55)
  • 多Agent框架之-CrewAI-人工智能代理团队的未来

    CrewAI- a role playing AI Agents git地址:https://github.com/joaomdmoura/crewai#why-crewai langchain地址:CrewAI Unleashed: Future of AI Agent Teams Agent具有与另一个Agent联系的能力,以委派工作或提出问题。 任务可以使用特定的代理工具覆盖,这些工具应该被使用,同时还可以指定特定的代理来处理它们

    2024年02月03日
    浏览(65)
  • 【人工智能】之深入理解 AI Agent:超越代码的智能助手(2)

    人工智能(AI)正在以前所未有的速度迅猛发展,而AI Agent(智能代理)则是这一领域中备受瞩目的一环。 AI Agent 不仅仅是程序的执行者,更是能够感知、学习和交互的智能实体。本文将深入探讨什么是 AI Agent ,以及这一概念在当今科技领域中的重要性。 AI Agent 是指一种能够

    2024年01月19日
    浏览(60)
  • 【人工智能】— 逻辑Agent、一般逻辑、Entailment 蕴涵、命题逻辑、前向链接、反向链接、Resolution归结

    逻辑智能体:基于知识的智能体 知识和推理的重要性 部分可观察的环境 自然语言理解 基于知识的智能体的灵活性 知识库是一组用形式化语言表述的陈述句,其中包含有系统需要了解的信息。 在构建一个智能体时,通常采用“告诉”和“询问”的方式,即先将需要的知识加

    2024年02月08日
    浏览(42)
  • 人工智能与音乐结合,打造未来音乐产业的新商业模式

    作者:禅与计算机程序设计艺术 在这个技术日新月异的时代,音乐已经成为人们生活不可或缺的一部分。其中的重要因素之一就是其广阔的现实空间以及充满着丰富多彩的音符、旋律和节奏的创作力。随着科技的飞速发展和互联网的蓬勃发展,人类的音乐创作能力也发生了翻

    2024年02月11日
    浏览(49)
  • AI人工智能Mojo语言:AI的新编程语言

    推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 Mojo的主要功能包括: 类似Python的语法和动态类型使Python开发人员易于学习Mojo,因为Python是现代AI / ML开发背后的主要编程语言。 使用Mojo,您可以导入和使用任何Python库,确保与Python的完全互操作性。 它支持实时 (JIT) 和提前

    2024年02月09日
    浏览(49)
  • 探索人工智能在健康数据分析中的新领域:智能医疗咨询

    作者:禅与计算机程序设计艺术 随着全球数字化进程的加快、互联网行业的蓬勃发展、数字健康产品和服务的不断涌现,人工智能(AI)作为一种高技术含量的新兴产业正在引爆全新的经济增长点。而如何利用人工智能技术帮助医疗机构进行健康管理,则是一个亟待解决的问

    2024年02月07日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包