[CoPaw 教程系列] #13: Copaw Env Config
CoPaw 高级:环境变量与运行配置
环境变量和运行配置是 CoPaw 高级使用的重要组成部分。通过合理配置环境变量和运行参数,可以优化 CoPaw 的性能、增强安全性、扩展功能。本文将详细介绍环境变量的配置方法和运行参数的调优。
环境变量概述
什么是环境变量?
环境变量是操作系统提供的变量,用于存储配置信息。CoPaw 通过环境变量来读取外部配置,避免在代码中硬编码敏感信息。
为什么使用环境变量?
- 安全性
- 避免在代码中暴露敏感信息
- 分离配置和代码
- 便于权限管理
- 灵活性
- 不同环境使用不同配置
- 无需修改代码即可更改配置
- 支持多部署场景
- 可移植性
- 配置独立于代码
- 易于迁移和部署
- 符合 12-Factor App 原则
环境变量管理
通过控制台管理
- 进入控制台 设置 → 环境变量
- 可以:
- 添加新变量
- 编辑现有变量
- 删除变量
- 批量删除
添加变量
- 进入控制台 设置 → 环境变量
- 点击底部的 + 添加变量
- 输入:
- 变量名:如
TAVILY_API_KEY - 值:对应的值
4. 点击 保存
编辑变量
- 修改已有行的 Value 字段
- 点击 保存
注意:
变量名保存后为只读,如需改名请先删除再新建。
删除变量
- 点击行右侧的 🗑 图标
- 如有提示则确认
批量删除
- 勾选要删除的行
- 点工具栏的 删除
- 确认删除
通过文件管理
环境变量也可以通过文件配置,支持 .env
文件格式。
.env 文件示例:
# API 密钥
OPENAI_API_KEY=sk-xxxxxxxx
DASHSCOPE_API_KEY=xxxxxxxx
数据库配置
DB_HOST=localhost
DB_PORT=5432
DB_NAME=myapp
DB_USER=admin
DB_PASSWORD=your-password
邮件配置
EMAIL_HOST=smtp.example.com
EMAIL_PORT=587
EMAIL_USER=user@example.com
EMAIL_PASSWORD=email-password
其他配置
LOG_LEVEL=info
MAX_ITERATIONS=10
常用环境变量
API 密钥
OpenAI
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
DashScope(阿里云)
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxx
ModelScope
MODELSCOPE_API_KEY=xxxxxxxxxxxxxxxx
Tavily(搜索)
TAVILY_API_KEY=tvly-xxxxxxxxxxxxxxxx
GitHub(用于下载 Skills)
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxx
数据库配置
# PostgreSQL
DB_HOST=localhost
DB_PORT=5432
DB_NAME=myapp
DB_USER=admin
DB_PASSWORD=your-password
MySQL
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_DATABASE=myapp
MYSQL_USER=root
MYSQL_PASSWORD=your-password
SQLite
SQLITE_PATH=/path/to/database.db
邮件配置
# SMTP 配置
EMAIL_HOST=smtp.example.com
EMAIL_PORT=587
EMAIL_USER=user@example.com
EMAIL_PASSWORD=email-password
EMAIL_USE_TLS=true
IMAP 配置
IMAP_HOST=imap.example.com
IMAP_PORT=993
IMAP_USER=user@example.com
IMAP_PASSWORD=imap-password
服务配置
# CoPaw 服务
COPAW_HOST=0.0.0.0
COPAW_PORT=8088
COPAW_DEBUG=false
工作目录
COPAW_WORK_DIR=/path/to/copaw
日志配置
LOG_LEVEL=info
LOG_FILE=/var/log/copaw.log
Token 使用统计
# Token 使用文件
COPAW_TOKEN_USAGE_FILE=/path/to/token_usage.json
Token 限制
COPAW_MAX_TOKENS_PER_DAY=100000
其他配置
# 代理配置
HTTP_PROXY=http://proxy.example.com:8080
HTTPS_PROXY=http://proxy.example.com:8080
NO_PROXY=localhost,127.0.0.1
时区
TZ=Asia/Shanghai
语言
LANG=zh_CN.UTF-8
运行配置
运行配置影响 CoPaw 的行为和性能。通过合理配置运行参数,可以优化 CoPaw 的表现。
通过控制台配置
- 进入控制台 智能体 → 运行配置
- 可以修改:
- 最大迭代次数
- 最大输入长度
最大迭代次数
作用:
- 控制 CoPaw 在执行复杂任务时的最大循环次数
- 防止无限循环
- 控制计算资源消耗
配置建议:
- 默认值:10
- 简单任务:5-10
- 复杂任务:15-20
- 高性能服务器:20-30
修改方法:
- 进入控制台 智能体 → 运行配置
- 修改 最大迭代次数
- 点击 保存
注意事项:
- 增加迭代次数会增加响应时间和 Token 消耗
- 过高的迭代次数可能导致资源耗尽
- 根据任务复杂度调整
最大输入长度
作用:
- 限制单次对话的最大输入长度
- 控制 Token 消耗
- 防止输入过大导致的问题
配置建议:
- 默认值:8192
- 简单对话:4096-8192
- 长文档处理:16384-32768
- 高性能模型:32768-65536
修改方法:
- 进入控制台 智能体 → 运行配置
- 修改 最大输入长度
- 点击 保存
注意事项:
- 输入长度会影响 Token 消耗
- 长输入会增加响应时间
- 根据模型能力调整
配置文件
config.json
CoPaw 的主配置文件位于 ~/.copaw/config.json
。
示例:
{
"version": "1.0.0",
"server": {
"host": "0.0.0.0",
"port": 8088,
"debug": false
},
"agent": {
"model_provider": "dashscope",
"model_name": "qwen3.5-plus",
"max_iterations": 10,
"max_input_length": 8192
},
"skills": {
"enabled": [
"cron",
"pdf",
"docx",
"news",
"file_reader"
]
},
"channels": {
"console": {
"enabled": true
},
"dingtalk": {
"enabled": true,
"client_id": "your-client-id",
"client_secret": "your-client-secret"
}
},
"logging": {
"level": "info",
"file": "/var/log/copaw.log"
}
}
配置文件优先级
配置的优先级从高到低:
- 环境变量
- config.json
- 默认值
示例:
# 环境变量优先级最高
export COPAW_PORT=9000
config.json 中的配置会被覆盖
{
"server": {
"port": 8088 # 不会使用,被环境变量覆盖
}
}
最终使用 9000
安全配置
API 密钥管理
最佳实践:
- 使用环境变量
export OPENAI_API_KEY=sk-xxxxxxxx
- 避免硬编码
# 不好的做法
api_key = "sk-xxxxxxxx"
# 好的做法
api_key = os.getenv("OPENAI_API_KEY")
- 使用密钥管理服务
- AWS Secrets Manager
- HashiCorp Vault
- Azure Key Vault
- 定期更新
- 定期轮换 API 密钥
- 监控密钥使用情况
- 及时撤销泄露的密钥
敏感信息保护
不要记录:
- API 密钥
- 数据库密码
- 私钥和证书
- 个人信息
处理方法:
# 使用环境变量
export DB_PASSWORD=your-password
在代码中读取
password = os.getenv("DB_PASSWORD")
不记录密码到日志
logger.info(f"Connected to database: {db_host}")
权限控制
文件权限:
# 设置配置文件权限
chmod 600 ~/.copaw/config.json
设置环境变量文件权限
chmod 600 .env
目录权限:
# 设置工作目录权限
chmod 700 ~/.copaw
设置日志目录权限
chmod 755 /var/log/copaw
性能优化
资源限制
CPU 限制:
# 设置进程优先级
nice -n 10 copaw app
限制 CPU 使用率
cpulimit -l 50 copaw app
内存限制:
# 使用 ulimit
ulimit -v 2097152 # 2GB
使用 Docker
docker run --memory="2g" copaw
磁盘限制:
# 设置日志文件大小限制
LOG_MAX_SIZE=100M
LOG_MAX_FILES=10
缓存配置
启用缓存:
# 缓存目录
COPAW_CACHE_DIR=/var/cache/copaw
缓存大小
COPAW_CACHE_SIZE=1G
缓存过期:
# 缓存过期时间(秒)
COPAW_CACHE_TTL=3600
并发配置
最大并发:
# 最大并发请求数
COPAW_MAX_CONCURRENT=10
最大连接数
COPAW_MAX_CONNECTIONS=100
监控和日志
日志配置
日志级别:
# 调试级别
LOG_LEVEL=debug # 详细日志
LOG_LEVEL=info # 常规信息
LOG_LEVEL=warning # 警告信息
LOG_LEVEL=error # 错误信息
日志文件:
# 日志文件路径
LOG_FILE=/var/log/copaw.log
日志轮转
LOG_MAX_SIZE=100M
LOG_MAX_FILES=10
LOG_BACKUP_COUNT=5
日志格式:
# 日志格式
LOG_FORMAT=%(asctime)s - %(name)s - %(levelname)s - %(message)s
日期格式
LOG_DATE_FORMAT=%Y-%m-%d %H:%M:%S
性能监控
启用监控:
# 启用性能监控
COPAW_ENABLE_MONITORING=true
监控端口
COPAW_MONITORING_PORT=9090
Token 使用监控:
# Token 使用文件
COPAW_TOKEN_USAGE_FILE=/var/log/copaw/token_usage.json
Token 使用统计间隔(秒)
COPAW_TOKEN_USAGE_INTERVAL=300
健康检查
健康检查端点:
# 健康检查路径
COPAW_HEALTH_CHECK_PATH=/health
健康检查间隔(秒)
COPAW_HEALTH_CHECK_INTERVAL=60
调试配置
调试模式
启用调试:
# 调试模式
COPAW_DEBUG=true
详细日志
LOG_LEVEL=debug
调试工具
启用调试工具:
# 启用调试工具
COPAW_ENABLE_DEBUG_TOOLS=true
调试端口
COPAW_DEBUG_PORT=5678
部署配置
Docker 部署
Dockerfile:
FROM python:3.11-slim
WORKDIR /app
安装 CoPaw
RUN pip install copaw
复制配置
COPY .env /app/.env
COPY config.json /app/.copaw/config.json
暴露端口
EXPOSE 8088
启动 CoPaw
CMD ["copaw", "app"]
docker-compose.yml:
version: '3.8'
services:
copaw:
build: .
ports:
- "8088:8088"
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- DB_PASSWORD=${DB_PASSWORD}
volumes:
- copaw_data:/root/.copaw
- copaw_logs:/var/log/copaw
restart: unless-stopped
volumes:
copaw_data:
copaw_logs:
系统服务
systemd 配置:
[Unit]
Description=CoPaw AI Assistant
After=network.target
[Service]
Type=simple
User=copaw
WorkingDirectory=/home/copaw
EnvironmentFile=/home/copaw/.env
ExecStart=/usr/local/bin/copaw app
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
启用服务:
# 复制配置文件
sudo cp copaw.service /etc/systemd/system/
重载配置
sudo systemctl daemon-reload
启动服务
sudo systemctl start copaw
开机自启
sudo systemctl enable copaw
常见问题
Q1: 环境变量不生效?
A: 检查:
- 变量名是否正确
- 是否重启了 CoPaw
- 是否在正确的环境中设置
- 拼写和大小写是否正确
Q2: 如何查看当前的环境变量?
A:
# 查看所有环境变量
env
查看特定变量
echo $OPENAI_API_KEY
在 Python 中查看
import os
print(os.environ.get("OPENAI_API_KEY"))
Q3: 运行配置修改后需要重启吗?
A: 部分配置需要重启,部分不需要:
- 需要重启:服务器配置、模型配置
- 不需要重启:运行配置、环境变量
Q4: 如何在生产环境中保护敏感信息?
A:
- 使用环境变量
- 使用密钥管理服务
- 限制文件权限
- 定期审计访问日志
- 使用加密传输
Q5: 性能优化有哪些技巧?
A:
- 合理设置迭代次数和输入长度
- 使用更快的模型
- 启用缓存
- 限制并发数
- 监控资源使用
下一步
现在你已经了解了环境变量和运行配置的配置方法。接下来建议:
- 阅读下一篇:CoPaw 高级:CLI 命令行工具详解 - 学习命令行工具的使用
- 配置你的环境:根据你的需求配置环境变量和运行参数
- 性能优化:优化 CoPaw 的性能
- 部署 CoPaw:将 CoPaw 部署到生产环境
总结
环境变量和运行配置是 CoPaw 高级使用的重要组成部分:
✅ 环境变量
- 安全、灵活的配置方式
✅ 运行配置
- 控制行为和性能
✅ 配置文件
- JSON 格式的配置
✅ 安全配置
- 保护敏感信息
✅ 性能优化
- 优化资源使用
✅ 监控和日志
- 监控运行状态
✅ 部署配置
- Docker 和系统服务
通过合理配置环境变量和运行参数,可以让 CoPaw 在不同环境中稳定运行。
相关资源
:
- CoPaw 官方文档:https://copaw.agentscope.io/
- CoPaw 配置文档:https://copaw.agentscope.io/docs/config
- CoPaw GitHub:https://github.com/agentscope-ai/CoPaw







