Skip to content

AI Agent 面試準備:從工具呼叫、記憶到 MCP 與 Prompt Caching

2026年10月3日1 分鐘
TL;DRAgent 面試常被問到八題:Agent 迴圈、Structured Output、Function Calling、大量工具、記憶、設計考量、MCP 與 A2A、Prompt Caching。本篇用「概念 → 機制 → 面試怎麼答」串成一條線,並對照一手來源更正 2026-07 MCP 規格改版的時間點。

🌏 English version

面試問到 Agent,多半不是要你背框架名字,而是看你能不能把一條鏈講通:模型怎麼表達「我要呼叫工具」、輸出怎麼保證程式讀得懂、工具多到塞不進 prompt 怎麼辦、記憶放哪、成本怎麼壓。這篇是「AI Engineer 面試準備」系列的第 13 篇,把這些常見題目串成同一條脈絡:先講 Agent 迴圈,再拆 Structured Output 與 Function Calling,接著處理工具規模與記憶,最後收在 MCP、A2A 與 Prompt Caching。

每一節都是同一個結構:先講概念,再講機制或比較,最後給一段可以直接講出口的「面試怎麼答」。變動快的部分(MCP 規格、各家快取計費)都對照一手來源核對,並標明查詢時間。

Agent 是什麼:一個會自己決定下一步的迴圈

Anthropic 在 Building effective agents 裡把 agentic system 分成兩類。Workflow 是「LLMs and tools are orchestrated through predefined code paths」,agent 則是「LLMs dynamically direct their own processes and tool usage」。差別不在有沒有工具,而在下一步由誰決定:程式寫死,還是模型現場判斷。

這個「想一步、做一步、看結果、再想」的結構,源自 ReAct(Yao et al.,ICLR 2023)。把它畫成流程,就是面試白板上最常出現的那張圖:

flowchart TD
  Goal["使用者目標"] --> Reason["Reason:LLM 決定下一步"]
  Reason -->|"輸出 tool call"| Act["Act:runtime 驗證權限並執行工具"]
  Act --> Observe["Observe:工具結果放回 context"]
  Observe --> Check{"目標達成?"}
  Check -->|"否"| Reason
  Check -->|"是"| Answer["最終回答"]
  Act -.->|"失敗或超過步數"| Stop["停止條件:最大步數、人工確認、誠實回報"]

最容易講錯的一點是:LLM 自己不執行任何工具,它只產生一份結構化的呼叫指令,真正執行的是外面的 runtime。把迴圈寫成程式,大概是這樣:

messages = [{"role": "user", "content": goal}]
for step in range(MAX_STEPS):                    # 最大步數:防無限迴圈的第一道保險
    reply = llm.chat(messages, tools=tools)
    if not reply.tool_calls:                     # 模型不再要工具,視為完成
        return reply.text
    for call in reply.tool_calls:
        result = run_tool(call.name, call.arguments)    # 由 runtime 檢查權限後才執行
        messages.append(tool_message(call.id, result))  # 結果放回 context,進入下一輪
raise StepLimitExceeded

2025 年起各家都釋出了自己的 Agent SDK,面試只需要知道各自的定位與時間點:

框架時間定位
OpenAI Agents SDK2025-03Swarm 的後繼,核心原語是 handoff、guardrail 與 tracing
Google ADK2025-04開源的 multi-agent 開發套件,初期以 Python 為主
Claude Agent SDK2025-09由 Claude Code SDK 更名,附 subagent 與 hooks
LangGraph持續演進圖狀態機,節點、邊與 checkpoint,站內見LangGraph 導讀
CrewAI持續演進角色分工的團隊模型,站內見CrewAI 導讀

框架不是越多越好。Anthropic 同一篇文章建議先直接呼叫 LLM API,因為框架「often create extra layers of abstraction that can obscure the underlying prompts and responses」,除錯會變難。更完整的架構分類見站內的 AI Agent 架構模式指南,迴圈的幾種形狀見coding agent 的 agent loop。

面試怎麼答

Agent 是讓 LLM 在迴圈裡決定下一步的系統:推理、呼叫工具、讀結果、再推理,直到目標完成,概念上源自 ReAct。LLM 只產生結構化的呼叫指令,真正執行工具的是外部 runtime,所以權限、步數上限與錯誤處理都該放在 runtime。如果流程固定,用 workflow 就夠了,因為 agent 用延遲與成本換彈性。

Structured Output:在 token 層級擋掉不合法的輸出

LLM 預設吐的是自由文字,程式要的是能解析的 JSON。解法有三層,可靠度依序提高:

做法怎麼運作限制
Prompt 要求 JSON,失敗就重試純靠指令與重試迴圈沒有保證,重試會拉高延遲與成本
微調模型,讓它「習慣」輸出格式訓練時大量看過目標格式機率性,仍可能壞掉
約束解碼(constrained decoding)解碼時依 schema 排除不合法 token需要文法引擎與推論框架的支援

約束解碼的核心很短:用有限狀態機(FSM)或上下文無關文法(CFG)追蹤「目前走到 JSON 的哪個位置」,算出下一個合法的 token 集合,其餘全部遮掉。Outlines 的論文描述的就是以 FSM 為基礎的做法,微軟的 guidance 則是另一個實作。

# 約束解碼的核心:每一步先算出「目前合法的 token」,其餘的 logits 設為負無窮
allowed = grammar_state.allowed_tokens()    # 由 FSM 或 CFG 目前的狀態算出
logits[~allowed] = float("-inf")
next_token = sample(softmax(logits))
grammar_state.advance(next_token)           # 狀態往前推進一格

例如 schema 要求 {"name": string, "age": integer},當輸出走到 "age": 之後,合法的下一個 token 只剩數字開頭,引號與英文字母的 logits 都被壓成負無窮,模型想寫也寫不出來。

業界標準早已從舊的 JSON mode 轉到 strict JSON Schema。OpenAI 在 2024-08 的公告公布內部評測:gpt-4o-2024-08-06 搭配 Structured Outputs,在複雜 JSON schema 上拿到 100%,gpt-4-0613 則低於 40%。但這個數字有兩個但書:它是廠商自己的內部評測,而且保證的只是「格式合法」。欄位填的值對不對、有沒有編造,約束解碼管不到,所以仍要做語意驗證。

Structured Output 與下一節的 Function Calling 其實是同一件事的兩面:工具參數本質上也是一份要符合 schema 的結構化輸出。

面試怎麼答

原理是約束解碼:解碼的每一步根據 schema 與已生成的內容,用 FSM 或 CFG 算出合法 token,把其餘 token 的 logits 設成負無窮,所以格式在生成階段就被保證。它比「prompt 要求 JSON 加重試」可靠得多。要補一句:strict 只保證格式合法,不保證內容正確,語意仍要驗證。

Function Calling:模型表達意圖,應用程式負責執行

Function Calling(也叫 tool use)是讓模型在對話中表達「我想呼叫某個函式」的能力。依 Anthropic 的 tool use 文件,client tool 的往返是這樣:Claude 回應 stop_reason: "tool_use" 與一或多個 tool_use 區塊,你的程式碼執行操作,再用 tool_result 把結果送回去。同一份文件也區分 server tool(如 web search),那類工具由供應商的基礎設施執行,你不必處理執行。

完整流程可以拆成六步:

  1. 開發者定義函式 schema:名稱、描述、參數的 JSON Schema。
  2. schema 隨請求送進模型,成為模型看得到的 context 的一部分。
  3. 使用者提問,模型判斷要直接回答,還是呼叫工具。
  4. 要呼叫時,模型輸出工具名稱與符合 schema 的參數,不輸出自然語言。
  5. 應用程式驗證參數、檢查權限、實際執行,並把結果以 tool result 送回。
  6. 模型讀完結果,決定再呼叫或給出最終回答。

為什麼模型做得到?學術上較早的工作有 Toolformer(讓模型自己學會何時呼叫 API)與 Gorilla(讓模型連接大量 API)。現在的商用模型則是在訓練階段就學過「判斷是否需要工具、挑選工具、產生符合 schema 的參數、整合工具結果」這套行為。各家內部怎麼編碼這些呼叫(例如特殊 token),屬於實作細節,面試講到「模型被訓練成輸出特定格式的呼叫」就夠了。

會不會呼叫錯?會。常見失敗是選錯工具、參數編造、或根本不呼叫。對策都在工程面:工具描述要寫清楚觸發條件(站內有為什麼 Agent 有工具卻不用的拆解)、參數用 strict schema 驗證、錯誤訊息要清楚回給模型讓它自我修正,高風險工具加上人工確認。

面試怎麼答

Function Calling 是模型表達「我要呼叫哪個函式、參數是什麼」的能力:開發者提供 schema,模型輸出結構化的呼叫,應用程式負責驗證與執行,再把結果送回模型。模型本身不執行任何東西。它會出錯,所以要靠清楚的描述、schema 驗證與錯誤回饋,高風險操作另外要有人工確認。

大量工具:別把它們全部塞進 prompt

工具從幾個變成幾百個,會同時撞上三個問題:context 被工具定義吃掉、模型選錯的機率上升、延遲與成本增加。學術界已有量化:RAG-MCP 在 MCP 壓力測試中,把工具選擇準確率從基準的 13.62% 提高到 43.13%,prompt token 也減少超過一半。站內幾百個工具怎麼選得準整理了更多崩塌曲線的實證。

解法的共同原則是「把工具發現與生成解耦」:不要一次給全部,先縮小範圍。

策略做法代價與限制
工具檢索對工具描述做 embedding,依 query 取 top-k 再放進 prompt檢索品質綁在描述品質上,工具到數千個時 retriever 也會失準
延遲載入Tool Search Tool:定義標 defer_loading: true,需要時才搜尋並展開要多一輪搜尋;是否保住快取要看供應商實作
階層與路由先由 router 分領域,再讓子 agent 只看該領域的工具路由本身會錯,多一層呼叫
精簡描述與命名壓縮描述、用一致的前綴命名空間描述太短會讓相近工具更難區分
Code Mode讓模型寫程式呼叫工具,定義只在 import 時進 context需要沙箱,見Code Mode 一文
Multi-agent不同 agent 各持一組工具,由 orchestrator 分派協調與成本變高,見編排模式

學術上另有兩條路線。ToolLLM 面對 16000 多個真實 API,靠檢索來挑工具。ToolkenGPT(NeurIPS 2023 oral)則把每個工具表示成一個特殊 token 的 embedding,讓工具像詞彙一樣被生成,不必把描述放進 prompt。

有一個容易被忽略的連動:工具定義是快取前綴的一部分。依 OpenAI 的 prompt caching 文件,改動工具的名稱、描述、schema 或順序,都會影響已快取的前綴。所以「動態載入」要設計成往後附加,而不是每輪改寫前面的工具清單。

面試怎麼答

核心是不要一次給全部工具。先用工具檢索或延遲載入,只把當輪相關的少數工具放進 prompt;工具太雜就用階層路由或拆給專職的子 agent。同時要把工具描述寫清楚,因為檢索和選擇都靠它。如果有 Prompt Caching,還要注意工具清單的順序必須穩定,避免前綴失效。

Agent 記憶:短期靠 context,長期靠外部儲存

「記憶」要先拆成兩層。短期記憶就是 context window 裡的訊息,問題是會滿:常見做法有滑動視窗、摘要壓縮與 compaction,站內有context 壓縮的設計比較。長期記憶放在 context 之外,依內容可再分三種:

類型存什麼常見實作風險
語意記憶事實與偏好向量資料庫、知識圖譜過期事實、互相矛盾
情節記憶過去發生的事件與互動對話歷史資料庫,依時間與相關度檢索檢索到不相關的舊事
程序記憶學到的做法與規則寫回 system prompt、規則檔或 skill錯誤經驗被固化

經典架構有三個值得講名字的參考。Generative Agents 提出「記憶流 + 反思 + 計畫」,agent 會把經歷存成記憶流,再定期把它們濃縮成較高階的反思。Reflexion 讓 agent 在任務失敗後用語言寫下反思,放進下一次嘗試的 context,不需要更新模型權重。MemoryBank 則專注在讓 LLM 具備長期記憶。

面試真正想聽的不是名詞,而是四個設計決定:什麼時候寫(每輪、任務結束、還是由模型自己決定)、怎麼讀(全量注入、依相關度檢索、還是讓模型用工具查)、怎麼更新與遺忘、誰能看到(跨使用者的隔離)。寫入閘門尤其重要,因為被污染的記憶會在之後每一次對話裡重複生效:

def maybe_remember(candidate: str, source: str) -> None:
    # 寫入前先過閘門:來源可信、不含指令、與既有記憶不衝突
    if source == "tool_output":          # 工具輸出不可信,不直接寫進長期記憶
        return
    if conflicts_with_existing(candidate):
        flag_for_review(candidate)       # 衝突時標記待審,不覆寫
        return
    memory_store.add(candidate, metadata={"source": source, "ts": now()})

站內有三篇可延伸:Agent Memory 系統講從唯讀 RAG 到可寫記憶的演化,四種記憶與六個設計軸講設計空間,記憶的攻擊面講為什麼寫入閘門不能省。

面試怎麼答

短期記憶就是 context window,用滑動視窗或摘要壓縮控制大小;長期記憶放外部儲存,依性質分成語意(事實,向量庫)、情節(過往事件)與程序(學到的規則)。設計時要決定何時寫入、怎麼檢索、如何更新與遺忘,並且在寫入前過濾不可信的來源,避免記憶被污染。Reflexion 與 Generative Agents 是這個領域常被引用的兩個參考架構。

設計 Agent 的關鍵考量:可靠、安全、成本、可觀測

這題沒有標準答案,高分的回答是有分類、有對策。可以用四個面向整理:

面向典型問題對策
可靠性幻覺導致錯誤行動、工具失敗後假裝成功、無限迴圈最大步數與迴圈偵測;失敗要重試、換方案或誠實回報;關鍵操作人工確認
安全prompt injection、權限過大最小權限、沙箱執行、把工具輸出視為不可信資料
成本與延遲每一步都是一次 LLM 呼叫,工具結果快速撐大 context能用 workflow 就不用 agent;壓縮 context;Prompt Caching
可觀測與評估出錯時不知道哪一步壞掉記錄每一步的推理、呼叫與結果;建評測集,分離 LLM 邏輯與工具執行邏輯

兩個底層觀念值得多講一句。第一,漸進式自主:低風險操作全自動,高風險操作需要人確認,不確定時主動詢問。第二,prompt injection 的根源是模型把指令和資料攤平在同一條 token 串流裡,無法在架構上區分,所以對策要放在權限與信任邊界,不能只靠「提醒模型小心」,詳見Agent 安全的同一條裂縫。可觀測性則見Agent 可觀測與失敗偵測。

背景閱讀可看 Lilian Weng 的 LLM Powered Autonomous Agents 與 Xi 等人的 agent 綜述。風險評估方面,Ruan 等人提出用語言模型模擬的沙箱來辨識 agent 的風險,不必真的執行危險工具。

面試怎麼答

可以從四個面向講:可靠性(最大步數、失敗時誠實回報、關鍵操作人工確認)、安全(最小權限、沙箱、把工具輸出當不可信資料)、成本延遲(優先用 workflow、壓縮 context、用 Prompt Caching)、可觀測與評估(每一步都記錄,建評測集)。核心原則是漸進式自主:風險越高,人介入越多。

MCP、Function Calling 與 A2A:三個不同層的東西

這三個詞常被混在一起,其實各管一層。Function Calling 是模型層的能力:模型怎麼表達「我要呼叫工具」。MCP(Model Context Protocol)是應用層的協定:agent 怎麼發現並呼叫工具,一個 MCP server 可以被任何支援 MCP 的 client 使用。A2A 也是應用層協定,但管的是 agent 與 agent 之間怎麼互相發現與協作。

flowchart LR
  LLM["LLM<br/>Function Calling:決定要呼叫哪個工具"] <--> Host["Agent host / MCP client"]
  Host -->|"MCP:tools/list、tools/call"| S1["MCP server:GitHub"]
  Host -->|"MCP"| S2["MCP server:資料庫"]
  Host <-->|"A2A:Agent Card、task"| Remote["另一個 agent:不同框架或廠商"]

它們是互補,不是替代。實際流程是:MCP client 用 MCP 協定向 server 取得工具清單(tools/list),把工具定義交給模型,模型用 Function Calling 的能力決定呼叫哪一個,client 再透過 MCP 把呼叫送到 server 執行並取回結果。站內MCP、A2A、ACP、Skills 的協定層比較有更完整的拆解,判準是「資料在呼叫之間會不會變」。

MCP 的時間線很容易講錯,這裡以官方來源為準(2026-10 查證):

時間事件
2024-11Anthropic 發布 MCP
2025-03規格 2025-03-26:Streamable HTTP 取代舊的 HTTP+SSE 傳輸,並加入 OAuth 2.1 授權框架;同月 OpenAI 宣布 Agents SDK 支援 MCP
2025-11規格 2025-11-25:授權流程中 client 必須實作 PKCE(S256)
2025-12Anthropic 將 MCP 捐給 Linux Foundation 旗下的 Agentic AI Foundation,共同創辦者為 Anthropic、Block 與 OpenAI
2026-07規格 2026-07-28:無狀態化,見下文

常見的錯誤,是把「Streamable HTTP 取代 SSE」和「OAuth 2.1」說成最新一版規格的改動,它們其實從 2025 年初就是基線。2026-07-28 版真正的重點是:

  • 移除 initialize 握手與 Mcp-Session-Id,版本與能力資訊改隨每個請求帶上,協定層不再保存 session。
  • 新增必填的 HTTP header(Mcp-Method、Mcp-Name),方便路由。
  • list 類回應可以帶快取提示。
  • 舊的 HTTP+SSE 傳輸正式 deprecated。
  • 授權端改以 Client ID Metadata Documents 取代動態 client 註冊。

既然協定層不再保存 session,應用層的狀態怎麼辦?官方給的替代做法是用明確的 handle(例如 basket_id),由模型在工具參數之間傳遞。官方也在同一篇公告裡說,TypeScript 與 Python SDK 各自的累計下載量都突破 10 億次。

A2A 的時間線較單純:

技術上,首發設計建立在 HTTP、SSE 與 JSON-RPC 上,用 Agent Card(一份 JSON)描述 agent 的能力與端點;v1.0 起把資料模型和協定綁定拆開,支援 JSON-RPC、gRPC 與 HTTP/REST,Agent Card 也可以簽章。

最後補一個不要神化 MCP 的觀點:本機開發場景裡,CLI 或直接打 API 常常比 MCP 更省 context,MCP 真正不可取代的是跨 agent 共用工具層,這個取捨在MCP vs CLI vs API有詳細討論,入門介紹見MCP 導讀。

面試怎麼答

Function Calling 是模型層的能力,讓模型表達要呼叫哪個函式;MCP 是應用層的標準協定,規範 agent 怎麼發現與呼叫工具,一個 server 各家 client 都能用;A2A 則規範 agent 與 agent 之間的發現與協作。三者互補:MCP 提供工具清單,模型用 Function Calling 決定呼叫哪個。要補一句 MCP 最新的方向是無狀態化,Streamable HTTP 與 OAuth 2.1 是 2025 年就有的基線。

Prompt Caching:Agent 每一步都在重送同一段前綴

Agent 每一步都要呼叫一次 LLM,而每次請求都得帶上 system prompt、工具定義、完整歷史與先前的工具結果。這些內容絕大部分和上一步一模一樣,卻要重新做一次 prefill。

Prompt Caching 的機制是把已處理過的前綴所對應的 KV 張量存起來。OpenAI 的文件寫得很直接:快取存的是 KV 張量,不是 token 本身;後續請求只要前綴相同並命中快取,就直接重用,只處理新增的部分。學術上,Prompt Cache(MLSys 2024)研究的是模組化的注意力重用,PagedAttention(SOSP 2023)則是這類 KV 管理在服務端的基礎。

關鍵規則是「前綴必須完全一致」。Anthropic 的文件寫明快取涵蓋整個 prompt,順序是 tools、system、messages,截至你標記的斷點為止。前綴中間任何一處改動,後面全部失效:

flowchart LR
  subgraph hit["前綴不變:後續請求命中"]
    direction LR
    A1["tools"] --> B1["system"] --> C1["歷史訊息"] --> D1["本輪新增<br/>需要重新處理"]
  end
  subgraph miss["中途改了 tools:改動點之後全部失效"]
    direction LR
    A2["tools(已改動)"] --> B2["system"] --> C2["歷史訊息"] --> D2["本輪新增"]
  end

用一個簡單的算術示意(不是實測)感受規模:前綴 2,000 tokens,跑 10 步,每步新增 200 tokens。完全不快取,累計要處理 31,000 tokens。快取全部命中時,新處理量只剩約 4,000 tokens,其餘以快取讀取價計費,不是免費。

各家的計費機制(2026-10 查詢,價格以官方頁為準):

供應商機制寫入讀取
Anthropiccache_control 標斷點,或用頂層欄位自動快取;預設 5 分鐘,每次命中刷新5 分鐘 TTL 為基礎價的 1.25 倍;1 小時 TTL 為 2 倍0.1 倍;Opus 5.5 為 0.05 倍,Fable 5.1 與 Mythos 5.1 為 0.025 倍
OpenAIGPT-5.5 以前只有隱式;GPT-5.6 起可用 prompt_cache_options.mode 選隱式或顯式,內容區塊以 prompt_cache_breakpoint 標斷點(每請求最多 4 個寫入點,TTL 目前僅 30 分鐘)GPT-5.6 起為 1.25 倍,更早型號無額外寫入費GPT-5.6 起 0.1 倍,更早型號依模型而定

OpenAI 從不收寫入費變成收 1.25 倍,這也解釋了顯式斷點的價值(這是依價格結構的推論):可以避免替不會被重用的尾段付寫入費。

實證方面,Don't Break the Cache 在 OpenAI、Anthropic、Google 三家、500 多個 agent session 上評估,發現 prompt caching 可降低 41–80% 的成本,首 token 延遲也會下降。更有用的發現是做法:把動態內容放在 system prompt 的尾端、排除動態的工具結果,比「整段全部快取」更穩。

對 Agent 設計者,這些規則可以直接變成動作:

  1. 穩定內容放前面,變動內容放後面:system prompt、工具定義在前,使用者資料與工具結果在後。
  2. 不要把時間戳記、請求 ID 這類每次都變的字串放進前綴。
  3. 工具清單固定順序;要動態載入工具時,往後附加而不是改寫前面。
  4. 注意會改寫前面歷史的操作:OpenAI 文件指出,compaction 會替換較早的對話內容,可能讓快取從第一個被改動的 token 起失效。
  5. 看 API 回報的用量欄位裡,快取讀寫的 token 數,確認命中率,不要憑感覺。

另外要分清楚層級:Generative Caching 與站內的語意快取是在應用層快取「相似的回應」,和供應商的前綴快取(快取 KV 狀態)不同層,可以疊加,但不要混為一談。Agent 專用的多層快取設計見ReAct Agent 的 Cache 設計。

面試怎麼答

Agent 每一步都重送 system prompt、工具定義與歷史,前綴大量重複。Prompt Caching 把前綴對應的 KV 張量存起來,前綴相同就跳過重複的 prefill,省延遲也省輸入成本。實務關鍵是前綴必須完全一致,所以穩定內容放前面、變動內容放後面,工具清單順序固定。計費上寫入要加價、讀取大幅折扣,精確倍率以官方頁為準。

整體來說

八個題目看起來分散,其實是同一條鏈:Agent 迴圈需要模型輸出能被程式解析的結構化呼叫(Structured Output 與 Function Calling);工具與記憶讓 context 越來越大,所以要做工具檢索、記憶分層與壓縮;MCP 與 A2A 把「連工具」與「連 agent」標準化;Prompt Caching 則把迴圈每一步的重複成本壓下來。面試時用這條鏈來組織答案,比逐題背誦更能展現你理解它們為什麼彼此相關。

準備時有三個容易失分的地方:把 strict 說成保證內容正確、把 2025 年就有的 MCP 變更講成 2026 年的事、以及背快取價格倍率而不標時間。這三個都是「查一下一手來源就能避開」的錯誤。

題庫裡常見的題目

以下題目整理自 7 個公開題庫(各題庫的比較見系列第 11 篇:AI Engineer 面試準備的 12 個題庫),只收跨題庫重複出現、而且能對應到本文某一節的題目。「獨立來源數」只代表題庫之間的重疊,不代表真實面試的頻率;其中 amitshekhar 與 pallavi 兩個題庫沒有題目來源,兩者有 26 題近乎逐字相同、疑似同一機構維護,合算成 1 個來源(KalyanKS 的兩個題庫同作者,也合算成 1 個),它們的公司標籤本文不採用。這裡只列題目與出處連結,沒有轉載答案。

連結代號:om=ombharatiya/AI-Engineer-Interview-Questions、aeg=alexeygrigorev/ai-engineering-field-guide、AIML=alirezadir/AIMLInterviews、amit=amitshekhariitbhu/ai-engineering-interview-questions、pal=pallavi-shekhar/ai-engineering-interview-questions-company-wise、ks=KalyanKS-NLP/LLM-Interview-Questions-and-Answers-Hub。

題目獨立來源數題庫連結本文對應段落
請說明核心 agent 迴圈:有哪些元件、停止條件是什麼?4om、aeg、AIML、amitAgent 是什麼:一個會自己決定下一步的迴圈
工作流程(workflow)與 agent 的差別是什麼?3om、aeg、amitAgent 是什麼:一個會自己決定下一步的迴圈
好的工具定義長什麼樣子?請給出具體的設計規則。3om、aeg、amit、palFunction Calling:模型表達意圖,應用程式負責執行
如何處理工具失敗、重試與冪等性?3aeg、pal、AIML設計 Agent 的關鍵考量:可靠、安全、成本、可觀測
你接了六個 MCP server,使用者還沒開口,上下文就已有 130 個工具定義、約 4.5 萬 token 的 schema。你怎麼處理?2om、amit、pal大量工具:別把它們全部塞進 prompt
你的 agent 需要跨對話記住事情。你會用向量庫還是滾動式摘要?請為你的選擇辯護。2om、palAgent 記憶:短期靠 context,長期靠外部儲存
解釋 ReAct(推理+行動)架構/提示技巧。2amit、pal、ksAgent 是什麼:一個會自己決定下一步的迴圈
哪些邏輯該放在編排器、哪些交給 LLM?2aeg、palAgent 是什麼:一個會自己決定下一步的迴圈
什麼是 Plan-and-Execute(先規劃再執行)的 Agent 模式?2amit、AIMLAgent 是什麼:一個會自己決定下一步的迴圈
函式/工具呼叫實際上從頭到尾是怎麼運作的?2om、amitFunction Calling:模型表達意圖,應用程式負責執行
什麼是 MCP(Model Context Protocol)?與傳統函式呼叫有何不同?2om、amit、palMCP、Function Calling 與 A2A:三個不同層的東西
什麼是 Agent Skills?什麼情況下該把知識包成 skill,而不是工具、MCP server 或檢索?2om、amitMCP、Function Calling 與 A2A:三個不同層的東西
什麼時候多 agent 勝過單 agent?什麼時候反而更糟?2om、amit、pal大量工具:別把它們全部塞進 prompt
agentic 系統需要哪些記憶類型(工作、情節、語意、程序性)?如何設計長期記憶而不被污染?2aeg、amitAgent 記憶:短期靠 context,長期靠外部儲存
使用工具的 agent 最大的安全風險是什麼?如何安全地沙箱化工具執行?2aeg、amit設計 Agent 的關鍵考量:可靠、安全、成本、可觀測
如何實作 human-in-the-loop(HIL)模式,並決定何時觸發人工審核?2aeg、amit、pal設計 Agent 的關鍵考量:可靠、安全、成本、可觀測
如何讓 Agent 的動作可還原,或至少可稽核?2om、amit、pal設計 Agent 的關鍵考量:可靠、安全、成本、可觀測
跨數十個 SaaS 系統的 Agent 編排:授權檢查放在哪?為何不能放在模型裡?2pal、AIML設計 Agent 的關鍵考量:可靠、安全、成本、可觀測
Prompt caching 如何運作?它應該如何改變你組織 prompt 的方式?2om、amit、palPrompt Caching:Agent 每一步都在重送同一段前綴
除了 LLM 之外,agent 還必須有哪些核心元件?1aegAgent 是什麼:一個會自己決定下一步的迴圈
長時間執行的 Agent 逐漸偏題、自信地做錯事,如何診斷與修正?1amit、pal設計 Agent 的關鍵考量:可靠、安全、成本、可觀測
結構化輸出與函式呼叫有何差別?1amit、palStructured Output:在 token 層級擋掉不合法的輸出
遠端 MCP server 的授權如何運作?團隊實作時常犯什麼錯?1omMCP、Function Calling 與 A2A:三個不同層的東西
說明多層快取策略:檢索快取、prompt 快取與回應快取。1aegPrompt Caching:Agent 每一步都在重送同一段前綴

本節只列題目標題與連結,答案請回原 repo 查看;題目譯文為本站自行翻譯,同一題在不同題庫措辭不同時,表中只取其中一個題庫的寫法。

amit、pal、aeg 的行號連結指向 2026-10-03 當天 main 分支的內容,repo 更新後行號可能位移;連到別題時,請用題目文字到原檔搜尋。

系列其他篇

參考資料

論文與官方文件

框架、協定與快取

站內文章

題庫(題目來源)