-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Feat/web artifact metadata 3710 #3734
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
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
|
Response from ADK Triaging Agent Hello @sarojrout, thank you for creating this PR! It looks like you haven't signed the Contributor License Agreement (CLA) yet. Please visit https://cla.developers.google.com/ to sign it. This is a necessary step before we can review and merge your contribution. Thanks! |
Summary of ChangesHello @sarojrout, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the ADK framework by expanding the web API's capabilities to include artifact metadata, which is vital for advanced workflows like context offloading. It also updates core infrastructure by bumping the minimum Python version and refining event handling, particularly for streaming and session management. Furthermore, the PR introduces new practical examples of agent development and improves the robustness and observability of existing integrations, such as BigQuery and MCP tools. Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
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.
Code Review
This pull request introduces a wide range of features, fixes, and documentation updates. The primary feature is the addition of artifact metadata endpoints to the web API. Other notable changes include dropping support for Python 3.9, adding several new sample agents, and significant refactoring of services and tools. The changes are extensive and generally improve the codebase. My review highlights a few areas for improvement: a formatting issue in the documentation, a potentially overly broad exception catch in the MCP session manager, and a possible regression in the save_files_as_artifacts_plugin.
e51b2a2 to
82cbd26
Compare
fixed these by rebuilding the branch again from upstream/main |
|
Hi @sarojrout , Thanks for the Pull request. Can you please fix the lint errors using autoformat.sh before we proceed with the review . |
Please ensure you have read the contribution guide before creating a pull request.
Link to Issue or Description of Change
1. Link to an existing issue (if applicable):
2. Or, if no issue exists, describe the change:
If applicable, please follow the issue templates to provide as much detail as
possible.
Problem:
The web FastAPI server exposes only artifact content endpoints, so HTTP/web clients cannot read ArtifactVersion metadata that contains custom_metadata, canonical_uri, or timestamps. Features like context offloading rely on that metadata, which means the sample currently only works inside Python runners and not via the web API.
Solution:
Add two metadata-focused endpoints (/versions/metadata and /versions/{id}/metadata) that proxy the existing artifact-service methods, wire them into the conformance HTTP client, and add regression tests. This makes the web API feature-complete with the backend artifact service and enables context-offloading workflows over HTTP/SSE.
Testing Plan
Unit Tests:
uv run pytest tests/unittests/cli/test_fast_api.py
uv run pytest tests/unittests/cli/conformance/test_adk_web_server_client.py
Manual End-to-End (E2E) Tests:
Not run; server changes verified via automated FastAPI + client tests. (If you need a manual scenario, start adk web, call the new metadata endpoints, and ensure the responses include customMetadata.)
Checklist
Additional context
The new endpoints mirror the existing content endpoints so HTTP clients can watch actions.artifactDelta and fetch metadata as needed.