Version: 0.9.8.dev.260408
后端:
1.execute 上下文瘦身第一版落地(固定 4 消息骨架 + ReAct 窗口压缩 + JSON 输出约束)
- 新建 prompt/execute_context.go:
execute 阶段改为 message[0..3] 固定结构;
加入历史摘要、当轮 ReAct 绑定展示、同工具 observation 压缩(保留最新)与工具简表返回示例提示
- 更新 prompt/execute.go:
重写 plan/ReAct 执行提示词;
补齐“可做/不可做”约束;
统一严格 JSON 指令;
补充 tool_call.arguments/abort/speak 非空等格式护栏
- 更新 model/execute_contract.go:
新增 ExecuteDecision/ToolCallIntent 自定义 Unmarshal;
兼容空字符串占位与 tool_call.parameters→arguments 回退解析
- 更新 node/correction.go:
为 correction 注入 history kind 标记,避免被当作真实用户输入污染摘要
- 更新 node/execute.go:
补齐 continue/ask_user/confirm 的 speak 兜底;
移除工具结果写入前 3000 字截断
2.工具层微调语义重构(任务视角概览 + 首个空位查询 + 移动权限收紧)
- 更新 tools/read_tools.go:
get_overview 改为任务视角全量输出(课程仅占位统计);
新增 find_first_free(首个命中位 + 当日负载明细);
find_free 保留兼容别名;
list_tasks 增加 status/category 校验与空结果纠偏文案
- 更新 tools/registry.go:
注册 find_first_free;
find_free 改兼容别名;
同步 get_overview/list_tasks/move/batch_move 描述语义
- 更新 tools/write_tools.go:
move/batch_move 仅允许 suggested,existing/pending 明确拒绝并返回可读错误
- 更新 tools/SCHEDULE_TOOLS.md:
同步 get_overview/find_first_free/list_tasks/move/batch_move 的最新入参与返回示例
- 更新 prompt/plan.go:
读工具示例由 find_free 调整为 find_first_free
3.交接文档与阶段说明同步
- 更新 newAgent/HANDOFF_粗排修复与Prompt重构.md:
更新为 2026-04-08;
补充“最新增量交接”章节(当前主矛盾、P0/P1、验证清单)
- 更新 newAgent/阶段3_上下文瘦身设计.md:
同步 existing/suggested 的 move/batch_move 约束口径
- 更新 newAgent/Log.txt:
追加本轮 execute 调试日志快照
前端:无
仓库:无
This commit is contained in:
@@ -178,7 +178,12 @@ DB 记录:
|
||||
|
||||
### 4.1 get_overview
|
||||
|
||||
获取规划窗口的粗粒度总览,用于建立全局感知。
|
||||
获取规划窗口总览(任务视角,全量返回)。
|
||||
|
||||
行为约束:
|
||||
- 保留课程占位统计(例如“第1天:占2/12”),避免误判可用空间。
|
||||
- 每日明细只展开任务(非课程),课程不进入任务明细列表。
|
||||
- 在当前阶段(窗口通常不超过 30 天)直接全量返回,不做截断。
|
||||
|
||||
**入参:** 无
|
||||
|
||||
@@ -186,25 +191,19 @@ DB 记录:
|
||||
|
||||
```
|
||||
规划窗口共13天,每天12个时段,总计156个时段。
|
||||
当前已占用48个,空闲108个。待安排任务3个。
|
||||
当前已占用48个,空闲108个。课程占位条目7个(仅用于占位统计);任务条目:已安排(existing)1个、已预排(suggested)2个、待安排(pending)3个。
|
||||
|
||||
每日概况:
|
||||
第1天:占6/12 — [1]高等数学(1-2节) [2]英语(3-4节) [4]体育(5-6节)
|
||||
第2天:占2/12 — [5]物理(3-4节)
|
||||
第3天:占0/12
|
||||
第4天:占8/12 — [1]高等数学(1-2节) [6]线代(3-4节) [8]程序设计(9-10节)
|
||||
第5天:占0/12
|
||||
第6天:占2/12 — [2]英语(1-2节)
|
||||
第7天:占2/12 — [10]思政(1-2节,可嵌入)
|
||||
第8天:占4/12 — [1]高等数学(1-2节) [5]物理(3-4节)
|
||||
第9天:占0/12
|
||||
第10天:占0/12
|
||||
第11天:占0/12
|
||||
第12天:占0/12
|
||||
第13天:占0/12
|
||||
第1天:总占6/12(课程占6/12,任务占0/12) — 任务:无
|
||||
第2天:总占2/12(课程占2/12,任务占0/12) — 任务:无
|
||||
第3天:总占2/12(课程占0/12,任务占2/12) — 任务:[35]第一章随机事件与概率(suggested,第5-6节)
|
||||
第4天:总占4/12(课程占2/12,任务占2/12) — 任务:[36]第二章随机变量(suggested,第7-8节)
|
||||
...
|
||||
|
||||
可嵌入时段:第7天 [10]思政(1-2节)
|
||||
待安排:[3]复习线代(需3时段) [7]写实验报告(需2时段) [9]小组讨论(需2时段)
|
||||
任务清单(全量,已过滤课程):
|
||||
[35]第一章随机事件与概率 | 状态:suggested | 类别:概率论 | 时段:第3天(5-6节)
|
||||
[36]第二章随机变量 | 状态:suggested | 类别:概率论 | 时段:第4天(7-8节)
|
||||
[37]第三章多维随机变量 | 状态:pending | 类别:概率论 | 需2个连续时段
|
||||
```
|
||||
|
||||
---
|
||||
@@ -252,9 +251,12 @@ DB 记录:
|
||||
|
||||
---
|
||||
|
||||
### 4.3 find_free
|
||||
### 4.3 find_first_free
|
||||
|
||||
查找满足指定连续时段长度的空闲位置。
|
||||
按天顺序查找“首个可用位”(先纯空位,再可嵌入位),并返回该日详细信息。
|
||||
|
||||
兼容说明:
|
||||
- `find_free` 仍保留为兼容别名,行为与 `find_first_free` 完全一致。
|
||||
|
||||
**入参:**
|
||||
|
||||
@@ -266,18 +268,16 @@ DB 记录:
|
||||
**返回示例:**
|
||||
|
||||
```
|
||||
满足3个连续空闲时段的位置:
|
||||
|
||||
第2天 第5-8节(4时段连续空闲)
|
||||
第3天 第1-6节(6时段连续空闲)
|
||||
第3天 第7-12节(6时段连续空闲)
|
||||
第5天 第1-12节(12时段连续空闲)
|
||||
第6天 第3-5节(3时段连续空闲)
|
||||
第9天 第1-3节(3时段连续空闲)
|
||||
第10天 第5-7节(3时段连续空闲)
|
||||
|
||||
可嵌入位置(水课时段,可叠加任务):
|
||||
第7天 第1-2节([10]思政,当前无嵌入任务)
|
||||
首个可用位置:第5天第1-2节(可直接放置)。
|
||||
匹配条件:需要2个连续时段。
|
||||
当日负载:总占6/12(课程占2/12,任务占4/12)。
|
||||
当日任务明细(全量,已过滤课程):
|
||||
- [35]第一章随机事件与概率 | 状态:suggested | 类别:概率论 | 时段:第3-4节
|
||||
- [36]第二章随机变量 | 状态:suggested | 类别:概率论 | 时段:第7-8节
|
||||
当日连续空闲区:
|
||||
- 第1-2节(2时段连续空闲)
|
||||
- 第5-6节(2时段连续空闲)
|
||||
- 第9-12节(4时段连续空闲)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -290,8 +290,8 @@ DB 记录:
|
||||
|
||||
| 字段 | 类型 | 必填 | 说明 |
|
||||
|------|------|------|------|
|
||||
| category | string | 否 | 过滤类别(对应 TaskClass.Name,如"课程"、"学习") |
|
||||
| status | string | 否 | existing / suggested / pending / all,默认 all |
|
||||
| category | string | 否 | 过滤类别(对应 TaskClass.Name,如"课程"、"学习";不支持 task_class_ids 列表) |
|
||||
| status | string | 否 | existing / suggested / pending / all,默认 all(仅支持单值,不支持 `existing,suggested` 这类拼接) |
|
||||
|
||||
**返回示例(待安排):**
|
||||
|
||||
@@ -408,7 +408,7 @@ DB 记录:
|
||||
|
||||
### 5.2 move
|
||||
|
||||
移动已落位任务到新位置。
|
||||
移动已预排任务(仅 suggested)到新位置。
|
||||
|
||||
**入参:**
|
||||
|
||||
@@ -445,6 +445,10 @@ DB 记录:
|
||||
移动失败:[3]复习线代 当前为待安排状态,请使用 place 放置。
|
||||
```
|
||||
|
||||
```
|
||||
移动失败:[2]英语 当前为已安排(existing)任务,不允许 move;仅 suggested 任务可移动。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 5.3 swap
|
||||
@@ -484,7 +488,7 @@ DB 记录:
|
||||
|
||||
### 5.4 batch_move
|
||||
|
||||
批量原子移动多个任务,要么全部成功,要么全部回滚。
|
||||
批量原子移动多个任务(仅 suggested),要么全部成功,要么全部回滚。
|
||||
|
||||
**入参:**
|
||||
|
||||
@@ -553,7 +557,7 @@ DB 记录:
|
||||
### 状态约束
|
||||
- pending 任务只能 place,不能 move / swap / unplace
|
||||
- suggested 任务可以 move / swap / unplace
|
||||
- existing 任务可以 move / swap / unplace
|
||||
- existing 任务不能 move / batch_move(仅作已安排事实层)
|
||||
- 状态不符时返回明确错误信息
|
||||
|
||||
### 返回格式
|
||||
@@ -570,7 +574,7 @@ DB 记录:
|
||||
### 嵌入任务规则
|
||||
- `can_embed=true` 的任务(水课)允许其他任务嵌入到同一时段
|
||||
- 嵌入任务占位时不触发冲突检测(与宿主共存)
|
||||
- `find_free` 返回结果中标注可嵌入时段,让 LLM 知道哪里可以叠加
|
||||
- `find_first_free` 返回首个命中位,并附当日详细负载;`find_free` 为兼容别名
|
||||
- `place` 到可嵌入时段时,若已有宿主任务,自动标记 embed_host 关系
|
||||
- 嵌入任务的 locked 继承宿主:宿主不可移动时,嵌入任务也不可单独移动
|
||||
|
||||
|
||||
Reference in New Issue
Block a user