88# 深市:000xxx, 002xxx, 300xxx
99STOCK_LIST = 600519,300750,002594
1010
11+ # Anspire Open API Keys(支持多个,逗号分隔)
12+ # 获取: https://open.anspire.cn/?share_code=QFBC0FYC
13+ # 在未配置更高优先级 OpenAI-compatible 来源时,满足条件可复用该 key 给 Anspire 大模型网关与新闻搜索。
14+ # 下列网关与模型为当前项目示例配置;是否可用请以 Anspire 控制台与官方文档为准:
15+ # 示例网关: https://open-gateway.anspire.cn/v6
16+ # 示例模型:Doubao-Seed-2.0-lite(可覆盖为 ANSPIRE_LLM_MODEL=Doubao-Seed-2.0-pro)
17+ # 若网关有区域/版本差异,可覆盖为 ANSPIRE_LLM_BASE_URL=https://open-gateway.anspire.ai/v6
18+ ANSPIRE_API_KEYS =
19+ # ANSPIRE_LLM_MODEL=Doubao-Seed-2.0-lite
20+ # ANSPIRE_LLM_BASE_URL=https://open-gateway.anspire.cn/v6
21+ # ANSPIRE_LLM_ENABLED=true
1122# 数据源配置
1223# Tushare Pro Token(可选,从 https://tushare.pro/weborder/#/login?reg=834638 获取)
1324TUSHARE_TOKEN =
@@ -20,6 +31,8 @@ TUSHARE_TOKEN=
2031# LONGBRIDGE_ACCESS_TOKEN=
2132# static_info 进程内缓存秒数,默认 86400;0=每次请求拉取
2233# LONGBRIDGE_STATIC_INFO_TTL_SECONDS=86400
34+ # 连接关闭类异常后的冷却秒数,默认 15;冷却期内会临时跳过 Longbridge,避免请求级频繁重连
35+ # LONGBRIDGE_CONNECTION_COOLDOWN_SECONDS=15
2336# Longbridge SDK 语言与 REPORT_LANGUAGE(zh/en)一致;SDK 日志写入 LOG_DIR/longbridge_sdk.log
2437# 接入点(与 REPORT_LANGUAGE 无关;留空则用下列默认值):
2538# LONGBRIDGE_HTTP_URL=https://openapi.longbridge.com
@@ -44,6 +57,7 @@ TUSHARE_TOKEN=
4457# 完整说明:docs/LLM_CONFIG_GUIDE.md
4558#
4659# 【快速上手】填一个 API Key 即可运行,系统自动识别模型。
60+ # Anspire Open(一站式模型+搜索)→ 填 ANSPIRE_API_KEYS
4761# Gemini(免费额度)→ 填 GEMINI_API_KEY
4862# DeepSeek(性价比高)→ 填 DEEPSEEK_API_KEY
4963# AIHubmix(聚合平台)→ 填 AIHUBMIX_KEY
@@ -58,6 +72,7 @@ GEMINI_API_KEY=
5872# 多 Key 负载均衡:GEMINI_API_KEYS=key1,key2,key3
5973
6074# DeepSeek(https://platform.deepseek.com)
75+ # 兼容默认:仅填 DEEPSEEK_API_KEY 时仍使用 deepseek-chat,并在日志提示迁移到 deepseek-v4-flash
6176# DEEPSEEK_API_KEY=
6277
6378# AIHubmix 聚合(https://aihubmix.com/?aff=CfMq)
@@ -81,6 +96,14 @@ GEMINI_API_KEY=
8196# LLM_OLLAMA_MODELS=qwen3:8b
8297
8398# 采样温度(0.0-2.0,默认 0.7;0 确定性最高,2 随机性最高)
99+ # Kimi K2.6 兼容来源:
100+ # - Moonshot API / 模型文档:https://platform.kimi.ai/docs/guide/kimi-k2-6-quickstart
101+ # - Moonshot 官方模型卡(评测默认 temperature = 1.0):https://huggingface.co/moonshotai/Kimi-K2.6
102+ # - LiteLLM OpenAI-Compatible 规范:https://docs.litellm.ai/docs/providers/openai_compatible
103+ # 当前仓库运行时依赖约束:litellm>=1.80.10,!=1.82.7,!=1.82.8,<2.0.0(显式排除 PyPI 事故版本,见 requirements.txt)。
104+ # 因此 kimi-k2.6 会自动改用 1.0,避免 API 拒绝请求;其他模型和 fallback 仍使用你配置的 LLM_TEMPERATURE。
105+ # Web 设置页 / 桌面端导入不会静默清空或改写 LLM_TEMPERATURE;只在真正发请求前按 Kimi 要求临时归一化。
106+ # 如果主模型切回非 Kimi,原本配置的温度会自动恢复;最小回滚方式是回退本次 Kimi 固定温度改动。
84107# LLM_TEMPERATURE=0.7
85108
86109# --- 多渠道配置(可选,也可在 Web 设置页配置)---
@@ -89,37 +112,144 @@ GEMINI_API_KEY=
89112# 示例:DeepSeek + Gemini 双渠道
90113# LLM_CHANNELS=deepseek,gemini
91114# LLM_DEEPSEEK_API_KEY=sk-xxx
92- # LLM_DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
93- # LLM_DEEPSEEK_MODELS=deepseek-chat
115+ # LLM_DEEPSEEK_BASE_URL=https://api.deepseek.com
116+ # LLM_DEEPSEEK_MODELS=deepseek-v4-flash,deepseek-v4-pro
94117# LLM_GEMINI_API_KEYS=key1,key2
95- # LLM_GEMINI_MODELS=gemini-2.5-flash
118+ # LLM_GEMINI_MODELS=gemini-3.1-pro-preview
96119#
97120# 示例:自定义 API 端点(第三方代理 / 聚合平台 / 转发站)
98121# LLM_CHANNELS=my_proxy
99122# LLM_MY_PROXY_BASE_URL=https://your-proxy.example.com/v1
100123# LLM_MY_PROXY_API_KEY=sk-xxx
101- # LLM_MY_PROXY_MODELS=gpt-4o-mini ,claude-3-5-sonnet
124+ # LLM_MY_PROXY_MODELS=gpt-5.5 ,claude-sonnet-4-6
102125# LLM_MY_PROXY_PROTOCOL=openai
103126#
104127# 示例:Ollama 本地模型(无需 API Key)
105128# LLM_CHANNELS=ollama
106129# LLM_OLLAMA_BASE_URL=http://localhost:11434
107130# LLM_OLLAMA_MODELS=qwen3:8b,llama3.2
108-
109- # 高级:模型路由 YAML 配置(可选,参考 litellm_config.example.yaml)
131+ #
132+ # 常用厂商模板(任选其一复制到 .env;完整说明见 docs/llm-providers.md)
133+ #
134+ # Anspire Open(共享搜索与 LLM Key,OpenAI Compatible)
135+ # LLM_CHANNELS=anspire
136+ # LLM_ANSPIRE_PROTOCOL=openai
137+ # LLM_ANSPIRE_BASE_URL=https://open-gateway.anspire.cn/v6(示例)
138+ # LLM_ANSPIRE_API_KEY=sk-xxx
139+ # LLM_ANSPIRE_MODELS=Doubao-Seed-2.0-lite,Doubao-Seed-2.0-pro(示例模型)
140+ # LITELLM_MODEL=openai/Doubao-Seed-2.0-lite(示例)
141+ #
142+ # AIHubmix 聚合平台(OpenAI Compatible)
143+ # LLM_CHANNELS=aihubmix
144+ # LLM_AIHUBMIX_PROTOCOL=openai
145+ # LLM_AIHUBMIX_BASE_URL=https://aihubmix.com/v1
146+ # LLM_AIHUBMIX_API_KEY=sk-xxx
147+ # LLM_AIHUBMIX_MODELS=gpt-5.5,claude-sonnet-4-6,gemini-3.1-pro-preview
148+ # LITELLM_MODEL=openai/gpt-5.5
149+ #
150+ # OpenAI 官方
151+ # LLM_CHANNELS=openai
152+ # LLM_OPENAI_PROTOCOL=openai
153+ # LLM_OPENAI_BASE_URL=https://api.openai.com/v1
154+ # LLM_OPENAI_API_KEY=sk-xxx
155+ # LLM_OPENAI_MODELS=gpt-5.5,gpt-5.4-mini
156+ # LITELLM_MODEL=openai/gpt-5.5
157+ #
158+ # DeepSeek 官方
159+ # LLM_CHANNELS=deepseek
160+ # LLM_DEEPSEEK_PROTOCOL=deepseek
161+ # LLM_DEEPSEEK_BASE_URL=https://api.deepseek.com
162+ # LLM_DEEPSEEK_API_KEY=sk-xxx
163+ # LLM_DEEPSEEK_MODELS=deepseek-v4-flash,deepseek-v4-pro
164+ # LITELLM_MODEL=deepseek/deepseek-v4-flash
165+ #
166+ # Gemini 官方(官方协议,Base URL 留空)
167+ # LLM_CHANNELS=gemini
168+ # LLM_GEMINI_PROTOCOL=gemini
169+ # LLM_GEMINI_API_KEY=xxx
170+ # LLM_GEMINI_MODELS=gemini-3.1-pro-preview,gemini-3-flash-preview
171+ # LITELLM_MODEL=gemini/gemini-3.1-pro-preview
172+ #
173+ # Anthropic Claude 官方(官方协议,Base URL 留空)
174+ # LLM_CHANNELS=anthropic
175+ # LLM_ANTHROPIC_PROTOCOL=anthropic
176+ # LLM_ANTHROPIC_API_KEY=sk-ant-xxx
177+ # LLM_ANTHROPIC_MODELS=claude-sonnet-4-6,claude-opus-4-7
178+ # LITELLM_MODEL=anthropic/claude-sonnet-4-6
179+ #
180+ # Kimi / Moonshot(OpenAI Compatible)
181+ # LLM_CHANNELS=moonshot
182+ # LLM_MOONSHOT_PROTOCOL=openai
183+ # LLM_MOONSHOT_BASE_URL=https://api.moonshot.cn/v1
184+ # LLM_MOONSHOT_API_KEY=sk-xxx
185+ # LLM_MOONSHOT_MODELS=kimi-k2.6,kimi-k2.5
186+ # LITELLM_MODEL=openai/kimi-k2.6
187+ #
188+ # 通义千问 DashScope(OpenAI Compatible)
189+ # LLM_CHANNELS=dashscope
190+ # LLM_DASHSCOPE_PROTOCOL=openai
191+ # LLM_DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
192+ # LLM_DASHSCOPE_API_KEY=sk-xxx
193+ # LLM_DASHSCOPE_MODELS=qwen3.6-plus,qwen3.6-flash
194+ # LITELLM_MODEL=openai/qwen3.6-plus
195+ #
196+ # 智谱 GLM(OpenAI Compatible)
197+ # LLM_CHANNELS=zhipu
198+ # LLM_ZHIPU_PROTOCOL=openai
199+ # LLM_ZHIPU_BASE_URL=https://open.bigmodel.cn/api/paas/v4
200+ # LLM_ZHIPU_API_KEY=xxx
201+ # LLM_ZHIPU_MODELS=glm-5.1,glm-4.7-flash
202+ # LITELLM_MODEL=openai/glm-5.1
203+ #
204+ # MiniMax(OpenAI Compatible)
205+ # 来源:官方 OpenAI API 兼容文档 https://platform.minimax.io/docs/api-reference/text-chat
206+ # LiteLLM 通过 openai/<model> 路由到兼容 Chat Completions 的 Base URL。
207+ # LLM_CHANNELS=minimax
208+ # LLM_MINIMAX_PROTOCOL=openai
209+ # LLM_MINIMAX_BASE_URL=https://api.minimax.io/v1
210+ # LLM_MINIMAX_API_KEY=xxx
211+ # LLM_MINIMAX_MODELS=MiniMax-M2.7,MiniMax-M2.7-highspeed
212+ # LITELLM_MODEL=openai/MiniMax-M2.7
213+ #
214+ # 火山方舟 / 豆包(OpenAI Compatible,按实际开通地域调整 endpoint)
215+ # 来源:火山方舟在线推理 / Responses API 文档 https://www.volcengine.com/docs/82379/2121998
216+ # LiteLLM 通过 openai/<model> 路由到兼容 Chat Completions 的 Base URL。
217+ # LLM_CHANNELS=volcengine
218+ # LLM_VOLCENGINE_PROTOCOL=openai
219+ # LLM_VOLCENGINE_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
220+ # LLM_VOLCENGINE_API_KEY=xxx
221+ # LLM_VOLCENGINE_MODELS=doubao-seed-1-6-251015,doubao-seed-1-6-thinking-251015
222+ # LITELLM_MODEL=openai/doubao-seed-1-6-251015
223+ #
224+ # 硅基流动 SiliconFlow(OpenAI Compatible)
225+ # 来源:官方模型列表 https://docs.siliconflow.cn/quickstart/models
226+ # LLM_CHANNELS=siliconflow
227+ # LLM_SILICONFLOW_PROTOCOL=openai
228+ # LLM_SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
229+ # LLM_SILICONFLOW_API_KEY=sk-xxx
230+ # LLM_SILICONFLOW_MODELS=deepseek-ai/DeepSeek-V3.2,Qwen/Qwen3-235B-A22B-Thinking-2507
231+ # LITELLM_MODEL=openai/deepseek-ai/DeepSeek-V3.2
232+ #
233+ # OpenRouter(OpenAI Compatible)
234+ # 来源:官方 Models API https://openrouter.ai/docs/api/api-reference/models/get-models
235+ # LLM_CHANNELS=openrouter
236+ # LLM_OPENROUTER_PROTOCOL=openai
237+ # LLM_OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
238+ # LLM_OPENROUTER_API_KEY=sk-or-xxx
239+ # LLM_OPENROUTER_MODELS=~anthropic/claude-sonnet-latest,~openai/gpt-latest
240+ # LITELLM_MODEL=openai/~anthropic/claude-sonnet-latest
241+
242+ # 高级:模型路由 YAML 配置(可选,参考 docs/examples/litellm_config.example.yaml)
110243# LITELLM_CONFIG=./litellm_config.yaml
111244
112245# ===================================
113246# 搜索引擎配置(用于获取股票新闻)
114247# ===================================
115- # Anspire Search API Keys (支持多个,逗号分隔)
116- # 获取: https://aisearch.anspire.cn/
117- ANSPIRE_API_KEYS =
118248# Bocha API Keys(中文搜索优化,支持AI摘要,支持多个,逗号分隔)
119249# 获取: https://open.bocha.cn/
120250# BOCHA_API_KEYS=your_bocha_key_here
121251# MiniMax API Key(Coding Plan Web Search,支持多个,逗号分隔)
122- # 获取: https://platform.minimaxi.com /
252+ # 获取: https://platform.minimax.io /
123253# MINIMAX_API_KEYS=your_minimax_key_here
124254# Tavily API Keys(支持多个,逗号分隔)
125255TAVILY_API_KEYS =
@@ -216,6 +346,16 @@ AGENT_SKILLS=
216346# 策略路由模式(auto=根据市场状态自动选择 / manual=使用 AGENT_SKILLS 列表)
217347# AGENT_SKILL_ROUTING=auto
218348
349+ # 事件告警监控(schedule 模式后台轮询;触发后复用已配置通知渠道)
350+ # 兼容性说明:本节仅新增告警规则配置,不会修改模型名、provider、Base URL、LiteLLM 或 LLM 配置语义;回退只需关闭/移除事件监控配置。
351+ # 支持规则:
352+ # price_cross — 价格突破阈值,direction: above / below,字段: price
353+ # price_change_percent — 涨跌幅阈值,direction: up / down,字段: change_pct(单位:%)
354+ # volume_spike — 成交量放大,字段: multiplier(相对近 20 日均量倍数)
355+ # AGENT_EVENT_MONITOR_ENABLED=false
356+ # AGENT_EVENT_MONITOR_INTERVAL_MINUTES=5
357+ # AGENT_EVENT_ALERT_RULES_JSON=[{"stock_code":"600519","alert_type":"price_cross","direction":"above","price":1800},{"stock_code":"300750","alert_type":"price_change_percent","direction":"down","change_pct":3.0},{"stock_code":"000858","alert_type":"volume_spike","multiplier":2.5}]
358+
219359# ===================================
220360# 通知渠道配置(可同时配置多个,全部推送)
221361# ===================================
@@ -269,13 +409,25 @@ AGENT_SKILLS=
269409#
270410# CUSTOM_WEBHOOK_URLS=https://oapi.dingtalk.com/robot/send?access_token=xxx,https://hooks.slack.com/services/xxx
271411# CUSTOM_WEBHOOK_BEARER_TOKEN= # 可选,用于需要认证的 Webhook (Header Authorization: Bearer <token>)
272- # WEBHOOK_VERIFY_SSL=true # 默认校验。设为 false 可支持自签名证书。警告:禁用后存在 MITM 劫持风险,仅限可信内网
412+ # CUSTOM_WEBHOOK_BODY_TEMPLATE= # 可选,全局 JSON body 模板,会覆盖 Bark/Slack/Discord 等自动 payload;推荐 $content_json/$title_json
413+ # WEBHOOK_VERIFY_SSL=true # 默认校验;影响读取该配置的 webhook-style HTTPS 通知请求。设为 false 可支持自签名证书。警告:禁用后存在 MITM 劫持风险,仅限可信内网
273414#
274415# 【方式六】Pushover 配置
275416# 注册Pushover账号,并创建应用Token https://pushover.net/apps/build
276417# PUSHOVER_USER_KEY=
277418# PUSHOVER_API_TOKEN=
278419#
420+ # 【方式六扩展】ntfy 配置
421+ # NTFY_URL 必须包含 topic path,例如 https://ntfy.sh/my-topic 或 https://self-hosted:port/my-topic
422+ # 系统会解析 topic,并使用 ntfy JSON publish API 发送 Markdown 文本。
423+ # NTFY_URL=
424+ # NTFY_TOKEN= # 可选,用于需要 Bearer Token 的 topic 或自建 ntfy server
425+ #
426+ # 【方式六扩展】Gotify 配置
427+ # GOTIFY_URL 是 Gotify server base URL,不包含 /message;系统会拼接 /message 并用 X-Gotify-Key Header 发送 token。
428+ # GOTIFY_URL=
429+ # GOTIFY_TOKEN= # Gotify application token
430+ #
279431# 【方式七】PushPlus 配置(国内推送服务,推荐)
280432# 注册PushPlus账号并获取Token https://www.pushplus.plus
281433# PUSHPLUS_TOKEN=
@@ -320,6 +472,10 @@ AGENT_SKILLS=
320472# 注册Server酱3账号并获取SendKey https://sc3.ft07.com/
321473# SERVERCHAN3_SENDKEY=
322474#
475+ # 【方式十一】AstrBot 配置
476+ # ASTRBOT_URL=
477+ # ASTRBOT_TOKEN= # 可选,用于需要 Bearer Token 的 AstrBot Webhook
478+ #
323479# 【高级配置】消息长度限制(字节)
324480# 超过限制会自动分批发送,一般无需修改
325481# FEISHU_MAX_BYTES=20000 # 飞书限制约 20KB,默认 20000 字节
@@ -333,6 +489,22 @@ AGENT_SKILLS=
333489# MD2IMG_ENGINE=wkhtmltoimage # wkhtmltoimage(默认) | markdown-to-file(emoji 更好,需 npm i -g markdown-to-file)
334490# 转图工具:wkhtmltopdf (apt install wkhtmltopdf / brew install wkhtmltopdf),或 markdown-to-file
335491#
492+ # 【通知路由策略】(Issue #1200 P3)
493+ # 默认留空:该类型通知发送到所有已配置渠道。填写后仅发送到列出的已配置渠道。
494+ # 允许值:wechat,feishu,telegram,email,pushover,ntfy,gotify,pushplus,serverchan3,custom,discord,slack,astrbot
495+ # NOTIFICATION_REPORT_CHANNELS=
496+ # NOTIFICATION_ALERT_CHANNELS=
497+ # NOTIFICATION_SYSTEM_ERROR_CHANNELS=
498+ #
499+ # 【通知降噪机制】(Issue #1200 P4)
500+ # 默认全部关闭;仅影响静态通知渠道,不影响机器人触发会话回执。
501+ # NOTIFICATION_DEDUP_TTL_SECONDS=0 # 同一稳定去重 key 在 TTL 内只发送一次;0 关闭
502+ # NOTIFICATION_COOLDOWN_SECONDS=0 # 同一冷却 key 在窗口内限频;0 关闭
503+ # NOTIFICATION_QUIET_HOURS= # 静默时段,格式 HH:MM-HH:MM,支持跨午夜
504+ # NOTIFICATION_TIMEZONE= # 静默时段时区,如 Asia/Shanghai;留空跟随 TZ/系统本地时区
505+ # NOTIFICATION_MIN_SEVERITY= # info,warning,error,critical;留空保持现状
506+ # NOTIFICATION_DAILY_DIGEST_ENABLED=false # 预留配置;当前不会发送每日摘要
507+ #
336508# 【实时行情预取】(Issue #455)
337509# PREFETCH_REALTIME_QUOTES=true # 设为 false 可禁用,避免 efinance/akshare_em 全市场拉取;tushare 为单股接口,预取仅拉首股
338510
@@ -414,6 +586,7 @@ SCHEDULE_ENABLED=false
414586# 每日执行时间(HH:MM 格式,24小时制)
415587SCHEDULE_TIME = 18:00
416588# 定时模式启动时是否立即执行一次分析(true/false)
589+ # 若未显式设置,定时模式会沿用 RUN_IMMEDIATELY 的运行时覆盖语义以兼容旧配置
417590SCHEDULE_RUN_IMMEDIATELY = true
418591# 非定时模式启动时是否立即执行一次分析(true/false)
419592RUN_IMMEDIATELY = true
@@ -438,6 +611,8 @@ PROXY_PORT=10809
438611LOG_DIR = ./logs
439612# 日志级别(DEBUG/INFO/WARNING/ERROR)
440613LOG_LEVEL = INFO
614+ # LiteLLM 内部日志级别(DEBUG/INFO/WARNING/ERROR/CRITICAL;默认 WARNING;排查内部流式/路由细节时可临时设为 DEBUG)
615+ # LITELLM_LOG_LEVEL=WARNING
441616# 最大并发线程数(建议保持低并发防封禁)
442617MAX_WORKERS = 3
443618# 是否启用调试日志
0 commit comments