Jelajahi Sumber

fix chapter9

jjyaoao 7 bulan lalu
induk
melakukan
2eaa67806d
3 mengubah file dengan 9 tambahan dan 83 penghapusan
  1. 1 1
      README.md
  2. 1 1
      docs/README.md
  3. 7 81
      docs/chapter9/第九章 上下文工程.md

+ 1 - 1
README.md

@@ -119,7 +119,7 @@
 
 ### 核心贡献者
 - [陈思州-项目负责人](https://github.com/jjyaoao) (Datawhale成员, 全文写作和校对)
-- [孙韬-项目负责人](https://github.com/fengju0213) (Datawhale成员, 第九\十六章内容和全文校对)  
+- [孙韬-项目负责人](https://github.com/fengju0213) (Datawhale成员, 第九章内容和校对)  
 - [姜舒凡-项目负责人](https://github.com/Tsumugii24)(Datawhale成员, 章节习题设计和校对)
 - [黄佩林-Datawhale意向成员](https://github.com/HeteroCat) (Agent开发工程师, 第五章内容贡献者)
 - [曾鑫民-Agent工程师](https://github.com/fancyboi999) (牛客科技, 第十四章案例开发)

+ 1 - 1
docs/README.md

@@ -115,7 +115,7 @@
 
 ### 核心贡献者
 - [陈思州-项目负责人](https://github.com/jjyaoao) (Datawhale成员, 全文写作和校对)
-- [孙韬-项目负责人](https://github.com/fengju0213) (Datawhale成员, 第九\十六章内容和全文校对)  
+- [孙韬-项目负责人](https://github.com/fengju0213) (Datawhale成员, 第九章内容和校对)  
 - [姜舒凡-项目负责人](https://github.com/Tsumugii24)(Datawhale成员, 章节习题设计和校对)
 - [黄佩林-Datawhale意向成员](https://github.com/HeteroCat) (Agent开发工程师, 第五章内容贡献者)
 - [曾鑫民-Agent工程师](https://github.com/fancyboi999) (牛客科技, 第十四章案例开发)

+ 7 - 81
docs/chapter9/第九章 上下文工程.md

@@ -2038,43 +2038,13 @@ context = context_builder.build(
 
 ### 9.6.1 场景设定与需求分析
 
-(1)业务场景
+<strong>业务场景</strong>
 
-假设我们正在维护一个中型 Python Web 应用,代码库包含:
+假设我们正在维护一个中型 Python Web 应用,这个代码库包含约 50 个 Python 文件,使用 Flask 框架构建,涵盖数据模型、业务逻辑、API 接口等多个模块,同时存在一些技术债务需要逐步清理。在这样的场景下,我们需要一个智能助手来帮助我们探索代码库,理解项目结构、依赖关系和代码风格;识别代码中的问题,比如代码重复、复杂度过高、缺少测试等;追踪任务进度,记录待办事项、已完成工作和遇到的阻塞;并基于历史上下文提供连贯的重构建议。
 
-- 约 50 个 Python 文件
-- 使用 Flask 框架
-- 包含数据模型、业务逻辑、API 接口等模块
-- 存在一些技术债务需要逐步清理
+<strong>挑战与解决方案</strong>
 
-我们需要一个智能助手来:
-
-- <strong>探索代码库</strong>:理解项目结构、依赖关系、代码风格
-- <strong>识别问题</strong>:发现代码重复、复杂度高、缺少测试等问题
-- <strong>追踪任务</strong>:记录待办事项、已完成工作、遇到的阻塞
-- <strong>提供建议</strong>:基于历史上下文,提供连贯的重构建议
-
-(2)挑战与解决方案
-
-这个场景面临几个典型的长程任务挑战:
-
-<strong>挑战1:信息量超出上下文窗口</strong>
-
-整个代码库可能包含数万行代码,无法一次性放入上下文窗口。
-
-<strong>解决方案</strong>:使用 TerminalTool 进行即时、按需的代码探索,只在需要时查看具体文件。
-
-<strong>挑战2:跨会话的状态管理</strong>
-
-重构任务可能持续数天,需要跨多个会话保持进度。
-
-<strong>解决方案</strong>:使用 NoteTool 记录阶段性进展、待办事项和关键决策。
-
-<strong>挑战3:上下文质量与相关性</strong>
-
-每次对话需要回顾相关的历史信息,但不能被无关信息淹没。
-
-<strong>解决方案</strong>:使用 ContextBuilder 智能筛选和组织上下文,确保高信号密度。
+这个场景面临几个典型的长程任务挑战。首先是信息量超出上下文窗口的问题,整个代码库可能包含数万行代码,无法一次性放入上下文窗口,我们通过使用 TerminalTool 进行即时、按需的代码探索来解决这个问题,只在需要时查看具体文件。其次是跨会话的状态管理挑战,重构任务可能持续数天,需要跨多个会话保持进度,我们使用 NoteTool 记录阶段性进展、待办事项和关键决策来应对。最后是上下文质量与相关性的问题,每次对话需要回顾相关的历史信息,但不能被无关信息淹没,我们通过 ContextBuilder 智能筛选和组织上下文,确保高信号密度。
 
 ### 9.6.2 系统架构设计
 
@@ -2769,55 +2739,11 @@ print(json.dumps(report, indent=2, ensure_ascii=False))
 
 ### 9.6.5 运行效果分析
 
-通过这个完整的案例,我们可以看到长程智能体的几个关键特性:
-
-(1)跨会话的连贯性
-
-智能体通过 NoteTool 保持了跨多天、多个会话的任务连贯性:
-
-- 第一天探索的问题,在第二天分析时被自动考虑
-- 第三天规划时,能够综合前两天的所有发现
-- 一周后检查时,完整的历史都被保留
-
-(2)智能的上下文管理
-
-ContextBuilder 确保每次对话都有高质量的上下文:
-
-- 自动汇集相关笔记(特别是 blocker 类型)
-- 根据对话模式动态调整预处理策略
-- 在 token 预算内选择最相关的信息
-
-(3)即时的文件系统访问
-
-TerminalTool 支持灵活的代码探索:
-
-- 无需预先索引整个代码库
-- 可以即时查看具体文件内容
-- 支持复杂的文本处理(grep, awk等)
-
-(4)自动化的知识管理
-
-系统自动化地管理发现的知识:
-
-- 发现问题时自动创建 blocker 笔记
-- 讨论计划时自动创建 action 笔记
-- 关键信息自动存储到记忆系统
-
-(5)人机协作
-
-这个系统支持灵活的人机协作模式:
-
-- 智能体可以自动化地完成探索和分析
-- 人类可以通过笔记系统进行干预和指导
-- 支持手动创建详细的计划笔记
+通过这个完整的案例,我们可以看到长程智能体的几个关键特性。首先是跨会话的连贯性,智能体通过 NoteTool 保持了跨多天、多个会话的任务连贯性,第一天探索的问题在第二天分析时被自动考虑,第三天规划时能够综合前两天的所有发现,一周后检查时完整的历史都被保留。其次是智能的上下文管理,ContextBuilder 确保每次对话都有高质量的上下文,自动汇集相关笔记(特别是 blocker 类型),根据对话模式动态调整预处理策略,在 token 预算内选择最相关的信息。
 
-这个基础框架可以进一步扩展:
+第三个特性是即时的文件系统访问,TerminalTool 支持灵活的代码探索,无需预先索引整个代码库,可以即时查看具体文件内容,支持复杂的文本处理(grep、awk等)。第四是自动化的知识管理,系统自动化地管理发现的知识,发现问题时自动创建 blocker 笔记,讨论计划时自动创建 action 笔记,关键信息自动存储到记忆系统。最后是人机协作,这个系统支持灵活的人机协作模式,智能体可以自动化地完成探索和分析,人类可以通过笔记系统进行干预和指导,支持手动创建详细的计划笔记。
 
-- <strong>集成 RAGTool</strong>:为代码库建立向量索引,结合语义检索
-- <strong>多智能体协作</strong>:拆分为专门的探索者、分析者、规划者
-- <strong>自动化测试</strong>:集成测试工具,自动验证重构结果
-- <strong>版本控制集成</strong>:通过 TerminalTool 执行 git 命令,追踪代码变更
-- <strong>可视化界面</strong>:使用 Gradio/Streamlit 构建 Web 界面
+这个基础框架可以进一步扩展,比如集成 RAGTool 为代码库建立向量索引结合语义检索,拆分为专门的探索者、分析者、规划者实现多智能体协作,集成测试工具自动验证重构结果,通过 TerminalTool 执行 git 命令追踪代码变更,或者使用 Gradio/Streamlit 构建可视化界面。
 
 ## 9.7 本章总结