为什么密钥不能进入模型上下文
把 API key、数据库密码或 SSH key 粘进聊天,会让它们进入模型请求、历史记录、日志和可能的导出文件。LoneAct 的处理方式相反:密钥由运行端的安全存储托管,模型只看到名称或引用,执行进程在需要时拿到值。
密钥可以驱动工具,但不进入模型上下文;模型可以要求使用某个密钥,但不能读取密钥值。
两类密钥,一套边界
供应商密钥
用于模型服务、自带密钥 或外部服务连接。由平台或运行端的安全存储管理,界面只显示状态与指纹。
项目 Secrets
你和团队在 Settings → Secrets 中维护的环境变量与挂载文件,用于 Agent 执行的命令与工具。
两类密钥都不应该以明文形式出现在对话、规则、记忆或代码仓库中。区别只在管理位置与使用方式。
添加环境变量或挂载文件
打开 Settings → Secrets
选择当前项目或所有项目的作用域,再选择 Environment variable 或 Mounted file。
填写名称与值
名称就是执行进程中的变量名,例如 DATABASE_URL 或 DEPLOY_TOKEN。值只在保存时输入一次。
选择启用范围
可以只在当前项目启用,也可以让所有项目使用。停用后新进程不再收到该变量。
让 Agent 使用
在工具、终端或 MCP 配置中引用变量名,而不是把值写进 prompt 或脚本。
已有 .env 文件时,可以使用 Import .env 批量导入;重复名称可以选择跳过或覆盖。导入后仍然遵循同一套安全存储与作用域规则。
在任务里引用密钥
启用的环境变量会注入到 LoneAct 启动的进程。工具或终端可以直接读取环境变量;需要显式引用时,使用下列形式:
$DATABASE_URL
${secret:DATABASE_URL}
secret://DEPLOY_TOKEN
${secretFile:SSH_KEY}| 形式 | 用途 |
|---|---|
$NAME | 进程环境变量,适用于 shell 与读取环境变量的工具 |
${secret:NAME} | 显式引用一个环境变量 Secret |
secret://NAME | 在支持 Secret 引用的工具或配置中解析 |
${secretFile:NAME} / secretfile://NAME | 引用只读挂载文件,例如证书、SSH key |
这些引用可以出现在 Agent 的指令或工具参数中,但实际解析发生在运行端执行时。模型只看到引用文本,不会看到解析后的值。
轮换、停用与审计
轮换
更新密钥后,新进程使用新值;已运行进程通常保留旧值,必要时重启相关任务。
停用
停用会阻止新进程收到变量;需要立即切断访问时,同时撤销供应商侧密钥。
审计
查看谁在何时修改了 Secret;不要把值写进工单、截图或对话记录。
不要把生产数据库、云平台主账号或组织级 root key 配置成所有项目共享的 Secret。按项目、按环境拆分,并设置最小权限。