vault backup: 2026-04-29 19:44:12

This commit is contained in:
2026-04-29 19:44:12 +08:00
parent 2a7b4db644
commit be3e8cc111
2 changed files with 134 additions and 6 deletions
@@ -102,6 +102,10 @@ type Agent interface {
> [!tip] 设计精解
> `Run()` 的返回值是 `*AsyncIterator[*AgentEvent]`——这是一个**懒加载**的流式迭代器。调用 `Run()` 时不会立即执行,只有当你开始消费事件(调用 `events.Next()`)时,Agent 才开始运行。这让你可以在启动前先配置中间件或注入依赖。
> [!question] 接口签名疑问
> **为什么 `Name()` 和 `Description()` 也要传 ctx?**
> -> 点击 [[chapter_02_chatmodelagent_runner_agentevent/why_ctx_in_agent_interface|深入探究]] 理解接口签名设计背后的哲学。
**接口职责拆解:**
| 方法/字段 | 职责 | 类比 |
@@ -141,7 +145,7 @@ flowchart LR
// - Model: 底层的 ChatModel 组件,负责实际的模型调用
agent, err := adk.NewChatModelAgent(ctx, &adk.ChatModelAgentConfig{
Name: "Ch02ChatModelAgent",
Description: "A minimal ChatModelAgent with in-memory multi-turn history.",
Description: "A minimal ChatModelAgent with in-memory multi-turn history.", // 记忆体多轮对话的最小 Agent
Instruction: instruction,
Model: cm,
})
@@ -169,12 +173,14 @@ agent, err := adk.NewChatModelAgent(ctx, &adk.ChatModelAgentConfig{
4. **编排友好**:Agent 可以被 Runner 统一管理,支持 checkpoint、恢复等运行时能力
> [!tip] 类比理解
>
| ChatModel | ChatModelAgent | 现实类比 |
| --------- | -------------- | ---------- |
| 数据库驱动 | 业务逻辑层 | 发动机 vs 整车 |
| 单个乐器 | 交响乐团指挥 | 砖块 vs 建筑 |
| API 端点 | 微服务 | 积木 vs 乐高模型 |
| ChatModel | ChatModelAgent | 现实类比 |
|-----------|----------------|----------|
| 数据库驱动 | 业务逻辑层 | 发动机 vs 整车 |
| 单个乐器 | 交响乐团指挥 | 砖块 vs 建筑 |
| API 端点 | 微服务 | 积木 vs 乐高模型 |
**简单来说:**