Files
smartmate/backend/config.example.yaml
Losita a1b2ffedb8 Version: 0.9.22.dev.260416
后端:
1. 品牌文案与聊天定位统一切到 SmartMate,并放宽非排程问答能力
   - 系统人设、路由、排程、查询、交付提示统一从 SmartFlow 改为 SmartMate
   - 明确普通问答/生活建议/开放讨论可正常回答,deep_answer 不再输出“让我想想”等占位话术
   - thinkingMode=auto 时,deep_answer 默认开启 thinking,execute 继续跟随路由决策,其余路由默认关闭
2. Memory 读取链路升级为“结构化强约束 + 语义候选”hybrid 模式,并补齐注入渲染 / Execute 消费
   - 新增 read.mode、四类记忆预算、inject.renderMode 等配置及默认值
   - 落地 HybridRetrieve,统一 MySQL/RAG 读侧作用域、三级去重(ID/hash/text)、统一重排与按类型预算裁剪
   - 新增 FindPinnedByUser、content_hash DTO/兜底补算、legacy/RAG 共用读侧查询口径与 fallback 逻辑
   - 记忆注入支持 flat/typed_v2 两种渲染,execute msg3 正式消费 memory_context,主链路注入 MemoryReader 时同步透传 memory 配置
3. Memory 第二步/第三步 handoff 与治理文档补齐
   - HANDOFF_Memory向Mem0靠拢三步冲刺计划.md 从 newAgent 迁到 memory 目录,并补充“我的记忆”增删改查与最小留痕口径
   - 新增 backend/memory/记忆模块第二步计划.md、backend/memory/第三步治理与观测落地计划.md,分别拆解 hybrid 读取注入闭环与治理/观测/清理路线
   - 同步更新 backend/memory/Log.txt 调试日志
前端:
1. 助手输入区新增“智能编排”任务类选择器,并把 task_class_ids 作为请求 extra 透传
   - 新建 frontend/src/components/assistant/TaskClassPlanningPicker.vue,支持拉取任务类列表、临时勾选、已选标签回显与清空
   - 更新 frontend/src/components/dashboard/AssistantPanel.vue、frontend/src/types/dashboard.ts:Chat extra 正式建模 task_class_ids / retry 字段;当本轮带编排任务类时强制新起会话,避免把现有会话历史误混入新编排
2. 会话上下文窗口统计接入前端展示
   - 更新 frontend/src/api/agent.ts、新建 frontend/src/components/assistant/ContextWindowMeter.vue、更新 frontend/src/components/dashboard/AssistantPanel.vue、frontend/src/types/dashboard.ts:接入 /agent/context-stats,兼容 object/string/null 三种返回;在输入工具栏展示 msg0~msg3 占比与预算使用率
3. 助手面板交互细节优化
   - 更新 frontend/src/components/dashboard/AssistantPanel.vue:thinking 开关改为 auto/true/false 三态选择;切会话与重试后同步刷新 context stats;历史列表首屏不足时自动继续分页直到形成滚动区
仓库:无
2026-04-16 18:29:17 +08:00

205 lines
6.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 Keybocha 模式必填,否则会降级为 mock。
apiKey: ""
# 单次搜索请求超时。
timeout: 10s
# 单次 URL 抓取超时。
fetchTimeout: 15s
# 抓取正文最大字符数。
fetchMaxChars: 4000
rag:
# 是否把 websearch 结果继续送入 RAG 处理。
enabled: false