Skip to main content
本文档适用于 Devin 的联邦部署。返回 Devin 文档
气隙版 Devin Desktop 和 Devin CLI 不支持云端登录,而是通过一个已签名的许可证文件控制访问权限。产品每次启动时都会完全离线地校验该文件。每个许可证均通过门户签发给一名席位持有人,并占用您的团队气隙版授权中的一个席位。

许可证文件的存放位置

Desktop 内置的智能体与独立 CLI 读取的是同一个文件。请在首次启动前安装该文件,参见安装 → 步骤 4。Desktop 用户也可以在 Devin 设置中安装许可证:内置智能体会离线验证该文件,拒绝覆盖属于其他用户的文件,并记录一条 license_installed 审计事件。在 Windows 上,如果许可证文件归管理员所有,标准用户无法通过 Desktop 替换该文件 (安装会被拒绝,并返回 LIC001) ,只有管理员才能替换。放置该文件之前,请先锁定 C:\ProgramData\Devin\。

从门户签发许可证

  1. 登录门户并打开团队页面。气隙许可证部分会显示已用席位数、授权期限以及默认许可证有效期。
  2. 点击 Generate license。
  3. 输入标签 (例如主机名或用户姓名) 、经办人邮箱以及有效天数。有效期默认采用授权中设定的默认值,且不得超过授权允许的最长期限,也不得晚于授权期限的结束日期;审查步骤会显示预计到期日期。
  4. 确认。门户会提示 License generated,并提供 Download license file 选项。下载所得为已签名的 .devin-onprem-license 文件;请按照经批准的介质流程将其传输到气隙主机。
Issued licenses 表格会列出所有许可证及其状态 (Active、Expiring soon、Expired、Revoked) 。你可以在该表格中重新下载活跃的许可证。如需撤销或重新签发许可证,或在席位全部占用时释放席位,请联系您的支持团队处理。

文件内容

该文件是一个紧凑格式 (header.payload.signature) 的 JSON Web Token,使用 EdDSA (Ed25519) 签名。标头中的 kid 指明了用于签名的公钥;产品内置了所有环境的公钥,因此验证时无需从外部获取任何内容。包含的声明如下: 验证检查包括:使用 kid 所选的内置密钥校验签名;检查 nbf/exp 有效期窗口 (前后各允许 24 小时的时钟偏差额度) ;以及检查 product 声明。

查看许可证

检查密钥 ID

解码 JWT 标头并读取 kid。以下单行命令在 Linux 和 macOS 上均适用:它会先将 base64url 转换为 base64 并补齐填充,因为 macOS 自带的 BSD base64 遇到未填充的输入时会静默截断。
预期值: 如果 kid 不符或结果为空,则说明该文件并非为本产品签发的许可证,或在传输过程中已损坏。

检查席位、账户和到期时间

即使许可证缺失或无效,devin auth status 也能正常运行,因此你可以使用它来诊断问题:
Identity 是本地署名身份 (操作系统用户名加上 git config user.email) ,会记录到审计日志中,且与许可证无关。如果文件无法通过验证,最后一行将变为 License: INVALID — LIC00X: <reason>。 devin airgap doctor 中的 license 检查会报告同样的席位、账户和到期时间,并在距到期不足 30 天时变为 warn。

启动与重新验证行为

  • CLI 每次启动时都会验证许可证,并向 stderr 输出一行信息:
    如果许可证将在 30 天内过期,还会紧接着输出一行 Warning: license expires in N day(s)。
  • 长时间运行的进程 (Desktop 的内置智能体、CLI REPL) 会在开始新的会话或对话轮次之前重新验证该文件,且最多每小时验证一次。正在进行的工作绝不会被中断。
  • 许可证过期超过 24 小时后,将无法开始新的会话和对话轮次。在 Desktop 中,聊天面板会显示 ACP 错误 -32019 license_invalid;具体的 LIC00X 原因可在 View → Output → Devin ACP 中查看。
  • 验证失败的结果不会被缓存:安装续期后的许可证文件后,无需重启,下一个对话轮次即可生效。
  • 以下少数命令无需有效许可证即可运行,方便你修复主机:devin auth status、devin airgap doctor、devin doctor、devin diagnostics、devin models validate 和 devin version。

续订或替换许可证

  1. 在门户中为同一席位持有人生成新的许可证 (见上文) 。如果该席位已被占用,请先联系您的支持团队撤销旧许可证。
  2. 将新文件复制到 /etc/devin/license.devin-onprem-license (或 DEVIN_LICENSE_FILE 中指定的路径) ,覆盖现有文件。该文件的所有者应为运行 Devin 的账户;也可以归 root 所有,但需授予该账户读取权限。在 Windows 上,默认路径为 C:\ProgramData\Devin\license.devin-onprem-license,请在具有管理员权限的会话中替换该文件。
  3. 验证:
无需重启,下一个会话或对话轮次将自动加载新文件。

错误代码

所有许可证错误都会以 LIC00X: <message> 的格式输出,随后显示所检查的路径以及如何覆盖该路径。 所有命名空间的完整错误代码目录,请参阅错误代码。