[CoPaw 教程系列] #13: Copaw Env Config

CoPaw 高级:环境变量与运行配置

环境变量和运行配置是 CoPaw 高级使用的重要组成部分。通过合理配置环境变量和运行参数,可以优化 CoPaw 的性能、增强安全性、扩展功能。本文将详细介绍环境变量的配置方法和运行参数的调优。

环境变量概述

什么是环境变量?

环境变量是操作系统提供的变量,用于存储配置信息。CoPaw 通过环境变量来读取外部配置,避免在代码中硬编码敏感信息。

为什么使用环境变量?

  1. 安全性
  • 避免在代码中暴露敏感信息
  • 分离配置和代码
  • 便于权限管理
  1. 灵活性
  • 不同环境使用不同配置
  • 无需修改代码即可更改配置
  • 支持多部署场景
  1. 可移植性
  • 配置独立于代码
  • 易于迁移和部署
  • 符合 12-Factor App 原则

环境变量管理

通过控制台管理

  1. 进入控制台 设置 → 环境变量
  2. 可以:
  • 添加新变量
  • 编辑现有变量
  • 删除变量
  • 批量删除

添加变量

  1. 进入控制台 设置 → 环境变量
  2. 点击底部的 + 添加变量
  3. 输入:
  • 变量名:如 TAVILY_API_KEY
  • :对应的值

4. 点击 保存

编辑变量

  1. 修改已有行的 Value 字段
  2. 点击 保存

注意:

变量名保存后为只读,如需改名请先删除再新建。

删除变量

  1. 点击行右侧的 🗑 图标
  2. 如有提示则确认

批量删除

  1. 勾选要删除的行
  2. 点工具栏的 删除
  3. 确认删除

通过文件管理

环境变量也可以通过文件配置,支持 .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 的表现。

通过控制台配置

  1. 进入控制台 智能体 → 运行配置
  2. 可以修改:
  • 最大迭代次数
  • 最大输入长度

最大迭代次数

作用:

  • 控制 CoPaw 在执行复杂任务时的最大循环次数
  • 防止无限循环
  • 控制计算资源消耗

配置建议:

  • 默认值:10
  • 简单任务:5-10
  • 复杂任务:15-20
  • 高性能服务器:20-30

修改方法:

  1. 进入控制台 智能体 → 运行配置
  2. 修改 最大迭代次数
  3. 点击 保存

注意事项:

  • 增加迭代次数会增加响应时间和 Token 消耗
  • 过高的迭代次数可能导致资源耗尽
  • 根据任务复杂度调整

最大输入长度

作用:

  • 限制单次对话的最大输入长度
  • 控制 Token 消耗
  • 防止输入过大导致的问题

配置建议:

  • 默认值:8192
  • 简单对话:4096-8192
  • 长文档处理:16384-32768
  • 高性能模型:32768-65536

修改方法:

  1. 进入控制台 智能体 → 运行配置
  2. 修改 最大输入长度
  3. 点击 保存

注意事项:

  • 输入长度会影响 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"

}

}

配置文件优先级

配置的优先级从高到低:

  1. 环境变量
  2. config.json
  3. 默认值

示例:

# 环境变量优先级最高

export COPAW_PORT=9000

config.json 中的配置会被覆盖

{

"server": {

"port": 8088 # 不会使用,被环境变量覆盖

}

}

最终使用 9000

安全配置

API 密钥管理

最佳实践:

  1. 使用环境变量

export OPENAI_API_KEY=sk-xxxxxxxx

  1. 避免硬编码

# 不好的做法

api_key = "sk-xxxxxxxx"

# 好的做法

api_key = os.getenv("OPENAI_API_KEY")

  1. 使用密钥管理服务
  • AWS Secrets Manager
  • HashiCorp Vault
  • Azure Key Vault
  1. 定期更新
  • 定期轮换 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:

  1. 使用环境变量
  2. 使用密钥管理服务
  3. 限制文件权限
  4. 定期审计访问日志
  5. 使用加密传输

Q5: 性能优化有哪些技巧?

A:

  1. 合理设置迭代次数和输入长度
  2. 使用更快的模型
  3. 启用缓存
  4. 限制并发数
  5. 监控资源使用

下一步

现在你已经了解了环境变量和运行配置的配置方法。接下来建议:

  1. 阅读下一篇:CoPaw 高级:CLI 命令行工具详解 - 学习命令行工具的使用
  2. 配置你的环境:根据你的需求配置环境变量和运行参数
  3. 性能优化:优化 CoPaw 的性能
  4. 部署 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

发表回复

后才能评论