google-adk
Installation
SKILL.md
Google ADK Development Skill — Python + Gemini + FastAPI
Iron Law
NEVER call the real Gemini API in unit tests. Always use InMemoryRunner for tests. Production agents use Runner with real session services. Mixing these means real API costs, flaky tests, and non-deterministic CI.
NEVER connect to external services from a FunctionTool. All external I/O (HTTP, DB, vector DB, cloud APIs) belongs in MCPTools accessed via McpToolset. FunctionTools contain ONLY pure logic or session state access.
ALWAYS use McpToolset for MCP connections — never instantiate McpToolset(connection_params=...) directly in agent code; use the factory provided by your project. Rules:
tool_filteris MANDATORY and non-empty in everyMcpToolsetcall — limits which MCP tools the LLM can call; empty list raisesValueErrorat startup- NEVER bypass McpToolset with direct
httpx/requestscalls — all external I/O routes through the MCP server via McpToolset