Version: 0.7.1.dev.260320

🧠 agent智能编排:删除了落库相关逻辑。再次重申:agent智能编排旨在为用户预览排程结果,实际的落库由用户决定,并通过按钮触发常规接口进行落库。目前仅保留 ReAct 精排循环链路(待改进)。
📄 修改了 ReAct 智能精排决策文档相关内容。
🔄 undo:当前 agent 智能排程逻辑待改进。
This commit is contained in:
LoveLosita
2026-03-20 19:40:11 +08:00
parent d3cec2a5b9
commit 059b25872a
12 changed files with 115 additions and 661 deletions

View File

@@ -26,93 +26,6 @@ const (
"strategy": "steady"
}`
// SchedulePlanMaterializePrompt 用于 materialize 节点:
// 将粗排候选方案与任务项列表匹配,生成可落库的结构。
//
// 设计要点:
// 1) 模型负责"选择哪些任务项放到哪些时间槽"
// 2) 后端负责最终校验(冲突检测在 BatchApplyPlans 中执行);
// 3) 输出必须是严格 JSON 数组,每项包含 task_item_id + 时间坐标。
SchedulePlanMaterializePrompt = `你是 SmartFlow 的排程方案转换器。
你将收到两组数据:
1) 粗排算法推荐的可用时间槽列表(按周分组)。
2) 需要安排的任务项列表(每项有 ID 和内容)。
你的任务是把每个任务项分配到一个可用时间槽中。
约束规则:
1) 每个任务项只能分配到一个时间槽。
2) 同一个时间槽不能分配多个任务项。
3) 必须尊重用户约束(如有)。
4) 如果可用槽位不足,优先安排靠前的任务项,剩余的标记为 unassigned。
输出要求:
- 仅输出 JSON不要 markdown不要解释。
- 格式如下:
{
"assignments": [
{
"task_item_id": 1,
"week": 1,
"day_of_week": 1,
"start_section": 3,
"end_section": 4,
"embed_course_event_id": 0
}
],
"unassigned_item_ids": [5, 6]
}`
// SchedulePlanReflectPrompt 用于 reflect 节点:分析落库失败原因并生成修补方案。
//
// 设计要点:
// 1) 模型收到后端错误信息,决定修补策略;
// 2) 可选动作retry_with_patch换槽位重试、partial_apply跳过冲突项、give_up放弃
// 3) 修补方案必须是结构化 JSON后端直接消费。
SchedulePlanReflectPrompt = `你是 SmartFlow 的排程修补分析器。
排程方案落库失败了,请分析失败原因并给出修补方案。
你可以选择以下动作之一:
1) "retry_with_patch":修改冲突项的时间槽后重试。
2) "partial_apply":跳过冲突项,只落库不冲突的部分。
3) "give_up":放弃本次排程,向用户解释原因。
输出要求:
- 仅输出 JSON不要 markdown不要解释。
- 格式如下:
{
"action": "retry_with_patch|partial_apply|give_up",
"reason": "简短原因",
"patched_assignments": [
{
"task_item_id": 1,
"week": 1,
"day_of_week": 2,
"start_section": 5,
"end_section": 6,
"embed_course_event_id": 0
}
],
"remove_item_ids": [3]
}`
// SchedulePlanFinalizePrompt 用于 finalize 节点:生成用户友好的排程结果摘要。
//
// 设计要点:
// 1) 以事实为主(成功安排了几项、哪些时间段);
// 2) 提及用户约束是否被满足;
// 3) 若有未安排的项目,给出原因和建议。
SchedulePlanFinalizePrompt = `你是 SmartFlow 的排程结果播报员。
请根据排程结果,生成一段简洁友好的中文摘要回复给用户。
要求:
1) 说明成功安排了多少个任务项。
2) 简要描述时间分布(如"分布在第1~3周主要集中在工作日下午")。
3) 如果有未安排的项目,说明原因。
4) 如果用户有约束(如"早八不排"),确认是否已遵守。
5) 语气自然友好不超过100字。
6) 不要输出 markdown 或列表格式,只输出纯文本。`
// SchedulePlanReactSystemPrompt 用于 ReAct 精排节点:
// LLM 开启深度思考,通过 Tool 调用对粗排结果进行语义化优化。
//