别再手写密钥了:CAMEL 多模型 API 密钥配置完全指南
【免费下载链接】camel🐫 CAMEL: The first and the best multi-agent framework. Finding the Scaling Law of Agents. https://www.camel-ai.org项目地址: https://gitcode.com/GitHub_Trending/ca/camel
上周四,同事扫出我 commit 进 git 的密钥,OpenAI、Anthropic、DeepSeek 三把全部吊销重发。换台电脑后,我又把各家 API 密钥和环境变量名重新抄了一遍。CAMEL 支持三十多个模型平台,多模型密钥配置的规则其实高度一致。读完你能拿到一套跨平台的密钥配置方法、一段能跑通的最小调用,和三条密钥管理底线。
🔑 CAMEL 读密钥的 3 条路
CAMEL 自己不存密钥,每次调用前都去取。路径一共三条:
| 方式 | 用法 | 适用场景 |
|---|---|---|
| 环境变量 | export OPENAI_API_KEY=sk-xxx | 日常开发,默认路线 |
| 显式传参 | 创建模型时传api_key="sk-xxx" | 临时密钥、CI 注入 |
.env文件 | 写成KEY=VALUE行,脚本开头用load_dotenv()载入 | 多平台密钥集中管理 |
环境变量指写进 shell 的键值对,进程启动后就能读。内部逻辑就是os.environ.get("OPENAI_API_KEY")。缺密钥时直接抛带变量名的ValueError,报错告诉你缺哪个,补上就行。
.env是环境变量的批量版:python-dotenv随camel-ai一起装好,在脚本顶部from dotenv import load_dotenv再调用load_dotenv(),文件内容就进了进程环境。参数类的配置则在 camel/configs/ 下按平台分开存放。
⚙️ 从 0 到跑通——3 步完成第一个模型调用
第 1 步:装依赖、设密钥
先让环境就绪,把密钥放进当前终端的环境变量。
pip install camel-ai python-dotenv export OPENAI_API_KEY="sk-xxx" echo $OPENAI_API_KEY跑通标志:echo回显你刚设的密钥。回显为空说明export没生效,而且它只对当前终端有效。
密钥就位了,下面写调用。
第 2 步:写最小调用
这段脚本只做一件事:创建一个 OpenAI 模型,让智能体(基于模型封装的对话单元)回答一个问题。
from camel.agents import ChatAgent from camel.models import ModelFactory from camel.types import ModelPlatformType, ModelType model = ModelFactory.create( model_platform=ModelPlatformType.OPENAI, model_type=ModelType.GPT_4O_MINI) agent = ChatAgent(model=model) print(agent.step("用一句话介绍 CAMEL").msgs[0].content)跑通标志:终端打印出模型生成的一句话。如果报Missing or empty required API keys,直接跳到坑位一节。
跑通一个平台只是开始,换平台只改两行。
第 3 步:换个平台再跑
把平台和模型换成 DeepSeek,其余代码不用动。
from camel.models import ModelFactory from camel.types import ModelPlatformType, ModelType model = ModelFactory.create( model_platform=ModelPlatformType.DEEPSEEK, model_type=ModelType.DEEPSEEK_V4_PRO)对应密钥设为DEEPSEEK_API_KEY。也可以不export,直接在create里传api_key="sk-xxx",显式传参优先于环境变量。
跑通标志:输出变成 DeepSeek 的回答,ChatAgent那行原样保留,两个平台都通了。
换个平台,密钥长得不一样
各平台的环境变量名和密钥前缀如下,配置文件路径是该平台参数配置的所在:
| 平台 | 环境变量名 | 密钥前缀特征 | 配置文件 |
|---|---|---|---|
| OpenAI | OPENAI_API_KEY | sk-开头 | camel/configs/openai_config.py |
| Anthropic | ANTHROPIC_API_KEY | sk-ant-开头 | camel/configs/anthropic_config.py |
| DeepSeek | DEEPSEEK_API_KEY | sk-开头 | camel/configs/deepseek_config.py |
| 通义千问 | QWEN_API_KEY | sk-开头 | camel/configs/qwen_config.py |
| 火山引擎 | VOLCANO_API_KEY | ark-开头 | camel/configs/volcano_config.py |
配置文件里放的是temperature这类参数,不存密钥。密钥永远走上面的环境变量或显式传参。其余平台命名规律一致,按平台名_API_KEY推断即可。
🐛 最常踩的 3 个坑,一行修好
坑 1:密钥"找不到"
- 症状:
ValueError: Missing or empty required API keys in environment variables: OPENAI_API_KEY - 原因:没设变量,或在别的终端里设的
- 修复:当前终端执行
export OPENAI_API_KEY="sk-xxx",长期生效就写进~/.bashrc
坑 2:宿主机能跑,容器里报错
- 症状:报错同上,但宿主机
echo密钥正常 - 原因:容器环境隔离,不继承宿主机变量
- 修复:
docker run时加一行注入:
docker run -e OPENAI_API_KEY="$OPENAI_API_KEY" camel-ai python app.py坑 3:.env改了没生效
- 症状:文件已保存,调用却还在用旧密钥
- 原因:
load_dotenv()只在进程启动时读一次文件 - 修复:杀掉脚本进程重新起,新进程才会读新值
密钥 3 条底线
- 密钥不写进代码。演示时传
api_key="sk-xxx"无妨,把它提交进仓库等于公开粘贴。 .env不进 git。最小配置两行就够:
.env *.key- 一个环境一把密钥。开发和生产分开申请,吊销时只影响一边。
本文覆盖了密钥的 3 条注入路、跑通的 3 步流程、平台对照和 3 条底线。进阶可以读 ModelFactory 源码 和 examples/models/ 里的平台示例。下一篇聊多模型容错切换。
【免费下载链接】camel🐫 CAMEL: The first and the best multi-agent framework. Finding the Scaling Law of Agents. https://www.camel-ai.org项目地址: https://gitcode.com/GitHub_Trending/ca/camel
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考