vault backup: 2026-04-29 19:44:12
This commit is contained in:
@@ -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 乐高模型 |
|
||||
|
||||
**简单来说:**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user