必须将密钥从源码剥离并改用环境变量注入:执行bun run check:secrets扫描,删除config.toml中api_key明文行,改为api_key_env = "tao_api_key"等三行配置,再通过.bashrc、docker --env或powershell临时注入密钥,最后验证git diff无密钥且测试连接成功。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要把密钥从AionClaw后端源代码里彻底剥离,否则每次构建、调试、提交都可能意外泄露sk-开头的API Key,甚至被CI/CD流程自动上传到公开仓库——这种硬编码一旦发生,重置密钥只是止损,不是根治。
确认密钥是否还藏在源码里
打开项目根目录,执行:bun run check:secrets。该脚本会扫描src/、config/、.env及所有.toml文件,高亮匹配sk-[a-zA-Z0-9]{32}或api_key.*=的行。若输出中出现任何路径+行号,说明密钥尚未移出。
特别注意:不要只搜sk-,有些开发者会写成APIKEY、tao_token、secret_key等变体,脚本已内置17种常见命名模式。
用TaoToken统一凭证接管模型调用
第一步:登录TaoToken控制台 → 进入「API Keys」→ 点击「新建密钥」→ 复制生成的sk-xxxxxxxx(仅显示一次)。
第二步:打开AionClaw项目中的config.toml → 找到[model]段落 → 删除api_key = "sk-..."这一整行 → 在下方新增三行:
api_key_env = "TAO_API_KEY"base_url = "https://www.php.cn/link/9d33272afccc47d2a03916fbf86bf6c3/api"model_id = "qwen3"
【api_key_env必须设为环境变量名,不能填实际密钥】。这一步强制AionClaw启动时从系统环境读取密钥,而非从源码加载。
配置运行时密钥注入机制
方法一:开发阶段用.bashrc注入(Linux/macOS)
在终端执行:echo 'export TAO_API_KEY="sk-xxxxxxxx"' >> ~/.bashrc && source ~/.bashrc。之后所有通过该终端启动的AionClaw进程都能读到密钥。
方法二:Docker部署时通过--env传入
运行容器时加上:--env TAO_API_KEY=sk-xxxxxxxx。Docker会将该变量注入容器环境,AionClaw启动即读取。
方法三:Windows PowerShell临时注入(仅测试用)
执行:$env:TAO_API_KEY="sk-xxxxxxxx" → 紧接着在同一窗口运行bun run start。关闭窗口后变量自动销毁,不会污染系统。
⚠️ 提醒:绝不要在package.json的scripts里写"start": "TAO_API_KEY=sk-xxx bun run dev"——这种写法会让密钥出现在进程列表中,用ps aux一眼可见。
验证密钥已脱离源码管控
① 执行git status,确认config.toml有修改但未git add;
② 执行git diff config.toml,输出中不应出现任何sk-或明文密钥;
③ 在干净克隆的新目录下执行git clone <your-repo> && cd aionclaw && bun install && bun run check:secrets</your-repo>,返回结果应为No secrets found.;
④ 启动AionClaw → 进入设置页 → 模型设置 → 点击「测试连接」→ 显示绿色「已就绪」。








