多会话任务为何丢失连续性:learn-harness-engineering 的上下文持久化与状态恢复实战
【免费下载链接】learn-harness-engineeringHarness engineering beginner tutorial, from 0 to 1项目地址https://gitcode.com/gh_mirrors/le/learn-harness-engineering点击查看免费下载本技术指南以 learn-harness-engineering 仓库中《講義 05. セッションをまたいでコンテキストを保つ》为核心深入剖析 AI 编码代理在跨会话长任务中失忆的根本原因——上下文窗口有限、早期收敛、状态漂移——并给出以连续性工件continuity artifacts为核心的系统化解决方案。读完本文你将掌握 PROGRESS.md / DECISIONS.md / Git 检查点 / init.sh 这四件套的落地写法理解压缩 vs 重置的取舍并能通过仓库自带的会话模拟器与 Project 03 实战项目验证效果。问题长任务为什么必然丢失连续性向 Claude Code 这样的编码代理下达一个完整功能实现任务它运行 30 分钟后接近完成但上下文即将耗尽。你开启一个新会话让它继续——结果它不记得之前做过哪些决策、为什么选方案 A 而不选方案 B、哪些文件已被修改、测试处于什么状态。它花 15 分钟重新探索项目甚至可能做出与上一轮自相矛盾的选择。这就像一个每天醒来就失忆的工匠需要重新熟悉整个工地——哪面墙砌了一半、为什么选了红砖而不是蓝砖、管道铺到哪了。更糟的是它可能因为不记得昨天已装好窗户而把它拆掉重来。该讲义的核心判断是这不是模型缺陷而是客观现实。上下文窗口是有限资源且窗口内信息的增长速度远快于窗口本身的扩张——即使窗口涨到 1M token复杂任务依然会用尽因为代理不仅要生成代码还要理解代码库、追踪自身决策历史、处理工具输出、维持对话上下文。更深层的问题是信息重要度不均匀中间推理步骤包含决策的为什么——为什么选 A 不选 B、为什么用这个库不用那个库、为什么跳过某项优化最终输出只包含做了什么——即代码本身。压缩策略通常保留后者、丢失前者。下一个会话能看到代码却不知道代码为何这样写于是可能把有意的设计决策当成可优化项优化掉。此外Anthropic 在长时运行代理研究中观察到上下文焦虑context anxiety代理感到上下文所剩不多时会表现出早期收敛行为——仓促收尾当前工作、跳过验证步骤、选择比最优解更简单的方案如同考试快结束时给选择题乱填答案。会话连续性流程有工件与无工件的对比没有连续性工件时每个新会话都是一场灾难有了连续性工件新会话可以立即恢复核心概念一览上下文窗口有限无论标称多大128K、200K、1M长任务终会用尽。用尽后只能压缩丢信息或重置开新会话两者都有代价。连续性工件让新会话能明确接续上次会话的持久化状态文件基本形态是进度日志 验证记录 下一步动作——就是那位失忆工匠的日记。重建成本rebuild cost新会话达到可执行状态所需的时间。好的 harness 能把重建成本从 15 分钟压缩到 3 分钟。漂移drift代理的理解与代码仓库真实状态之间的偏差。每个会话边界都会产生漂移不加以控制就会复利式累积。上下文焦虑Anthropic 观察到的现象——代理感知到上下文受限时表现出早期收敛为规避信息损失而提前结束任务属于非理性的资源焦虑。压缩 vs 重置压缩在同一会话内摘要上下文保留做了什么可能丢失为什么重置则开启新会话、从持久化状态重建干净但依赖工件完整性。连续性被破坏时会发生什么重复决策上一会话花大量上下文预算分析三种方案后选定 B本会话的代理不知道这次分析基于不完整信息可能重选 A。就像失忆工匠今天觉得蓝砖更好看推倒昨天的墙重砌。重复劳动代理不确定某工作是否已完成于是再做一遍更糟的是做了一半才发现与既有实现冲突推倒重来。没有进度记录新团队根本不知道已经有人在这面墙上施工。需求漂移跨越多会话后实现方向在不知不觉中偏离原始需求。每个新会话对项目目标的理解都略有不同如同传话游戏十个人传下来帮我买咖啡可能变成帮我买台咖啡机。验证缺口上一会话的验证结果哪些测试过、哪些失败、为何失败没有记录新会话为理解当前状态必须重跑全部验证每次都从零开始重新诊断每次都浪费宝贵上下文。OpenAI 与 Anthropic 的官方文档都强调结构化状态持久化OpenAI 的 harness engineering 文章把仓库视为运维记录system of record所有操作结果都应在仓库留下可追溯证据Anthropic 的长时运行代理文档则明确推荐handoff 文件——包含当前状态、已知问题、下一步动作的结构化文档。失忆工匠的日记四大连续性工具核心方法论一句话把代理当作一位失忆的优秀工程师来对待。它在下班前必须把关键信息写下来让下一班次的代理能立即接手。工具 1进度文件PROGRESS.md最基本的连续性工件日记的核心。注意其固定结构当前状态commit 哈希、测试通过率、已完成、进行中、已知问题、下一步# Project Progress ## Current State - Latest commit: abc1234 (feat: add user preferences endpoint) - Test status: 42/43 passing (test_pagination_edge_case failing) - Lint: passing ## Completed - [x] User model and database migration - [x] Basic CRUD endpoints - [x] Auth middleware integration ## In Progress - [ ] Pagination feature (90% - edge case test failing) ## Known Issues - test_pagination_edge_case returns 500 on empty result sets - Need to confirm whether deleted users should appear in listings ## Next Steps 1. Fix pagination edge case bug 2. Add include deleted users query parameter 3. Update API documentation工具 2决策日志DECISIONS.md记录重要设计决策及其理由。不需要详尽设计文档——只要决定了什么、为什么、什么时候像日记里的便签# Design Decisions ## 2024-01-15: Use Redis for user preferences caching - Reason: High read frequency (every API call), small data size - Rejected alternative: PostgreSQL materialized view (high change frequency makes maintenance cost not worthwhile) - Constraint: Cache TTL of 5 minutes, active invalidation on write工具 3Git 提交作为检查点每完成一个原子工作单元就提交一次提交信息写明做了什么和为什么。提交是免费、自动版本化的状态快照——它精确记录了仓库在某时刻的状态供新会话恢复。工具 4init.sh 或 harness 初始化流程在 AGENTS.md 中指定上班与下班例行程序## At session start (clock in) 1. Read PROGRESS.md for current state 2. Read DECISIONS.md for important decisions 3. Run make check to confirm repo is in consistent state 4. Continue from PROGRESS.md Next Steps section ## Before session end (clock out) 1. Update PROGRESS.md 2. Run make check to confirm consistent state 3. Commit all completed work混合策略并非所有任务都需要上下文重置短任务30 分钟以内可在单会话内完成长任务跨会话必须用进度文件与决策日志保证连续性。判断标准当任务预计消耗窗口的 60% 以上时就开始准备 handoff。上下文焦虑压缩 vs 重置的深入取舍Anthropic 2026 年 3 月的研究进一步揭示了上下文焦虑的具体表现Sonnet 4.5 在上下文接近窗口上限时表现出强烈的早期收敛行为。对此有两种应对策略压缩在同一会话内摘要早期对话。优点保持连续性代理仍能看到做了什么缺点摘要常常丢失为什么——为何选 B 不选 A、为何跳过某项优化。更重要的是压缩并不能消除上下文焦虑——代理知道自己上下文曾经很大心理上仍倾向匆忙收尾。上下文重置完全清空上下文开启新会话从持久化工件重建。优点精神清爽新会话没有时间不够的焦虑缺点完全依赖 handoff 工件的完整性——日记缺了关键信息新会话就可能把时间浪费在错误方向上。Anthropic 的实际数据表明Sonnet 4.5 的上下文焦虑严重仅靠压缩不够上下文重置成为 harness 设计的重要组件而 Opus 4.5 该行为显著减少可主要依赖压缩管理上下文。这推导出关键结论harness 设计必须针对目标模型具体定制不存在万能模板。讲义出处注明Anthropic Harness design for long-running application development 与 Effective Harnesses for Long-Running Agents 研究具体结论以模型实际行为为准。仓库实证会话模拟器与 handoff 模板讲义配套的 code 目录提供了可直接运行和对照的素材见 code 目录session-simulator.ts量化对比有无 handoff 的差异session-simulator.ts 用 6 个带耗时的任务步骤模拟两个会话Run 1无 handoffSession A 完成步骤 1–3 后超时Session B 无上下文从步骤 1 重新开始重复完成 1–3duplicatedSteps 3多耗 190ms 的重复劳动Run 2有 handoffSession A 完成 1–3 并写 handoff 文件Session B 读取后从步骤 4 继续duplicatedSteps 0。运行方式注意以仓库根目录为基准npx tsx docs/ja/lectures/lecture-05-why-long-running-tasks-lose-continuity/code/session-simulator.ts输出包含两个 Run 的完整步骤日志与对比表Session A/B 完成步骤数、重复步骤数、总工作量、handoff 节省的时间是演示handoff 消除重复工作、保障跨会话连续性的最直观证据。session-handoff.md 与 continuity-checklist.mdcode/session-handoff.md 给出一个真实形态的 handoff 示例只有三块已完成、损坏或未验证、下一步最优步骤——例如.md导入成功但大.txt文件失败应用能启动但详情视图未接上下一步则是修复.txt导入路径 → 端到端验证导入 → 添加文档详情面板。这正是讲义中四字段模板的落地变体。code/continuity-checklist.md 提供会话开始时的自检四问新代理能否在 5 分钟内定位近期工作当前稳定的启动路径是否已文档化未完成工作是否被明确标识不读旧聊天记录能否看到下一个最优任务实战项目佐证Project 03 的多会话连续性讲义指向 Project 03: Multi-Session Continuity在英文版讲义中作为配套实践项目日文版讲义同样引用该项目。该项目的 solution 目录把讲义理论全部实例化solution/session-handoff.md 是真实填写完成的 handoff记录 Last Session 日期、What Was Accomplished元数据抽取、文档分块、索引状态 UI、带引用的 grounded QA 四项功能及实现细节、What Remains、Decisions Made为何在导入时抽取元数据而非惰性抽取、为何按段落感知切分、Files Modified列出src/services/indexing-service.ts、src/renderer/components/StatusBar.tsx等具体文件、BlockersNone、Next Steps进入 Project 04——与讲义做了什么 / 为什么 / 下一步完全对应。solution/AGENTS.md 实现了讲义中的上班例行程序启动时按顺序读 AGENTS.md → 读架构与产品文档 →npm install npm run check验证构建 → 读 feature_list.json 查看功能状态并规定一次只做一个功能纪律one-feature-at-a-time policy选一个 not-started 功能 → 只实现它 → 验证 → 更新 feature_list.json 为 pass 并附证据 → 提交提交信息引用功能 ID→ 才进入下一个。这正对应讲义下班前更新进度文件 确认一致状态 提交全部已完成工作的检查点思想。solution/clean-state-checklist.md 是讲义验证记录的扩展构建验证npm run check零 TypeScript 错误、npm run build产出 dist/、功能验证逐条勾选窗口、导入、元数据、分块、索引状态、引用回答、持久化等、范围控制验证feature_list.json 全 pass、无 fail/not-started、代码质量与文档验证session-handoff.md 已填写、claude-progress.md 有会话日志。该项目的真实运行数据也印证讲义核心论点跨 5 个会话的实现任务靠 session-handoff.md 把会话 2 的重建成本降到约 3 分钟最终 11 个功能全部 pass。实例对比有日记与没日记的 5 个会话讲义用一个用户认证博客系统12 个功能点、预计 5 个会话的实例做量化对比无日记基线会话 1 实现用户模型与基础路由会话 2 代理不记得认证中间件的接口契约花约 15 分钟猜测上一轮设计意图到会话 3 漂移累积代理开始重实现已完成功能到会话 5仓库里大量冗余代码核心认证功能仍未通过端到端测试——12 个功能点只完成 7 个其中 3 个还有隐藏正确性问题。像从不写日记的工匠第 5 天工地上乱成一团有的墙砌了两遍该砌的墙还没动工。有日记使用进度文件、决策日志、验证记录与 Git 检查点每个会话结束自动更新状态报告会话 2 的重建成本降到约 3 分钟到会话 512 个功能点全部完成并验证。量化对比重建时间减少约 78%功能完成率从 58% 提升到 100%隐藏缺陷率从 43% 降到 8%。工匠依然失忆但有了日记每天从昨天停下的地方继续而不是从零开始。关键要点上下文窗口是有限资源长任务必然跨会话会话必然丢失信息——像每天遗忘的工匠这是客观现实。解决方案不是更大的窗口而是更好的状态持久化进度文件 决策日志 Git 检查点给失忆工匠一本可靠的日记。把代理当作失忆的工程师对待下班前写清做了什么、为什么、下一步做什么。重建成本是核心指标好的 harness 应让新会话在 3 分钟内进入可执行状态。采用混合策略短任务在会话内完成长任务用结构化工件保障连续性。练习测量连续性损失选一个需要 3 个以上会话的开发任务。不提供任何连续性工件记录每个会话开始时代理花多少上下文搞清上次发生了什么每个会话结束后创建进度文件并让下一会话从它开始比较有无进度文件的重建成本。设计 handoff 模板设计包含四个字段的最小 handoff 模板——仓库状态commit 哈希、运行状态测试通过率、阻塞项、下一步动作。让一个全新代理会话仅凭该模板恢复项目状态记录恢复中遇到的歧义并迭代改进模板可参考 code/session-handoff.md 的形态。混合策略实验在 5 会话的开发任务中比较三种策略(a) 每次都开新会话 进度文件(b) 单会话内尽量多做上下文压缩(c) 混合策略短任务会话内完成、长任务跨会话 进度文件。对比重建时间、功能完成率与决策一致性。进一步探索完整讲义见 日语版 Lecture 05配套实践项目见 Project 03其 solution 目录 中的 session-handoff.md、AGENTS.md 与 clean-state-checklist.md 是可直接对照学习的完整 harness 工件样例。赞分享【免费下载链接】learn-harness-engineeringHarness engineering beginner tutorial, from 0 to 1项目地址https://gitcode.com/gh_mirrors/le/learn-harness-engineering点击查看免费下载相关推荐Learn Harness Engineering 实战Session Handoff 会话交接文件——让跨会话长任务不再丢失连续性Learn Harness Engineering 实战Session Handoff 会话交接文件——让跨会话长任务不再丢失连续性 本篇技术指南以 learLearn Harness Engineering用 Session Handoff 文档修复长任务的跨会话连续性Learn Harness Engineering用 Session Handoff 文档修复长任务的跨会话连续性 导读在 Learn Harness En长任务连续性丢失与 harness 状态持久化用 PROGRESS.md、DECISIONS.md 与 Git 检查点让 Agent 跨会话无缝续作长任务连续性丢失与 harness 状态持久化用 PROGRESS.md、DECISIONS.md 与 Git 检查点让 Agent 跨会话无缝续作 导读 本创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

风电虚拟同步机技术与储能调频协同控制方案

风电虚拟同步机技术与储能调频协同控制方案

1. 项目背景与行业需求风电行业正经历从单纯发电设备向电力系统主动支撑角色的转变。去年参与某200MW风电场改造时,电网公司明确要求新建机组必须具备一次调频能力,这促使我们团队深入研究风机模型与储能调频的协同控制方案。传统双馈风机通过电力电子设…

2026/9/25 7:28:42 阅读更多 →
不换硬件,推理成本降60%:量化、蒸馏、批处理与提示词缓存实战

不换硬件,推理成本降60%:量化、蒸馏、批处理与提示词缓存实战

推理成本这件事,很多团队都是在收到第一张云账单之后才开始认真对待的。模型上线跑得好好的,延迟也还能接受,结果月底一看账单,GPU 实例的费用比预期翻了两三倍。这时候第一反应往往是"要不要换更便宜的卡"或者"要…

2026/9/25 10:01:23 阅读更多 →
FPGA开发效率提升:ISE与Notepad++深度集成方案

FPGA开发效率提升:ISE与Notepad++深度集成方案

1. 项目背景与需求解析在FPGA开发领域,Xilinx ISE 10.1作为经典开发环境,至今仍被许多老项目使用。但原生编辑器功能有限,开发者常需要切换到专业文本编辑器(如Notepad)进行代码编写。手动在两个软件间切换既影响效率&…

2026/9/25 9:22:41 阅读更多 →

最新新闻

七星卫通技术专业吗

七星卫通技术专业吗

从北斗卫星导航系统完成全球组网,到天通一号卫星移动通信系统建成,国产卫星通信产业从追赶到并跑,从单点突破到体系成型,走过了十余年的攻坚旅程。在这片关乎信息安全、关乎极端场景通信保障的蓝海中,北京七星卫通科技…

2026/9/25 22:58:20 阅读更多 →
太阳能电池板缺陷检测数据集构建与YOLOv8训练避坑指南

太阳能电池板缺陷检测数据集构建与YOLOv8训练避坑指南

简介:太阳能电池板缺陷检测数据集面向计算机视觉研究者与新能源质检开发者,提供2624张300300像素8位灰度图像,覆盖44个太阳能模块的功能性与缺陷电池样本,缺陷包含内在类型(裂纹、断栅、污染等)与外在退化类…

2026/9/25 22:58:20 阅读更多 →
UNSW-NB15网络攻击检测毕设源码实战:从环境配置到部署排坑

UNSW-NB15网络攻击检测毕设源码实战:从环境配置到部署排坑

简介:面向计算机相关专业毕业设计、课程设计与入门实践的机器学习项目资源,围绕 UNSW-NB15 数据集提供网络攻击检测的完整算法实现。数据集涵盖多种现代攻击流量,项目基于经典监督学习思路,集中展示决策树二分类、逻辑回归与 KNN …

2026/9/25 22:58:20 阅读更多 →
OpenClaw-China-Docker微信官方插件接入教程:如何把AI助手装进微信聊天

OpenClaw-China-Docker微信官方插件接入教程:如何把AI助手装进微信聊天

OpenClaw-China-Docker微信官方插件接入教程:如何把AI助手装进微信聊天 【免费下载链接】openclaw-china-docker OpenClaw 的中国IM平台整合Docker版本,预装并配置了飞书、钉钉、QQ机器人、企业微信等主流中国IM软件的插件,让您可以快速部署一…

2026/9/25 22:58:20 阅读更多 →
LDA主题模型关键词提取实战:从分词到gensim调参与避坑指南

LDA主题模型关键词提取实战:从分词到gensim调参与避坑指南

简介:面向文本挖掘与自然语言处理学习者打造的LDA主题建模资源包,聚焦利用潜在狄利克雷分配模型完成关键词与主题词提取,适合需要理解主题模型原理、动手实现文本分析的初学者及研究者,也可应用于新闻聚类、舆情分析与文档主题挖掘…

2026/9/25 22:58:20 阅读更多 →
Nasiko A2A Registry 设计解析:把“Agent 发现“本身做成一个 A2A Agent

Nasiko A2A Registry 设计解析:把“Agent 发现“本身做成一个 A2A Agent

【免费下载链接】nasiko Developer Control Plane for your AI Agents 项目地址: https://gitcode.com/gh_mirrors/na/nasiko 点击查看 免费下载 在 Nasiko(Developer Control Plane for your AI Agents)中,Agent 之间的通信、发…

2026/9/25 22:57:20 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/25 19:27:26 阅读更多 →