Skip to content

部署指南

本地开发(推荐)

前置条件

  • Go 1.24+
  • Docker + Docker Compose
  • LM Studio 或 Ollama(本地 LLM)

快速启动

bash
# 1. 克隆仓库
git clone <repo-url>
cd superagent-base

# 2. 启动 MySQL + Redis(轻量级 dev 栈)
make dev-middleware

# 3. 构建并运行 backend
make dev-server

# 或者一步完成:
make dev

backend 在 http://localhost:8888 启动,gRPC 监听 localhost:50051

停止

bash
make dev-down        # 停止容器
make dev-clean       # 停止容器并删除 MySQL 数据

环境配置

dev 模式使用 docker/.env.dev,启动时自动复制到 backend/.env.dev。修改模型配置:

bash
# docker/.env.dev
MODEL_PROTOCOL_0=openai
MODEL_ID_0=Qwen3-Coder-Next-4bit
MODEL_API_KEY_0=123456
MODEL_BASE_URL_0=http://127.0.0.1:8000/v1  # LM Studio

详细模型配置见 model-config.md


Docker Compose 全栈(debug 模式)

完整栈包含 MySQL、Redis、Elasticsearch、Milvus、MinIO、NSQ、etcd 等所有服务。

启动

bash
# 1. 复制并编辑 env 文件
cp docker/.env.debug.example docker/.env.debug
# 编辑 docker/.env.debug,填写模型 API Key 等

# 2. 启动全部中间件
make middleware

# 3. 构建并运行 backend
make server

或者使用 debug 一键启动

bash
make debug

此命令等价于 make env middleware python server

服务端口

服务端口
Backend HTTP8888
Backend gRPC50051
MySQL3306
Redis6379
MinIO9000 / 9001
Elasticsearch9200
NSQ4150 / 4151
etcd2379
Milvus19530

关闭

bash
make down    # 停止容器
make clean   # 停止并清理 volumes 数据

生产:Docker Compose

准备 env 文件

bash
cp docker/.env.example docker/.env
# 编辑 docker/.env,填写生产参数:
# - MYSQL_PASSWORD(改为强密码)
# - MINIO_ROOT_PASSWORD
# - MODEL_API_KEY_0
# - PLUGIN_AES_AUTH_SECRET(随机生成)
# - USE_SSL=1(如启用 HTTPS)

启动

bash
make web

关闭

bash
make down_web

生产:Kubernetes + Helm

前置条件

  • Kubernetes 1.24+
  • Helm 3.x
  • 已配置的 MySQL、Redis(建议使用托管服务)

安装

bash
cd helm

# 查看可配置项
helm show values charts/opencoze/

# 安装(最简配置)
helm install superagent charts/opencoze \
  --namespace superagent \
  --create-namespace \
  --set mysql.host=your-mysql-host \
  --set redis.addr=your-redis-host:6379 \
  --set model.apiKey=your-api-key \
  --set model.baseURL=https://api.openai.com/v1 \
  --set model.id=gpt-4o

升级

bash
helm upgrade superagent charts/opencoze \
  --namespace superagent \
  --reuse-values \
  --set image.tag=v1.2.0

查看状态

bash
kubectl get pods -n superagent
kubectl logs -n superagent deploy/superagent-backend -f

环境变量完整参考

服务器

变量默认值说明
APP_ENV""环境标识,决定加载哪个 .env.* 文件
LISTEN_ADDR:8888HTTP 监听地址
GRPC_LISTEN_ADDR:50051gRPC 监听地址
LOG_LEVELinfo日志级别:trace / debug / info / warn / error / fatal
SERVER_HOST对外暴露的服务 URL(用于回调等)
MAX_REQUEST_BODY_SIZE209715200最大请求体(字节,默认 200MB)
USE_SSL0启用 HTTPS:设为 1 并配置证书路径
SSL_CERT_FILETLS 证书文件路径
SSL_KEY_FILETLS 私钥文件路径

Agent 运行时

变量默认值说明
AGENT_CONFIG_DIRconfigs/agentsAgent YAML 配置目录,支持热重载
AGENT_RELOAD_DEBOUNCE2s热重载防抖时间
INTERRUPT_DEFAULT_TIMEOUT300中断状态默认保留秒数
SKILLS_HUB_URLSkillsHub 服务 URL(用于安装远程技能)
MCP_CONFIG_FILEMCP 服务器配置文件路径

MySQL

变量说明
MYSQL_DSN完整 DSN,格式:user:pass@tcp(host:port)/db?charset=utf8mb4&parseTime=True

Redis

变量默认值说明
REDIS_ADDR127.0.0.1:6379Redis 地址
REDIS_PASSWORD""Redis 密码

对象存储

变量说明
STORAGE_TYPE存储类型:minio / tos / s3
STORAGE_BUCKET存储桶名称
MINIO_ENDPOINTMinIO 地址(如 127.0.0.1:9000
MINIO_AKMinIO Access Key
MINIO_SKMinIO Secret Key
MINIO_API_HOSTMinIO 对外访问 URL(如 http://127.0.0.1:9000

Elasticsearch(可选)

变量默认值说明
ES_ADDRES 地址,留空则禁用
ES_VERSIONv8ES 版本
ES_USERNAMEES 用户名
ES_PASSWORDES 密码

消息队列(可选)

变量默认值说明
COZE_MQ_TYPEnsq队列类型:nsq / kafka / rmq
MQ_NAME_SERVER队列服务地址,留空则禁用

向量存储(可选)

变量默认值说明
VECTOR_STORE_TYPE向量库类型,留空则禁用
EMBEDDING_TYPE向量化类型,留空则禁用

模型

变量说明
MODEL_PROTOCOL_0协议:openai / deepseek / claude / gemini / ark / ollama / qwen
MODEL_OPENCOZE_ID_0平台内部模型 ID(正整数)
MODEL_NAME_0展示名称
MODEL_ID_0API model 参数值
MODEL_API_KEY_0API 密钥
MODEL_BASE_URL_0API 基础 URL
BUILTIN_CM_TYPE内置能力模型协议
BUILTIN_CM_<TYPE>_BASE_URL内置能力模型 URL
BUILTIN_CM_<TYPE>_API_KEY内置能力模型密钥
BUILTIN_CM_<TYPE>_MODEL内置能力模型 ID

插件安全

变量说明
PLUGIN_AES_AUTH_SECRET插件认证 AES 密钥(生产环境必须随机生成)
PLUGIN_AES_STATE_SECRET插件状态 AES 密钥
PLUGIN_AES_OAUTH_TOKEN_SECRET插件 OAuth Token AES 密钥

可观测性

变量默认值说明
OTEL_ENABLEDfalse启用 OpenTelemetry 追踪
SERVICE_NAME服务名称(用于追踪 / 指标标签)

Prometheus Metrics

backend 在 /metrics 端点暴露 Prometheus 指标,不受认证中间件保护:

bash
curl http://localhost:8888/metrics

健康检查与日志

bash
# 查看 backend 日志
tail -f crash.log          # crash 日志
# 或通过 docker logs
docker logs sa-mysql
docker logs sa-redis

# E2E 冒烟测试
./scripts/e2e-test.sh http://localhost:8888

Released under the Apache 2.0 License.