Skip to content

test(google-adk): add PR #6605 as a static tool-surface regression fixture #316

Description

@pengfei-threemoonslab

Motivation

google/adk-python#6605 is a compact, realistic Google ADK change that can become a durable, offline regression fixture. It adds support_agent with two function tools:

  • lookup_account(user_id)
  • delete_account(user_id)

The sample also includes runtime agent-hooks governance. That runtime behavior is intentionally out of scope for Agents Shipgate's static contract, which makes this a useful boundary test as well as an adapter test.

Observed static result with 0.16.0b7

After a local shipgate.yaml declared the two Google ADK source files, doctor --json found:

  • one Google ADK agent;
  • two function tools;
  • two Python entry points;
  • 2/2 catalog tools reachable and no source-loader warnings.

A static scan --suggest-patches then produced:

  • release_decision.decision = insufficient_evidence;
  • no policy findings and no blockers;
  • two medium/low-confidence tool observations;
  • six semantic gaps over the two actions;
  • 0/2 actions pass-eligible;
  • suggested-inventory.json and reviewed declaration stubs.

This is the desired fail-closed outcome: AST discovery proves a structural root-to-tool binding, but does not invent semantic effect, authority, or approval evidence.

Fixture requirements

Please add a minimized, vendored fixture modeled on the relevant sample; do not fetch GitHub, import the app, execute agent code, make tool calls, or require an LLM/API key.

The fixture should cover:

  1. Google ADK root extraction from LlmAgent(name="support_agent", tools=[...]).
  2. Function extraction, source locations, input shape, and the 2/2 root-reachable binding graph.
  3. The deterministic result insufficient_evidence when only static function definitions and an otherwise minimal manifest are supplied.
  4. Generated inventory/declaration guidance, without auto-filling effect or authority claims.
  5. The static-verdict disclaimer: runtime hooks are not treated as proof that destructive actions are governed.
  6. A companion trigger fixture for the positive routing expected by bug(trigger): recognize Google ADK LlmAgent tools=[...] changes as tool-surface changes #315.

Expected policy assertions

  • delete_account may receive a conservative destructive-risk heuristic, but it must not receive a proven effect/authority/approval claim without explicit evidence.
  • lookup_account may remain semantically unknown until the declared inventory/effect evidence is supplied.
  • A fixture must not treat an exit code of 0 in advisory mode as passed.

Value

This adds a real supported-framework sample between tiny synthetic cases and a full external clone, and guards both the Google ADK adapter and the evidence-boundary contract against regression.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Queued; valuable but not blockingarea:triggerTrigger catalog and relevance routing

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions