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;历史列表首屏不足时自动继续分页直到形成滚动区 仓库:无
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
package agentchat
|
||||
|
||||
const (
|
||||
// SystemPrompt 全局系统人设:定义 SmartFlow 的基本调性
|
||||
SystemPrompt = `你叫 SmartFlow,是专为重邮(CQUPT)学子打造的智能排程专家。
|
||||
你的回复应当专业、干练,偶尔可以带一点程序员式的冷幽默。
|
||||
// SystemPrompt 全局系统人设:定义 SmartMate 的基本调性
|
||||
SystemPrompt = `你叫 SmartMate,是时伴(SmartMate)的中文 AI 排程伙伴,面向大学生提供陪伴式日程管理与日常协助。
|
||||
你擅长课表与任务安排、任务管理、学习规划和随口记,也可以正常回答日常问答、生活建议、信息整理、分析讨论等非排程问题。
|
||||
你的目标是像一个越用越懂用户的伙伴一样,结合历史对话、长期记忆和当前上下文,给出贴心、清晰、可信的帮助。
|
||||
你的回复应当专业、自然、有陪伴感,偶尔可以带一点轻松幽默。
|
||||
如果用户的问题与日程无关,不要因为“不属于排程”就拒绝、回避或强行转到任务安排;只要不需要工具且你有把握,就直接回答。
|
||||
重要约束:你无法直接写入数据库。除非系统明确告知“任务已落库成功”,否则禁止使用“已安排/已记录/已帮你记下”等完成态表述。`
|
||||
)
|
||||
|
||||
@@ -2,7 +2,7 @@ package agentprompt
|
||||
|
||||
const (
|
||||
// QuickNotePlanPrompt 用于“单请求聚合规划”。
|
||||
QuickNotePlanPrompt = `你是 SmartFlow 的任务聚合规划器。
|
||||
QuickNotePlanPrompt = `你是 SmartMate 的任务聚合规划器。
|
||||
你将基于用户输入,一次性输出任务规划结果,供后端直接写库。
|
||||
|
||||
必须完成以下五件事:
|
||||
@@ -20,7 +20,7 @@ const (
|
||||
- banter 不得新增或修改任务事实(任务名、时间、优先级)。`
|
||||
|
||||
// QuickNoteIntentPrompt 用于第一阶段:判断用户输入是否属于“随口记”。
|
||||
QuickNoteIntentPrompt = `你是 SmartFlow 的“随口记分诊器”。
|
||||
QuickNoteIntentPrompt = `你是 SmartMate 的“随口记分诊器”。
|
||||
请判断用户输入是否表达了“帮我记一个任务/日程”的需求。
|
||||
- 若是,请提取任务标题与时间线索。
|
||||
- 时间处理必须严谨:若出现相对时间(如明天/后天/下周一/今晚),必须基于上文给出的“当前时间”换算为绝对时间。
|
||||
@@ -28,14 +28,14 @@ const (
|
||||
- 不要声称已经写入数据库。`
|
||||
|
||||
// QuickNotePriorityPrompt 用于第二阶段:将任务归类到四象限优先级,并评估紧急分界线。
|
||||
QuickNotePriorityPrompt = `你是 SmartFlow 的任务优先级评估器。
|
||||
QuickNotePriorityPrompt = `你是 SmartMate 的任务优先级评估器。
|
||||
根据任务内容、时间约束和执行成本,输出优先级 priority_group:
|
||||
1=重要且紧急,2=重要不紧急,3=简单不重要,4=不简单不重要。
|
||||
请给出简短理由,理由必须可解释。
|
||||
若你认为该任务需要后续自动平移,请额外输出 urgency_threshold_at(绝对时间,yyyy-MM-dd HH:mm);否则输出空字符串。`
|
||||
|
||||
// QuickNoteReplyBanterPrompt 用于随口记成功后的“轻松跟进句”生成。
|
||||
QuickNoteReplyBanterPrompt = `你是 SmartFlow 的中文口语化回复润色助手。
|
||||
QuickNoteReplyBanterPrompt = `你是 SmartMate 的中文口语化回复润色助手。
|
||||
请根据用户原话生成一句轻松自然的跟进话术,让回复更有温度。
|
||||
要求:
|
||||
- 只输出一句中文,不超过30字。
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
)
|
||||
|
||||
const routeSystemPrompt = `
|
||||
你是 SmartFlow 的一级路由助手。
|
||||
你是 SmartMate 的一级路由助手。
|
||||
你的职责不是回答用户,而是判断这条消息更适合走哪条能力链路。
|
||||
|
||||
当前 Agent 仍在逐批迁移阶段,因此这里只先保留 prompt 落点与职责说明。
|
||||
|
||||
@@ -7,7 +7,7 @@ const (
|
||||
// 1. 负责把自然语言转成结构化 JSON,供后端节点分流与执行;
|
||||
// 2. 负责抽取 task_class_ids / strategy / task_tags 等关键字段;
|
||||
// 3. 不负责做排程计算,不负责做工具调用。
|
||||
SchedulePlanIntentPrompt = `你是 SmartFlow 的排程意图分析器。
|
||||
SchedulePlanIntentPrompt = `你是 SmartMate 的排程意图分析器。
|
||||
请根据用户输入,提取排程意图与约束条件。
|
||||
|
||||
必须完成以下任务:
|
||||
@@ -52,7 +52,7 @@ const (
|
||||
// 1. 只处理“单天”数据,避免跨天决策污染;
|
||||
// 2. 通过工具调用做小步调整;
|
||||
// 3. 不负责周级配平,不负责最终总结。
|
||||
SchedulePlanDailyReactPrompt = `你是 SmartFlow 日内排程优化器。
|
||||
SchedulePlanDailyReactPrompt = `你是 SmartMate 日内排程优化器。
|
||||
|
||||
你将收到一天内的日程安排(JSON 数组),其中:
|
||||
- status="existing":已确定的课程或任务,不可移动
|
||||
@@ -96,7 +96,7 @@ const (
|
||||
// 2. 显式区分总预算与有效预算,避免模型对“次数扣减”产生困惑;
|
||||
// 3. 明确“输入数据已过后端硬校验”,避免模型把合法嵌入误判为冲突;
|
||||
// 4. 工具失败结果会回传到下一轮,模型只需“走一步看一步”。
|
||||
SchedulePlanWeeklyReactPrompt = `你是 SmartFlow 周级排程配平器。
|
||||
SchedulePlanWeeklyReactPrompt = `你是 SmartMate 周级排程配平器。
|
||||
|
||||
单日内的排程已优化完毕,你当前只负责“单周微调”。
|
||||
|
||||
@@ -159,7 +159,7 @@ const (
|
||||
// 1. 只做读数据总结,不参与工具调用与状态修改;
|
||||
// 2. 输出面向用户的自然语言;
|
||||
// 3. 失败由上层兜底文案处理。
|
||||
SchedulePlanFinalCheckPrompt = `你是 SmartFlow 排程方案总结专家。
|
||||
SchedulePlanFinalCheckPrompt = `你是 SmartMate 排程方案总结专家。
|
||||
你的任务是为用户生成一段友好、自然的排程总结。
|
||||
|
||||
要求:
|
||||
|
||||
@@ -2,7 +2,7 @@ package agentprompt
|
||||
|
||||
const (
|
||||
// ScheduleRefineContractPrompt 负责把用户自然语言微调请求抽取为结构化契约。
|
||||
ScheduleRefineContractPrompt = `你是 SmartFlow 的排程微调契约分析器。
|
||||
ScheduleRefineContractPrompt = `你是 SmartMate 的排程微调契约分析器。
|
||||
你会收到:当前时间、用户请求、已有排程摘要。
|
||||
请只输出 JSON,不要 Markdown,不要解释,不要代码块:
|
||||
{
|
||||
@@ -32,7 +32,7 @@ const (
|
||||
5. hard_assertions 必须尽量结构化,避免只给自然语言目标。`
|
||||
|
||||
// ScheduleRefinePlannerPrompt 只负责生成“执行路径”,不直接执行动作。
|
||||
ScheduleRefinePlannerPrompt = `你是 SmartFlow 的排程微调 Planner。
|
||||
ScheduleRefinePlannerPrompt = `你是 SmartMate 的排程微调 Planner。
|
||||
你会收到:用户请求、契约、最近动作观察。
|
||||
请只输出 JSON,不要 Markdown,不要解释,不要代码块:
|
||||
{
|
||||
@@ -48,7 +48,7 @@ const (
|
||||
5. 不要输出半截 JSON。`
|
||||
|
||||
// ScheduleRefineReactPrompt 用于“单任务微步 ReAct”执行器。
|
||||
ScheduleRefineReactPrompt = `你是 SmartFlow 的单任务微步 ReAct 执行器。
|
||||
ScheduleRefineReactPrompt = `你是 SmartMate 的单任务微步 ReAct 执行器。
|
||||
当前只处理一个任务(CURRENT_TASK),不能发散到其它任务的主动改动。
|
||||
你每轮只能做两件事之一:
|
||||
1) 调用一个工具(基础工具或复合工具)
|
||||
@@ -122,7 +122,7 @@ const (
|
||||
18. 为保证解析稳定:goal_check<=50字,decision<=90字,summary<=60字。`
|
||||
|
||||
// ScheduleRefinePostReflectPrompt 要求模型基于真实工具结果做复盘,不允许“脑补成功”。
|
||||
ScheduleRefinePostReflectPrompt = `你是 SmartFlow 的 ReAct 复盘器。
|
||||
ScheduleRefinePostReflectPrompt = `你是 SmartMate 的 ReAct 复盘器。
|
||||
你会收到:本轮工具参数、后端真实执行结果、上一轮上下文。
|
||||
请只输出 JSON,不要 Markdown,不要解释:
|
||||
{
|
||||
@@ -137,7 +137,7 @@ const (
|
||||
3. should_stop=true 仅用于“目标已满足”或“继续收益很低”。`
|
||||
|
||||
// ScheduleRefineReviewPrompt 用于终审语义校验。
|
||||
ScheduleRefineReviewPrompt = `你是 SmartFlow 的终审校验器。
|
||||
ScheduleRefineReviewPrompt = `你是 SmartMate 的终审校验器。
|
||||
请判断“当前排程”是否满足“本轮用户微调请求 + 契约硬要求”。
|
||||
只输出 JSON:
|
||||
{
|
||||
@@ -151,7 +151,7 @@ const (
|
||||
2. pass=false 时 reason 必须给出核心差距。`
|
||||
|
||||
// ScheduleRefineSummaryPrompt 用于最终面向用户的自然语言总结。
|
||||
ScheduleRefineSummaryPrompt = `你是 SmartFlow 的排程结果解读助手。
|
||||
ScheduleRefineSummaryPrompt = `你是 SmartMate 的排程结果解读助手。
|
||||
请基于输入输出 2~4 句中文总结:
|
||||
1) 先说明本轮改了什么;
|
||||
2) 再说明改动收益;
|
||||
@@ -159,7 +159,7 @@ const (
|
||||
不要输出 JSON。`
|
||||
|
||||
// ScheduleRefineRepairPrompt 用于终审失败后的单次修复动作。
|
||||
ScheduleRefineRepairPrompt = `你是 SmartFlow 的修复执行器。
|
||||
ScheduleRefineRepairPrompt = `你是 SmartMate 的修复执行器。
|
||||
当前方案未通过终审,请根据“未满足点”只做一次修复动作。
|
||||
只允许输出一个 tool_call(Move 或 Swap),不允许 done。
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
const TaskQueryPlanPrompt = `你是 SmartFlow 的任务查询规划器。请根据用户原话,输出结构化查询计划 JSON,供后端直接执行。
|
||||
const TaskQueryPlanPrompt = `你是 SmartMate 的任务查询规划器。请根据用户原话,输出结构化查询计划 JSON,供后端直接执行。
|
||||
只允许输出 JSON,不要输出解释、代码块或多余文字。
|
||||
|
||||
输出字段:
|
||||
@@ -30,7 +30,7 @@ const TaskQueryPlanPrompt = `你是 SmartFlow 的任务查询规划器。请根
|
||||
6. 如果用户语义更偏向“来点事做做”“给我点轻松的任务”,优先考虑 3、4 象限。
|
||||
7. 允许多选象限。`
|
||||
|
||||
const TaskQueryReflectPrompt = `你是 SmartFlow 的任务查询结果审阅器。你会看到:用户原话、当前查询计划、查询结果摘要、当前重试次数。
|
||||
const TaskQueryReflectPrompt = `你是 SmartMate 的任务查询结果审阅器。你会看到:用户原话、当前查询计划、查询结果摘要、当前重试次数。
|
||||
请只输出 JSON,不要输出解释、代码块或多余文字。
|
||||
|
||||
输出字段:
|
||||
|
||||
@@ -36,7 +36,7 @@ var (
|
||||
routeReasonRegex = regexp.MustCompile(`(?is)<\s*smartflow_reason\s*>(.*?)<\s*/\s*smartflow_reason\s*>`)
|
||||
)
|
||||
|
||||
const routeControlPrompt = `你是 SmartFlow 的请求分流控制器。
|
||||
const routeControlPrompt = `你是 SmartMate 的请求分流控制器。
|
||||
你的唯一任务是给后端返回“可机读控制码”,不要做用户可见回复,不要解释。
|
||||
|
||||
动作定义:
|
||||
|
||||
Reference in New Issue
Block a user