# deep_agent 2.0 环境变量样例 # 复制为 .env 后按需修改。所有变量均有代码内默认值(默认值 = 可跑的最小配置)。 # ============================================================ # 配置优先级 # ============================================================ # 本 .env 与「进程环境变量」冲突时谁生效: # dotenv (默认)本文件优先,防被污染的 shell 静默改掉项目配置 # process 进程环境优先,用于跑变体实例(不同端口/库/方言): # DEEP_AGENT_ENV_PRIORITY=process DB_DIALECT=mysql PORT=8081 python main.py # none 完全忽略本文件,只认进程环境与代码默认值(测试/CI) # 无论哪一档,冲突都会打 WARNING 并出现在 /health 的 config_conflicts DEEP_AGENT_ENV_PRIORITY=dotenv # ============================================================ # 模型(主 agent) # ============================================================ # provider:model 形式;deepseek* 前缀会走 langchain-deepseek(若已安装),否则走 ChatOpenAI DEEPAGENT_MODEL=deepseek-flash OPENAI_BASE_URL=https://api.deepseek.com OPENAI_API_KEY=sk-your-key-here OPENAI_TIMEOUT=180 # 思考级别:off / high / highest(烧进模型实例,重启生效) DEEPAGENT_THINKING=off # ============================================================ # 服务 # ============================================================ HOST=0.0.0.0 PORT=8080 # INFO:启动、任务及请求汇总;DEBUG:含并发位、健康检查等细节 LOG_LEVEL=INFO # text:本地阅读;json:每行一条结构化日志,适合采集 LOG_FORMAT=text # ============================================================ # MySQL(会话历史 / 计费 / 调度的事实源) # ============================================================ DB_HOST=127.0.0.1 DB_PORT=3306 DB_USER=root DB_PASSWORD= DB_NAME=vent_agent_v2 DB_PING_IDLE_SECONDS=60 # ============================================================ # 图状态(checkpoint) # ============================================================ # sqlite:图状态与中断上下文落盘(默认);memory:纯内存,重启即丢 CHECKPOINTER=sqlite CHECKPOINT_DB_PATH=data/checkpoints.sqlite # ============================================================ # 上下文与压缩 # ============================================================ # 声明的上下文窗口(0 = 用模型登记值)。 # 这是压缩的唯一调节旋钮:框架在「声明窗口的 85%」处触发摘要压缩, # 想更早压缩就把这里调小(例如真实窗口 128000、想 70% 触发 → 填 105000)。 CONTEXT_LIMIT=0 # 自动压缩开关。关掉会同时失去「淘汰历史自动落盘到 /conversation_history/」 # 的能力——长会话会硬撑到超窗报错,只在排查压缩相关问题时才关。 CTX_COMPACT_ENABLED=1 # 冷启动从会话历史补种的最近消息条数 CTX_RECENT_LIMIT=30 # ============================================================ # 人机协同(HITL) # ============================================================ # 需要人工审批的工具(逗号分隔),会追加到默认的计划审批工具之上。 # 未注册的工具名会阻止启动,避免审批配置拼写错误被忽略。 # 例:HITL_TOOLS=calculate → 每次计算都要用户点头,便于自测中断闭环 HITL_TOOLS= # ============================================================ # 计费 # ============================================================ # 每用户每日 token 限额(0 = 不限);预检 fail-closed TFAGENTS_DAILY_TOKEN_LIMIT=0 # 模型未在 billing_pricing 表中定价时:0=直接报错(fail-closed,默认) # 1=按 0 价计费并告警(仅本地开发用,会让用量数字失真) BILLING_ALLOW_UNPRICED=0 # ============================================================ # 并发闸(超限直接 429,不排队) # ============================================================ TFAGENTS_MAX_CONCURRENT_TASKS=10 TFAGENTS_MAX_USER_TASKS=2 TFAGENTS_TASK_WALL_TIMEOUT=1800 # 独立算法:单图/批量共享并行上限,批量等待名额;配置变更后重启。 ALGORITHM_MAX_PARALLEL=2 # 所有批次合计等待及执行中的图片上限 ALGORITHM_MAX_PENDING_IMAGES=100 ALGORITHM_RESULT_TTL_HOURS=24 ALGORITHM_JOB_DIR=data/algorithm_jobs # ============================================================ # 鉴权 # ============================================================ # 2.0 骨架不做鉴权:user_name 由 /api/chat 的 multipart 字段自报,缺省 default。 # 此开关保留给后续接入真实鉴权时使用,当前无效。 AUTH_ENABLED=0 # ============================================================ # 观测 # ============================================================ TFA_TRACE_MIDDLEWARE=1 # 离线扩展示例:共享术语表服务 + 工具 + 上下文中间件,默认关闭 CONTEXT_DEMO_ENABLED=0