本文档适用于 Devin 的联邦部署。返回 Devin 文档
许可证文件的存放位置
Desktop 内置的智能体与独立 CLI 读取的是同一个文件。请在首次启动前安装该文件,参见安装 → 步骤 4。Desktop 用户也可以在 Devin 设置中安装许可证:内置智能体会离线验证该文件,拒绝覆盖属于其他用户的文件,并记录一条
license_installed 审计事件。在 Windows 上,如果许可证文件归管理员所有,标准用户无法通过 Desktop 替换该文件 (安装会被拒绝,并返回 LIC001) ,只有管理员才能替换。放置该文件之前,请先锁定 C:\ProgramData\Devin\。
从门户签发许可证
- 登录门户并打开团队页面。气隙许可证部分会显示已用席位数、授权期限以及默认许可证有效期。
- 点击 Generate license。
- 输入标签 (例如主机名或用户姓名) 、经办人邮箱以及有效天数。有效期默认采用授权中设定的默认值,且不得超过授权允许的最长期限,也不得晚于授权期限的结束日期;审查步骤会显示预计到期日期。
- 确认。门户会提示 License generated,并提供 Download license file 选项。下载所得为已签名的
.devin-onprem-license文件;请按照经批准的介质流程将其传输到气隙主机。
文件内容
该文件是一个紧凑格式 (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。
续订或替换许可证
- 在门户中为同一席位持有人生成新的许可证 (见上文) 。如果该席位已被占用,请先联系您的支持团队撤销旧许可证。
-
将新文件复制到
/etc/devin/license.devin-onprem-license(或DEVIN_LICENSE_FILE中指定的路径) ,覆盖现有文件。该文件的所有者应为运行 Devin 的账户;也可以归 root 所有,但需授予该账户读取权限。在 Windows 上,默认路径为C:\ProgramData\Devin\license.devin-onprem-license,请在具有管理员权限的会话中替换该文件。 -
验证:
错误代码
所有许可证错误都会以LIC00X: <message> 的格式输出,随后显示所检查的路径以及如何覆盖该路径。
所有命名空间的完整错误代码目录,请参阅错误代码。

