Skip to content

Why Science ADK builds on Google ADK

This decision was made against measurements, not preference. Everything below was verified against google-adk in a clean virtualenv with every GOOGLE*, GEMINI* and *API_KEY* variable stripped from the environment.

What was tested

Question Result
Does a deterministic, non-LLM agent run with no API key? Yes. A custom BaseAgent executed offline and returned its computed value.
Is there a real agent & event model? Yes. google.adk.agents.BaseAgent, InvocationContext, Event, and standard GenAI content types provide the native event protocol.
Does BaseAgent support typed execution? Yes. Agent subclasses BaseAgent directly, implements _run_async_impl(), and emits structured events.
Does typed execution run offline? Yes. An Agent node ran end to end under InMemoryRunner with no network.
Does data flow cleanly across nodes? Yes, as structured dictionaries — downstream nodes receive typed data inputs.
Can agents be composed? Yes. Sub-agents, composite workflows, and runner pipelines compose natively.
Constraints inherited Pydantic model validation (extra='forbid'), explicit type annotations (ports: Ports = ...).

The decision

Science ADK's Agent subclasses google.adk.agents.BaseAgent natively. We build directly upon the Google ADK foundation.

The reasoning is that the core primitives of agent architectures — invocation context, event streams, lifecycle callbacks, session state management, and runners — are already built, battle-tested, and maintained in Google ADK. Reimplementing them would mean maintaining duplicate infrastructure without scientific benefit.

Building natively on Google ADK also means every Science ADK research agent is an authentic Google ADK agent. Anything in the Google ADK ecosystem that orchestrates or observes BaseAgent instances can run a Science ADK scientific agent without translation bridges.

What Science ADK adds for scientific research

Google ADK provides the agent and execution runtime. Science ADK provides scientific verification, integrity constraints, and reproducible research workflows:

  • Typed scientific ports — a domain-specific vocabulary (dataframe, array, figure, model) with compatibility rules checked before execution.
  • A tamper-proof provenance ledger — machine-recorded evidence of every input, tool call, and fetch, which agent code cannot modify.
  • Dataset references — large values spill to disk (parquet, npy) and travel as pointers, ensuring traces remain readable and preventing out-of-band data mutations.
  • Deterministic gates and a three-pillar audit — a failed gate scores zero, preventing hallucinated or fabricated results from being reported as scientific findings.
  • A file-based research project — goal, hypotheses, lineage, runs, and learnings as plain files in git.
  • Static validation — AST analysis catching cycle graphs, missing port bindings, unannotated attributes, and swallowed exceptions before execution.
  • The harness layer — skills that empower any coding agent to autonomously drive the research loop.