AutoDev - 微软推出的AI编程和程序开发智能体框架
发布于 2024-03-17 · AutoDev是由微软的研究人员推出的一个AI编程和程序开发智能体框架,专门设计用于自主规划和执行复杂的软件工程任务,如代码编写、调试、测试和版本控制等。AutoDev的目标是提高软件开发的效率和质量,同时减少开发人员在某些重复性或繁琐任务上的负担。
AutoDev是什么
AutoDev是由微软的研究人员推出的一个AI编程工具,专门用来自主规划和执行复杂的软件工程任务,代码编写、调试、测试、版本控制都在内。AutoDev 想解决的是开发效率和质量,顺带把重复、繁琐的活从开发人员手里拿走。
- arXiv研究论文:https://arxiv.org/abs/2403.08299
AutoDev的主要功能
- 目标定义与任务分配:用户把复杂的软件工程目标定下来,AutoDev 拆给自主 AI 智能体去实现,代码编写、测试、构建、部署这些活都涵盖。
- 代码生成:按需求生成代码,新功能、现有代码的改进或优化都算在里头。
- 测试生成与执行:测试用例能自己写,也能自己跑,跑完看结果对不对;发现错误就把代码改掉。
- 代码维护与调试:现有代码的审查和维护也能做:找出潜在错误并修掉,顺手优化性能,需求变了再更新代码。
- 版本控制:支持 Git 操作,提交、推送、合并这些版本管理动作都能做。
- 文件编辑与管理:文件编辑也行,代码库里的内容该加加、该改改、该删删。
- 检索与信息提取:能在代码库里检索信息,代码复用、模式识别、知识提取这类任务用得上。
- 构建与执行:编译、构建、执行都能代劳,代码跑不跑得起来、性能如何,一并盯住。
- 多智能体协作:架构上支持多个智能体协同,各管一摊,合起来把复杂的软件工程任务做完。
- 对话管理:靠对话管理器跟用户交互,会话历史由它管,用户和 AI 智能体之间的沟通不至于断线。
- 安全与隐私维护:任务在 Docker 环境里跑,操作的安全性和隐私性有保障,潜在风险也能挡住一部分。
- 自我评估与迭代:自己生成的代码和测试能自己评估,一轮轮迭代下来,任务执行的效果逐步变好。
AutoDev的架构组成
AutoDev 主要由四个功能模块组成。这套架构让它能把复杂的软件工程任务自动化,同时保持高效、安全和可控。人不用插手,AutoDev 自己就能把任务做完;要定制行为也可以,用户按自己的需求调整 AutoDev 的配置。
- 对话管理器(Conversation Manager):
- 负责初始化和管理会话历史。
- 维护来自AI智能体和评估环境的操作结果。
- 包含解析器、输出组织器和对话终止器,用于解释代理响应、组织输出信息和决定会话结束的时机。
- 工具库(Tools Library):
- 提供了一系列命令,使AI智能体能够对代码库执行操作。
- 包括文件编辑、检索、构建与执行、测试与验证、Git操作和通信等类别的命令。
- 代理调度器(Agents Scheduler):
- 负责协调AI智能体以实现用户定义的目标。
- 使用循环、基于令牌或基于优先级的算法来决定代理参与对话的顺序和方式。
- 评估环境(Evaluation Environment):
- 在Docker容器中运行,安全地执行文件编辑、检索、构建、执行和测试命令。
- 给 AI 智能体留了一个简化接口,底层命令的复杂性被挡在外面。
- AI智能体(Agents):
- 由大型语言模型(如OpenAI GPT-4)和为代码生成优化的小型语言模型组成。
- 拿到目标和对话历史后,按规则和行动配置决定下一步做什么。
- 规则、行动和目标配置:
- 用户通过YAML文件配置规则和操作来启动流程。
- 定义了AI代理可以执行的命令(操作)和用户可以启用/禁用的特定命令。






0 条评论
暂无评论,来抢沙发。