概述
Shannon 使用环境变量在所有服务中进行配置。本页面记录了所有 100+ 个配置选项,包括类型、默认值和影响。快速参考
总计: 100+ 个配置变量
配置文件
将.env.example 复制到 .env 并自定义:
核心运行时
ENVIRONMENT
类型: String 默认值:dev
有效值: dev, staging, prod
服务: 所有
热重载: 否 (需要重启)
控制日志详细程度和策略执行。
dev: 详细日志, 宽松策略staging: 适度日志, 标准策略prod: 最少日志, 严格策略
DEBUG
类型: Boolean 默认值:false
有效值: true, false
服务: 所有
热重载: 否
在所有服务中启用调试日志。
true: 调试级别日志, 堆栈跟踪false: 仅信息级别日志
SERVICE_NAME
类型: String 默认值:shannon-llm-service
服务: LLM Service
热重载: 否
用于日志记录和遥测的服务标识符。
LLM 提供商 API 密钥
OPENAI_API_KEY
类型: String 必需: 至少一个提供商密钥 服务: LLM Service 热重载: 是 用于 GPT 模型的 OpenAI API 密钥。ANTHROPIC_API_KEY
类型: String 服务: LLM Service 热重载: 是 用于 Claude 模型的 Anthropic API 密钥。GOOGLE_API_KEY
类型: String 服务: LLM Service 热重载: 是 用于 Gemini 模型的 Google AI API 密钥。GROQ_API_KEY
类型: String 服务: LLM Service 热重载: 是 用于快速推理的 Groq API 密钥。XAI_API_KEY
类型: String 服务: LLM Service 热重载: 是 用于 Grok 模型的 xAI API 密钥。DEEPSEEK_API_KEY
类型: String 服务: LLM Service 热重载: 是 DeepSeek API 密钥。QWEN_API_KEY
类型: String 服务: LLM Service 热重载: 是 用于阿里云模型的 Qwen API 密钥。MISTRAL_API_KEY
类型: String 服务: LLM Service 热重载: 是 Mistral API 密钥。AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY
类型: String 服务: LLM Service 热重载: 是 用于 Bedrock 模型的 AWS 凭据。ZAI_API_KEY
类型: String 服务: LLM Service 热重载: 是 ZAI API 密钥。网页搜索提供商
WEB_SEARCH_PROVIDER
类型: String 默认值:google
有效值: google, serper, bing, exa, firecrawl
服务: LLM Service
热重载: 是
活动的网页搜索提供商。
GOOGLE_SEARCH_API_KEY
类型: String 服务: LLM Service 热重载: 是 Google 自定义搜索 API 密钥。SERPER_API_KEY
类型: String 服务: LLM Service 热重载: 是 Serper.dev API 密钥 (Google 搜索 API 替代方案)。BING_API_KEY
类型: String 服务: LLM Service 热重载: 是 Microsoft Bing 搜索 API 密钥。EXA_API_KEY
类型: String 服务: LLM Service 热重载: 是 Exa AI 搜索 API 密钥。FIRECRAWL_API_KEY
类型: String 服务: LLM Service 热重载: 是 用于网页抓取的 Firecrawl API 密钥。数据存储
PostgreSQL
POSTGRES_HOST
类型: String 默认值:postgres
服务: Gateway, Orchestrator
热重载: 否
PostgreSQL 主机名。
POSTGRES_PORT
类型: Integer 默认值:5432
范围: 1-65535
服务: Gateway, Orchestrator
热重载: 否
PostgreSQL 端口。
POSTGRES_DB
类型: String 默认值:shannon
服务: Gateway, Orchestrator
热重载: 否
PostgreSQL 数据库名称。
POSTGRES_USER
类型: String 默认值:shannon
服务: Gateway, Orchestrator
热重载: 否
PostgreSQL 用户名。
POSTGRES_PASSWORD
类型: String 默认值:shannon
服务: Gateway, Orchestrator
热重载: 否
PostgreSQL 密码。
POSTGRES_SSLMODE
类型: String 默认值:disable
有效值: disable, require, verify-ca, verify-full
服务: Gateway, Orchestrator
热重载: 否
PostgreSQL 连接的 SSL 模式。
Redis
REDIS_HOST
类型: String 默认值:redis
服务: 所有
热重载: 否
Redis 主机名。
REDIS_PORT
类型: Integer 默认值:6379
服务: 所有
热重载: 否
Redis 端口。
REDIS_PASSWORD
类型: String 默认值: 空 服务: 所有 热重载: 否 Redis 密码 (如果启用了身份验证)。REDIS_TTL_SECONDS
类型: Integer 默认值:3600
范围: 0-∞ (0 = 不过期)
服务: 所有
热重载: 是
Redis 键的默认 TTL。
REDIS_URL
类型: String 默认值:redis://redis:6379
服务: 所有
热重载: 否
完整的 Redis 连接 URL。
LLM_REDIS_URL
类型: String 默认值: 空 (使用 REDIS_URL) 服务: LLM Service 热重载: 否 用于 LLM 响应缓存的专用 Redis 实例。Qdrant (向量存储)
QDRANT_URL
类型: String 默认值:http://qdrant:6333
服务: Orchestrator, LLM Service
热重载: 否
Qdrant 连接 URL。
QDRANT_HOST / QDRANT_PORT
类型: String / Integer 默认值:qdrant / 6333
服务: Orchestrator, LLM Service
热重载: 否
QDRANT_URL 的替代方案 (分别指定主机/端口)。
服务端点
TEMPORAL_HOST
类型: String 默认值:temporal:7233
服务: Orchestrator
热重载: 否
Temporal 服务器地址。
LLM_SERVICE_URL
类型: String 默认值:http://llm-service:8000
服务: Orchestrator, Agent Core
热重载: 否
LLM Service 端点。
AGENT_CORE_ADDR
类型: String 默认值:agent-core:50051
服务: Orchestrator
热重载: 否
Agent Core gRPC 地址。
ORCHESTRATOR_GRPC
类型: String 默认值:orchestrator:50052
服务: Gateway
热重载: 否
Orchestrator gRPC 端点。
ADMIN_SERVER
类型: String 默认值:http://orchestrator:8081
服务: Gateway
热重载: 否
用于流式事件的 Admin/SSE 服务器。
CONFIG_PATH
类型: String 默认值:./config/features.yaml
服务: Orchestrator, Agent Core
热重载: 是 (带文件监视器)
功能标志配置的路径。
MODELS_CONFIG_PATH
类型: String 默认值:./config/models.yaml
服务: LLM Service, Orchestrator
热重载: 是 (带文件监视器)
模型和定价配置的路径。
EVENTS_INGEST_URL
类型: String 默认值:http://orchestrator:8081/events
服务: Agent Core
热重载: 否
事件摄取端点。
模型路由和预算
DEFAULT_MODEL_TIER
类型: String 默认值:small
有效值: small, medium, large
服务: Orchestrator
热重载: 是
任务的默认模型层级。
small: GPT-5o-mini, Claude Haiku (~$0.15/1M tokens)medium: GPT-5o, Claude Sonnet (~$3-15/1M tokens)large: GPT-5, Claude Opus (~$15-75/1M tokens)
COMPLEXITY_MODEL_ID
类型: String 默认值:gpt-5
服务: Orchestrator
热重载: 是
用于复杂度分析的模型。
DECOMPOSITION_MODEL_ID
类型: String 默认值:claude-sonnet-4-20250514
服务: Orchestrator
热重载: 是
用于任务分解的模型。
MAX_TOKENS
类型: Integer 默认值:2000
范围: 1-∞
服务: LLM Service
热重载: 是
每次 LLM 调用的默认最大输出令牌数。
TEMPERATURE
类型: Float 默认值:0.7
范围: 0.0-2.0
服务: LLM Service
热重载: 是
LLM 采样的默认温度。
0.0: 确定性, 专注0.7: 平衡创造力1.0+: 更随机, 更有创意
MAX_TOKENS_PER_REQUEST
类型: Integer 默认值:10000
范围: 1-∞
服务: Orchestrator
热重载: 是
每个任务请求的最大总令牌数。
MAX_COST_PER_REQUEST
类型: Float 默认值:0.50
范围: 0.0-∞
服务: Orchestrator
热重载: 是
每个任务请求的最大成本 (USD)。
LLM_DISABLE_BUDGETS
类型: Integer 默认值:1
有效值: 0, 1
服务: Orchestrator, LLM Service
热重载: 是
预算执行位置。
1: Orchestrator 管理预算 (推荐)0: LLM service 执行预算
HISTORY_WINDOW_MESSAGES
类型: Integer 默认值:50
范围: 1-∞
服务: Orchestrator
热重载: 是
对话历史中包含的消息数量。
HISTORY_WINDOW_DEBUG_MESSAGES
类型: Integer 默认值:75
服务: Orchestrator
热重载: 是
调试模式的历史窗口大小。
WORKFLOW_SYNTH_BYPASS_SINGLE
类型: Boolean 默认值:true
服务: Orchestrator
热重载: 是
跳过单结果工作流的综合。
true: 简单任务更快 (跳过综合步骤)false: 始终综合结果
TOKEN_BUDGET_PER_AGENT
类型: Integer 默认值: 空 (无限制) 服务: Orchestrator 热重载: 是 每次代理执行的令牌预算。TOKEN_BUDGET_PER_TASK
类型: Integer 默认值: 空 (无限制) 服务: Orchestrator 热重载: 是 整个任务的令牌预算。缓存和速率限制
ENABLE_CACHE
类型: Boolean 默认值:true
服务: LLM Service
热重载: 是
启用 LLM 响应缓存。
true: 在 Redis 中缓存响应, 更快且更便宜false: 始终调用 LLM API
CACHE_SIMILARITY_THRESHOLD
类型: Float 默认值:0.95
范围: 0.0-1.0
服务: LLM Service
热重载: 是
缓存命中的语义相似度阈值。
1.0: 仅精确匹配0.95: 非常相似的查询0.8: 更宽松的匹配 (更多缓存命中, 准确性降低)
RATE_LIMIT_REQUESTS
类型: Integer 默认值:100
服务: Gateway
热重载: 是
每个 API 密钥在每个窗口期内的请求数。
RATE_LIMIT_WINDOW
类型: Integer 默认值:60
范围: 1-∞ (秒)
服务: Gateway
热重载: 是
速率限制窗口持续时间。
WEB_SEARCH_RATE_LIMIT
类型: Integer 默认值:120
服务: LLM Service
热重载: 是
每分钟网页搜索请求数。
CALCULATOR_RATE_LIMIT
类型: Integer 默认值:2000
服务: LLM Service
热重载: 是
每分钟计算器工具请求数。
PYTHON_EXECUTOR_RATE_LIMIT
类型: Integer 默认值:60
服务: Agent Core
热重载: 是
每分钟 Python 代码执行请求数。
PARTIAL_CHUNK_CHARS
类型: Integer 默认值:512
服务: LLM Service
热重载: 是
每个流式块的字符数。
工具执行和工作流
TOOL_PARALLELISM
类型: Integer 默认值:5
范围: 1-∞ (1 = 顺序执行)
服务: Orchestrator, Agent Core
热重载: 是
并发工具执行数。
1: 顺序执行 (更慢, 更安全)5: 5 个工具并行 (更快, 更多资源)10+: 高并行度 (最快, 资源使用最高)
ENABLE_TOOL_SELECTION
类型: Integer 默认值:1
有效值: 0, 1
服务: Orchestrator
热重载: 是
规划器自动选择工具。
1: 规划器自动选择工具 (推荐)0: 仅手动指定工具
PRIORITY_QUEUES
类型: String 默认值:off
有效值: on, off
服务: Orchestrator
热重载: 是
启用基于优先级的任务队列。
STREAMING_RING_CAPACITY
类型: Integer 默认值:1000
服务: Orchestrator
热重载: 否
流式事件的环形缓冲区容量。
COMPRESSION_TRIGGER_RATIO
类型: Float 默认值:0.75
范围: 0.0-1.0
服务: Orchestrator
热重载: 是
上下文压缩触发阈值。
COMPRESSION_TARGET_RATIO
类型: Float 默认值:0.375
范围: 0.0-1.0
服务: Orchestrator
热重载: 是
压缩后的目标大小。
ENFORCE_TIMEOUT_SECONDS
类型: Integer 默认值:90
服务: Agent Core
热重载: 是
工具执行超时时间。
ENFORCE_MAX_TOKENS
类型: Integer 默认值:32768
服务: Agent Core
热重载: 是
每次代理执行的最大令牌数。
ENFORCE_RATE_RPS
类型: Integer 默认值:20
服务: Agent Core
热重载: 是
代理操作的速率限制 (每秒请求数)。
ENFORCE_CB_ERROR_THRESHOLD
类型: Float 默认值:0.5
范围: 0.0-1.0
服务: Agent Core
热重载: 是
断路器错误率阈值。
ENFORCE_CB_WINDOW_SECONDS
类型: Integer 默认值:30
服务: Agent Core
热重载: 是
断路器测量窗口。
ENFORCE_CB_MIN_REQUESTS
类型: Integer 默认值:20
服务: Agent Core
热重载: 是
断路器激活前的最小请求数。
审批和安全
APPROVAL_ENABLED
类型: Boolean 默认值:false
服务: Orchestrator
热重载: 是
启用人在回路审批。
APPROVAL_COMPLEXITY_THRESHOLD
类型: Float 默认值:0.5
范围: 0.0-1.0
服务: Orchestrator
热重载: 是
需要审批的复杂度阈值。
APPROVAL_DANGEROUS_TOOLS
类型: String (逗号分隔) 默认值:file_system,code_execution
服务: Orchestrator
热重载: 是
需要审批的工具。
APPROVAL_TIMEOUT_SECONDS
类型: Integer 默认值:7200
服务: Orchestrator
热重载: 是
审批请求超时时间 (2 小时)。
JWT_SECRET
类型: String 默认值:development-only-secret-change-in-production
服务: Gateway
热重载: 否
JWT 签名密钥。
GATEWAY_SKIP_AUTH
类型: Integer 默认值:1
有效值: 0, 1
服务: Gateway
热重载: 是 (建议重启)
跳过身份验证 (仅限开发环境)。
0!
模板
TEMPLATE_FALLBACK_ENABLED
类型: Boolean 默认值:false
服务: Orchestrator
热重载: 是
模板失败时回退到 AI。
可观测性和遥测
OTEL_SERVICE_NAME
类型: String 默认值:shannon-llm-service
服务: 所有
热重载: 否
OpenTelemetry 的服务名称。
OTEL_EXPORTER_OTLP_ENDPOINT
类型: String 默认值:localhost:4317
服务: 所有
热重载: 否
OTLP 导出器端点。
OTEL_ENABLED
类型: Boolean 默认值:false
服务: 所有
热重载: 否
启用 OpenTelemetry 追踪。
LOG_FORMAT
类型: String 默认值:plain
有效值: plain, json
服务: Agent Core (Rust)
热重载: 否
日志输出格式。
METRICS_PORT
类型: Integer 默认值:2112
服务: 所有
热重载: 否
Prometheus 指标端口。
Python WASI 沙箱
PYTHON_WASI_WASM_PATH
类型: String 默认值:./wasm-interpreters/python-3.11.4.wasm
服务: Agent Core, LLM Service
热重载: 否
Python WASI 解释器的路径。
PYTHON_WASI_SESSION_TIMEOUT
类型: Integer 默认值:3600
服务: LLM Service
热重载: 是
Python 会话超时时间 (秒)。
WASI_MEMORY_LIMIT_MB
类型: Integer 默认值:512
服务: Agent Core
热重载: 是
WASI 沙箱内存限制 (MB)。
WASI_TIMEOUT_SECONDS
类型: Integer 默认值:60
服务: Agent Core
热重载: 是
WASI 执行超时时间。
OpenAPI 和 MCP
OpenAPI 集成
OPENAPI_ALLOWED_DOMAINS
类型: String 默认值:*
服务: LLM Service
热重载: 是
允许获取 OpenAPI 规范的域名。
OPENAPI_MAX_SPEC_SIZE
类型: Integer 默认值:5242880 (5 MB)
服务: LLM Service
热重载: 是
OpenAPI 规范文件的最大大小。
OPENAPI_FETCH_TIMEOUT
类型: Integer 默认值:30
服务: LLM Service
热重载: 是
获取 OpenAPI 规范的超时时间。
OPENAPI_RETRIES
类型: Integer 默认值:2
服务: LLM Service
热重载: 是
OpenAPI 操作的重试次数(包括规范获取和 API 调用)。
MCP 集成
MCP_ALLOWED_DOMAINS
类型: String 默认值:*
服务: LLM Service
热重载: 是
MCP 服务器允许的域名。
MCP_MAX_RESPONSE_BYTES
类型: Integer 默认值:10485760 (10 MB)
服务: LLM Service
热重载: 是
MCP 响应的最大大小。
MCP_RETRIES
类型: Integer 默认值:3
服务: LLM Service
热重载: 是
MCP 请求重试次数。
MCP_TIMEOUT_SECONDS
类型: Integer 默认值:10
服务: LLM Service
热重载: 是
MCP 请求超时时间。
MCP_REGISTER_TOKEN
类型: String 默认值: 空 服务: LLM Service 热重载: 是 MCP 服务器注册的身份验证令牌。MCP_RATE_LIMIT_DEFAULT
类型: Integer 默认值:60
服务: LLM Service
热重载: 是
MCP 工具的默认速率限制 (请求数/分钟)。
MCP_CB_FAILURES
类型: Integer 默认值:5
服务: LLM Service
热重载: 是
MCP 的断路器失败阈值。
MCP_CB_RECOVERY_SECONDS
类型: Integer 默认值:60
服务: LLM Service
热重载: 是
断路器恢复时间。
MCP_COST_TO_TOKENS
类型: Integer 默认值:0
服务: LLM Service
热重载: 是
MCP 工具的令牌成本乘数。
高级 Orchestrator 控制
EVENTLOG_BATCH_SIZE
类型: Integer 默认值:100
服务: Orchestrator
热重载: 是
数据库写入的每批事件数。
EVENTLOG_BATCH_INTERVAL_MS
类型: Integer 默认值:100
服务: Orchestrator
热重载: 是
批处理间隔 (毫秒)。
RATE_LIMIT_INTERVAL_MS
类型: Integer 默认值:60000
服务: Orchestrator
热重载: 是
速率限制窗口 (毫秒)。
Worker 并发
配置每个优先级队列的 Temporal worker 并发数:- 更高的值 = 更高的并发, 更多的资源使用
- 更低的值 = 更低的并发, 更少的资源使用
LLM_TIMEOUT_SECONDS
类型: Integer 默认值:120
服务: Orchestrator
热重载: 是
LLM API 调用的超时时间。
杂项
SHANNON_WORKSPACE
类型: String 默认值:./workspace
服务: Agent Core
热重载: 否
文件操作的工作区目录。
SEED_DATA
类型: Boolean 默认值:false
服务: 所有
热重载: 否
启动时在 Qdrant 中填充示例数据。
AGENT_TIMEOUT_SECONDS
类型: Integer 默认值:600
服务: Agent Core
热重载: 是
每次代理执行的最大运行时间。