004.Agentic Design Patterns | 以ADK为例

Agent 开发流程,本质上是将用户的原始意图转化为机器可执行的上下文,并送入 Transformer 模型进行处理。这个过程不是一次性完成的,而是通过“感知 → 规划 → 行动”的循环迭代实现的:​

  1. 分解请求:将用户的复杂请求拆解为可执行的子任务,明确每个子任务的目标和边界​
  2. 构建上下文:Agent 主动从 Web、知识库、API 等外部数据源获取实时和历史信息,将非结构化数据进行提炼和格式化,形成对 LLM 高效可读的输入​
  3. 模型推理:​
    1. 将系统指令、工具定义以及构建好的上下文作为完整的 Prompt 块输入 Transformer Decoder​
    2. Decoder 根据已有 token(上下文)预测下一个最可能的 token;​
    3. 这一 token-by-token 的生成过程,就是 Agent 在「思考、规划、执行」的连续推理。​
  4. 执行与反馈:将模型输出转化为具体行动(调用工具、发请求等),并根据执行结果更新上下文,进入下一轮推理。​

可以把它理解为:​

Agent 是一个围绕 Transformer Decoder 构建的循环系统。​

每次循环中,Decoder 都在根据当前世界状态(上下文)一步步生成下一个最优行动,从而实现“思考—行动—反馈”的动态优化。​

Function call​

工具调用是 Agent 执行“行动”的关键,它将 LLM 的决策转化为对外部资源的实际操作:​

User → Agent (LLM) → Runtime(执行工具) → Agent(继续生成回答)​

MCP ​

MCP 是一种让 LLM Agent 通过标准协议安全地访问外部工具和数据源的中间层。 它把模型与外部系统解耦,让 Agent 能像调用本地函数一样使用外部资源

Pasted image 20260402172105.png

MCP Client 与 MCP Server 的通讯过程​

本地 Function call 与 MCP 的主要区别​

特性 本地 Function Call(Function Calling/Tool Use) 模型上下文协议(MCP)
集成方式 定制化、紧密耦合。每个 LLM 或应用都需要直接学习和调用特定的函数签名。 标准化、松散耦合。通过通用协议进行通信,类似于 Web API。
可扩展性 受限。增加新工具或修改现有工具通常需要更新和重新部署 LLM 应用代码。 高。Agent 可以动态发现新能力,而无需重新部署或修改其核心逻辑。
互操作性 低。不同 LLM 或平台之间的工具定义难以共享和重用。 高。促进可互操作和可重用组件生态系统。
适用场景 具有固定、有限数量预定义函数的简单应用程序。 需要与各种不断发展的外部工具、数据源和 API 交互的复杂、可扩展或企业级 Agent 系统。

A2A​

A 2 A 是一个标准化的 Agent 间通信协议,客户端通过获取 AgentCard → 构造请求 → 发送消息 → 接收响应,实现跨进程、跨语言的 Agent 调用

Pasted image 20260402172310.png

Pasted image 20260402172339.png

参考来源:Agentic Design Patterns