当前位置: 首页 > news >正文

让模型学会列清单 —— 规划和持久化

第四篇:让模型学会列清单 —— 规划和持久化

模型不是鱼,它的记忆不止 7 秒——但也没长到能记住 100 轮对话里的所有事。


那个经典的翻车现场

你:“帮我重构这个模块,分三步:第一步提取接口,第二步实现新逻辑,第三步迁移测试。”

模型:“好的,我来处理!”

第 5 轮对话后,模型突然开始写一个完全不相干的文件……它迷路了。

这不是模型笨。这是缺少短期记忆管理。最初的计划被挤到了不知道哪个角落。

s03 的解法:TodoManager + Nag Reminder

classTodoManager:def__init__(self):self.items=[]defupdate(self,items:list)->str:...defrender(self)->str:lines=[]foriteminself.items:marker={"pending":"[ ]","in_progress":"[>]","completed":"[x]"}[item["status"]]lines.append(f"{marker}#{item['id']}:{item['text']}")...return"\n".join(lines)

渲染出来:

[>] #1: 提取数据访问接口 [x] #2: 实现新的 Repository 类 [ ] #3: 迁移测试用例 (1/3 completed)

更有意思的是Nag Reminder——模型每 3 轮没用 todo 工具,就塞一条提醒:

rounds_since_todo=0ifused_todoelserounds_since_todo+1ifrounds_since_todo>=3:results.append({"type":"text","text":"<reminder>Update your todos.</reminder>"})

你不是强制模型做什么,你是给它一个信号,让它自己意识到该更新计划了。

s07 的进化:从 TODO 到持久化任务

s07 把 TODO 从内存列表升级为磁盘上的 JSON 文件

{"id":1,"subject":"Extract database interface","status":"completed","blockedBy":[],"owner":""}

为什么要持久化?因为上下文压缩(s06)随时可能把你的对话变成一个摘要。如果任务只存在于 messages 里,一压缩就没了。

任务系统还加了依赖图

[x] #1: 提取数据访问接口 [>] #2: 实现新的 Repository 类 [ ] #3: 迁移测试用例 (blocked by: [2])

规划工具的关键设计原则

Harness 提供结构化的状态管理。模型提供决策。两者各司其职。

坏的做法:框架强定 workflow,模型只是管道里的一环。
好的做法:提供状态管理工具,让模型自己规划。

又回到了那个核心思想:模型是司机。

从 TODO List 到任务板的进化链

s03: TodoManager(内存列表) s07: TaskManager(JSON 文件,依赖图) s11: 自主认领 + 任务板 s12: 任务 + Worktree 绑定(控制平面和执行平面分离)

下一篇:Subagent —— 进程隔离就是上下文隔离

http://www.cnnetsun.cn/news/2214664.html

相关文章:

  • LAV Filters终极配置指南:打造Windows平台最强媒体播放解码方案
  • 如何在c语言项目中通过curl调用Taotoken聚合大模型API
  • 从神圣到世俗:互联网技术民主化与Web开发演进全解析
  • 别再只会npm install了!这10个npm命令和技巧,帮你把开发效率拉满
  • 使用Taotoken后API调用的延迟与稳定性实际体验分享
  • 别再手动传数据了!用Python+Simulink的UDP通讯,5分钟搞定跨平台数据交互
  • 告别VGG堆叠:用Xception的深度可分离卷积,让你的模型参数量减半,效果还更好
  • SAGE框架:实现AI智能体终身学习的自进化技能库
  • Nuclei SDK实战指南:从环境搭建到项目定制,加速RISC-V嵌入式开发
  • GetQzonehistory:一键备份QQ空间所有历史说说的终极解决方案
  • Windows驱动存储管理终极指南:DriverStore Explorer深度解析与实战应用
  • MAA明日方舟助手:一键解放双手的免费自动化解决方案
  • 告别Matlab依赖:用STM32F407的CMSIS-DSP库实现FIR低通滤波(附完整C代码)
  • 医学图像分割实战:用UNet3+在ISIC皮肤癌数据集上提升边界分割精度
  • STM32CubeMX实战:用HAL库搞定CAN总线与上位机双向通信(附按键触发源码)
  • Dify工作流中代码节点访问图片文件的二次开发指南
  • 别再复制粘贴了!用这15行C语言代码搞定74HC165驱动(STM32/STC8H通用)
  • 基于Nostr与AI代理的远程编程助手:加密通信与微支付实践
  • 5个实用场景解析:如何高效利用电话号码定位工具提升工作效率
  • 学术图表设计规范与NeurIPS投稿指南
  • PresentBench:开源PPT质量评估框架解析
  • 从ROS2点云消息到PLY可视化异常:Python端调试链路断点扫描(含TCP/UDP帧级校验+时间戳漂移修正方案)
  • 为什么你的ComfyUI插件管理需要ComfyUI-Manager?
  • JTAG技术解析:从基础原理到高级调试实践
  • 3步解锁无损音乐宝藏:网易云音乐FLAC批量下载全攻略
  • 水土保持评估新思路:在ArcGIS Pro里玩转USLE模型,计算土壤保持服务价值
  • 【AI生产环境推理崩溃急救包】:7类高频Segmentation Fault根因图谱+GDB+torch.compile联合调试实战
  • ARM架构远程桌面终极破解:让Windows RT设备重获新生
  • 2026届必备的六大降重复率网站推荐榜单
  • 遥感AI解译落地失败真相(2024年127个真实项目复盘报告):为什么你训练的U-Net在实测中准确率暴跌42%?