项目在 Antigravity 2.0 中,我们正在从传统的以存储库为中心的工作空间模型过渡到更灵活、更安全的 以项目为中心 模型。本文档概述了项目是什么、它们如何工作以及它们与原始工作区结构有何不同。

什么是项目?

项目是定义环境和代理范围的文件夹配置。项目可以使用一个或多个文件夹(例如前端和后端存储库),而不是强制代理在单个文件夹中运行,从而为您的代理提供代码库所需的所有上下文。所有项目都有自己独立的代理设置,允许您独立自定义不同项目的安全设置。

主要区别:工作空间与项目

特色 原始模型(工作区) 新模式(项目)
组织范围 与单个本地存储库紧密耦合。 项目是代理应使用的所有上下文和文件夹的配置。
目录边界 代理严格限于一个文件夹结构。 单个项目可以同时跨越多个文件夹
设置隔离 从机器全局继承的设置。 项目有自己的设置。项目中的代理使用项目的设置。
权限 广泛的全局权限。 全局权限是继承的。除了全局权限之外,项目还可以拥有自己的权限。
定制 全局或按工作空间管理的技能/MCP。 可重用的技能、MCP 和挂钩存储在项​​目级别。

核心项目概念

1. 文件夹 项目由文件夹组成,它们定义允许代理访问的目录和存储库: * 本地文件夹:未配置 git 的文件夹。 * 本地 Git Checkout:作为 Git 存储库签出的文件夹。

2. 工作树选择(本地与新工作树) 在项目中开始新对话时,您可以通过工作树选择器选择代理应如何与您的文件夹交互:

  • 本地模式:代理直接在您的活动本地文件夹或 Git 签出中工作。(最适合在当前工作文件夹中进行快速交互式编辑)。
  • 新工作树模式:为对话创建一个新的 Git 工作树。(最适合复杂任务,保持活动工作文件夹不变并防止并行子代理发生冲突)。

3. 范围设置和权限 设置和权限的范围都在项目级别: * 设置:创建项目时,它始终以默认的安全预设开始,其中它具有对所有项目文件夹的读写访问权限,并且会请求运行所有终端命令的权限。可以修改这些设置并将其应用于该项目中的所有代理。 * 权限:项目继承全局权限,但允许您在项目级别增强权限,确保代理仅拥有该特定项目任务所需的确切访问权限。

使用项目的工作流程

  • 在单个文件夹中工作:使用文件夹创建项目,然后配置其设置。
  • 在多个文件夹中工作:将所有相关文件夹添加到单个项目中,以便代理在您的代码库中拥有完整的上下文。
  • 在同一文件夹上运行并行代理:启动代理时选择本地模式,以便所有代理在同一活动文件夹中工作。
  • 隔离并发代理:启动代理时选择新工作树模式,以便为每个代理会话配置单独、隔离的 Git 工作树,从而避免代理之间的冲突。
  • 混合签出和本地文件夹:本地工作直接在现有文件夹中操作。使用“新工作树模式”将为所有活动的 Git 签出生成一个新的 Git 工作树,允许代理同时在新工作树和现有的非 git 本地文件夹中进行操作。