Skip to content

docs(google-adk): Class Deep Dives Vol. 4 — source-verified v2.9.2 additions - #345

Merged
CodeHalwell merged 23 commits into
mainfrom
claude/quirky-gauss-zdiv6m
Sep 25, 2026
Merged

CodeHalwell merged 23 commits into
mainfrom
claude/quirky-gauss-zdiv6m

Conversation

@CodeHalwell

Copy link
Copy Markdown
Owner

Summary

  • Adds Class Deep Dives Vol. 4 (google_adk_class_deep_dives_vol4.md) — 10 classes source-verified against google-adk 2.9.2, covering areas absent from or underrepresented in earlier guides.
  • Bumps "latest release" banners across five existing Python guide files from 2.9.0 → 2.9.2.
  • Updates the index Python card (v2.8.0 → v2.9.2) and adds a revision history entry.

Classes covered in Vol. 4

# Class Module What's new
1 SimplePromptOptimizer + config google.adk.optimization Entirely new module — iterative LLM prompt tuning
2 GEPARootAgentOptimizer + config google.adk.optimization GEPA evolutionary search, resumable via run_dir
3 Sampler google.adk.optimization Abstract bridge + custom implementation guide
4 LocalEvalSampler google.adk.optimization ADK eval JSON → optimiser; eval file format
5 TelemetryConfig google.adk.telemetry.context Per-request OTel overrides, precedence rules, admin lock
6 UrlContextTool google.adk.tools Gemini built-in URL grounding (was undocumented)
7 Skill google.adk.skills.models Markdown skill model, frontmatter format
8 SkillRegistry google.adk.skills.skill_registry Abstract backend + GCS implementation
9 SkillToolset google.adk.tools.skill_toolset Full constructor deep-dive with all 8 params
10 VertexAiRagMemoryService google.adk.memory Agent Platform RAG memory, full Runner wiring

Files changed

  • src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md — new file (~1 100 lines)
  • src/content/docs/google-adk-guide/index.mdx — Python card version + revision history
  • src/content/docs/google-adk-guide/python/agents.md — latest release banner
  • src/content/docs/google-adk-guide/python/runner-and-sessions.md — latest release banner
  • src/content/docs/google-adk-guide/python/tools.md — latest release banner
  • src/content/docs/google-adk-guide/python/workflows.md — latest release banner
  • src/content/docs/google-adk-guide/python/callbacks-and-plugins.md — latest release banner

🤖 Generated with Claude Code

https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ


Generated by Claude Code

Install google-adk 2.9.2 (latest), source-verify 10 classes that were
absent or underrepresented in earlier guides, and add a new document:

  src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md

Classes covered (all source-verified against 2.9.2):
  1. SimplePromptOptimizer + SimplePromptOptimizerConfig — iterative LLM
     prompt tuning loop; config fields, custom ThinkingConfig, multi-agent use
  2. GEPARootAgentOptimizer + GEPARootAgentOptimizerConfig — GEPA-based
     evolutionary prompt search; checkpointing via run_dir, gepa install
  3. Sampler — abstract optimisation bridge; custom InMemory implementation
  4. LocalEvalSampler — ADK eval JSON → optimiser; eval file format docs
  5. TelemetryConfig — per-request OTel overrides; precedence rules,
     ADK_TELEMETRY_IGNORE_RUN_CONFIG admin lock, multi-tenant pattern
  6. UrlContextTool — Gemini built-in URL grounding; restrictions,
     ADK_DISABLE_GEMINI_MODEL_ID_CHECK bypass, combined with Google Search
  7. Skill — Markdown-defined skill model; frontmatter format, programmatic load
  8. SkillRegistry — abstract backend; GCS-backed and in-memory implementations
  9. SkillToolset — full constructor deep-dive; filtering, namespacing,
     absolute-path requirement when environment is set
 10. VertexAiRagMemoryService — Agent Platform RAG memory; agentplatform
     (not deprecated vertexai.preview.rag), full Runner wiring, troubleshooting

Version bumps:
  - Python card in index.mdx: v2.8.0 → v2.9.2
  - Revision history entry added for 2026-09-21
  - "latest release is 2.9.0" → "2.9.2" in agents, runner-and-sessions,
    tools, workflows, callbacks-and-plugins guides

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI lite review requested due to automatic review settings September 21, 2026 07:18
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-25T22:18:43.817134Z 7636e15 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

One or more issues must be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
What changed in this PR

Adds source-verified Google ADK 2.9.2 deep dives and updates release metadata across existing guides.

Changes:

  • Adds Vol. 4 coverage for optimization, telemetry, URL tools, skills, and RAG memory.
  • Updates version banners, Python card metadata, and revision history.
  • Several new examples conflict with documented APIs and lifecycle behavior.
File Description
src/​content/​docs/​google-adk-guide/​python/​workflows.md Updated as part of this pull request.
src/​content/​docs/​google-adk-guide/​python/​tools.md Updated as part of this pull request.
src/​content/​docs/​google-adk-guide/​python/​runner-and-sessions.md Updated as part of this pull request.
src/​content/​docs/​google-adk-guide/​python/​google_adk_class_deep_dives_vol4.md Updated as part of this pull request.
src/​content/​docs/​google-adk-guide/​python/​callbacks-and-plugins.md Updated as part of this pull request.
src/​content/​docs/​google-adk-guide/​python/​agents.md Updated as part of this pull request.
src/​content/​docs/​google-adk-guide/​index.mdx Updated as part of this pull request.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aaef8a32a6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
- Replace result.best_agent / result.best_agent_with_scores with the
  correct OptimizerResult.optimized_agents list access:
    result.optimized_agents[0].optimized_agent  (SimplePromptOptimizer)
    max(result.optimized_agents, key=…).optimized_agent  (GEPA)
  The OptimizerResult model exposes a Pareto-front list, not a single
  best_agent field (source-verified against data_types.py).

- Fix Sampler abstract interface and InMemorySampler: get_train_example_ids
  and get_validation_example_ids are synchronous (not async); only
  sample_and_score is async (source-verified against sampler.py).

Addresses Copilot review finding on PR #345.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 21, 2026 07:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

One or more issues must be addressed before approval.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
Previously missed (5)

In code that hasn't changed since last review

Medium severity Use config-based LocalEvalSampler construction

src/​content/​docs/​google-adk-guide/​python/​google_adk_class_deep_dives_vol4.md:388

This constructor and the examples below do not match the ADK sampler API documented elsewhere in this repository: LocalEvalSampler is configured with LocalEvalSamplerConfig (including eval_config, app_name, and train/validation eval-set names), not a single eval_set_file path. As written, both LocalEvalSampler(eval_set_file=...) calls will raise an unexpected-keyword TypeError; please show the actual config-based construction and eval-set layout.

Medium severity Skill example uses an unsupported constructor shape

src/​content/​docs/​google-adk-guide/​python/​google_adk_class_deep_dives_vol4.md:706

The Skill shape shown here is incompatible with the repository's documented ADK API: existing examples construct it with a required name and a SkillFrontmatter object (tools.md:1393-1412), rather than a dict frontmatter plus a resources list. Consequently the Skill(...) call at line 755 omits required data and will not construct the model. Please document the actual model and use Skill.from_directory(...) or the supported constructor.

Medium severity Document the supported Skill directory layout

src/​content/​docs/​google-adk-guide/​python/​google_adk_class_deep_dives_vol4.md:725

This describes a skill as a standalone frontmatter Markdown file, but the documented ADK model uses a skill directory containing SKILL.md plus optional resource directories, and Skill.from_directory(...) handles that layout (tools.md:1385-1385, tools.md:1442-1450). As written, the file format and loader below do not represent the actual SkillToolset input and will mislead readers into creating unsupported skill objects.

Medium severity Use an async SQLite URL for DatabaseSessionService

src/​content/​docs/​google-adk-guide/​python/​google_adk_class_deep_dives_vol4.md:1123

This end-to-end Runner example uses DatabaseSessionService(db_url="sqlite:///sessions.db"), but the ADK session service uses SQLAlchemy's async engine and requires an async driver; the repository's working SQLite examples use sqlite+aiosqlite:///... (runner-and-sessions.md:313-316). This snippet will fail during service initialization unless the URL is changed to an async SQLite URL (and the async dependency is installed).

Low severity PreloadMemoryTool behavior is described incorrectly

src/​content/​docs/​google-adk-guide/​python/​google_adk_class_deep_dives_vol4.md:1162

PreloadMemoryTool is not callable by the agent and does not inject memory only at session start: it runs automatically before each LLM call when explicitly added to the agent. The existing memory guide documents this behavior (memory-and-artifacts.md:65-80), so this comment is misleading about when and how memory is loaded.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 87cdd766fa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
…view

All fixes source-verified against google-adk 2.9.2:

LocalEvalSampler (§1, §2, §4):
- Constructor is LocalEvalSampler(config, eval_sets_manager), not a file path.
  Updated all three call sites to use LocalEvalSamplerConfig + EvalConfig +
  LocalEvalSetsManager(agents_dir=...). Added eval-set directory layout docs.

Skill / SkillRegistry (§7, §8):
- frontmatter: Frontmatter (typed model), not dict[str, Any].
- resources: Resources() (model with references/assets/scripts), not list.
- Fixed class structure snippet, load_skill_from_file example, and
  InMemorySkillRegistry construction to use Frontmatter + Resources.
- Added Frontmatter, Resources to import lines.

SkillToolset (§9):
- Clarified: toolset exposes list_skills/load_skill/load_skill_resource/
  run_skill_script/search_skills — not one tool per skill file.
- Replaced incorrect skills_folder-only example with correct skills=[...]
  usage (skills_folder requires environment; without it use Skill objects).
- Fixed filtering and namespacing examples to use skills=[...].
- Noted skills_folder raises ValueError without environment.

VertexAiRagMemoryService (§10):
- Runner does not auto-call add_session_to_memory; fixed chat() to reload
  the updated session and call it explicitly after runner.run().
- PreloadMemoryTool: marked as automatic (process_llm_request), not
  model-callable; added after_agent_callback pattern as an alternative.
- Fixed troubleshooting row: remove "called after session ends" claim.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 21, 2026 07:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Several documentation examples contain incorrect schemas, API usage, async behavior, and database configuration, and Vol. 4 is not linked from the Python index.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 High severity · 3 Medium severity

Open (4)
Resolved since last review (1)

Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
- SkillToolset §9: tool_filter predicate signature corrected from
  (skill_name: str) to (tool: BaseTool, context: ReadonlyContext | None),
  matching BaseToolset._is_tool_selected call site. Imports updated to
  google.adk.tools.base_toolset.ReadonlyContext.
- VertexAiRagMemoryService troubleshooting: "increase vector_distance_threshold"
  corrected to "lower vector_distance_threshold" — the field is a maximum
  distance so lower = stricter (fewer results).
- Dismissed Codex finding that project/location were invalid params:
  source-verified both are present in the constructor.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 21, 2026 07:33
- LocalEvalSampler §4: correct eval set directory layout.
  Files are flat <eval_set_id>.evalset.json under agents/<app_name>/,
  not a per-case sub-directory tree. Updated both the layout diagram
  and the example JSON to reflect the actual EvalSet Pydantic schema
  (eval_set_id + eval_cases[]; conversation entries use final_response
  not reference). Updated inline comments in the code example.
- VertexAiRagMemoryService §10: fix SQLite dialect in DatabaseSessionService
  example. async SQLAlchemy requires sqlite+aiosqlite:// not sqlite://.
- SkillRegistry §8 GCS example: wrap blocking list_blobs/download_as_text
  calls in asyncio.to_thread so they don't block the event loop.

Two Codex findings dismissed as incorrect after source verification:
- VertexAiRagMemoryService project/location params: both ARE present in
  the constructor (__init__ params confirmed via inspect.signature).
- SkillToolset skills_folder/environment: both ARE valid constructor params;
  skills_folder requires an absolute path and environment must be set
  (raises ValueError otherwise). Skill.from_directory does not exist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Several examples contain incorrect API usage and eval-set documentation, with additional navigation and consistency fixes needed.

Review effort: Lite
Findings: 1 High severity · 2 Medium severity

Open (3)
Resolved since last review (1)

Copilot AI review requested due to automatic review settings September 21, 2026 07:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

One or more issues must be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Low severity

Open (1)
Resolved since last review (3)

Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
The eval sets live directly under agents/<app_name>/, not under an
eval/ sub-directory. The earlier layout fix updated the diagram and
the train/validation inline comments but missed the introductory
comment above LocalEvalSetsManager construction.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 21, 2026 07:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

One or more issues must be addressed before approval.

Review effort: Lite
Findings: None

Resolved since last review (1)
Previously missed (1)

In code that hasn't changed since last review

Medium severity Use tool names instead of skill names in tool_filter

src/​content/​docs/​google-adk-guide/​python/​google_adk_class_deep_dives_vol4.md:1065

The tool_filter list is an inherited BaseToolset filter over generated tool names, not skill names. write-unit-test is a skill name and does not match tools such as list_skills/load_skill, so this example will not expose the intended skill-management tools (and cannot hide only review-pr). Please show a tool-name allowlist or explain that per-skill filtering is not provided here.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 23167d84df

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
- SkillRegistry §8: search_skills return type corrected from list[Skill]
  to list[Frontmatter] in the abstract interface, GCSSkillRegistry, and
  InMemorySkillRegistry, matching the actual abstract method signature.
  Returns s.frontmatter for each matching skill. Added Frontmatter to
  GCS import.
- VertexAiRagMemoryService §10: add PreloadMemoryTool to the wiring
  example agent so it actually retrieves stored memories before each LLM
  call. Without this the memory_service stores conversations but the
  agent can never recall them.
- Sampler §3: replace custom SimpleResult dataclass with the SDK's
  UnstructuredSamplingResult (which has scores + data). Handle the
  capture_full_eval_data flag by populating data["outputs"] when true;
  this is required by GEPARootAgentOptimizer's reflection step.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 21, 2026 07:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Broad documentation changes include unresolved versioning and accuracy inconsistencies requiring final human review.

Review effort: Lite
Findings: 1 Low severity

Open (1)

Comment thread src/content/docs/google-adk-guide/index.mdx
…ns to 2.9.2

The Python card declared google-adk 2.9.2 as current while the Class &
API reference still showed 2.8.0 as latest and pinned examples to
>=2.8.0. Updated the header banner and both install pin examples
(pip install and requirements.txt) in google_adk_comprehensive_guide.md
to 2.9.2. Revised history entry in index.mdx updated to include this
file in the list of banner changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 21, 2026 08:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

One or more issues must be addressed before approval.

Review effort: Lite
Findings: 1 Low severity

Open (1)

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eaf4fa6c96

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
The comment 'available inside the skill's sub-agent' was incorrect:
there is no skill sub-agent, and tools in the additional_tools pool are
not exposed immediately. They only surface when a currently-activated
skill's frontmatter lists the tool name in metadata.adk_additional_tools.

Added prose explaining the activation-gated mechanism and a SKILL.md
frontmatter snippet showing the required adk_additional_tools field.
Source-verified against SkillToolset._resolve_additional_tools_from_state
in google-adk 2.9.2.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 21, 2026 08:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Four review findings remain unresolved, including two moderate documentation issues.

Review effort: Lite
Findings: 1 Low severity

Open (1)

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 61ea823851

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
… example

Two issues in the SkillToolset additional_tools documentation:
1. Constructor table row still described additional_tools as tools for
   "the skill's sub-agent" — corrected to describe the activation-gated
   pool mechanic (unlocked per-skill via metadata.adk_additional_tools).
2. SKILL.md frontmatter example was missing the required description
   field (Frontmatter.description: str is non-optional per source).
   Added a description string to make the example loadable.

Both verified against google-adk 2.9.2 skills/models.py.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 21, 2026 08:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

One or more issues must be addressed before approval.

Review effort: Lite
Findings: 1 Low severity

Open (1)
Previously missed (1)

In code that hasn't changed since last review

Low severity Include search_skills in the tool_filter management tool list

src/​content/​docs/​google-adk-guide/​python/​google_adk_class_deep_dives_vol4.md:1005

The tool_filter field description omits search_skills, even though the section below states that this management tool is exposed when registry is set and can be filtered. Readers following this table may not realize it is another valid allowlist entry; include search_skills in the listed management tool names (or explicitly qualify the list as conditional on a registry).

The constructor reference table listed only four management tool names
(list_skills, load_skill, load_skill_resource, run_skill_script) but
omitted search_skills, which is registered when registry is set and is
a valid allowlist entry. Added it with a parenthetical noting the
registry condition.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 21, 2026 09:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

One or more issues must be addressed before approval.

Review effort: Lite
Findings: 1 Low severity

Open (1)

Re-checked against an installed google-adk==2.9.2:
- Sampler/InMemorySampler: keep SDK defaults (batch=None, capture=False)
  and handle batch=None, which SimplePromptOptimizer's final validation
  relies on; use run_async in async examples
- SkillToolset: prefix "coding" yields coding_list_skills (BaseToolset
  joins with "_"); skills_folder example no longer passes both
  environment and code_executor (mutually exclusive); keyword-only
  signature and real parameter types
- SkillRegistry: keyword-only get_skill/search_skills, get_skill raises
  instead of returning None, search_tool_description defaults to None
- Point to load_skill_from_dir/load_skills_from_dir instead of a
  hand-written SKILL.md parser
- TelemetryConfig: StrictBool and Literal field types
- UrlContextTool: describe the real model check instead of invented
  source; mention the ready-made google.adk.tools.url_context instance
- GEPA: Genetic-Pareto; skills' instructions are optimized too; static
  instruction required; example sets validation_eval_set
- VertexAiRagMemoryService: ingest once at session end (every call
  uploads the full transcript), drop per-turn callback advice; install
  via google-adk[gcp] (+ greenlet for async SQLAlchemy 2.1); create the
  corpus with agentplatform's client.rag.create_corpus
- Release banners now dated ("as of 2026-09-21") since 2.10.0 shipped;
  comprehensive guide Updated date aligned

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UbuuyLymfkxVYM5kGzDV53
Copilot AI review requested due to automatic review settings September 25, 2026 22:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Several moderate documentation inaccuracies and contradictory RAG guidance remain unresolved.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 2 Medium severity · 1 Low severity

Open (3)
Resolved since last review (1)

Comment thread src/content/docs/google-adk-guide/python/google_adk_class_deep_dives_vol4.md Outdated
Comment thread src/content/docs/google-adk-guide/index.mdx Outdated
…(Copilot findings)

- comprehensive_guide.md: remove VertexAiRagMemoryService from
  add_events_to_memory support row; it raises NotImplementedError
  (source-verified against google-adk 2.9.2)
- class_deep_dives_vol4.md: fix rag_corpus troubleshooting row —
  remove reference to internal rag_resource param; only rag_corpus
  is a constructor argument
- memory-and-artifacts.md: replace "agents never mutate the corpus"
  with accurate description of add_session_to_memory write path and
  add_events_to_memory NotImplementedError
- index.mdx: change "new optimization module" to "optimization module
  (newly deepened in this volume)" — the module existed in 2.7.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGnEndeZKTPaUENwFn69fQ
Copilot AI review requested due to automatic review settings September 25, 2026 22:15

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7636e15666

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +1261 to +1262
memory_service = VertexAiRagMemoryService(
rag_corpus=RAG_CORPUS,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Isolate the RAG corpus before accepting arbitrary users

In this full-wiring example, chat() accepts arbitrary user_id values while every request shares RAG_CORPUS; VertexAiRagMemoryService searches the corpus without applying its app_name or user_id arguments as retrieval filters, and PreloadMemoryTool automatically injects the resulting matches. In a multi-user deployment, one user's request can therefore receive another user's ingested transcript. Use a separate corpus per trust boundary or a memory backend that enforces user scoping, and document this limitation.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Source-verified against google-adk 2.9.2 — this finding does not hold.

VertexAiRagMemoryService encodes app_name, user_id, and session_id into each uploaded file's display_name via _build_source_display_name (line 70-76 of vertex_ai_rag_memory_service.py). search_memory then parses that display name from every retrieved chunk and drops any chunk whose source_app_name != app_name or source_user_id != user_id (lines 355-359). Cross-user retrieval is filtered at the application layer regardless of corpus sharing. The example code is correct as written.


Generated by Claude Code

@CodeHalwell
CodeHalwell merged commit d635787 into main Sep 25, 2026
2 checks passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Moderate documentation issues and conflicting API examples remain unresolved.

Review effort: Lite
Findings: None

Resolved since last review (3)
Previously missed (1)

In code that hasn't changed since last review

Low severity Clarify classes are newly covered or deepened

src/​content/​docs/​google-adk-guide/​python/​google_adk_class_deep_dives_vol4.md:3

This description implies the ten classes were new or deepened in the 2.9.2 package, but the existing comprehensive guide already documents SimplePromptOptimizer and GEPARootAgentOptimizer as present in 2.7.1 (google_adk_comprehensive_guide.md:6371-6390) and UrlContextTool as verified in 2.7.1 (google_adk_comprehensive_guide.md:4716-4737). Reword this as classes newly covered or deepened in this volume, consistent with the revision entry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants