.env.example 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # deep_agent 2.0 环境变量样例
  2. # 复制为 .env 后按需修改。所有变量均有代码内默认值(默认值 = 可跑的最小配置)。
  3. # ============================================================
  4. # 配置优先级
  5. # ============================================================
  6. # 本 .env 与「进程环境变量」冲突时谁生效:
  7. # dotenv (默认)本文件优先,防被污染的 shell 静默改掉项目配置
  8. # process 进程环境优先,用于跑变体实例(不同端口/库/方言):
  9. # DEEP_AGENT_ENV_PRIORITY=process DB_DIALECT=mysql PORT=8081 python main.py
  10. # none 完全忽略本文件,只认进程环境与代码默认值(测试/CI)
  11. # 无论哪一档,冲突都会打 WARNING 并出现在 /health 的 config_conflicts
  12. DEEP_AGENT_ENV_PRIORITY=dotenv
  13. # ============================================================
  14. # 模型(主 agent)
  15. # ============================================================
  16. # provider:model 形式;deepseek* 前缀会走 langchain-deepseek(若已安装),否则走 ChatOpenAI
  17. DEEPAGENT_MODEL=deepseek-flash
  18. OPENAI_BASE_URL=https://api.deepseek.com
  19. OPENAI_API_KEY=sk-your-key-here
  20. OPENAI_TIMEOUT=180
  21. # 思考级别:off / high / highest(烧进模型实例,重启生效)
  22. DEEPAGENT_THINKING=off
  23. # ============================================================
  24. # 服务
  25. # ============================================================
  26. HOST=0.0.0.0
  27. PORT=8080
  28. LOG_LEVEL=INFO
  29. LOG_FORMAT=text
  30. # ============================================================
  31. # MySQL(会话历史 / 计费 / 调度的事实源)
  32. # ============================================================
  33. DB_HOST=127.0.0.1
  34. DB_PORT=3306
  35. DB_USER=root
  36. DB_PASSWORD=
  37. DB_NAME=vent_agent_v2
  38. DB_PING_IDLE_SECONDS=60
  39. # ============================================================
  40. # 图状态(checkpoint)
  41. # ============================================================
  42. # sqlite:图状态与中断上下文落盘(默认);memory:纯内存,重启即丢
  43. CHECKPOINTER=sqlite
  44. CHECKPOINT_DB_PATH=data/checkpoints.sqlite
  45. # ============================================================
  46. # 上下文与压缩
  47. # ============================================================
  48. # 声明的上下文窗口(0 = 用模型登记值)。
  49. # 这是压缩的唯一调节旋钮:框架在「声明窗口的 85%」处触发摘要压缩,
  50. # 想更早压缩就把这里调小(例如真实窗口 128000、想 70% 触发 → 填 105000)。
  51. CONTEXT_LIMIT=0
  52. # 自动压缩开关。关掉会同时失去「淘汰历史自动落盘到 /conversation_history/」
  53. # 的能力——长会话会硬撑到超窗报错,只在排查压缩相关问题时才关。
  54. CTX_COMPACT_ENABLED=1
  55. # 冷启动从会话历史补种的最近消息条数
  56. CTX_RECENT_LIMIT=30
  57. # ============================================================
  58. # 人机协同(HITL)
  59. # ============================================================
  60. # 需要人工审批的工具(逗号分隔),会追加到默认的计划审批工具之上。
  61. # 例:HITL_TOOLS=calculate → 每次计算都要用户点头,便于自测中断闭环
  62. HITL_TOOLS=
  63. # ============================================================
  64. # 计费
  65. # ============================================================
  66. # 每用户每日 token 限额(0 = 不限);预检 fail-closed
  67. TFAGENTS_DAILY_TOKEN_LIMIT=0
  68. # 模型未在 billing_pricing 表中定价时:0=直接报错(fail-closed,默认)
  69. # 1=按 0 价计费并告警(仅本地开发用,会让用量数字失真)
  70. BILLING_ALLOW_UNPRICED=0
  71. # ============================================================
  72. # 并发闸(超限直接 429,不排队)
  73. # ============================================================
  74. TFAGENTS_MAX_CONCURRENT_TASKS=10
  75. TFAGENTS_MAX_USER_TASKS=2
  76. TFAGENTS_TASK_WALL_TIMEOUT=1800
  77. # ============================================================
  78. # 鉴权
  79. # ============================================================
  80. # 2.0 骨架不做鉴权:user_name 由 /api/chat 的 multipart 字段自报,缺省 default。
  81. # 此开关保留给后续接入真实鉴权时使用,当前无效。
  82. AUTH_ENABLED=0
  83. # ============================================================
  84. # 观测
  85. # ============================================================
  86. TFA_TRACE_MIDDLEWARE=1