
Go
ã€ãã³ã
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
ãã¬ãžã³
æè¡ããã°
G-gen ã®äœã
æšã§ããåœèšäºã§ã¯ãAgent Development KitïŒä»¥äž ADK ãšèšèŒïŒã§éçºãã AI ãšãŒãžã§ã³ãã Cloud Run ã«ãããã€ããCloud Run ã®ãµã³ãããã¯ã¹æ©èœã«ãã Code ExecutionïŒLLM ãçæããã³ãŒãã®å®å
šãªå®è¡ïŒã詊ããŸãã æ§æ åœèšäºã§äœ¿çšãããã® Cloud Run ãšã¯ Cloud Run ã®ãµã³ãããã¯ã¹ãšã¯ ãµã³ãããã¯ã¹ã®æŠèŠ sandbox ã³ãã³ãã©ã€ã³ããŒã« å®è¡çµæã®ååŸãšãã¡ã€ã«ã®åãæž¡ã Agent Development KitïŒADKïŒãšã¯ ãšãŒãžã§ã³ãã®éçº ãã£ã¬ã¯ããªæ§æ uv ãããžã§ã¯ãã®äœæ agent.py __init__.py main.py Dockerfile .dockerignore Google Cloud åŽã®æºå API ã®æå¹å ãµãŒãã¹ã¢ã«ãŠã³ãã®äœæ ããã〠åäœç¢ºèª Web UI ãžã®ã¢ã¯ã»ã¹ ãšãŒãžã§ã³ããšã®å¯Ÿè©± ãã°ã®ç¢ºèª æ§æ åœèšäºã§ã¯ãADK ã§éçºãã AI ãšãŒãžã§ã³ããããµã³ãããã¯ã¹æ©èœãæå¹åãã Cloud Run ãµãŒãã¹ãšããŠãããã€ããŸãã åŠçã®æµãã¯ä»¥äžã®ãšããã§ãã ãŠãŒã¶ãŒã ADK ã® Web UI ãããšãŒãžã§ã³ãã«è³ªåãã ãšãŒãžã§ã³ãã質åãžã®åçã«å¿
èŠãªã³ãŒããçæãããµã³ãããã¯ã¹å
ã§ã³ãŒããå®è¡ããããã®ã«ã¹ã¿ã ããŒã«ãåŒã³åºã ããŒã«ã Cloud Run ã®éé¢ããããµã³ãããã¯ã¹å
ã§ã³ãŒããå®è¡ãã ãšãŒãžã§ã³ããå®è¡çµæãå
ã«åçãçæãã LLM ãçæããã³ãŒããã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããå
ã§çŽæ¥å®è¡ãããšãæå³ããªããã¡ã€ã«æäœãå€éšéä¿¡ãªã©ã®ãªã¹ã¯ããããŸããCloud Run ã®ãµã³ãããã¯ã¹æ©èœã䜿çšãããšããã¹ãã³ã³ããããéé¢ãããç°å¢ã§ã³ãŒããå®è¡ã§ããŸãã åœèšäºã§äœ¿çšãããã® Cloud Run ãšã¯ Cloud Run ã¯ãGoogle Cloud ã®ãã«ãããŒãžããªãµãŒããŒã¬ã¹ã³ã³ããå®è¡åºç€ã§ããã³ã³ããã€ã¡ãŒãžãŸãã¯ãœãŒã¹ã³ãŒãããããã€ããã ãã§ããªã¯ãšã¹ãæ°ã«å¿ããèªåã¹ã±ãŒãªã³ã°ãåãã Web ãµãŒãã¹ãå®è¡ã§ããŸãã Cloud Run ã®è©³çްã¯ã以äžã®èšäºã§è§£èª¬ããŠããŸãã blog.g-gen.co.jp Cloud Run ã®ãµã³ãããã¯ã¹ãšã¯ ãµã³ãããã¯ã¹ã®æŠèŠ Cloud Run ã® ãµã³ãããã¯ã¹ ïŒCloud Run sandboxesïŒã¯ãä¿¡é Œã§ããªãã³ãŒããé«éã»å®å
šã»éé¢ãããç°å¢ã§å®è¡ããããã®æ©èœã§ãã Cloud Run ãµãŒãã¹ã§ãµã³ãããã¯ã¹æ©èœãæå¹åãããšãã³ã³ããå
ã§ sandbox ã³ãã³ãã©ã€ã³ããŒã«ãå©çšå¯èœã«ãªããä»»æã®ã³ãã³ãããµã³ãããã¯ã¹å
ã§å®è¡ã§ããŸãã2026幎7æçŸåšããã®æ©èœã¯ Preview å
¬é ã§ãã ãµã³ãããã¯ã¹ã®äž»ãªç¹åŸŽã¯ä»¥äžã®ãšããã§ãã 第2äžä»£å®è¡ç°å¢ã® Cloud Run ã§ã®ã¿äœ¿çšå¯èœ ãµã³ãããã¯ã¹ã¯å¿
èŠã«å¿ããŠç¬æã«äœæãããããã«ã³ãã³ããå®è¡ã§ãã ãµã³ãããã¯ã¹å
ã®ããã»ã¹ã¯é root ãŠãŒã¶ãŒãšããŠå®è¡ãããããã©ã«ãã§ã¯èŠªã¯ãŒã¯ããŒãã Cloud Run ã®ã¡ã¿ããŒã¿ãµãŒããŒã«ã¢ã¯ã»ã¹ã§ããªãïŒããã»ã¹ã¬ãã«ã®åé¢ïŒ ãã¹ãã³ã³ããã®ç°å¢å€æ°ã¯ãµã³ãããã¯ã¹ã«ç¶æ¿ããããAPI ããŒãªã©ã®æ©å¯æ
å ±ãæå³ããåç
§ãããããšãé²ããïŒæž¡ãå Žå㯠--env ãã©ã°ã§æç€ºçã«æå®ããïŒ å€éšãžã®ã¢ãŠãããŠã³ãéä¿¡ã¯ããã©ã«ãã§ãããã¯ãããïŒ --allow-egress ãã©ã°ã§èš±å¯ã§ããïŒ ãµã³ãããã¯ã¹ããèŠããã«ãŒããã¡ã€ã«ã·ã¹ãã ã¯èªã¿åãå°çšïŒ --write ãã©ã°ããã€ã³ãããŠã³ãã§æžã蟌ã¿ãèš±å¯ã§ããïŒ ãµã³ãããã¯ã¹ã¯ãã¹ãã³ã³ãããšåäžã€ã³ã¹ã¿ã³ã¹å
ã§åäœããCPU ãšã¡ã¢ãªããã¹ãã³ã³ãããšå
±æãã ãµã³ãããã¯ã¹ã®äœæã»åé€ãªã©ã®ã©ã€ããµã€ã¯ã«ã€ãã³ã㯠Cloud Logging ã«èªåçã«èšé²ããã åè : Code execution in Cloud Run åè : Configure sandboxes for services sandbox ã³ãã³ãã©ã€ã³ããŒã« sandbox ã³ãã³ãã©ã€ã³ããŒã«ã«ã¯ä»¥äžã®ãµãã³ãã³ãããããŸãã ã³ãã³ã 説æ sandbox do äžæçãªãµã³ãããã¯ã¹ãäœæããŠã³ãã³ããå®è¡ããçµäºåŸã«ç Žæ£ãã sandbox run ãµã³ãããã¯ã¹ãèµ·åãã sandbox exec å®è¡äžã®ãµã³ãããã¯ã¹ã§ã³ãã³ããå®è¡ãã sandbox tar ãµã³ãããã¯ã¹ã®ãã¡ã€ã«ã·ã¹ãã ã®ã¹ãããã·ã§ãããååŸãã sandbox delete ãµã³ãããã¯ã¹ãåé€ãã åœèšäºã§ã¯ãåçºã®ã³ãŒãå®è¡ã«é©ãã sandbox do ã䜿çšããŸãã å®è¡çµæã®ååŸãšãã¡ã€ã«ã®åãæž¡ã ãµã³ãããã¯ã¹å
ã§å®è¡ããããã»ã¹ã®æšæºåºåã»æšæºãšã©ãŒã¯ãåŒã³åºãå
ã®ããã»ã¹ã«çŽæ¥è¿ãããŸããåŸè¿°ã®ãµã³ãã«ã³ãŒãã§ã¯ããã®ä»æ§ãå©çšã㊠subprocess ã¢ãžã¥ãŒã«çµç±ã§ã³ãŒãã®å®è¡çµæãååŸããŸãã ãµã³ãããã¯ã¹ã®ãã¡ã€ã«ã·ã¹ãã ãžã®æžã蟌ã¿ã¯ã --write ãã©ã°ã§èš±å¯ããå Žåãäžæçãªãã®ã§ããã¹ãã³ã³ããããã¯åç
§ã§ããŸããã å®è¡çµæãšããŠãã¡ã€ã«ãåãåºãå Žåã¯ããµã³ãããã¯ã¹å
ã§å€æŽããããã¡ã€ã«ã tar ã¢ãŒã«ã€ããšããŠåºåãã --export-tar ãã©ã°ïŒåã蟌ã¿ã¯ --import-tar ãåæ¹ååæã¯ --sync-tar ïŒãã --mount ãã©ã°ã«ãããã€ã³ãããŠã³ãã䜿çšããŠããã¹ãã³ã³ãããšãã¡ã€ã«ãåãæž¡ãããŸãã Agent Development KitïŒADKïŒãšã¯ Agent Development Kit ïŒä»¥äž ADK ãšèšèŒïŒã¯ãGoogle ãéçºãããªãŒãã³ãœãŒã¹ã®ãšãŒãžã§ã³ãéçºãã¬ãŒã ã¯ãŒã¯ã§ãã ADK 㯠PythonãTypeScriptãGoãJava ã«å¯Ÿå¿ããŠãããéçºãããšãŒãžã§ã³ãã¯ããŒã«ã«ç°å¢ã®ã»ããAgent RuntimeïŒæ§ç§° Agent EngineïŒãCloud RunãGoogle Kubernetes EngineïŒGKEïŒã«ãããã€ã§ããŸãã åœèšäºã§ã¯ Python çã® ADKïŒ google-adk ïŒã䜿çšããŸãã åè : Agent Development Kit åè : google/adk-python ãšãŒãžã§ã³ãã®éçº ãã£ã¬ã¯ããªæ§æ äœæãããããžã§ã¯ãã®ãã£ã¬ã¯ããªæ§æã¯ä»¥äžã®ãšããã§ãïŒ uv init ãçæãã README.md ã .python-version ãªã©ã¯çç¥ïŒã sandbox-agent/ âââ .dockerignore âââ Dockerfile âââ main.py # FastAPI ã¢ããªã®ãšã³ããªãŒãã€ã³ã âââ pyproject.toml âââ uv.lock âââ sandbox_agent/ # ADK ãšãŒãžã§ã³ãã®ããã±ãŒãž âââ __init__.py âââ agent.py # ãšãŒãžã§ã³ããšããŒã«ã®å®çŸ© uv ãããžã§ã¯ãã®äœæ uv ãããžã§ã¯ããåæåããäŸåããã±ãŒãžãšã㊠google-adk ãš uvicorn ã远å ããŸãã # uv ã®ã»ããã¢ãã $ uv init sandbox-agent --python 3 . 13 $ cd sandbox-agent # äŸåããã±ãŒãžã®ã€ã³ã¹ããŒã« $ uv add google-adk uvicorn # ãšãŒãžã§ã³ãã®ããã±ãŒãžãã£ã¬ã¯ããªãšãã¡ã€ã«ã®äœæ $ mkdir sandbox_agent $ touch sandbox_agent/__init__.py sandbox_agent/agent.py Dockerfile .dockerignore main.py 㯠uv init ã«ãã£ãŠçæããããããããã§ã¯äœæãããåŸã®æé ã§å
å®¹ãæžãæããŸããåãã¡ã€ã«ã®äžèº«ã¯ä»¥éã®ç¯ã§é ã«èšè¿°ããŠãããŸãã pyproject.toml ã¯ä»¥äžã®ããã«ãªããŸãã [project] name = "sandbox-agent" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.13" dependencies = [ "google-adk>=2.4.0" , "uvicorn>=0.51.0" , ] agent.py ãšãŒãžã§ã³ãæ¬äœãšã«ã¹ã¿ã ããŒã«ã sandbox_agent/agent.py ã«å®çŸ©ããŸãã import subprocess from google.adk.agents import Agent from google.adk.tools import FunctionTool SANDBOX_BIN = "/usr/local/gcp/bin/sandbox" PYTHON_BIN = "/usr/local/bin/python3" def execute_python_code (code: str ) -> dict : """Python ã³ãŒãããµã³ãããã¯ã¹å
ã§å®è¡ããçµæãè¿ãã Args: code: å®è¡ãã Python ãœãŒã¹ã³ãŒãã Returns: stdoutãstderrãreturncode ãå«ã dictã """ result = subprocess.run( [SANDBOX_BIN, "do" , "--" , PYTHON_BIN, "-c" , code], capture_output= True , text= True , timeout= 60 , ) return { "stdout" : result.stdout, "stderr" : result.stderr, "returncode" : result.returncode, } root_agent = Agent( name= "sandbox_agent" , model= "gemini-2.5-flash" , description= "Python ã³ãŒãããµã³ãããã¯ã¹ã§å®è¡ããŠåçãããšãŒãžã§ã³ã" , instruction=( "ããªãã¯ãŠãŒã¶ãŒã®è³ªåã«çããã¢ã·ã¹ã¿ã³ãã§ãã" "èšç®ãããŒã¿åŠçãå¿
èŠãªå Žåã¯ãå¿
ã Python ã³ãŒããæžããŠ" " execute_python_code ããŒã«ã§å®è¡ãããã®å®è¡çµæã«åºã¥ããŠåçããŠãã ããã" "å®è¡çµæã® stdout ããã®ãŸãŸåŒçšããã³ãŒãã®å
容ãç°¡åã«èª¬æããŠãã ããã" ), tools=[FunctionTool(func=execute_python_code)], ) ãã€ã³ãã¯ä»¥äžã®ãšããã§ãã execute_python_code 颿°ã FunctionTool ã§ã©ããããŠãšãŒãžã§ã³ãã®ããŒã«ãšããŠç»é²ããŠããã颿°ã®ããã¥ã¡ã³ããŒã·ã§ã³æååãšåãã³ããããŒã«ã®ä»æ§ãšã㊠LLM ã«æž¡ããã ããŒã«å
ã§ã¯ããµã³ãããã¯ã¹æ©èœã®æå¹åæã«ã³ã³ãããžé
眮ããããã€ã㪠/usr/local/gcp/bin/sandbox ã subprocess ã§åŒã³åºãã sandbox do -- /usr/local/bin/python3 -c <ã³ãŒã> ã®åœ¢åŒã§ LLM ãçæãã Python ã³ãŒãããµã³ãããã¯ã¹å
ã§å®è¡ããŠãã ãµã³ãããã¯ã¹ããã¯ãã¹ãã³ã³ããã®ã«ãŒããã¡ã€ã«ã·ã¹ãã ãèªã¿åãå°çšã§åç
§ã§ãããããã³ã³ããã€ã¡ãŒãžã«å«ãŸãã Python ã©ã³ã¿ã€ã ããµã³ãããã¯ã¹å
ã§ãå®è¡ã§ãã ãµã³ãããã¯ã¹ã«ã¯ãã¹ãã®ç°å¢å€æ°ãç¶æ¿ããããå®è¡ããã³ãã³ãã® PATH 解決ãè¡ãããªããããã³ãã³ã㯠/usr/local/bin/python3 ã®ãããªçµ¶å¯Ÿãã¹ã§æå®ããå¿
èŠããã __init__.py ADK ããšãŒãžã§ã³ããèªèã§ããããã«ã sandbox_agent/__init__.py ã§ agent ã¢ãžã¥ãŒã«ãã€ã³ããŒãããŠãããŸãã from . import agent main.py Cloud Run äžã§ãšãŒãžã§ã³ãã Web ã¢ããªã±ãŒã·ã§ã³ãšããŠå
¬éãããããADK ãæäŸãã get_fast_api_app() ã§ FastAPI ã¢ããªãäœæããŸãã import os from google.adk.cli.fast_api import get_fast_api_app AGENTS_DIR = os.path.dirname(os.path.abspath(__file__)) app = get_fast_api_app( agents_dir=AGENTS_DIR, allow_origins=[ "http://localhost:8080" , "http://127.0.0.1:8080" ], web= True , ) if __name__ == "__main__" : import uvicorn uvicorn.run(app, host= "0.0.0.0" , port= int (os.environ.get( "PORT" , 8080 ))) get_fast_api_app() ã¯ãADK ã®éçºçš Web UI ãšãšãŒãžã§ã³ãå®è¡çšã® REST API ãå«ã FastAPI ã¢ããªãè¿ããŸãã agents_dir ã«ã¯ãšãŒãžã§ã³ãã®ããã±ãŒãžïŒåœèšäºã§ã¯ sandbox_agent/ ïŒã眮ããããã£ã¬ã¯ããªãæå®ãã web=True ã§ Web UI ãæå¹åããŸããããŒãçªå·ã¯ Cloud Run ãèšå®ããç°å¢å€æ° PORT ããååŸããŸãã allow_origins ã«ã¯ãåŸè¿°ã®åäœç¢ºèªã§ gcloud run services proxy ã³ãã³ãçµç±ã§ Web UI ã«ã¢ã¯ã»ã¹ãããšãã®ãªãªãžã³ãæå®ããŸããADK ã® API ãµãŒããŒã¯ãã»ãã¥ãªãã£å¯Ÿçãšã㊠POST ãªã©ã®ç¶æ
倿Žãªã¯ãšã¹ãã® Origin ããããŒãæ€èšŒããŸãããããã·çµç±ã®ã¢ã¯ã»ã¹ã§ã¯ OriginïŒ http://127.0.0.1:8080 ãªã©ïŒãšãªã¯ãšã¹ãå
ïŒ run.app ãã¡ã€ã³ïŒãäžèŽããªãããã allow_origins ãæå®ããŠããªããš Web UI ããã®æäœã403ãšã©ãŒã«ãªããŸãã Dockerfile uv ã䜿çšããŠã³ã³ããã€ã¡ãŒãžããã«ããã Dockerfile ãäœæããŸãã FROM python:3.13-slim COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv WORKDIR /app COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev COPY . . ENV PATH= "/app/.venv/bin:$PATH" CMD [ " python ", " main.py " ] .dockerignore .dockerignore ã«ä»¥äžã®å
容ãèšè¿°ããããŒã«ã«ã® .venv ãªã©ãã³ã³ããã€ã¡ãŒãžã®ãã«ãã³ã³ããã¹ãããé€å€ããŸãã .venv __pycache__ *.pyc .git åŸè¿°ã®ãããã€ã§äœ¿çšãã --source ãã©ã°ã¯ãã«ã¬ã³ããã£ã¬ã¯ããªå
šäœã Cloud Build ã«ã¢ããããŒãããŸãã .dockerignore ã§é€å€ããŠããªãå Žåã COPY . . ã®éã«ããŒã«ã«ç°å¢çšã® .venv ãã³ã³ããå
ã«äœææžã¿ã® .venv ãäžæžãããã³ã³ããã®èµ·åã«å€±æããããæ³šæããŠãã ããã Google Cloud åŽã®æºå API ã®æå¹å 䜿çšãã API ãæå¹åããŸãããœãŒã¹ã³ãŒãããã®ãããã€ïŒ --source ãã©ã°ïŒã§ã¯ Cloud Build ãš Artifact Registry ã䜿çšããããããããããŠæå¹åããŸãããªã2026幎7æçŸåšãGemini ã®åŒã³åºãã«äœ¿çšãã Agent Platform ã® API åã IAM ããŒã« ID ã«ã¯ãæ§ç§°ã® Vertex AI ã«ç±æ¥ãã aiplatform ãšããåç§°ãæ®ã£ãŠããŸãã $ gcloud services enable \ run.googleapis.com \ aiplatform.googleapis.com \ cloudbuild.googleapis.com \ artifactregistry.googleapis.com \ --project =< ãããžã§ã¯ãID > ãµãŒãã¹ã¢ã«ãŠã³ãã®äœæ Cloud Run ãµãŒãã¹ã䜿çšãããµãŒãã¹ã¢ã«ãŠã³ããäœæããŸãããšãŒãžã§ã³ãã Agent Platform ã® API çµç±ã§ Gemini ãåŒã³åºããããAgent Platform ãŠãŒã¶ãŒïŒ roles/aiplatform.user ïŒãä»äžããŸãã # ãµãŒãã¹ã¢ã«ãŠã³ãã®äœæ $ gcloud iam service-accounts create sandbox-agent \ --project =< ãããžã§ã¯ãID > # Agent Platform ãŠãŒã¶ãŒã®ä»äž $ gcloud projects add-iam-policy-binding < ãããžã§ã¯ãID > \ --member =" serviceAccount:sandbox-agent@<ãããžã§ã¯ãID>.iam.gserviceaccount.com " \ --role =" roles/aiplatform.user " ãããã€ äœæãããããžã§ã¯ãã®ãã£ã¬ã¯ããªïŒ sandbox-agent/ ïŒã§ã以äžã®ã³ãã³ããå®è¡ã㊠Cloud Run ã«ãããã€ããŸãããµã³ãããã¯ã¹æ©èœãæå¹åãã --sandbox-launcher ãã©ã°ã¯ã2026幎7æçŸåšã gcloud beta ã³ãã³ãã§ã®ã¿äœ¿çšã§ããŸãã $ gcloud beta run deploy sandbox-agent \ --source . \ --project =< ãããžã§ã¯ãID > \ --region = asia-northeast1 \ --execution-environment = gen2 \ --sandbox-launcher \ --service-account = sandbox-agent@ < ãããžã§ã¯ãID > .iam.gserviceaccount.com \ --set-env-vars = GOOGLE_GENAI_USE_VERTEXAI =TRUE, GOOGLE_CLOUD_PROJECT = < ãããžã§ã¯ãID > , GOOGLE_CLOUD_LOCATION =asia-northeast1 \ --no-allow-unauthenticated äž»ãªãã©ã°ã®æå³ã¯ä»¥äžã®ãšããã§ãã ãã©ã° 説æ --source . ã«ã¬ã³ããã£ã¬ã¯ããªã®ãœãŒã¹ã³ãŒããã Cloud Build ã§ã³ã³ããã€ã¡ãŒãžããã«ãããŠãããã€ããã Dockerfile ãååšããå Žåã¯ããã䜿çšããã --execution-environment=gen2 第2äžä»£å®è¡ç°å¢ãæå®ããããµã³ãããã¯ã¹æ©èœã®äœ¿çšã«å¿
é --sandbox-launcher ãµã³ãããã¯ã¹æ©èœãæå¹åãããã³ã³ããå
ã« sandbox ã³ãã³ãã©ã€ã³ããŒã«ãé
眮ããã --service-account ã©ã³ã¿ã€ã ãµãŒãã¹ã¢ã«ãŠã³ããšããŠãåã®æé ã§äœæãããµãŒãã¹ã¢ã«ãŠã³ããæå®ãã --set-env-vars ADK ã Agent Platform çµç±ã§ Gemini ãåŒã³åºãããã®ç°å¢å€æ°ãèšå®ããã GOOGLE_GENAI_USE_VERTEXAI ãšãã倿°åã«ãæ§ç§°ã«ç±æ¥ããåç§°ãæ®ã£ãŠãã --no-allow-unauthenticated æªèªèšŒã®ã¢ã¯ã»ã¹ãæåŠãã ç°å¢å€æ° GOOGLE_CLOUD_LOCATION ã¯ãGemini ãåŒã³åºã Agent Platform åŽã®ãã±ãŒã·ã§ã³ã§ãããCloud Run ãµãŒãã¹ã®ãªãŒãžã§ã³ïŒ --region ïŒãšã¯ç¬ç«ããŠããŸããåœèšäºã§ã¯ asia-northeast1 ãæå®ããæ±äº¬ãªãŒãžã§ã³ã®ãªãŒãžã§ã³ãšã³ããã€ã³ãçµç±ã§ã¢ãã«ãåŒã³åºããŸãã åè : gcloud beta run deploy åäœç¢ºèª Web UI ãžã®ã¢ã¯ã»ã¹ ãããã€ãããµãŒãã¹ã¯æªèªèšŒã¢ã¯ã»ã¹ãæåŠããŠããããã gcloud run services proxy ã³ãã³ãã§æå
ã®ç«¯æ«ãããããã·çµç±ã§ã¢ã¯ã»ã¹ããŸãã $ gcloud run services proxy sandbox-agent \ --project =< ãããžã§ã¯ãID > \ --region = asia-northeast1 ãã©ãŠã¶ã§ http://localhost:8080 ãéããšãADK ã®éçºçš Web UI ã«ã¢ã¯ã»ã¹ã§ããŸããç»é¢å·Šäžã®ãã«ããŠã³ã§ãšãŒãžã§ã³ã sandbox_agent ãéžæããŸãã ADK ã®éçºçš Web UI ã«ã¢ã¯ã»ã¹ããsandbox_agent ãéžæãã ãšãŒãžã§ã³ããšã®å¯Ÿè©± ãšãŒãžã§ã³ãã«ãã³ãŒãå®è¡ãå¿
èŠãªè³ªåãéä¿¡ããŸããäŸãšããŠã1ãã100ãŸã§ã®çŽ æ°ã®åèšãèšç®ããŠãã ããããšè³ªåãããšããšãŒãžã§ã³ã㯠Python ã³ãŒããçæã㊠execute_python_code ããŒã«ãåŒã³åºãããµã³ãããã¯ã¹å
ã§ã®å®è¡çµæãå
ã«åçããŸãã ãšãŒãžã§ã³ããã³ãŒããçæããŠå®è¡ããŠãã Web UI ã® Info ãã€ã³ã§ã¯ãããŒã«åŒã³åºãã®å
容ã確èªã§ããŸãã Function Calls ã€ãã³ãã«ã¯ãšãŒãžã§ã³ããçæãã Python ã³ãŒããã Function Responses ã€ãã³ãã«ã¯ãµã³ãããã¯ã¹ã§ã®å®è¡çµæïŒ stdout ãªã©ïŒãèšé²ãããŠããŸãã Function Calls ã«ãšãŒãžã§ã³ããçæããã³ãŒããèšé²ãããŠãã Function Responses ã«ã³ãŒãã®å®è¡çµæãèšé²ãããŠãã ãã°ã®ç¢ºèª åè¿°ã®ãšããããµã³ãããã¯ã¹ã®ã©ã€ããµã€ã¯ã«ã€ãã³ã㯠Cloud Logging ã«èªåçã«èšé²ãããŸãããµã³ãããã¯ã¹ã®å®è¡ãã°ã¯ãCloud Run ã®æšæºãã°ïŒ stdout ã requests ïŒãšã¯å¥ã®å°çšãã° run.googleapis.com//var/log/sandbox.log ã«åºåãããããããã°ãšã¯ã¹ãããŒã©ã§ä»¥äžã®ã¯ãšãªãå®è¡ããŠç¢ºèªããŸãã resource.type="cloud_run_revision" resource.labels.service_name="sandbox-agent" logName="projects/<ãããžã§ã¯ãID>/logs/run.googleapis.com%2F%2Fvar%2Flog%2Fsandbox.log" sandbox do ã®å®è¡1åã«ã€ã [start] ãš [end] ã®ãã¢ãèšé²ãããå®è¡ããã³ãã³ãã®å
šæïŒLLM ãçæãã Python ã³ãŒããå«ãïŒãæ®ããŸãã以äžã¯å
ã»ã©ã®å¯Ÿè©±ã§å®éã«èšé²ããããã°ã§ãïŒ [end] ã®ã³ãã³ãæååã¯çç¥ããŠããŸãïŒã [start] cwd=/app "/usr/local/gcp/bin/sandbox do -- /usr/local/bin/python3 -c def is_prime(n): if n < 2: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True total_sum = 0 for number in range(2, 101): if is_prime(number): total_sum += number print(total_sum) " [end] exit_code=0 elapsed=541ms "/usr/local/gcp/bin/sandbox do -- /usr/local/bin/python3 -c ..." Cloud Run ã§ãµã³ãããã¯ã¹ã䜿çšããããšãã®ãã°ãæ€çŽ¢ãã [end] ãšã³ããªã«ã¯çµäºã³ãŒãïŒ exit_code ïŒãšå®è¡æéïŒ elapsed ïŒãä»ãããããµã³ãããã¯ã¹ãå®éã«äœ¿çšãããããšãã©ã®ãããªã³ãŒããå®è¡ãããããæ£åžžã«çµäºãããã©ãããŸã§ç¢ºèªã§ããŸããä»åã®å®è¡æéã¯çŽ540ããªç§ã§ããµã³ãããã¯ã¹ã®äœæããã³ãŒãå®è¡ãç Žæ£ãŸã§ãé«éã«å®äºããŠããããšãããããŸãã åè : Code execution in Cloud Run äœã
æš é§¿å€ª (èšäºäžèЧ) ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³éš ã¯ã©ãŠããšã³ãžãã¢ãªã³ã°1課 åæµ·éåšäœ 倧åŠé¢ãŸã§ç€ŸäŒå¿çåŠãå°æ»ããAI ã«èå³ãæã¡ IT æ¥çãžã2022幎6æã« G-gen ã«ãžã§ã€ã³ãGoogle Cloud Partner Top Engineer ã«éžåºïŒ2024 / 2025 Fellow / 2026ïŒã奜ã㪠Google Cloud ãããã¯ã㯠Cloud Runã è¶£å³ã¯ã³ãŒããŒãå°èª¬ïŒSFããã¹ããªïŒãã«ã©ãªã±ãªã©ãæè¿ã¯æ³åŸã®å匷ã«ãç®èŠãã2çŽç¥ç財ç£ç®¡çæèœå£«ãååŸã Follow @sasashun0805
ã¯ããã« ã¯ãããŸããŠïŒæ
¶æçŸ©å¡Ÿå€§åŠç°å¢æ
å ±åŠéš3幎ã®äžé 倧åã§ãïŒ2026幎ã®4æã®1ã¶æéãC ...
ã¯ããã« ããžã¿ã«ãã¯ãããžãŒæŠç¥æ¬éš AIæŠç¥å®€ AIãœãªã¥ãŒã·ã§ã³éš ããŒã¿ãµã€ãšã³ã¹1課ã®N.Rã§ãã 2026幎4æ22æ¥ãã24æ¥ã«ãããŠã©ã¹ãã¬ã¹ã§éå¬ããã Google Cloud Next '26 ã«åå ããŠããŸããïŒ æ¬èšäºã§ã¯ãä»å¹Žã®Next ã§æ³šç®ãéããããŒãã®ã²ãšã€ã§ãã ãGemini Enterprise Agent Platformã ã«ã€ããŠç޹ä»ããŸãã Google Cloud Next '26 ã£ãŠã©ããªã€ãã³ãïŒ Google Cloud Next ã¯ãGoogle Cloud ãäž»å¬ãã幎次ããã¯ã«ã³ãã¡ã¬ã³ã¹ã§ããäžçäžã®ãšã³ãžãã¢ãäŒæ¥é¢ä¿è
ãéãŸããã¯ã©ãŠãã®ææ°ååãæ°ãããããã¯ãã»æè¡ãçºè¡šãããäžå€§ã€ãã³ããšããŠç¥ãããŠããŸãã ã€ãã³ãã®å¹éãã食ã Keynote ã§ã¯ãGoogle ã®ãªãŒããŒé£ã«ããéèŠãªçºè¡šãå€§èŠæš¡ãªãã¢ãè¡ãããäŒå Žã¯å€§çãäžããã§ããïŒ ä»å¹Žã¯ 2026幎4æ22æ¥ã24æ¥ ã®3æ¥éãã©ã¹ãã¬ã¹ã® Mandalay Bay Convention Center ã§éå¬ããã ä»å¹Žã®ããŒã㯠ãThe Agentic EraïŒãšãŒãžã§ã³ãæä»£ïŒããAI ããäŒè©±ããããŒã«ããããèªåŸçã«è¡åãããšãŒãžã§ã³ãããžãšé²åããããšã象城ããã€ãã³ã ã§ããã 3æ¥éã®ããã°ã©ã æ§æ åèªèãããè¬æŒãäºåã«äºçŽããŠãããããªæ
å ±åéããããšãã§ããŸãã Next ã¯åãªãè¬æŒã€ãã³ãã§ã¯ãªãã倿§ãªåœ¢åŒã®ããã°ã©ã ã§æ§æãããŠããŸãã ããã°ã©ã æŠèŠ Keynote ã€ãã³ãã®æ¹åæ§ã決ããåºèª¿è¬æŒã§ããCEO Thomas Kurian æ°ã«ãã Opening Keynote ãšããšã³ãžãã¢åãã® Developer Keynote ãå«ãèš3æ¬ãè¡ãããŸãããæ°ãããã¯ãã®çºè¡šãå€§èŠæš¡ãã¢ãæ«é²ãããããŸãã«ã€ãã³ãã®ãé¡ãã§ãã Spotlight ç¹å®ããŒããæ·±æãããäžèŠæš¡ã»ãã·ã§ã³ã«ãªããŸãïŒ Breakout Session AIã»ããŒã¿ã»ã»ãã¥ãªãã£ã»ã€ã³ãã©ãªã©å¹
åºãããŒããã«ããŒããQ&A ã§ç»å£è
ã«çŽæ¥è³ªåãã§ããŸãã Workshop ãã³ãºãªã³åœ¢åŒã®å®è·µåã»ãã·ã§ã³ã§ããGoogler ãããŒãããŒäŒæ¥ã®éçºè
ããçŽæ¥æå°ãåããªããæãåãããŸãã人æ°ãªã®ã§ãäºçŽãåããªãã§ãïŒ Discussion å°äººæ°ã®ã©ãŠã³ãããŒãã«åœ¢åŒã§ããåå è
å士ã§ç¹å®ããŒãã«ã€ããŠè°è«ããæãã§ãã Solution Talk ãããããèšå®ããã課é¡ã«å¯Ÿã㊠Googler ã解決çãé ã远ã£ãŠè§£èª¬ããã»ãã·ã§ã³ãå®è·µçãªã¢ãŒããã¯ãã£ã®åèã«ãªããŸãã Lightning Talk Developer Theater ã§è¡ãããçŽ20åã®çæéãã¢ãææ°ãããã¯ããµã¯ããšãã£ããã¢ããã§ããŸãã Expo ã¹ãã³ãµãŒã»ããŒãããŒäŒæ¥ãåºå±ããå±ç€ºãšãªã¢ã§ããææ°ãããã¯ãã®ã©ã€ããã¢ãäœéšãããããšãã¹ããŒãã«çŽæ¥çžè«ã§ããŸãã Keynote ã¯ãªã³ã©ã€ã³ã§ãã©ã€ãé
ä¿¡ãããŸãããWorkshop ã§ Googler ã«çŽæ¥è³ªåããããExpo ã§ææ°ãã¢ã«è§ŠããããDiscussion ã§ä»ã®åå è
ãšè°è«ã§ããã®ã¯ çŸå°åå ãªãã§ã¯ã§ãã ç§ã¯ãWorkshopã«äžçªåå ãããã£ãã®ã§ãããäºçŽããšãããKeynoteãSpotlight ãBreakout Sessionãã¡ã€ã³ã«åå ããŠãŸããïŒ ä»åã¯ãKeynoteã§çºè¡šãããã Gemini Enterprise Agent Platformã«ã€ããŠç޹ä»ããŸãïŒ Gemini Enterprise Agent Platform ãšã¯ åŸæ¥ã® Vertex AI ããåç§°å€æŽããããšãŒãžã§ã³ãéçºè
åãã®çµ±åæ¯æŽãã©ãããã©ãŒã ãšããŠçãŸãå€ãããŸããã ãŸããåç§°å€æŽããããšã¯ãæ°ã«å
¥ã£ãŠããã®ã§å°ãå¯ããã£ãã§ãããã Agent Platform ã¯ä»¥äžã® 4ã€ã®æ± ã§æ§æãããŠããŸãã æ± åœ¹å² äž»ãªãµãŒãã¹ Build ãšãŒãžã§ã³ãã®éçº ADK / Agent Studio / MCP Scale ãšãŒãžã§ã³ãã®å®è¡ã»ã¹ã±ãŒã« Agent Runtime Govern èªèšŒã»ã¢ã¯ã»ã¹å¶åŸ¡ Agent Registry / Agent Gateway Optimize ç£èŠã»å¯èŠ³æž¬æ§ Agent Observability éçºããéçšãŸã§ããšãŒãžã§ã³ãã®ã©ã€ããµã€ã¯ã«å
šäœãã«ããŒããæ§æã§ãã Vertex AIã®æã¯ãMLã¢ãã«ãæ±ãæãã§ããããäžæ°ã«ãšãŒãžã§ã³ãã®ããŒã«ã«æ¯ãåã£ãå°è±¡ãåããŸããïŒ ãšãŒãžã§ã³ãéçºã®éžæè¢ â ADK ãš Agent Studio ãšãŒãžã§ã³ãã®éçºææ³ã¯ ã³ãŒãããŒã¹ ãš ããŒã³ãŒã ã®2çš®é¡ãçšæãããŠããŸãã Agent StudioïŒããŒã³ãŒãïŒ Agent Platform äžã® UI ã§éçºã§ããããŒã³ãŒãããŒã«ã§ãã èªç¶èšèªã§å
¥åããã ãã§ãšãŒãžã§ã³ããéçº ã§ããããã«ãªããŸããïŒ äœæãããšãŒãžã§ã³ãã®ã³ãŒããèŠããã®ã§ãã³ãŒããæžã人ã«ãšã£ãŠãããããã仿§ã«ãªã£ãŠãããŸãã çŸåšãã¬ãã¥ãŒçã§ãæ©èœãåŸæ¥è¿œå ãªéšåããããŸãããããããã®æ©èœè¿œå ã«æåŸ
ã§ãïŒ Agent Development KitïŒã³ãŒãããŒã¹ïŒ Pythonã»Javaã»Goã»TypeScript ã® 4èšèª ã«å¯Ÿå¿ãã詳现ãªã«ã¹ã¿ãã€ãºãå¯èœãªéçºãããã§ãã æ¬æ Œçã«AIãšãŒãžã§ã³ããéçºãããªããADK ** ã®æ¹ãåªããŠããŸãã ä»åã ADK 2.0** ãããŒã¿çã§ãªãªãŒã¹ãããŸããã2.0ããã°ã©ãããŒã¹ã®ãšãŒãžã§ã³ãèšèšãã§ããããã«ãªããæ¡ä»¶åå²ãªã©ã«å¯Ÿå¿å¯èœã«ãªããŸãããçŸå Žã§ãšãŒãžã§ã³ããæ±ãããã«ã¯å¿
èŠãªæ§é ã§ãïŒ ãšãŒãžã§ã³ãã®å®è¡åºç€ â Agent Runtime ãšãŒãžã§ã³ãã®å®è¡ç°å¢ã¯ 3çš®é¡ çšæãããŠããŸãã å®è¡ç°å¢ ç¹åŸŽ é©çšã·ãŒã³ Agent Runtime ãšãŒãžã§ã³ãç¹åã®ãããŒãžãç°å¢ãæå€§3,000ãšãŒãžã§ã³ãåæå®è¡ãæå€§7æ¥éã®é·æå®è¡ãMemory BankæšæºæèŒ æ¬çªéçšã»å€§èŠæš¡ããã〠Cloud Run ã³ã³ããããŒã¹ã®æ±çšå®è¡ç°å¢ ã«ã¹ã¿ã ã©ã³ã¿ã€ã ã§ã®æè»ãªããã〠GKE Kubernetesåºç€ãGPU察å¿ãã«ã¹ã¿ã ãããã¯ãŒã¯æ§æãå¯èœ å€§èŠæš¡ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ äžã§ã Agent Runtime ã¯ãæå€§3,000ãšãŒãžã§ã³ãåæå®è¡ãæå€§7æ¥éã®é·æå®è¡ãšãé·æé皌åãã§ããç°å¢ã«ãªã£ãŠãããçŸå Žã§ãšãŒãžã§ã³ãã皌åãããããã®ç°å¢ãšãã£ãå°è±¡ãåããŸããïŒ ãŸããã»ãã·ã§ã³ç®¡çã»Memory Bankçã®ã¡ã¢ãªç³»ãæšæºæèŒãããŠããç¹ã¯ãããé©ããŸããããšãŒãžã§ã³ãå°çšã®DBãšããå¥ã§äœããªããŠããã®ã¯ãæéãçããŸããã Memory Bank â ãšãŒãžã§ã³ãã®é·æèšæ¶ å人çã«ãä»åã®ã€ãã³ãã§ æã泚ç®ããæ©èœ ã Memory Bank ã§ãã ã»ãã·ã§ã³æ©èœãšã®éã ã»ãã·ã§ã³æ©èœãšäœãéãã®ããšãããšãçšéãå°ãéããŸããã ã»ãã·ã§ã³ãçæèšæ¶ãšMemoryBankãé·æèšæ¶ã®ã€ã¡ãŒãžã§ããïŒ æ¯èŒé
ç® ã»ãã·ã§ã³æ©èœ Memory Bank èšæ¶ã®ç¯å² åäžã»ãã·ã§ã³å
ã®äŒè©±ã®ã¿ ã»ãã·ã§ã³æšªæã§æ°žç¶çã«ä¿æ ä¿ææé ã»ãã·ã§ã³çµäºæã«æ¶å€± é·æçã«ä¿æã»èç© äž»ãªçšé äŒè©±äžã®æèç¶æ ãŠãŒã¶ãŒã®å¥œã¿ã»ããžãã¹ã«ãŒã«ã®åŠç¿ ãã¢ã§èŠã掻çšäŸ Next ã®äŒå Žã§ã¯ã æã®ã¬ã³ã¡ã³ããšãŒãžã§ã³ã ã®ãã¢ãå°è±¡çã§ããã ãŠãŒã¶ãŒã®å¥œã¿ã®è²ãå«ããªè²ã Memory Bank ã«ä¿åããããšã§ã次å以éã¯äœã説æããªããŠãã奜ã¿ãåæ ãããã¬ã³ã¡ã³ããèªåã§çæãããŠããŸããã ãã㯠ããŒãœãã©ã€ãº AI ãšãŒãžã§ã³ã å®çŸã®éµã«ãªãæ©èœã ãšæããŸãã Govern & Optimize â ãšãŒãžã§ã³ãã®çµ±å管ç ãšãŒãžã§ã³ããæ¬çªéçšããããã§æ¬ ãããªãã ã»ãã¥ãªãã£ã»ã¬ããã³ã¹ã»å¯èŠ³æž¬æ§ãçµ±åãã管çåºç€ãçºè¡šãããŸããã æ©èœ ç¹åŸŽ ã¹ããŒã¿ã¹ Agent Registry ãšãŒãžã§ã³ãã»MCPãµãŒããŒã»ããŒã«ã®çµ±åã«ã¿ãã° Preview Agent Gateway ãã©ãã£ãã¯ãæš©éãã¢ã¯ã»ã¹å¶åŸ¡ Preview Agent Observability ãšãŒãžã§ã³ãã®æåã®å¯èŠåã»è¿œè·¡ Preview èªèšŒã»ç»é²ã»éä¿¡å¶åŸ¡ããããã©ãŒãã³ã¹ç£èŠãŸã§ãå
æ¬çãªéçšç®¡çãå®çŸã§ããæ§æã«ãªã£ãŠããŸãã ãšãŒãžã§ã³ãã®æ¬çªéçšãšãªããšãéçšæ§æããç£èŠã®ä»çµã¿ãéèŠã«ãªã£ãŠããã®ã§ããããèŸºã®æ©èœã«ã€ããŠã¯ã瀟å
ã§ãç¥èŠãæ·±ããŠããããã§ããïŒ ãŸãšã ä»å¹Žã® Google Cloud Next ã¯ãAIãšãŒãžã§ã³ããçŸå Žãžããšããã¡ãã»ãŒãžã å
šäœã貫ããŠãããéçºã»å®è¡ã»ç®¡çã®åå±€ã§å
·äœçãªããŒã«ãæã£ãŠããå°è±¡ã§ãã ç¹ã«å°è±¡çã ã£ãã®ããMemory Bank ã«ããããŒãœãã©ã€ãºã®å¯èœæ§ã§ãã ãã¢ã§ã¯ããŠãŒã¶ãŒã®å¥œã¿ããšãŒãžã§ã³ããç¶ç¶çã«èšæ¶ããæ¬¡å以éã®ææ¡ã«èªç¶ã«åæ ããæ§åã玹ä»ãããŠããŸãããåçºã®äŒè©±ã«ãšã©ãŸãããããŒãœãã©ã€ãºããææ¡ãã§ãããããªä»çµã¿ã¯ãèå³ãæ¹§ããŸããïŒ äžæ¹ã§ããããããšãŒãžã§ã³ããå®éã®ãããã¯ããšããŠéçšããŠããããã«ã¯ãéçºã ãã§ãªãéçšé¢ã®èšèšãéèŠã«ãªããŸãããšãŒãžã§ã³ããæ¥åã®äžæ žã«å
¥ã蟌ãã§ããã»ã©ããããã®éçšåºç€ã®éèŠæ§ã¯ããã«é«ãŸã£ãŠãããŸããã ãããããåã«æ°ããæ©èœãšããŠæããã®ã§ã¯ãªããå®éçšãèŠæ®ããæè¡ãšããŠçè§£ãæ·±ããŠããå¿
èŠããããšæããŸããã ä»åŸã¯ãããããéçšæ§æãç£èŠã®ä»çµã¿ã«ã€ããŠã瀟å
ã§ç¥èŠãèç©ããªãããã©ã®ããã«èªç€ŸãµãŒãã¹ãžé©çšã§ããããå
·äœçã«æ€èšããŠãããããšèããŠããŸãïŒ æ¥å¹Žè¡ãäººãž è¬æŒãèãã®ã楜ããã§ãããæãåããã®ã楜ãããšæãã®ã§ããã²Workshopã«åå ããŠæ¬²ããã§ãããŸããè¬æŒãäºçŽããã«ãExpoãèŠãŠåããä»åçºè¡šãããæ©èœãéè¿ã§èŠããããŒã¹ãããã瀟å¡ã«è¿ãè·é¢ã§è³ªåã§ããã®ã§ãããã€ãã³ãã®æ¥œãã¿æ¹ã®éžæè¢ã®äžã€ã ãªãšæããŸããïŒ ãã²ãæ¥å¹Žã®ã€ãã³ãåå ã®åèã«ããŠãã ããã åããŠã©ã¹ãã¬ã¹ã«èšªããã®ã§ããããã¯ãå°è±¡çãªã®ãè¯ãããªè¡äžŠã¿ã§ããïŒ ä»åã®æ»åšäžã«èšªããæåãªããã©ãŒãžãªãã§ã¯ãåŽæ°Žã·ã§ãŒãèŠãããšãã§ããŸããã æŒéã¯ã«ã³ãã¡ã¬ã³ã¹ã§æå
端ã®ãã¯ãããžãŒã«è§Šããå€ã¯ãããããšã³ã¿ãŒãã€ã³ã¡ã³ããäœéšã§ããã®ããã©ã¹ãã¬ã¹éå¬ãªãã§ã¯ã®é
åã ãšæããŸããïŒ æåŸãŸã§ãèªã¿ããã ããããããšãããããŸããïŒ
åç»
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã












