编码代理 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

编码代理

编码代理可以推理编程任务、生成或修改代码,以及与开发者环境(例如 IDEs 和)进行交互 CLIs。这些代理将自然语言理解与结构化推理相结合,以协助、增强和自动化软件开发,从函数生成到错误修复和测试创作。

与自动完成工具不同,编码代理会主动解释用户目标,查询开发环境以获取上下文(例如,它打开文件并跟踪错误),识别需求,然后提出和执行操作。

Architecture

编码代理模式如下图所示:

编码代理。

描述

  1. 接收查询

    • 用户通过命令面板、聊天窗口或 CLI(例如,“向此功能添加日志记录” 或 “重构以提高可读性”)提供自然语言指令。

  2. 提取环境上下文

    • 代理从 IDE 收集上下文,包括活动文件、光标位置、代码片段和符号表。

    • 它输出错误消息、测试结果和其他代理的输出。

  3. 法学硕士推理

    • 代理向 LLM 发送提示,包括查询和环境上下文。

      • 法学硕士通过推理来确定以下内容:

      • 需要改变什么

      • 如何生成解决方案

      • 任何重构、重写或编码步骤

  4. 执行动作

    • LLM 将输出返回到代理并将其导入到 IDE 或运行时环境中。

    • 这可能包括插入或修改代码、生成注释或文档,以及触发下游构建、测试和 linting 任务。

功能

  • 高度上下文感知能力(例如,IDE 状态、光标和语法树)

  • 目标和反馈的迭代推理

  • 可选的代码规划和操作分离(例如,先理由,然后再行动)

  • 适用于同步或异步开发者工作流程

常见使用案例

  • 根据任务描述生成代码

  • 代码重构和优化

  • 测试用例生成和验证

  • 错误解释和调试

  • 文档助手

  • 配对编程副驾驶

实施指导

  • 您可以使用以下工具和以下工具来构建此模式 AWS 服务:

  • Amazon Bedrock 用于 LLM 驱动的生成和推理

  • Amazon Q 开发者提供编码建议和完成信息

  • AWS Lambda 或者用于运行和测试沙盒环境的亚马逊弹性容器服务 (Amazon ECS) Container Service

  • AWS Cloud9、VS Code 扩展或用于托管和评估上下文的自定义 IDE 集成

  • Amazon Simple Storage Service (Amazon S3) 用于存储中间提示、响应和修订历史记录

Summary

编码代理是基于人工智能的新开发工具,能够解释自然语言、分析上下文、生成多步骤代码更改以及与软件开发生命周期集成。