跳转到主要内容

为 Devin 提供凭证

Devin 可以使用它自己的登录凭据,在 Browser 中或通过命令行访问需要身份验证的平台。我们建议在每个它需要访问的服务上为 Devin 单独创建一个账户(例如 [email protected])。然后,你可以将 Devin 的用户名和密码作为 Secrets 保存在你的账户中,以便它在之后的会话中可以自动登录。 添加 Secrets 通常通过 Secrets 页面 完成。该页面对组织级别的 Secrets 尤其重要。关于仓库级或会话级的 Secrets,请参见下面的章节。
Devin
在添加 Secret 时,你可以添加一个 Note,用于说明额外的上下文或使用该 Secret 的说明。使用这个字段向 Devin 以及你所在组织的其他成员传达有用的信息。示例备注包括:
  • 此 API key 只能用于我们的生产环境,不能在 staging 或 dev 环境中使用。
  • 用于我们在 us-west-2 的 AWS RDS 数据库
  • 这些凭证计划在 2025 年第三季度后弃用
  • 每 30 天自动过期一次——如果开始失效,请联系 SecOps 团队进行轮换
  • 此 API key 绑定到 [email protected] 用户账户

持久化全局密钥

Settings & Library > Secrets 中添加的密钥会在后续会话中保留,并适用于整个组织。请注意,在此处共享的任何密钥,都可以在你所在组织中所有未来的 Devin 会话里被 Devin 使用。所有密钥在静态存储(at rest)时均为加密状态。新密钥仅对你添加该密钥之后创建的会话中的 Devin 可用。 请注意,你的组织中所有成员都可以使用全局密钥,但只有管理员可以查看或编辑已有密钥。请务必只添加专门限定在你组织范围内、且适合由所有成员使用的密钥。 当前提供以下几种密钥类型:
此类型最适合大多数只有单个值的通用密钥。每个 Secret Name(也称为 Secret Key)都关联一个 Secret Value。可存储在此处的密钥示例包括:
  • API Keys
  • SSH Keys
  • 用户名或密码
  • Tokens
如果某个密钥需要包含多个值,请为每个值分别创建一个独立的密钥。例如,你可以将 GITHUB_USERNAME 和 GITHUB_PASSWORD 分别存储为两个原始密钥(Raw Secrets)。
Cookies 用于“保存”你的认证状态;如果你已经登录某个站点,则将该站点的 Cookies 提供给 Devin,可以让 Devin 在访问同一站点时自动处于登录状态。请注意,有时仅依靠 Cookies 可能还不够,可能还需要额外的用户名或密码密钥。例如,在 Amazon 上,Devin 可能在浏览或加购时已处于登录状态,但在结账时,Amazon 可能会要求额外一层密码确认。Cookies 会以 base64 编码的字符串形式存储,该字符串是一个以 ; 分隔的 JSON 数组,并采用标准 Chromium Cookie 格式。如果你需要手动编码 Cookies 而不是直接从 Chrome 导出,这一点非常重要。关于如何添加 Cookie 密钥的详细步骤,请参见 添加新的站点 Cookie
基于时间的一次性密码用于双因素认证(2FA)。Devin 可以存储 TOTP 密钥,其行为类似于 Google Authenticator 或 Authy 中的密钥。关于如何添加 TOTP 密钥的详细步骤,请参见 添加新的 TOTP
Devin 过去曾支持创建可以在单个密钥下管理多个键的键值密钥。但该功能现已不再提供。我们建议不再创建键值密钥,而是为每个字段分别创建多个原始密钥。例如,与其创建一个用于 JIRA_LOGIN 的键值密钥,不如创建两个原始密钥:JIRA_USERNAME 和 JIRA_PASSWORD。

仓库级机密信息

要将机密信息限定在某个特定代码仓库范围内,可以在仓库设置过程中,将它们添加为环境变量(或放在 .env 文件中)。
Devin
以后使用同一 Snapshot 的会话将能够访问这些环境变量,但其他无关会话将无法访问。

会话级机密信息

在 Devin 工作过程中,它可能会在当前对话中请求你提供凭证(API 密钥、登录信息等),如下所示:
Devin
当 Devin 以这种方式请求机密信息时,这些机密信息仅在当前会话中生效,不会被保存用于任何后续会话。 另外,你也可以自行设置会话级机密信息:
Devin

使用 Secrets

在 Devin 中配置好 secret 之后,只要会话是在配置该 secret 之后启动的,你的应用程序就可以像访问普通 ENV 环境变量一样访问它。此规则适用于组织级全局 secrets、仓库级 secrets,以及会话级 secrets。 Devin 会对文本进行一些转换,以确保你的 Secrets 是合法的 ENV 变量:
  • 它会移除无效字符,将所有非字母、数字或下划线的字符替换为下划线。比如,名为 Abc%123 的 secret 会被转换为 ENV 变量 Abc_123
    • 如果你的 secret 名称不是以字母开头,Devin 会在名称开头添加一个下划线。例如,名为 123MYVAR 的 secret 会被转换为 ENV 变量 _123MYVAR
    • 如果你有两个同名的 secrets,Devin 会在末尾添加一个计数后缀。例如,如果你有两个名为 MY_SECRET 的 secrets,你最终会得到两个 ENV 变量:MY_SECRET 和 MY_SECRET_2,依此类推。
然后,你可以通过应用程序中常用的方式读取 ENV 变量来访问这些 secrets。比如,你可以在变量名前加上美元符号来引用一个 secret,如 $API_KEY。 要添加站点 Cookie,请按照以下步骤操作:
  1. 像平时一样登录到你希望与 Devin 共享的账号。这将生成 cookie。
  2. 为了从浏览器存储中获取 cookie,请下载浏览器扩展程序 Share your cookies,并按照该扩展中的指引导出你的 cookies。你可能还需要测试:在另一个 Chrome 个人资料中导入该 cookie 后,是否能成功完成站点登录认证。
  3. 通过 Secrets 页面 将导出的 cookie 添加到 Devin 中。
  4. 当 Devin 使用该站点的 cookie 时,在导航到该站点时应会发现自己已经处于登录状态。可以让 Devin 试试看!
如果你没有使用 Chrome,或者需要手动编码 cookies,请注意 Devin 期望接收的 cookies 是:使用标准 Chromium cookie 格式的 JSON 对象,以 ; 分隔,并整体以 base64 字符串编码。

一次性密码

Devin 现在可以使用基于时间的一次性密码(TOTP)来处理双因素认证(2FA)。为此,你需要向 Devin 提供在为特定应用在 Devin 账户上设置 2FA 时生成的信息:
  1. 登录需要 2FA 的服务中的 Devin 账户。
  2. 前往账户安全设置,查找重新生成或查看二维码的选项。该选项可能被称为 Set up 或 Replace Authenticator。
  3. 如果应用允许,选择查看二维码的选项。
  4. 当二维码显示在屏幕上时,为其截屏。
  5. 前往 Devin’s Secrets,点击 “Add Secret” 按钮,将 Secret 类型更改为 “One-time Password”。输入一个便于识别的名称。点击数值输入框右上角的小二维码图标,并上传你的二维码截屏。
仅提供与专门为 Devin 使用而创建的账户相关联的 2FA 信息。我们不建议向 Devin 提供你个人账户的任何 2FA 信息。

TOTP 使用提示

  • 某些应用在启用 2FA 后可能不再允许你查看现有的二维码。在这种情况下,只能通过重新生成二维码来解决。
  • 在此过程中提供的任何新的备用代码,请务必保存在安全的位置。