# SmartFlow 后端配置示例 # # 使用说明: # 1. 请复制为 config.yaml 后再按实际环境填写。 # 2. 示例文件强调“结构清晰”和“字段语义明确”,不是生产推荐值。 # 3. 若你只想看 memory 相关配置,优先看本文件下半部分的 memory / rag / websearch 段。 # 服务启动与 HTTP 行为。 server: # HTTP 监听端口。 port: 8080 # gin 运行模式:debug / release。 mode: debug # 单次请求默认超时时间。 timeout: 30s # MySQL 主库配置。 database: host: localhost port: 3306 user: smartflow_user password: "put_your_database_password_here" dbname: "put_your_database_name_here" charset: utf8mb4 parseTime: true loc: Local # 登录态与鉴权令牌配置。 jwt: accessSecret: "put_your_jwt_access_secret_here" refreshSecret: "put_your_jwt_refresh_secret_here" # access token 有效期,面向接口鉴权。 accessTokenExpire: 15min # refresh token 有效期,面向续签。 refreshTokenExpire: 7d # 应用日志输出配置。 log: level: info path: logs/ # Redis 缓存与轻量状态存储。 redis: host: localhost port: 6379 password: "" db: 0 # Kafka outbox 事件总线配置。 kafka: enabled: true brokers: - "localhost:9092" topic: "smartflow.agent.outbox" groupID: "smartflow-agent-outbox-consumer" retryScanInterval: 1s retryBatchSize: 100 maxRetry: 20 # 时间与学期边界配置。 time: zone: "Asia/Shanghai" # 学期开始日期,一定要设定为周一,以便于计算周数。 semesterStartDate: "2026-03-02" # 学期结束日期,一定要设定为周日,确保最后一周完整。 semesterEndDate: "2026-07-19" # 智能体模型与规划参数。 agent: # 日常执行链路使用的主模型。 workerModel: "doubao-seed-2-0-code-preview-260215" # 规划、拆解、策略推导使用的模型。 strategistModel: "doubao-seed-2-0-code-preview-260215" # 模型服务根路径。 baseURL: "https://ark.cn-beijing.volces.com/api/v3" # 日内并发优化并发度,建议按模型配额调整。 dailyRefineConcurrency: 7 # 周级跨天配平额度上限,防止过度调整。 weeklyAdjustBudget: 5 # 通用 RAG 配置。 rag: # 总开关;关闭后不再走通用向量检索链路。 enabled: true # 当前向量存储类型,可选:inmemory / milvus。 store: "milvus" # 召回候选上限。 topK: 8 # 召回相似度阈值。 threshold: 0.55 retrieve: # 单次检索超时时间,避免主链路长时间阻塞。 timeoutMs: 1500 ingest: # 文档切块大小;过大影响召回精度,过小影响上下文完整度。 chunkSize: 400 # 相邻 chunk 重叠字符数。 chunkOverlap: 80 embed: # embedding 供应商实现,可选:mock / eino。 provider: "eino" # embedding 模型名。 model: "doubao-embedding-vision-251215" # embedding 服务根路径;API Key 统一从环境变量读取。 baseURL: "https://ark.cn-beijing.volces.com/api/v3" timeoutMs: 1200 # 向量维度,必须与向量库 collection 配置一致。 dimension: 1024 reranker: # 是否启用重排。 enabled: false # 当前默认 noop,后续可扩展。 provider: "noop" milvus: # Milvus REST 地址,不要填健康检查口。 address: "http://localhost:19530" token: "root:Milvus" dbName: "" # 通用 RAG chunk collection。 collectionName: "smartflow_rag_chunks" metricType: "COSINE" requestTimeoutMs: 1500 # 记忆模块配置。 memory: # memory 总开关;关闭后不做抽取、写入、召回、注入。 enabled: true rag: # 是否允许 memory 读写链路使用向量召回能力。 # 关闭后,memory 里的“语义候选”会退回 MySQL 路径,不等于整个 memory 模块关闭。 enabled: true read: # 读取模式: # 1. legacy:旧读链路,语义上是“RAG 优先,失败再走 legacy”。 # 2. hybrid:新读链路,先取强约束,再补语义候选,再统一去重/排序/预算裁剪。 # 3. 如果你想强制纯 MySQL 召回,建议同时设置 read.mode=legacy 且 memory.rag.enabled=false。 mode: legacy # constraint 类型最大注入条数。 constraintLimit: 5 # preference 类型最大注入条数。 preferenceLimit: 5 # fact 类型最大注入条数。 factLimit: 5 # todo_hint 类型最大注入条数。 todoHintLimit: 3 inject: # 注入渲染模式: # flat 为旧扁平列表;typed_v2 为按类型分段,便于模型区分“硬约束”和“参考事实”。 renderMode: flat prompt: # 留空表示走代码内默认抽取 prompt。 extract: "" # 留空表示走代码内默认决策 prompt。 decision: "" # memory 向量召回阈值。 threshold: 0.55 # 是否启用重排;当前默认关闭。 enableReranker: false llm: # 记忆抽取/决策使用的 LLM 随机度,默认尽量保守,提升可复现性。 temperature: 0.1 topP: 0.2 job: # 异步记忆任务最大重试次数。 maxRetry: 6 worker: # worker 轮询间隔。 pollEvery: 2s # 单次认领任务数。 claimBatch: 1 decision: # 决策层总开关。 # 开启后,写入链路会从“直接新增”升级成“召回旧记忆 -> 比对 -> 决策动作”。 enabled: false # 决策层语义候选数上限。 candidateTopK: 5 # 决策层语义候选最低相似度阈值。 candidateMinScore: 0.6 # 决策流程整体失败时的降级策略: # legacy_add:退回旧路径直接新增 # drop:直接丢弃本次写入 fallbackMode: legacy_add write: # 写入模式: # legacy:沿用旧写入路径 # decision:启用决策式写入 # 注意:只有 decision.enabled=true 时,这个值才真正生效。 mode: legacy # 联网搜索能力配置。 websearch: # 可选:mock | bocha。 provider: bocha # 搜索供应商 API Key;bocha 模式必填,否则会降级为 mock。 apiKey: "" # 单次搜索请求超时。 timeout: 10s # 单次 URL 抓取超时。 fetchTimeout: 15s # 抓取正文最大字符数。 fetchMaxChars: 4000 rag: # 是否把 websearch 结果继续送入 RAG 处理。 enabled: false