Version: 0.7.1.dev.260320
🧠 agent智能编排:删除了落库相关逻辑。再次重申:agent智能编排旨在为用户预览排程结果,实际的落库由用户决定,并通过按钮触发常规接口进行落库。目前仅保留 ReAct 精排循环链路(待改进)。 📄 修改了 ReAct 智能精排决策文档相关内容。 🔄 undo:当前 agent 智能排程逻辑待改进。
This commit is contained in:
@@ -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 调用对粗排结果进行语义化优化。
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user