A developer-friendly framework for building AI agents with Google ADK
Project description
FastADK
FastADK is an open‑source Python framework that layers ergonomic abstractions over Google ADK and Vertex AI, enabling developers to design, test, and deploy tool‑using LLM agents with minimal boilerplate. Declarative decorators, auto‑generated FastAPI routes, pluggable memory back‑ends, and built‑in observability let teams prototype locally and scale the same code seamlessly to containerised, serverless environments.
Quality Assurance
Before submitting any code changes, please run our quality checks locally. See the Developer Guidelines for Quality Assurance for detailed instructions.
Features
- Declarative Agent Development: Create agents with simple
@Agentand@tooldecorators - Configuration System: YAML/TOML-based configuration with environment variables support
- CLI Interface: Interactive command-line interface for agent development and testing
- Testing Utilities: Built-in testing framework for agent validation and simulation
- Comprehensive Observability: Logging, metrics, and tracing for monitoring agent behavior
Quick Start
from fastadk import Agent, BaseAgent, tool
@Agent(model="gemini-1.5-pro", description="Weather assistant")
class WeatherAgent(BaseAgent):
@tool
def get_weather(self, city: str) -> dict:
"""Fetch current weather for a city."""
return {"city": city, "temp": "22°C", "condition": "sunny"}
# Run the agent
if __name__ == "__main__":
import asyncio
async def main():
agent = WeatherAgent()
response = await agent.run("What's the weather in London?")
print(response)
asyncio.run(main())
Configuration
FastADK supports configuration through YAML or TOML files and environment variables:
# fastadk.yaml
environment: dev
model:
provider: gemini
model_name: gemini-1.5-pro
api_key_env_var: GEMINI_API_KEY
memory:
backend_type: inmemory
ttl_seconds: 3600
telemetry:
log_level: debug
Testing
FastADK provides a testing framework for agent validation:
from fastadk.testing import AgentTest, test_scenario
class TestWeatherAgent(AgentTest):
agent = WeatherAgent()
@test_scenario("sunny_weather")
async def test_sunny_weather(self):
response = await self.agent.run("What's the weather in London?")
assert "sunny" in response.lower()
assert self.agent.tools_used == ["get_weather"]
Installation
pip install fastadk
License
FastADK is released under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastadk-0.1.0.tar.gz.
File metadata
- Download URL: fastadk-0.1.0.tar.gz
- Upload date:
- Size: 125.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b324c92ec3dece6bee3b4a789a0f78cac6f39ec7d9f02458b3d156d1514ec0f
|
|
| MD5 |
0f8ed0dfbc411ef08c9fd6ccd281269e
|
|
| BLAKE2b-256 |
c50765fa600763329ab1ee2b863b3681137fdb350eaafff2d6abdb5a82cc2b83
|
File details
Details for the file fastadk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fastadk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 59.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff36b0d61b01b538a4252c4e82493a3a6be02d84a500811776102d478fe6c8e4
|
|
| MD5 |
ea94716227140ea9e6d9a4fb1a999cfe
|
|
| BLAKE2b-256 |
388a75e88f9245c870298e64568b26efe93518bb602348e0ed7510036aebc818
|