后端: 1. AIHub 模型分级从 Worker/Strategist 两级重构为 Lite/Pro/Max 三级 - AIHub 结构体从 Worker + Strategist 改为 Lite + Pro + Max,分别对应轻量(标题生成)、标准(Chat 路由/闲聊/交付总结)、高能力(Plan 规划/Execute ReAct)三个能力层级 - config.example.yaml 新增 liteModel / proModel / maxModel 三个模型配置项,替代原 workerModel / strategistModel - 启动层 InitEino 改为创建三个独立模型实例,抽取公共 baseURL 和 apiKey 减少重复 - pickChatModel 统一返回 Pro 模型,旧 strategist 参数不再生效;pickTitleModel 从 Worker 切到 Lite - runNewAgentGraph 按 Plan/Execute→Max、Chat/Deliver→Pro 分级注入;Graph 出错回退也切到 Pro - Memory 模块初始化从 Worker 改为 Pro 2. Plan 节点从"两阶段评估"简化为"单轮深度规划",thinking 开关改为全配置化 - 移除 Phase 1(快速评估 1600 token)+ Phase 2(深度规划 3200 token)的两轮调用逻辑,改为单轮不限 token 深度规划 - PlanDecision 移除 need_thinking 字段,prompt 规则和 JSON contract 同步删除该字段 - 各节点(Plan / Execute / Deliver)thinking 开关从硬编码改为从 AgentGraphDeps 读取,由 config.yaml 的 agent.thinking 段按节点注入 - 新增 agent.thinking 配置段(plan / execute / deliver / memory 四个独立布尔开关),config.example.yaml 补齐默认值 - 新增 resolveThinkingMode 公共函数,plan / execute / deliver 和 memory 决策/抽取链路统一使用 3. Memory 模块 LLM 调用支持 thinking 开关 - Config 新增 LLMThinking 字段,config_loader 从 agent.thinking.memory 读取 - LLMDecisionOrchestrator.Compare 和 LLMWriteOrchestrator.ExtractFacts 的 thinking 模式从硬编码 Disabled 改为读取配置 前端: 1. 移除助手输入区模型选择器及全部偏好持久化逻辑 - 删除 ModelType 类型、selectedModel ref、MODEL_PREFERENCE_STORAGE_KEY 常量 - 删除 isModelType / loadModelPreferenceMap / persistModelPreferenceMap / savePreferredModel / resolvePreferredModel / applyPreferredModelForConversation 六个函数及 modelPreferenceMap ref - 删除 selectedModel watch 监听、发送消息时的 savePreferredModel 调用、切会话时的 applyPreferredModelForConversation 调用、会话迁移时的模型偏好迁移 - fetchChatStream 的 model 参数硬编码为 'worker' - 删除模板中"模型"下拉选择器(标准/策略)及对应的全局样式 .assistant-model-select-panel 2. 上下文窗口指示器简化为仅显示总占用 - ContextWindowMeter 移除 msg0~msg3 四段彩色分段逻辑(ContextSegment 接口、segments computed、v-for 渲染) - 进度条改为单一蓝色条,按 total/budget 比例填充;超预算时变红 - Tooltip 简化为仅显示"总计 X / 预算 Y(Z%)" 仓库:无
218 lines
6.8 KiB
YAML
218 lines
6.8 KiB
YAML
# 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:
|
||
# 轻量模型:标题生成等低复杂度、低延迟场景。
|
||
liteModel: "doubao-seed-2-0-code-preview-260215"
|
||
# 标准模型:Chat 路由/闲聊/深度回答/Deliver 总结。
|
||
proModel: "doubao-seed-2-0-code-preview-260215"
|
||
# 高能力模型:Plan 规划 + Execute ReAct 等深度推理场景。
|
||
maxModel: "doubao-seed-2-0-code-preview-260215"
|
||
# 模型服务根路径。
|
||
baseURL: "https://ark.cn-beijing.volces.com/api/v3"
|
||
# 日内并发优化并发度,建议按模型配额调整。
|
||
dailyRefineConcurrency: 7
|
||
# 周级跨天配平额度上限,防止过度调整。
|
||
weeklyAdjustBudget: 5
|
||
thinking:
|
||
# plan 节点(单轮深度规划),默认开 thinking。
|
||
plan: true
|
||
# execute 节点(ReAct 深度推理),默认开 thinking。
|
||
execute: true
|
||
# deliver 节点(交付总结),默认关 thinking。
|
||
deliver: false
|
||
# 记忆模块(决策比对 + 抽取),默认关 thinking。
|
||
memory: false
|
||
|
||
# 通用 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: true
|
||
# 决策层语义候选数上限。
|
||
candidateTopK: 5
|
||
# 决策层语义候选最低相似度阈值。
|
||
candidateMinScore: 0.6
|
||
# 决策流程整体失败时的降级策略:
|
||
# legacy_add:退回旧路径直接新增
|
||
# drop:直接丢弃本次写入
|
||
fallbackMode: legacy_add
|
||
write:
|
||
# 写入模式:
|
||
# legacy:沿用旧写入路径
|
||
# decision:启用决策式写入
|
||
# 注意:只有 decision.enabled=true 时,这个值才真正生效。
|
||
mode: legacy
|
||
# 写入最低置信度阈值,抽取结果 confidence 低于此值直接丢弃。
|
||
minConfidence: 0.5
|
||
|
||
# 联网搜索能力配置。
|
||
websearch:
|
||
# 可选:mock | bocha。
|
||
provider: bocha
|
||
# 搜索供应商 API Key;bocha 模式必填,否则会降级为 mock。
|
||
apiKey: ""
|
||
# 单次搜索请求超时。
|
||
timeout: 10s
|
||
# 单次 URL 抓取超时。
|
||
fetchTimeout: 15s
|
||
# 抓取正文最大字符数。
|
||
fetchMaxChars: 4000
|
||
rag:
|
||
# 是否把 websearch 结果继续送入 RAG 处理。
|
||
enabled: false
|