排解 Agent Runtime 的環境設定問題

本文說明如何解決設定 Agent Runtime 環境時可能遇到的錯誤,並涵蓋套件匯入問題的疑難排解步驟。

匯入 Agent Platform SDK 時發生錯誤

如果無法匯入 Agent Platform SDK for Python,可能是因為發生下列任一問題:

Python 專用 Agent Platform SDK 版本過舊

問題

您會收到類似以下的錯誤訊息:

ImportError: cannot import name 'reasoning_engines' from 'vertexai.preview'

ImportError: cannot import name 'agent_angines' from 'vertexai'

可能原因

如果 google-cloud-aiplatform 套件版本早於 1.82.0 (適用於 agent_engines) 或 1.47.0 (適用於 reasoning_engines),就可能發生這種情況。如要查看 google-cloud-aiplatform 套件版本,請在終端機中執行下列指令:

pip show google-cloud-aiplatform

建議解決方案

在終端機中執行下列指令,更新 google-cloud-aiplatform 套件:

pip install google-cloud-aiplatform --upgrade

執行下列指令,確認更新後的版本為 1.82.0 以上:

pip show google-cloud-aiplatform

如果您位於筆記本執行個體 (例如 Jupyter、Colab 或 Workbench),可能需要重新啟動執行階段,才能使用更新後的套件。

401 授權錯誤

問題

您會收到類似以下的錯誤訊息:

Error Code: "401"
Error Details: "Context-Aware Access requirements are not met"

Agent Engine Error: An error occurred during invocation. Exception: API request failed with status 401:
Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential.

可能原因

根據預設,當您將代理程式身分與代理程式執行階段搭配使用時,系統會使用憑證繫結存取權杖進行驗證,防止權杖遭竊。在下列兩種情況中,執行階段可能會發生 401 錯誤:

  1. 使用者或代理嘗試在核發存取權杖的環境外使用權杖,例如在代理之間傳遞權杖。
  2. 代理程式呼叫不相容於 mTLS 的 API 端點,例如 telemetry.googleapis.com,而非 telemetry.mtls.googleapis.com。

建議解決方案

在情境 1 中,如果您有正當理由要在代理之間共用權杖,可以選擇停用預設的情境感知存取權 (CAA) 政策。強烈建議不要這麼做,因為這會導致代理程式容易遭竊憑證。

建立 Agent Runtime 執行個體時,請設定下列環境變數,選擇不採用預設的 CAA 政策:

config={
  "env_vars": {
    "GOOGLE_API_PREVENT_AGENT_TOKEN_SHARING_FOR_GCP_SERVICES": False,
  }
}

在情境 2 中,您同樣可以將 GOOGLE_API_PREVENT_AGENT_TOKEN_SHARING_FOR_GCP_SERVICES 變數設為 False,允許代理程式使用非 mTLS API 端點做為暫時的因應措施。在這種情況下,根本問題可能是 ADK 的已知問題。