项目管理 (Projects)
在 Antigravity 2.0 中,我们正在从传统以代码库为中心的工作空间(workspace)模型,过渡到更灵活、更安全的“以项目(Project)为中心”的模型。本文档概述了什么是项目、它们如何工作,以及它们与原始工作空间结构的区别。
什么是项目?
项目 (Project) 是一系列文件夹的配置,用以定义 Agent 的环境和访问范围。项目不再强制 Agent 只能在单个文件夹中操作,而是可以包含一个或多个文件夹(例如前端和后端代码库),从而为您的 Agent 提供所需的全部代码库上下文。所有项目都拥有自己独立的 Agent 设置,这使得您可以自主定制不同项目的安全配置。
核心区别:工作区(Workspace) VS 项目(Projects)
| 特性 (Feature) | 原始模型 (Workspace) | 新模型 (Project) |
|---|---|---|
| 组织范围 | 紧密耦合到单个本地代码库。 | 项目是 Agent 工作所需的全部上下文和文件夹的配置。 |
| 目录边界 | Agent 严格限制在单一文件夹结构中。 | 单个项目可以同时横跨多个文件夹。 |
| 设置隔离 | 从机器全局继承设置。 | 项目有自己的独立设置,项目中的 Agent 会使用这些专属设置。 |
| 权限管理 | 宽泛的全局权限。 | 继承全局权限,但项目可以拥有自己的专属附加权限。 |
| 定制项 | 技能 (Skills)/MCP 在全局或每个工作空间中管理。 | 可复用的技能、MCP 和钩子(hooks)都存储在项目级别。 |
项目的核心概念 (Core Project Concepts)
1. 文件夹 (Folders)
项目由文件夹组成,这些文件夹定义了 Agent 允许访问的目录和代码库:
- 本地文件夹 (Local Folders):未配置 Git 的普通文件夹。
- 本地 Git 检出 (Local Git Checkout):作为 Git 代码库检出的文件夹。
2. 工作树选择:本地 VS 新工作树 (Worktree Selection)
在项目中启动新对话时,您可以通过工作树选择器(worktree selector)来选择 Agent 如何与您的文件夹进行交互:
- 本地模式 (Local Mode):Agent 直接在您当前活动的本地文件夹或 Git 检出中操作。(非常适合在当前工作文件夹中进行快速、交互式的编辑)。
- 新工作树模式 (New Worktree Mode):为当前对话创建一个新的 Git 工作树(worktree)。(最适合复杂任务,这样可以保持您当前活动的工作文件夹不受影响,并防止并行子 Agent 发生冲突)。
3. 作用域设置与权限 (Scoped Settings and Permissions)
设置和权限都是在项目级别进行限定的:
- 设置 (Settings):项目创建时,默认使用安全预设。在此预设下,Agent 拥有对项目所有文件夹 durable 读写访问权限,并且在运行任何终端命令之前都会征得您的许可。这些设置可以进行修改,并应用于该项目内的所有 Agent。
- 权限 (Permissions):项目继承全局权限,但允许您在项目级别对其进行扩充,确保 Agent 仅拥有执行特定项目任务所需的精准访问权限。
项目工作流 (Workflows using Projects)
- 在单个文件夹中工作:创建一个包含该文件夹的项目,然后配置其设置。
- 在多个文件夹中工作:将所有相关的文件夹添加至单个项目中,使 Agent 能够获得跨代码库的完整上下文。
- 在同一个文件夹上运行并行 Agent:启动 Agent 时选择 “Local Mode”,这样您所有的 Agent 都会在同一个活动的文件夹中工作。
- 隔离并发运行的 Agent:启动 Agent 时选择 “New Worktree Mode”,这样会为每个 Agent 会话分配独立的 Git 工作树,避免 Agent 之间发生冲突。
- 混合检出与本地普通文件夹:在本地模式下工作时,Agent 直接在现有文件夹中操作。当使用 “New Worktree Mode” 时,系统会为所有活动的 Git 检出派生出新的 Git 工作树,允许 Agent 同时在新的 Git 工作树和现有的非 Git 本地普通文件夹中运行。
Gemini 中文文档