---
# System prepended metadata

title: ADK/A2A/MCP 實戰解析

---

# ADK/A2A/MCP 實戰解析


> 📌 Slido 📌
> https://app.sli.do/event/i9kcwyy7MT3rLWrxn5jXpC


> 共筆請從這裡開始


An AI agent use models to act independently to achieve a goal
藉由模型給予獨立能力並且完成特定目標

## Agent組成
一個Runtime

## Meet InstaVibe

https://codelabs.developers.google.com/instavibe-adk-multi-agents/
https://github.com/edwardchuang/instavibe-bootstrap/tree/adk-1.2.1-a2a-0.2.7


## InstaVibe的功能
如果參加整個workshop你就可以獲得到後面的三個功能包含
- Agent on sreating posts
- Agent on creating events
- Agent on curating events on selected persons depend on their interests and post artical


## Agent Development Kit
- Open source
- Multi-agent support built-in
- Local dev UI
- Any generative AI model is supported
- Call remote agents and tools via MCP
- Python, Java, Go SDKs

### 工具的使用
讓Agent可以延伸它的功能。所以後面接的是模型和工具
1. 指定模型
2. 因為要考試所以你要有筆/ 橡皮擦等如考試的工具
3. 要回到Agent要去定義你要的system instructions 類似你的system prompt
4. 因為每個工具不知道要怎麼被呼叫，所以tools會回到模型去檢視是否有能力，這就稱作為Function call

### Tools的類型
1. Function tool: 例如像是骰子/ 剪刀石頭布，這樣的上述工具就有他運作的『規則』。也就是簡單說就是User自己打造的工具
2. 其他為內建的工具如: Google Search等等，所以你再使用方法只要去Import並且給予定義就可以使用
3. 第三方工具：Github，當你要repo或者你需要用你的身份去完成一些工作。同步如果你對於MCP server希望讓你的Clinets可以來呼叫的話，這對於ADK來說就是個工具，而代理人就是個工人。

MCP:在過去的時代需要使用API來作為程式和程式的溝通橋樑，現在則可以把要跟AI講的話透過MCP包起來。

## Agent Patterns
1. Single Agent: 定義功能給AI使用（？）
    - Pros: 很好開發、管理（針對有順序性/ 相依性）
    - Cons: 壞了就壞了
2. Multi-Agent: 把各個功能拆分成不同的Agent，由一個Agent呼叫底下的來做事情
這次利用電商的交易相關作為案例，如訂單課題/ 有效性/ 退款/ 時間性/ 判別執行任務。上述的每個Agent都可以拆掉獨立執行獨立製作
    - Pros: 彈性高/ 針對流程複雜性包含迴圈架構的深度邏輯可避免
    - Cons: 延遲/ 數據的疊加
3. Multi-Agent(Sequential, Workflow)：具備流程含有前後關係的Agent
    - Pros: 因為已具備定義好的Workflow而可以避免錯亂
    - Cons: 如果指令沒下清楚，他可能會直接跳過某些步驟
4. Multi-Agent(Sequential with Parallel, Workflow)：平行處理
    - Pros: 
    - Cons: Debug比較複雜
5. Multi-Agent Custom Control Flow： 有限制的執行次數
由Status去檢查是否達到Custom的停止條件
實務上可以再進行更細緻的控制，透過CallBack Function在每個作業的執行之前，來呼叫。
- Pros: 比較彈性/ 面對到極度複雜的專案組合仍舊執行
- Cons: 複雜
- 補充：上午的議程，有建議透過 Callback Function 進行輸入參數檢查避免惡意輸入

### A2A
可以透過A2A protocol去溝通和串接
他其實就是一個json file(?)
透過 Agnet Card 交換能力資訊

## When to use Agent
- Flexible：彈性
- Easy to Prototype
- Predictability