# ============================================ # Cyrene v2 配置文件 (.env) # 复制为 .env 后修改。所有配置均从环境变量注入,代码内禁硬编码。 # 注意:.env 仅用于本地开发;生产用 systemd / env_file。 # 敏感信息(API Key / JWT_SECRET)一律不要写进日志。 # ============================================ # ---- 运行环境 ---- ENV=development LOG_LEVEL=debug TZ=Asia/Shanghai # ---- 数据目录(未设置时按 OS 惯例解析) ---- DATA_DIR=./data # ---- 服务器(网关,唯一对外端口) ---- HOST=0.0.0.0 PORT=8080 # ---- 认证 / 管理员 ---- # JWT_SECRET 必填,长度 >= 32;缺失或过短会在启动时 panic。 JWT_SECRET=change-me-to-a-random-string-at-least-32-characters ADMIN_USERNAME=admin ADMIN_PASSWORD=admin12345 REGISTRATION_ENABLED=true # ---- 数据库 ---- # SQLite 为默认(单二进制、无需外部服务)。 DB_SQLITE_PATH=./data/cyrene.db # PostgreSQL + pgvector 为可选增强;未配置时走 SQLite。相关向量能力在 M4 接入。 # DB_PG_URL=postgres://cyrene:cyrene_pass@localhost:5432/cyrene_ai?sslmode=disable # ---- LLM 多供应商(LLM_PROVIDER 显式声明协议:openai / anthropic,默认 openai) ---- # Provider = openai:OpenAI 兼容 /chat/completions(含 OpenAI 兼容网关,也可经它承载 Anthropic 模型,但失去原生 tool input 对象优势) LLM_PROVIDER=openai LLM_BASE_URL=https://api.openai.com/v1 LLM_API_KEY=sk-xxxxx LLM_MODEL=gpt-4o LLM_FALLBACK_MODEL=gpt-4o-mini # ---- LLM 视觉模型(多模态路由:含图片的请求路由到此模型) ---- # 不配置则图片路由回主模型;仅当启用多模态能力时设置。 # LLM_VISION_MODEL=gpt-4o-mini # Provider = anthropic:Anthropic Messages /v1/messages(tool_use.input 为结构化对象,工具循环更稳) # ANTHROPIC_BASE_URL=https://api.anthropic.com # ANTHROPIC_API_KEY=sk-ant-xxxxx # ANTHROPIC_MODEL=claude-sonnet-4-20250514 # ANTHROPIC_FALLBACK_MODEL=claude-haiku-3-5 # ---- 记忆嵌入(可选,真语义) ---- # 不配置时使用内置 n-gram / FTS 向量(dim=256)。配置后必须真实走语义路径。 # EMBEDDING_API_URL 是【完整 /embeddings 端点】(不是 base)——例:Ollama / llama.cpp = http://localhost:11434/v1/embeddings # EMBEDDING_API_URL=http://localhost:11434/v1/embeddings # EMBEDDING_API_KEY= # EMBEDDING_MODEL=Qwen3-Embedding-0.6B # 推荐(Q8_0 ~639MB、dim=1024、ModelScope 国内可下) # ---- IoT 设备提供者 ---- # mock = 模拟智能家居设备(开发测试用);none = 禁用 IoT。 IOT_PROVIDER=mock # ---- 语音服务 ---- TTS_PROVIDER=edge-tts STT_PROVIDER=dashscope # DASHSCOPE_API_KEY=sk-xxxxx # ---- 后台思考 ---- ENABLE_BACKGROUND_THINKING=true THINK_INTERVAL_SEC=300 THINK_SILENCE_TIMEOUT_SEC=120 # ---- WebSocket ---- WS_MAX_CONNECTIONS=1000 SESSION_IDLE_TIMEOUT_MIN=30 # ---- MCP 服务器(可选,JSON 数组字符串;每台 server 含 name/command/args/url/enabled) ---- # stdio 子进程示例: # MCP_SERVERS_JSON=[{"name":"calc","command":"mcp-calc","args":["--stdio"],"enabled":true}] # SSE 端点示例: # MCP_SERVERS_JSON=[{"name":"weather","url":"http://localhost:3001/sse","enabled":true}] # ---- 本地执行沙箱(exec/terminal 工具;默认关闭,授权放权) ---- # 只有 Enabled=true 时 agent 才可执行命令;仍需命令白名单与根目录边界。 # EXEC_SANDBOX_ENABLED=false # EXEC_SANDBOX_COMMANDS=git,ls,cat,pwd # EXEC_SANDBOX_ROOTS=./data # EXEC_SANDBOX_ENV=PATH # ---- 跨域白名单 ---- ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000