> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 经典配置

> 通过经典交互式向导配置 Devin 的环境。

<Info>在寻找声明式配置？请参阅 [声明式配置 (蓝图) ](/zh/onboard-devin/environment/blueprints)，这是新设置的推荐方法。</Info>

Devin 在每次会话开始时都会通过加载一个虚拟机快照来工作。为了让 Devin 发挥最大效用，这个快照中应该包含你希望 Devin 处理的所有代码仓库，以及 Devin 在你的代码库上工作时可能需要的所有工具和依赖。这样，Devin 就可以专注于编写代码，而不必每次都重新搭建运行环境！

在本指南中，我们将介绍如何将 Devin 接入你的某个代码仓库，并配置 Devin 的环境 (虚拟机快照) 。你可以将这看作是为 Devin 配置好他第一天上班要用的笔记本电脑。

<Tip>
  正确设置 Devin 的环境将显著提升 Devin 在你代码库上的表现。想象一下，如果你每次开始一个任务时，你的笔记本电脑和部分记忆都会被清空——在设置不正确或不完整时，这就是 Devin 的处境！
</Tip>

<div id="add-a-repository">
  ## 添加代码仓库
</div>

首先，确保 Devin 可以访问你的代码仓库。你可以随时通过在以下位置配置 Devin 的访问权限来添加代码仓库：

* **Teams**：[Settings > Connections](https://app.devin.ai/settings/connections)
* **Enterprise**：[Enterprise Settings > Integrations](https://app.devin.ai/settings/connected-accounts)

现在，在某个组织中，前往 [Devin's Machine](https://app.devin.ai/machine) 并点击 **Add repository**。选择你希望添加到 Devin 环境中的代码仓库，然后点击 **Start** 开始配置。

<Frame>
  <img src="https://mintcdn.com/cognitionai/U3kdL8kl7-zWUmHJ/images/onboard-devin/Start-Repo-Setup.png?fit=max&auto=format&n=U3kdL8kl7-zWUmHJ&q=85&s=23ccd8aa7e646c1600eb2efa0ea01820" alt="Devin" width="1764" height="548" data-path="images/onboard-devin/Start-Repo-Setup.png" />
</Frame>

<Tip>
  Devin's Machine 运行的是 Ubuntu 22.04 (x86\_64) 。尝试在终端中按 Ctrl+K，即可自动生成安装命令。
</Tip>

<div id="set-up-the-repository-and-development-environment">
  ## 设置代码仓库和开发环境
</div>

进入 Repo Setup 后，你会看到三个面板：

1. **仓库设置步骤**：按顺序显示全部 8 个设置步骤，以及将被保存到你的配置中的对应命令。
2. **Devin AI Setup Agent**：Devin 会根据你特定的代码仓库为每个步骤提出建议，并反复迭代调整设置，直到可以保存为止。
3. **VS Code 终端**：使你能够在内嵌的 VSCode 环境中直接运行任意命令或浏览文件系统。

<div id="ai-generated-suggestions">
  ### AI 生成的建议
</div>

当你添加代码仓库时，Devin 会基于对代码库的分析，自动为每个步骤生成配置建议。你可以单独接受或拒绝每条建议，或通过 Devin AI Setup Agent 对这些建议进行迭代优化。

<div id="repository-setup-steps">
  ### 仓库设置步骤
</div>

<Steps>
  <Step title="Git Pull">
    Devin 在每个会话开始时运行的命令，用于从仓库中拉取最新更改。在大多数情况下，建议保持默认命令不变。请确保 Devin 拥有对仓库中所有子模块的访问权限。
  </Step>

  <Step title="配置机密信息">
    设置 Devin 在操作你的仓库时所需的任何机密信息或环境变量。更多详情参见 [配置机密信息](#configuring-secrets)。
  </Step>

  <Step title="安装依赖">
    用于安装仓库初始依赖的命令。在首次设置时运行一次，用于准备 Devin 的运行环境。
  </Step>

  <Step title="维护依赖">
    Devin 在会话启动时执行 git pull 之后运行的命令，用于处理新增依赖。通常应与安装依赖时使用的命令相同 (例如 `npm install`、`pip install -r requirements.txt` 等) 。
  </Step>

  <Step title="设置 Lint">
    Devin 用来运行 lint 或检查语法错误的命令。Devin 会在提交更改前查看这些命令的输出。
  </Step>

  <Step title="设置测试">
    Devin 用来运行测试的命令。与 lint 命令类似，Devin 会在提交更改前查看这些命令的输出。
  </Step>

  <Step title="运行本地应用">
    告诉 Devin 如何在本地运行你的代码。如果 Devin 需要运行你的代码来测试或调试更改，这会非常有用。你可以使用 Devin 的浏览器登录希望 Devin 使用的网站。如果登录会超时，请将登录凭证添加到[机密信息](/zh/product-guides/secrets) 中。
  </Step>

  <Step title="附加说明">
    添加 Devin 在处理此仓库时需要遵循的任何其他说明。
  </Step>
</Steps>

<div id="finish-or-save-setup">
  ### 完成或保存设置
</div>

当你对当前设置感到满意时，点击 **Finish Setup** 以保存设置。系统随后会依次重新执行设置步骤中的所有命令，以准备 Devin 的环境。

如果你还未完成更改，点击 **Finish Later** 以保存设置。这样会将该设置保留为进行中状态，便于你稍后回来继续配置。不过请注意，**同一时间只能有一个设置处于进行中状态**，因此除非确有必要，我们不建议使用此选项。

<Tip>
  **配置命令的提示：**

  * 先在 VS Code 终端中运行命令以触发缓存，然后再进行验证。
  * 如果某个命令需要在特定目录中运行，可以使用 `cd`，例如：`cd <directory> && <command>`。
  * 如果你的项目没有 lint 命令，可以加入构建命令，这样 Devin 就能检查编译错误。
  * 如果你项目的 lint 或测试流程比较复杂，你可以跳过这些步骤，并在 Additional Notes 步骤中向 Devin 进行说明。
  * 如果在验证命令时遇到问题，请查看[故障排查部分](#troubleshooting)。
</Tip>

<div id="configure-previously-added-repositories">
  ## 配置已添加的代码仓库
</div>

你可以随时在 [Settings > Devin's Machine](https://app.devin.ai/machine) 中编辑或添加新的代码仓库。

要编辑已有的代码仓库，点击页面右上角的 **Configure**，在其中添加/修改/移除代码仓库，选择你想编辑的代码仓库，然后点击提交。

<Frame>
  <img src="https://mintcdn.com/cognitionai/U3kdL8kl7-zWUmHJ/images/onboard-devin/Configure-Devins-Machine.png?fit=max&auto=format&n=U3kdL8kl7-zWUmHJ&q=85&s=f9976b4e9cb960ad6e905f32d20bad12" alt="Devin" width="1742" height="832" data-path="images/onboard-devin/Configure-Devins-Machine.png" />
</Frame>

或者，你也可以在列表中选择想要编辑的现有代码仓库，然后点击 **Modify repo setup** 来修改配置步骤。

<Frame>
  <img src="https://mintcdn.com/cognitionai/U3kdL8kl7-zWUmHJ/images/onboard-devin/modify-repo-setup.png?fit=max&auto=format&n=U3kdL8kl7-zWUmHJ&q=85&s=e5ea869dd003168b049687ebdcef64cb" alt="Devin" width="2098" height="1634" data-path="images/onboard-devin/modify-repo-setup.png" />
</Frame>

<div id="machine-version-history">
  ### 机器版本历史
</div>

如果在设置过程中不小心引入了不兼容变更，你可以回滚到之前的环境快照。前往 [Settings > Devin's Machine](https://app.devin.ai/machine)，切换到 **Version History** 选项卡，然后恢复一个你确认可以正常工作的先前快照。

<Frame>
  <img src="https://mintcdn.com/cognitionai/U3kdL8kl7-zWUmHJ/images/onboard-devin/Devin-Machine-Version-History.png?fit=max&auto=format&n=U3kdL8kl7-zWUmHJ&q=85&s=ff064cbc842f30f7a55999bc2c640096" alt="Devin" width="1746" height="1082" data-path="images/onboard-devin/Devin-Machine-Version-History.png" />
</Frame>

<div id="configuring-secrets">
  ## 配置机密信息
</div>

可以在 [secrets](/zh/product-guides/secrets) 仪表板中添加 API key、密码、令牌等机密信息。若条件允许，我们建议在 Devin 的运行环境中使用 `.env` 文件配合 [`direnv`](https://direnv.net/) 自动管理环境变量。详情请参见下文的[配置环境变量示例](#configuring-environment-variables)。

<div id="examples">
  ## 示例
</div>

下面是一些为不同使用场景配置 Devin 环境的示例。

由于 Devin 通过 bash 运行所有命令，一种常见做法是编辑 `~/.bashrc` 文件，以自动配置 Devin 的 shell 环境。你可以在终端中运行 `devin ~/.bashrc`，在 VS Code 中编辑该文件。

<div id="configuring-environments-automatically-for-different-repositories">
  ### 为不同代码仓库自动配置环境
</div>

<Tip>
  2025 年 4 月 24 日之后，新加入 Devin 的团队在 `~/.bashrc` 中应该已经能看到
  `custom_cd` 这一部分。你只需要把其中与自己仓库相关的部分改成你的仓库即可。
</Tip>

假设你有两个代码仓库，它们需要不同版本的 Node，并且你希望 Devin 能在每个仓库中自动使用对应的版本。我们将使用 [`nvm`](https://github.com/nvm-sh/nvm) 来安装和管理这些 Node 版本。`nvm` 应该已经安装在 Devin 的环境中。

首先，我们将在 VS Code 终端中运行以下命令来安装这两个版本的 Node：

```bash theme={null}
nvm install 18
nvm install 20
```

接下来，在终端中运行 `devin ~/.bashrc` 打开 `~/.bashrc` 文件。将以下内容追加到该文件末尾。

```bash theme={null}
function custom_cd() {
  builtin cd "$@"

  if [[ "$PWD" == "$HOME/repos/node18"* ]]; then
    nvm use 18 >/dev/null 2>&1
  elif [[ "$PWD" == "$HOME/repos/node20"* ]]; then
    nvm use 20 >/dev/null 2>&1
  fi
}

alias cd='custom_cd'
cd $PWD
```

每当 Devin 在 `node18` 仓库中时，这会运行 `nvm use 18`；而当 Devin 在 `node20` 仓库中时，则会运行 `nvm use 20`。

<div id="configuring-environment-variables">
  ### 配置环境变量
</div>

[`direnv`](https://direnv.net/) 已预装在 Devin's Machine 上，可以用来为每个代码仓库单独管理环境变量。direnv 钩子已经在 `~/.bashrc` 中配置完成。

要为某个代码仓库设置环境变量，请在该仓库的根目录创建一个 `.envrc` 文件。例如：

```bash theme={null}
export ENV_VAR=1
export ANOTHER_ENV_VAR=2
```

最后，我们将在终端中运行 `direnv allow` 来加载环境变量。

现在，在后续的会话中，当 Devin 在我们的代码仓库中工作时，其运行环境中将包含我们 `.envrc` 文件中的环境变量。

<Tip>
  我们建议将 `.envrc` 添加到你的 `.gitignore` 文件中，以免 Devin 不小心将其提交到代码仓库。
</Tip>

<div id="adding-directories-to-the-system-path">
  ### 将目录添加到系统 PATH
</div>

我们可以编辑 `~/.bashrc`，将目录添加到系统 PATH 中。这样 Devin 就能更方便地运行这些目录下的可执行文件。例如，我们可以在 `~/.bashrc` 中追加以下内容，将 `~/bin` 目录添加到系统 PATH 中。

```bash theme={null}
export PATH="$HOME/bin:$PATH"
```

现在，Devin 可以在 `~/bin` 目录中运行可执行文件，无需再指定完整路径。

<div id="logging-in-to-websites">
  ## 登录网站
</div>

在环境设置过程中，你可以使用 Browser 选项卡登录任何你希望 Devin 与之交互的网站。这些会话 Cookie 会存储在 Devin 的环境中，并在后续会话中供 Devin 使用。如果你使用的网站经常导致登录会话超时，你还应在 [Secrets](/zh/product-guides/secrets) 控制台中为 Devin 配置登录凭据。

<div id="scripted-browser-use-via-playwright">
  ### 通过 Playwright 以脚本方式使用浏览器
</div>

对于需要基于浏览器的身份验证 (SSO、OAuth 等) 或批量数据录入的应用，Devin 可以编写并运行 Playwright 脚本，在其正在运行的浏览器中自动完成这些流程。你也可以自行编写这些脚本，并将其纳入你的代码仓库进行版本管理。Devin 的 Chrome 浏览器会暴露一个 **Chrome DevTools Protocol (CDP)** 端点，Playwright 可连接到 `http://localhost:29229`。

```python theme={null}
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp("http://localhost:29229")
    context = browser.contexts[0]
    page = context.pages[0] if context.pages else context.new_page()

    # 在此处自动化你的登录流程
    page.goto("https://your-app.com/login")
    page.fill('input[name="email"]', "user@example.com")
    page.fill('input[name="password"]', "password")
    page.click('button[type="submit"]')
    page.wait_for_url("**/dashboard")
```

脚本运行后，已通过身份验证的会话 (cookies、localStorage、身份验证令牌) 会保留在 Devin 的浏览器中。之后，Devin 可以像平常一样刷新页面、导航并与应用交互——登录状态会继续保留。

<Tip>
  将登录脚本存放在你 的 代码仓库 的 `.agents/skills/` 目录中，并通过 [secrets](/zh/product-guides/secrets) 引用凭据，这样 Devin 就能在每个会话中自动重新进行身份验证。更多详情，请参阅 [Computer Use — Scripted Browser Use](/zh/work-with-devin/computer-use#scripted-browser-use-via-playwright)。
</Tip>

<div id="troubleshooting">
  ## 故障排除
</div>

<div id="why-arent-my-commands-being-verified">
  ### 为什么我的命令没有通过验证？
</div>

如果在验证命令时遇到错误，请尝试检查该命令的输出，并在新的终端中手动运行该命令。

1. 检查你正在运行的可执行文件路径。我们强烈建议使用绝对路径，或[将可执行文件添加到系统 PATH](#adding-directories-to-the-system-path)。
2. 确保你已安装运行该命令所需的工具和依赖项。如果尚未安装，请使用 Setup Agent 或 VS Code 终端进行安装，然后再次进行验证。
3. 检查命令是否在正确的目录中运行。如果命令需要在特定目录中运行，你可以像这样使用 `cd`：`cd <directory> && <command>`。
4. 检查你是否在使用**正确的语言版本** (例如正确版本的 Node、Python 等) 。
5. 你可能需要**修改你的 `~/.bashrc`**，以自动使用正确的环境。
   请参考我们的指南，了解[如何为不同的代码库自动使用正确的语言版本](#configuring-environments-automatically-for-different-repositories)。

<div id="my-commands-work-when-i-run-them-manually">
  ### 我手动运行命令时一切正常
</div>

请检查你的 bashrc 是否已正确配置，以便新启动的 bash shell 可以访问所需工具。尝试在一个全新的终端中运行你的命令。如果它们无法运行，你很可能需要编辑 bashrc，例如先运行某些初始化命令，或编辑系统 PATH。
查看我们的指南，了解一个示例：[如何为不同的代码仓库使用正确的语言版本](#configuring-environments-automatically-for-different-repositories)。

命令会在 5 分钟后超时。你可以先在 VS Code 终端中运行这些命令以触发缓存，然后再进行验证。我们不建议让 Devin 执行运行时间超过 5 分钟的命令，因为这会显著降低它的效率。

<div id="devin-cant-run-my-linttest-commands-in-sessions">
  ### Devin 在会话中无法运行我的 lint/test 命令
</div>

查看 Devin 的终端输出，看看能否发现任何错误。你也可以在一个全新的终端中亲自运行这些命令，确认它们是否正常工作。如有需要，你可以重新检查代码库的设置流程，对 Devin 的环境进行调整。

<div id="the-git-pull-step-isnt-working">
  ### git pull 步骤无法正常执行
</div>

请再次确认 Devin 是否具有该代码仓库及其子模块的访问权限。如果遇到任何权限问题，也可以查看 [GitHub 集成文档](/zh/integrations/gh)。

<div id="all-done">
  ## 全部设置完成！
</div>

恭喜！你已经完成 Devin 的接入，现在可以开始一起开发了。现在就开始[你的第一个会话](/zh/get-started/first-run)。请记住，Devin 在以下情况下工作效果最佳：

* 告诉 Devin 如何检查自己的进度
* 将大型任务拆解成小任务
* 预先提供详细的需求说明
* 并行运行多个会话

如果你需要支持，请随时通过 [support@cognition.ai](mailto:support@cognition.ai) 给我们发送邮件。
