import asyncio
from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.genai.types import Content, Part
import cascadeflow
from cascadeflow.integrations.google_adk import GoogleADKHarnessConfig, enable
cascadeflow.init(mode="observe")
# Enable harness plugin
config = GoogleADKHarnessConfig(
fail_open=True,
enable_budget_gate=True,
)
plugin = enable(config=config)
# Create ADK agent
agent = Agent(
name="research_agent",
model="gemini-2.5-flash",
instruction="You are a helpful research assistant.",
)
# Run with plugin
session_service = InMemorySessionService()
runner = Runner(agent=agent, plugins=[plugin])
async def main():
with cascadeflow.run(budget=0.50) as session:
user_content = Content(parts=[Part(text="Explain cascadeflow")])
async for event in runner.run_async(
session_id="test",
user_id="user-1",
new_message=user_content,
):
pass # Process streaming events
print(session.summary())
asyncio.run(main())