-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Getting started with adk #710
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
@Giom-V Could you please review this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @andycandy. Thanks for this guide as I'm curious about ADK but did not have the time to actually try it yet.
I think it's a good intro to ADK, but TBH I think the main issue is that it's not clear what ADK brings that classic function calling cannot do. But it's not an easy question to answer so we can keep it as it is now.
"source": [ | ||
"from google.colab import userdata\n", | ||
"import os\n", | ||
"from dotenv import load_dotenv\n", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure you really need dotenv in this case. What does it bring you?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry I didn't explain what it does, the adk as you can see, can access the gemini models, right? But if you pay attention we never gave it any API keys, it's not a mistake, but it's just how ADK is supposed to work, you load your API in the environment with a specific variable name, and ADK picks up API key from there. TBH I wasn't also a fan of this, google-genai handles this much more gracefully
You should also add a link in the examples/ README |
Hey @Giom-V, really glad you came to check this. A few days ago, I proposed a notebook (#715) that focuses specifically on demonstrating how ADK improves on classic function calling. While there are many advantages, the core idea I wanted to highlight in that proposal was ADK's ability to handle actions asynchronously. The workflow I outlined shows how ADK can orchestrate multiple tool calls without blocking, making it especially powerful in more dynamic or multi-step application flows. |
Related Issue
Closes #708
Description
This PR adds the first ADK example notebook (
Getting_started_with_ADK.ipynb
) to theexamples/google-adk/
directory set up in #709.Purpose
Agent
,Tool
,State
,Runner
) in action.google-adk
section.What's in the notebook (
Getting_started_with_ADK.ipynb
)It walks through a simple 'Stateful Echo Agent'. The agent echoes input but uses an ADK
FunctionTool
(andToolContext
) to update its status (START
->PROCESSING
->END
) in theSessionState
. So, it shows the coreLlmAgent
(with Gemini),Tool
,State
, andRunner
working together in a basic way.When reviewing, could you check if: