章节 01
导读 / 主楼:Forge:用Rust构建的自主软件工程代理框架
Forge是一个完全用Rust编写的自主AI软件工程代理,能够在隔离的Docker沙箱中自动完成代码编写、编辑和测试,直到生成验证通过的补丁。
正文
Forge是一个完全用Rust编写的自主AI软件工程代理,能够在隔离的Docker沙箱中自动完成代码编写、编辑和测试,直到生成验证通过的补丁。
章节 01
Forge是一个完全用Rust编写的自主AI软件工程代理,能够在隔离的Docker沙箱中自动完成代码编写、编辑和测试,直到生成验证通过的补丁。
章节 02
随着大型语言模型能力的不断提升,AI辅助编程已经从简单的代码补全进化到了能够自主完成复杂任务的阶段。然而,现有的AI编程工具往往存在几个关键问题:执行环境不安全、难以追踪代理的完整工作过程、以及缺乏可复现性。Forge项目正是为了解决这些问题而诞生的——它是一个完全用Rust编写的自主软件工程代理框架,强调安全性、可观测性和可扩展性。
章节 03
Forge的核心设计理念是将AI代理运行在完全隔离的环境中。它通过启动一个Docker沙箱容器,在其中克隆目标代码仓库,然后让AI代理自主地探索代码库、编写修改、执行测试,直到生成一个验证通过的补丁。整个过程都被完整地记录下来,形成可追溯的轨迹文件。
章节 04
隔离执行环境:每个任务都在独立的Docker容器中运行,确保AI代理的操作不会影响宿主系统。这种设计不仅提供了安全保障,还保证了执行环境的可复现性。
完整的轨迹记录:每一次运行都会生成一个详细的.traj文件,记录了代理执行的所有命令、输出结果、模型响应和时间戳。这使得开发者可以完整地复盘AI的决策过程,便于调试和优化。
OpenAI兼容API支持:Forge可以与任何兼容OpenAI API的模型端点配合使用,包括Gemini、Claude、以及各种自托管模型。这种开放性让用户可以根据任务需求选择最合适的模型。
多平台部署:除了本地运行,Forge还可以部署到Nosana等去中心化计算网络上,利用分布式计算资源处理大规模任务。
章节 05
Forge采用严格的Rust工作空间结构,各crate之间形成清晰的分层依赖关系,避免了循环依赖:
章节 06
当用户提交一个任务时,Forge会按照以下流程执行:
章节 07
Forge支持灵活的YAML配置,可以精细控制代理行为:
agent:
model_name: models/gemini-2.0-flash-001
base_url: https://generativelanguage.googleapis.com/v1beta/openai
api_key: $FORGE_API_KEY
max_steps: 25
parser_type: thought_action
env:
image: forge-sandbox:latest
repo_path: /repo
timeout_secs: 120
startup_commands:
- "git clone --depth 1 https://github.com/owner/repo /repo"
- "git -C /repo config user.email forge@forge.local"
problem_statement:
type: github_issue
url: https://github.com/owner/repo/issues/42
章节 08
在项目的演示案例中,Forge成功解决了GitHub Issue #25:在TypeScript项目中添加一个邮箱验证工具函数。代理的执行过程展示了其能力:
整个过程在8步内完成,最终生成的补丁被自动应用并推送到Pull Request #26。这个案例展示了Forge不仅能完成指定的任务,还能主动发现并解决相关的潜在需求。