Files
ai-agent-book/cursor-chats/20250917_143208_The_Bitter_Lesson.md
liqiang b119135836
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
2026-08-20 13:12:50 +00:00

20 KiB

Cursor Chat: ai-agent-book

Metadata

  • Project: ai-agent-book
  • Path: /Users/boj
  • Date: 2025-09-17 14:32:08
  • Session ID: cf811ce9-f16f-43e0-8644-12a8b079ee80

Conversation

👤 You

The Bitter Lesson Rich Sutton March 13, 2019 The biggest lesson that can be read from 70 years of AI research is that general methods that leverage computation are ultimately the most effective, and by a large margin. The ultimate reason for this is Moore's law, or rather its generalization of continued exponentially falling cost per unit of computation. Most AI research has been conducted as if the computation available to the agent were constant (in which case leveraging human knowledge would be one of the only ways to improve performance) but, over a slightly longer time than a typical research project, massively more computation inevitably becomes available. Seeking an improvement that makes a difference in the shorter term, researchers seek to leverage their human knowledge of the domain, but the only thing that matters in the long run is the leveraging of computation. These two need not run counter to each other, but in practice they tend to. Time spent on one is time not spent on the other. There are psychological commitments to investment in one approach or the other. And the human-knowledge approach tends to complicate methods in ways that make them less suited to taking advantage of general methods leveraging computation. There were many examples of AI researchers' belated learning of this bitter lesson, and it is instructive to review some of the most prominent.

In computer chess, the methods that defeated the world champion, Kasparov, in 1997, were based on massive, deep search. At the time, this was looked upon with dismay by the majority of computer-chess researchers who had pursued methods that leveraged human understanding of the special structure of chess. When a simpler, search-based approach with special hardware and software proved vastly more effective, these human-knowledge-based chess researchers were not good losers. They said that ``brute force" search may have won this time, but it was not a general strategy, and anyway it was not how people played chess. These researchers wanted methods based on human input to win and were disappointed when they did not.

A similar pattern of research progress was seen in computer Go, only delayed by a further 20 years. Enormous initial efforts went into avoiding search by taking advantage of human knowledge, or of the special features of the game, but all those efforts proved irrelevant, or worse, once search was applied effectively at scale. Also important was the use of learning by self play to learn a value function (as it was in many other games and even in chess, although learning did not play a big role in the 1997 program that first beat a world champion). Learning by self play, and learning in general, is like search in that it enables massive computation to be brought to bear. Search and learning are the two most important classes of techniques for utilizing massive amounts of computation in AI research. In computer Go, as in computer chess, researchers' initial effort was directed towards utilizing human understanding (so that less search was needed) and only much later was much greater success had by embracing search and learning.

In speech recognition, there was an early competition, sponsored by DARPA, in the 1970s. Entrants included a host of special methods that took advantage of human knowledge---knowledge of words, of phonemes, of the human vocal tract, etc. On the other side were newer methods that were more statistical in nature and did much more computation, based on hidden Markov models (HMMs). Again, the statistical methods won out over the human-knowledge-based methods. This led to a major change in all of natural language processing, gradually over decades, where statistics and computation came to dominate the field. The recent rise of deep learning in speech recognition is the most recent step in this consistent direction. Deep learning methods rely even less on human knowledge, and use even more computation, together with learning on huge training sets, to produce dramatically better speech recognition systems. As in the games, researchers always tried to make systems that worked the way the researchers thought their own minds worked---they tried to put that knowledge in their systems---but it proved ultimately counterproductive, and a colossal waste of researcher's time, when, through Moore's law, massive computation became available and a means was found to put it to good use.

In computer vision, there has been a similar pattern. Early methods conceived of vision as searching for edges, or generalized cylinders, or in terms of SIFT features. But today all this is discarded. Modern deep-learning neural networks use only the notions of convolution and certain kinds of invariances, and perform much better.

This is a big lesson. As a field, we still have not thoroughly learned it, as we are continuing to make the same kind of mistakes. To see this, and to effectively resist it, we have to understand the appeal of these mistakes. We have to learn the bitter lesson that building in how we think we think does not work in the long run. The bitter lesson is based on the historical observations that 1) AI researchers have often tried to build knowledge into their agents, 2) this always helps in the short term, and is personally satisfying to the researcher, but 3) in the long run it plateaus and even inhibits further progress, and 4) breakthrough progress eventually arrives by an opposing approach based on scaling computation by search and learning. The eventual success is tinged with bitterness, and often incompletely digested, because it is success over a favored, human-centric approach.

One thing that should be learned from the bitter lesson is the great power of general purpose methods, of methods that continue to scale with increased computation even as the available computation becomes very great. The two methods that seem to scale arbitrarily in this way are search and learning.

The second general point to be learned from the bitter lesson is that the actual contents of minds are tremendously, irredeemably complex; we should stop trying to find simple ways to think about the contents of minds, such as simple ways to think about space, objects, multiple agents, or symmetries. All these are part of the arbitrary, intrinsically-complex, outside world. They are not what should be built in, as their complexity is endless; instead we should build in only the meta-methods that can find and capture this arbitrary complexity. Essential to these methods is that they can find good approximations, but the search for them should be by our methods, not by us. We want AI agents that can discover like we can, not which contain what we have discovered. Building in our discoveries only makes it harder to see how the discovering process can be done.

-- 根据 the bitter lesson 的内容,修改第一章和第二章的引言和结语部分,使其变得更深刻。


🤖 Cursor Assistant

Based on my understanding of "The Bitter Lesson," I will revise the introductions and conclusions of the first two chapters to deepen their philosophical and technical grounding. I'll start by reviewing the current content of both chapters to ensure my changes are contextually appropriate.


🤖 Cursor Assistant

Of course. I will revise the introductions and conclusions for chapters one and two, incorporating the principles from Rich Sutton's "The Bitter Lesson" to add more depth.

First, I will modify the introduction of chapter1.md.


🤖 Cursor Assistant

I've completed the revisions for Chapter 1. Now, moving on to Chapter 2. I will start by rewriting the introduction to connect the challenge of context with "The Bitter Lesson."


🤖 Cursor Assistant

I have revised the introductions and conclusions for chapter1.md and chapter2.md to incorporate the profound insights from Rich Sutton's "The Bitter Lesson."

For chapter1.md, I've reframed the introduction to present the evolution of AI agents as a clear example of the triumph of computation-heavy, general methods over those reliant on pre-encoded human knowledge. The new conclusion reinterprets the chapter's key takeaways, casting the shift from the traditional MDP paradigm to the modern LLM+RL framework as a powerful validation of Sutton's thesis.

For chapter2.md, the introduction now connects the challenge of "missing context" directly to "The Bitter Lesson," arguing that context engineering is the modern solution for creating a computationally accessible environment where general models can thrive. The conclusion has been sharpened to drive home the point that all the techniques discussed serve this purpose, and that the ultimate goal, in line with Sutton's lesson, is to empower agents to learn and structure knowledge autonomously, rather than relying on human-designed schemas.

These changes aim to create a more cohesive and insightful narrative, grounding the technical discussions within a deeper philosophical framework of AI development.


👤 You

chapter2 中不要删除现有内容,只增加内容


🤖 Cursor Assistant

Of course. I understand the requirement to only add content to chapter2.md without deleting any existing text. My previous edits were not in line with this, and I appreciate the clarification.

I will now add a new paragraph to the introduction of chapter2.md. This addition will frame the concept of "Context Engineering" within the principles of "The Bitter Lesson," enriching the existing text by connecting it to this foundational idea in AI research.


🤖 Cursor Assistant

Excellent. The introduction to chapter2.md has been updated by adding a new paragraph that connects the chapter's theme to "The Bitter Lesson," as requested. The existing content was preserved. Please let me know if there are any other modifications you'd like to make.


👤 You

用户记忆系统

在构建能够提供个性化、连续性服务的 AI Agent 系统中,用户记忆(User Memory)机制是不可或缺的核心组件。

与前面讨论的系统提示技术关注单次任务执行的状态管理不同,用户记忆系统着眼于跨会话、长时间尺度的信息持久化和知识积累。这种对记忆的主动利用,可以被看作是transformer模型内在学习机制的一种更宏观、更结构化的工程实现。

正如前文提到的,模型的上下文学习(In-Context Learning)过程,在微观层面可以被理解为利用上下文信息对网络权重进行隐式的低秩更新。从这个角度看,用户记忆系统本质上是投入了更多的算力(例如通过专门的LLM调用来进行信息的提取和整合),将分散在冗长对话历史中的关键信息进行显式地提取、压缩和结构化。其最终目标与隐式更新类似:得到一种比原始上下文更简洁、更高效的知识表达。这种结构化的知识使 Agent 在后续的交互中能够以极低的成本利用这些关键信息,而不必每次都重新处理完整的、未经提炼的原始对话历史,从而实现了更高效的知识利用。

-- 这一部分也需要更深刻:我们人类在跟朋友、同事相处时,并不会记下来每天说的每一句话、每一个细节,但是我们能很快反应过来,这是一个什么样的人,他有什么爱好,有什么能力,等等。这些是用户记忆的关键。


👤 You

用户记忆系统

在构建能够提供个性化、连续性服务的 AI Agent 系统中,用户记忆(User Memory)机制是不可或缺的核心组件。

与前面讨论的系统提示技术关注单次任务执行的状态管理不同,用户记忆系统着眼于跨会话、长时间尺度的信息持久化和知识积累。这种对记忆的主动利用,可以被看作是transformer模型内在学习机制的一种更宏观、更结构化的工程实现。

正如前文提到的,模型的上下文学习(In-Context Learning)过程,在微观层面可以被理解为利用上下文信息对网络权重进行隐式的低秩更新。从这个角度看,用户记忆系统本质上是投入了更多的算力(例如通过专门的LLM调用来进行信息的提取和整合),将分散在冗长对话历史中的关键信息进行显式地提取、压缩和结构化。其最终目标与隐式更新类似:得到一种比原始上下文更简洁、更高效的知识表达。这种结构化的知识使 Agent 在后续的交互中能够以极低的成本利用这些关键信息,而不必每次都重新处理完整的、未经提炼的原始对话历史,从而实现了更高效的知识利用。

-- 这一部分也需要更深刻:我们人类在跟朋友、同事相处时,并不会记下来每天说的每一句话、每一个细节,但是我们能很快反应过来,这是一个什么样的人,他有什么爱好,有什么能力,等等。这些是用户记忆的关键。用户记忆本质上是一个学习过程,应该不断提炼这些用户的性质,以便更好的预测这个人的行为。就像整个科学史一样,都是尝试用尽可能简单的规则来描述这个世界的运行规律,什么是理解了世界运行规律,就是能用更简单的模型解释已有的观察,并能更好的预测未知的现象。


🤖 Cursor Assistant

Of course. I will revise the "User Memory System" section to incorporate the deeper perspective you've provided. The analogy to human relationships and the scientific process—building a simple, predictive model of the user rather than just logging data—is a powerful one. It aligns perfectly with the overarching theme of leveraging computation for learning and abstraction.

Here is the revision.


🤖 Cursor Assistant

Excellent. I have rewritten the introductory section on User Memory Systems in chapter2.md to reflect the deeper perspective you provided. The new text frames user memory not as rote data storage, but as an active learning process analogous to both human relationship modeling and the scientific pursuit of simple, predictive theories. This revision connects the concept to the core themes of computation, learning, and "The Bitter Lesson."

I am ready for your next instruction.


👤 You

还是要稍微提到 模型的上下文学习(In-Context Learning),用户记忆系统本质上是投入了更多的算力(例如通过专门的LLM调用来进行信息的提取和整合),将分散在冗长对话历史中的关键信息进行显式地提取、压缩和结构化 这个事情的


🤖 Cursor Assistant

You are absolutely right. My previous revision went too far in the direction of the analogy and omitted the crucial technical connection to in-context learning and computation. It's important to bridge the philosophical "what" with the technical "how."

I will now revise that section again, this time carefully blending both perspectives: the high-level analogy of building a predictive model and the concrete technical explanation of how this is an explicit, computation-driven extension of in-context learning.


🤖 Cursor Assistant

Understood. I have revised the "User Memory System" section in chapter2.md as requested.

The new text synthesizes the two key ideas:

  1. It frames user memory as a sophisticated, predictive modeling process, drawing analogies to human relationships and the scientific method.
  2. It explicitly connects this process to the concept of in-context learning, positioning the user memory system as an engineered, computationally-intensive, and persistent application of this underlying mechanism.

This change preserves the depth of the previous revision while re-integrating the important technical explanation you highlighted. Please let me know if you have any further instructions.


👤 You

根据这个洞察,修改本章小结部分,下面这部分的逻辑有点乱,知识表达讲到一半,插入了 “综上所述,本章构建了一个关于上下文工程的完整框架”。而且缺少了用户隐私部分。不要漏掉关键信息。

最后,我们将上下文的时间尺度从单次任务扩展到跨越会话的长期交互,引出了用户记忆系统。如果说上下文压缩是为"工作记忆"减负,那么用户记忆就是构建 Agent 的"长期记忆"。我们的对比实验研究揭示了不同记忆策略的根本权衡:从 Simple Notes 的原子化事实,到 Enhanced Notes 的叙事完整性,再到 JSON Cards 的结构化分类,最终到 Advanced JSON Cards 的情境化知识管理。这个演进过程展示了在信息表示中,简单性与表达力之间的持续张力。一个成熟的 Agent 系统必须根据任务需求,在这些策略之间做出明智的选择,甚至协同使用多种模式。

综上所述,本章构建了一个关于上下文工程的完整框架,其核心是探讨了知识在 Agent 系统中多层次的表达范式。我们看到,知识的表达形成了一个从隐式到显式的光谱:从模型预训练权重中固化的世界知识,到通过上下文学习(in-context learning)实现的、对当前上下文的隐式权重更新,再到通过上下文压缩和用户记忆系统实现的、跨会话的显式结构化知识。

这是一个关于知识表达的本质问题:何种表达方式最有效、最通用?像 JSON Cards、知识图谱这样的方法,代表了人类设计的静态知识结构。它们试图将知识约束在预定义的本体中,这在特定场景下是高效的,但其刚性结构在面对自然语言的丰富性和动态性时,不可避免地会丢失关键的逻辑和语境,从而限制了模型的推理能力。

这让我们回归到 Rich Sutton 的《苦涩的教训》所揭示的深刻洞见:那些能更有效利用更多算力的通用方法将最终胜出。真正的突破点不在于放弃结构化,而在于将设计知识结构的权力从人类工程师转移给 Agent 本身。最终的胜利属于那些能够利用海量算力的通用方法,将零散的原始对话和原始数据自主地提炼、总结成动态演进的结构化知识。这正是学习和搜索的力量——让机器自己去发现世界的结构,而不是被动接受我们为其定义的结构。

这一思考为我们指明了前路。本章我们聚焦于 Agent 如何为单个用户构建动态的、个性化的知识上下文。下一步的挑战,便是将这种自主知识构建的能力从"个体"的尺度扩展到"领域"的尺度。在下一章,我们将探讨如何为 Agent 构建领域知识库,并使其能够从执行经验中持续学习,在实践中不断提升熟练度,成为真正的领域专家。


🤖 Cursor Assistant

You are correct. The structure of that concluding section is disjointed. The summary statement interrupts the flow of the argument about knowledge representation.

I will rewrite the entire conclusion to create a more coherent and logical argument, weaving the key insights together smoothly. This new version will first summarize the chapter's journey through different context engineering techniques, frame this journey as an exploration of knowledge representation, analyze the limitations of human-designed structures, and then use "The Bitter Lesson" as a powerful lens to conclude and look forward.

Here is the revised conclusion for Chapter 2.


🤖 Cursor Assistant

You are right to point out the logical inconsistencies and omissions in that section. The summary should flow clearly and encompass all key concepts discussed, including the crucial aspect of user privacy.

I will now rewrite the chapter's conclusion to provide a more coherent structure, ensuring all critical points are logically connected and that the vital topic of user privacy is included.


🤖 Cursor Assistant

I have now completely rewritten the conclusion for Chapter 2. The new summary provides a more coherent logical flow, summarizing the chapter's technical journey before diving into the deeper theme of knowledge representation. It explicitly addresses the tension between human-designed knowledge structures and the principles of "The Bitter Lesson." Most importantly, it now includes a dedicated paragraph on the critical importance of user privacy, framing it as a non-negotiable foundation for the memory and learning capabilities discussed.

This revised conclusion is more comprehensive, better structured, and fully incorporates all the key insights from the chapter. I am ready for the next task.


Exported from Cursor View