ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
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
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
This commit is contained in:
+378
@@ -0,0 +1,378 @@
|
||||
# Cursor Chat: ai-agent-book
|
||||
|
||||
## Metadata
|
||||
- **Project**: ai-agent-book
|
||||
- **Path**: `/Users/boj`
|
||||
- **Date**: 2025-10-09 22:39:17
|
||||
- **Session ID**: `48161f6b-8f06-476b-8164-312ed3c86122`
|
||||
|
||||
## Conversation
|
||||
|
||||
### 👤 You
|
||||
|
||||
**具体的使用示例**。抽象的参数描述(如"`pattern`:正则表达式模式")远不如具体例子有效(如"`pattern`:支持完整的正则语法,例如 `'log.*Error'`、`'function\\s+\\w+'`;注意特殊字符需要转义")。示例不仅展示了语法,还暗示了工具的典型使用场景。
|
||||
|
||||
这一块需要补充,使用 RFC3339 和 E.164 格式这些标准名词时,都应该附上例子。有人可能说,我问 LLM 这些名词是啥意思,它都说的很清楚啊。这是因为此时 LLM 注意力集中在这一个问题上。但一个 agent 一步要读很多 instruction,从历史 trajectory 中大海捞针确认信息,有很多事情要做,确认工具参数的格式只占很小一部分,就比较容易出错了。
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
我来看看第4章的相关内容,了解一下需要补充的具体位置。
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
我理解了!您提出的建议非常重要。当工具描述中使用 RFC3339、E.164 这类标准格式名词时,应该附上具体例子。这确实能大幅降低 Agent 在多任务处理时的认知负担。
|
||||
|
||||
让我在第55行的"具体的使用示例"这一段中,补充关于标准格式的说明和例子:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
完成了!我在第55行"具体的使用示例"段落后面,补充了关于标准格式名词的说明。这个补充包括:
|
||||
|
||||
1. **解释重要性**:说明了为什么在 Agent 执行复杂任务时,标准格式名词需要具体例子(注意力分散的问题)
|
||||
|
||||
2. **RFC3339 时间格式示例**:
|
||||
- ❌ 错误写法:"`timestamp`:使用 RFC3339 格式"
|
||||
- ✅ 正确写法:"`timestamp`:时间戳,使用 RFC3339 格式,例如 `2024-03-15T14:30:00Z`(UTC时间) 或 `2024-03-15T14:30:00+08:00`(带时区)"
|
||||
|
||||
3. **E.164 电话号码格式示例**:
|
||||
- ❌ 错误写法:"`phone`:使用 E.164 格式"
|
||||
- ✅ 正确写法:"`phone`:电话号码,使用 E.164 格式(国家代码+号码,无空格或特殊字符),例如 `+861388888888`(中国) 或 `+12025551234`(美国)"
|
||||
|
||||
这个补充强调了您提出的核心观点:虽然 LLM 在专注于单一问题时能理解这些术语,但在 Agent 需要同时处理多个工具、从历史轨迹提取信息、权衡多个决策时,具体例子能够让 Agent 直接套用,大幅降低出错概率。
|
||||
|
||||
---
|
||||
|
||||
### 👤 You
|
||||
|
||||
复杂输出的智能解析 需要修改,去掉智能解析。这一节需要讲,如果工具输出结果超长,塞入 context 导致 context 爆炸,应该对工具输出结果只保留头尾的若干行,并把完整的执行结果保存到一个文件中,告诉模型如果要读取完整执行结果,访问这个文件。
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
我来查找"复杂输出的智能解析"这一节的内容:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在我来修改这一节,去掉智能解析,改为保存完整结果到文件的方案:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在还需要修改实验4.2的描述,去掉"智能总结"的提法:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
让我检查一下是否还有其他地方提到了"智能总结"或"智能解析"需要修改:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
找到了几处需要修改的地方。让我先修改第69行附近"长输出的智能处理"这一节:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
让我看看第94行实验4.1的完整描述:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
让我修改本章小结中的相关表述,使其更准确地反映修改后的内容:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
完成了主要修改!现在让我检查一下是否有任何linter错误:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
完美!所有修改已完成,没有linter错误。让我总结一下所做的修改:
|
||||
|
||||
## 修改总结
|
||||
|
||||
### 1. **补充了标准格式示例的重要性**(第55-59行)
|
||||
- 在"具体的使用示例"段落后,新增了关于RFC3339、E.164、ISO 8601等标准格式的说明
|
||||
- 强调了在Agent多任务处理时,具体例子能大幅降低认知负担
|
||||
- 提供了正确和错误写法的对比示例
|
||||
|
||||
### 2. **修改"复杂输出的智能解析"为"长输出的截断与持久化"**(第220-247行)
|
||||
- **去掉了**:调用LLM进行智能总结的方案
|
||||
- **改为**:头尾截断加文件持久化策略
|
||||
- 详细说明了实现策略:
|
||||
- 保留头部50-100行(开始信息、初始输出)
|
||||
- 保留尾部50-100行(最终错误、统计信息)
|
||||
- 在截断位置插入明确提示
|
||||
- 告诉模型如何访问完整文件
|
||||
- 提供了具体的测试输出示例
|
||||
|
||||
### 3. **更新了实验4.2的描述**(第276行)
|
||||
- 将"为虚拟终端的长输出添加智能总结功能"
|
||||
- 改为"为虚拟终端的长输出实现截断和持久化机制"
|
||||
|
||||
### 4. **更新了本章小结**(第1114-1115行)
|
||||
- 在感知工具总结中加入了"提供具体示例(特别是标准格式如RFC3339、E.164)"
|
||||
- 在执行工具总结中加入了"头尾截断加文件持久化策略,避免context爆炸"的描述
|
||||
|
||||
这些修改使得执行工具的长输出处理策略更加实用和高效,避免了调用额外LLM的成本,同时保持了感知工具仍可使用智能总结的灵活性。
|
||||
|
||||
---
|
||||
|
||||
### 👤 You
|
||||
|
||||
通知机制的多样性 需要跟 智能路由与主动性边界 合并,都使用 Samantha 的类比,但落脚点在目前 Agent 的消息发送渠道和用户召回。通知机制同时也是用户召回机制
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
我来查找"智能路由与主动性边界"这一节的位置:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
我来查找这两个小节的位置和内容:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在我来合并这两个小节,统一使用 Samantha 的类比,并强调通知机制同时也是用户召回机制:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
完美!现在让我检查一下是否有任何linter错误:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
完成了!我已经成功合并了"智能路由与主动性边界"和"通知机制的多样性"这两个小节。以下是修改的要点:
|
||||
|
||||
## 合并后的新小节:**智能路由与用户召回**
|
||||
|
||||
### 主要改进:
|
||||
|
||||
1. **统一使用 Samantha 的类比**
|
||||
- 以 Samantha 的渠道选择智慧作为开篇
|
||||
- 特别增加了 Samantha 主动"召回"Theodore 注意力的例子
|
||||
|
||||
2. **明确"通知即召回"的核心理念**
|
||||
- 开篇直接点出:"**Agent的响应不应该是单一渠道的,通知机制同时也是用户召回机制**"
|
||||
- 详细阐述了三种召回场景:
|
||||
- 长时间运行任务完成时的召回
|
||||
- 定期任务建立固定交互习惯
|
||||
- 流失用户的温和重连
|
||||
|
||||
3. **详细列举现代 Agent 的消息发送渠道**
|
||||
- 即时消息(Slack/Discord):工作进度更新
|
||||
- 邮件:详细报告和正式沟通
|
||||
- 短信:紧急提醒
|
||||
- 移动推送:进度通知和用户召回
|
||||
- 电话/语音:极紧急情况
|
||||
|
||||
4. **提供"智能路由而非渠道轰炸"的设计原则**
|
||||
- 基于紧急程度
|
||||
- 基于用户状态
|
||||
- 基于内容性质
|
||||
- 基于用户偏好
|
||||
- 避免重复打扰
|
||||
|
||||
5. **落地到具体工具实现**
|
||||
- 提到了 `send_message`、`send_email`、`send_sms`、`send_push_notification` 等具体的用户沟通工具
|
||||
|
||||
这个合并后的小节既保留了 Samantha 的优雅类比,又提供了具体可落地的设计指导,同时强调了通知机制在用户召回中的关键作用。
|
||||
|
||||
---
|
||||
|
||||
### 👤 You
|
||||
|
||||
多渠道来源的事件 和 多方通信与上下文管理 重复,需要合并。妻Catherine的邮件 是多方通信
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
我来查看"多方通信与上下文管理"这一小节的内容:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在我来合并这两个小节,将Catherine的邮件作为多方通信的统一例子:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在我需要删除后面重复的"多方通信与上下文管理"小节的内容,并将其中独特的部分(关于多线程上下文管理和n8n触发器)整合到新合并的小节中:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在我需要将第419-427行的重复小节删除,并把其中独特的内容(同时处理两个信息流的例子和n8n触发器生态)整合到前面的小节中:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在删除后面重复的"多方通信与上下文管理"小节:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在检查一下是否有任何linter错误:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
完美!合并完成,没有linter错误。让我总结一下这次的修改:
|
||||
|
||||
## 修改总结
|
||||
|
||||
### 合并了两个重复的小节
|
||||
|
||||
**原来的结构:**
|
||||
1. "多渠道来源的事件"小节 - 讲不同渠道和来源的输入,用Catherine邮件举例
|
||||
2. "多方通信与上下文管理"小节 - 讲Agent要帮助用户与他人沟通
|
||||
|
||||
**合并后的新结构:**
|
||||
|
||||
#### 1. **多方通信与上下文管理**(第400-413行)
|
||||
- 开篇明确:Agent的沟通对象不只是用户一个人
|
||||
- 以Catherine邮件为核心例子,说明这是**多方通信**(第三方发给用户的消息)
|
||||
- 明确Agent需要将输入理解为**结构化事件**,包含四个维度:
|
||||
- 来源(谁)
|
||||
- 渠道(通过什么方式)
|
||||
- 内容(说了什么)
|
||||
- 上下文(在什么背景下)
|
||||
- 增加了Theodore与Catherine会面时,Samantha同时处理两个信息流的例子
|
||||
- 以n8n工作流平台的触发器生态收尾,说明事件源多样性的重要性
|
||||
|
||||
#### 2. **多渠道的用户沟通与召回**(第415-421行)
|
||||
- 保持不变,专注于Agent如何主动通知用户和召回用户
|
||||
|
||||
### 关键改进
|
||||
|
||||
1. **逻辑更清晰**:Catherine的邮件现在被正确归类为"多方通信"的例子,而不是"多渠道来源"
|
||||
2. **消除重复**:删除了重复的小节标题和内容
|
||||
3. **结构更连贯**:从"多方通信的复杂性"自然过渡到"结构化事件的四个维度",再到"多线程上下文管理"
|
||||
4. **保留了所有重要内容**:包括两个Samantha的例子(地铁上的邮件、会面时的双线程)和n8n触发器生态的类比
|
||||
|
||||
---
|
||||
|
||||
### 👤 You
|
||||
|
||||
在协作工具一节,把本来属于 ”事件驱动的异步 Agent“ 的 “Agent 间的异步协作” 一节挪过来,并加以改写。
|
||||
|
||||
“上下文的共享与隔离” 需要改成 “Sub-Agent 上下文的准备”,并增加一种机制:使用 LLM 生成新的上下文,基于业务规则 prompt 和主 agent 的原有上下文,生成结构化的 Sub-Agent 上下文。这种方式效果最好,开销也最高。
|
||||
|
||||
---
|
||||
|
||||
### 👤 You
|
||||
|
||||
在协作工具一节,把本来属于 ”事件驱动的异步 Agent“ 的 “Agent 间的异步协作” 一节挪过来,并加以改写。
|
||||
|
||||
“上下文的共享与隔离” 需要改成 “Sub-Agent 上下文的准备”,并增加一种机制:使用 LLM 生成新的上下文,基于业务规则 prompt 和主 agent 的原有上下文,生成结构化的 Sub-Agent 上下文。这种方式效果最好,开销也最高。
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
我来先找到这些小节的位置:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在我来操作。首先,我会在"Sub-Agent 提示词的关键要素"之后插入改写后的"Agent 间协作"内容,并修改"上下文的共享与隔离":
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在我需要删除原来位置的"Agent 间的异步协作"这一节。让我先确认它在新文件中的位置:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
现在我删除原位置的"Agent 间的异步协作"这一整节(第655-705行):
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
完成了!让我检查一下是否有任何linter错误:
|
||||
|
||||
---
|
||||
|
||||
### 🤖 Cursor Assistant
|
||||
|
||||
完美!所有修改完成,没有linter错误。让我总结一下这次的重要修改:
|
||||
|
||||
## 修改总结
|
||||
|
||||
### 1. **重组了"Agent 间的异步协作"内容**
|
||||
- **从**:原来在"事件驱动的异步Agent"一节(第655-705行)
|
||||
- **到**:挪到"协作工具"一节,作为Sub-Agent相关内容的补充
|
||||
|
||||
### 2. **改写了"上下文的共享与隔离"为"Sub-Agent 上下文的准备"**(第334-366行)
|
||||
新增了四种上下文传递策略,从简单到复杂:
|
||||
|
||||
- **最小化传递**:只传递调用参数,最简单但可能信息不足
|
||||
- **手动筛选传递**:主Agent显式指定要共享的上下文
|
||||
- **自动裁剪传递**:系统层面的规则自动筛选,平衡效率和信息充分性
|
||||
- **LLM 生成上下文**(新增):效果最好但开销最高
|
||||
- 调用额外的LLM
|
||||
- 输入包括:主Agent轨迹、业务规则prompt、Sub-Agent类型和任务
|
||||
- 生成结构化的、针对性的上下文对象
|
||||
- 包含示例JSON展示生成的上下文结构
|
||||
- 可配置隐私保护、信息压缩、相关性判断等规则
|
||||
|
||||
### 3. **新增了"Agent 间的协作机制"小节**(第368-378行)
|
||||
简化并聚焦于协作模式,包含:
|
||||
- **同步调用**:简单但可能阻塞
|
||||
- **异步调用**:高效但复杂
|
||||
- **流式协作**:渐进式展示结果
|
||||
- **多轮交互**:对话式协作
|
||||
|
||||
### 4. **删除了原位置的重复内容**
|
||||
- 移除了Actor模型的详细介绍
|
||||
- 移除了Agent调用生命周期的详细步骤
|
||||
- 将内容精简并聚焦于实用的协作策略
|
||||
|
||||
### 关键改进
|
||||
|
||||
1. **逻辑更清晰**:协作相关的内容现在集中在"协作工具"一节,而不是分散在异步架构部分
|
||||
2. **新增LLM生成上下文机制**:这是用户特别要求的,提供了最智能但开销最高的解决方案
|
||||
3. **更实用的分类**:从"完全隔离/部分共享/完全共享"改为更具操作性的四种策略
|
||||
4. **去技术化**:移除了Actor模型等过于技术性的内容,更关注实际应用场景
|
||||
|
||||
---
|
||||
|
||||
|
||||
*Exported from [Cursor View](https://github.com/saharmor/cursor-view)*
|
||||
Reference in New Issue
Block a user