本文档介绍了 gpt-engineer 的命令行界面 (CLI) 和 Agent 系统,这是代码生成和改进功能的主要入口点和编排层。CLI 处理用户命令并配置 Agent,而 Agent 系统负责协调 AI 交互、文件处理和代码执行。
有关 AI 接口工作原理的详细信息,请参阅 AI 接口。有关文件处理和存储的详细信息,请参阅 文件处理系统 和 内存和存储。
CLI 和 Agent 系统构成了 gpt-engineer 的核心编排层,连接用户输入和 AI 代码生成功能。该系统遵循一个明确定义的流程
来源: gpt_engineer/applications/cli/main.py502-512 gpt_engineer/applications/cli/cli_agent.py36-101
CLI 是用户与 gpt-engineer 交互的主要入口点。它解析命令行参数、配置系统并编排代码生成或改进过程。
CLI 工具是使用 Typer 构建的,提供两个主要命令:
gpte <project_path> - 根据提示生成新代码gpte <project_path> -i - 根据提示改进现有代码| 参数 | 标志 | 描述 |
|---|---|---|
| 项目路径 | (位置参数) | 项目目录的路径 |
| 模型 | -m, --model | 要使用的 LLM 模型(默认值:gpt-4o) |
| 温度 | -t, --temperature | 控制输出的随机性(默认值:0.1) |
| 改进模式 | -i, --improve | 激活代码改进模式 |
| 精简模式 | -l, --lite | 使用简化的提示进行生成 |
| 澄清模式 | -c, --clarify | 在实现之前与 AI 讨论规范 |
| 自我修复模式 | -sh, --self-heal | 自动修复失败的代码 |
| Azure 端点 | -a, --azure | Azure OpenAI 服务的端点 |
来源: gpt_engineer/applications/cli/main.py281-380
来源: gpt_engineer/applications/cli/main.py382-557
Agent 系统负责编排代码生成和改进过程。它遵循 BaseAgent 接口,并在 CliAgent 中有一个具体实现。
BaseAgent 抽象基类定义了所有 Agent 的接口。
来源: gpt_engineer/core/base_agent.py16-31 gpt_engineer/applications/cli/cli_agent.py36-101
CLI 工具使用的 BaseAgent 接口的主要实现是 CliAgent 类。它协调:
code_gen_fn 进行代码生成process_code_fn 进行代码执行improve_fn 进行代码改进可以使用工厂方法 with_default_config 创建 Agent。
来源: gpt_engineer/applications/cli/cli_agent.py102-150 gpt_engineer/applications/cli/main.py504-512
代码生成过程由 CliAgent.init() 方法编排,该方法遵循以下步骤:
来源: gpt_engineer/applications/cli/cli_agent.py152-183 gpt_engineer/core/default/steps.py121-151
标准代码生成函数(gen_code)遵循以下步骤:
CLI 提供替代的代码生成选项:
lite_gen):仅包含文件格式指令的简化提示clarified_gen):在代码生成前与用户进行交互式澄清self_heal):尝试自动修复失败的代码来源: gpt_engineer/tools/custom_steps.py40-233
CliAgent.improve() 方法处理代码改进过程。
来源: gpt_engineer/applications/cli/cli_agent.py185-232 gpt_engineer/core/default/steps.py271-398
执行阶段由 execute_entrypoint 函数处理,该函数:
来源: gpt_engineer/core/default/steps.py205-268
CLI 和 Agent 系统与几个关键组件进行交互:
来源: gpt_engineer/applications/cli/cli_agent.py83-101 gpt_engineer/core/base_memory.py13-15 gpt_engineer/core/base_execution_env.py8-42 gpt_engineer/core/preprompts_holder.py7-29
CLI 和 Agent 系统通过多种机制进行定制:
该系统支持关键功能的自定义实现:
code_gen_fn:控制代码如何生成improve_fn:控制代码如何改进process_code_fn:控制代码执行和处理该系统使用 PrepromptsHolder 来管理流程各个阶段使用的模板提示。可以通过提供一个包含修改后模板的自定义目录来定制这些模板。
来源: gpt_engineer/applications/cli/main.py173-200 gpt_engineer/core/preprompts_holder.py7-29
该系统包括全面的错误处理和日志记录。
来源: gpt_engineer/applications/cli/main.py431-448 gpt_engineer/core/default/steps.py376-397
| 文件 | 描述 |
|---|---|
applications/cli/main.py | CLI 入口点、参数解析、流程编排 |
applications/cli/cli_agent.py | CLI 工具的主要 Agent 实现 |
core/default/steps.py | 代码生成和改进的标准步骤 |
tools/custom_steps.py | 替代的生成和改进策略 |
core/base_agent.py | Agent 的抽象基类 |
core/base_execution_env.py | 代码执行环境的接口 |
core/base_memory.py | 数据存储组件的接口 |