github.com-google-adk-go
all · 7 devs · built 2026-06-13
Repository snapshot
Monthly reports
Highlights
- Introduced a *conformance test recording plugin* and refactored the *replayplugin* for improved agent interaction analysis in [6516f76c · João Westerberg].
- Achieved significant *context unification* across `agent` and `tool` packages, streamlining internal complexity in [d19c1670 · Karol Droste] and [6c2384a3 · Karol Droste].
- Implemented *structured error propagation* within the *ADKA2A subsystem*, enhancing diagnostic clarity for communication failures in [05d6b957 · Yaroslav].
- Upgraded *CLI and web launchers* to use the `a2a-go/v2` SDK, ensuring *backward compatibility* and leveraging new capabilities in [ae8321f1 · Serob Nahapetyan].
- Developed comprehensive *live streaming* features, including *audio caching* ([236cab75 · João Westerberg]), *streaming tool capabilities* ([e5c3f510 · João Westerberg]), *session resumption* ([2b79d381 · João Westerberg]), *sequential agent live run* ([8fb171b6 · João Westerberg]), and *core bidirectional streaming support* ([3f835cd3 · João Westerberg]).
- Added *VertexAI MemoryBank support* for persistent session memory and retrieval, integrated into the *Agent Engine deployment* in [48ac84b9 · Karol Droste].
- Improved development workflow by adding *Dependabot configuration* for automated `genai` dependency updates in [402259c6 · Karol Piotrowicz].
Observations
- Commit volume increased significantly, with 33 commits this month compared to the 23-commit 1-month average (+43%), indicating a heightened pace of development.
- The maintenance score saw a substantial increase of +52% (3 this month vs 2-maintenance 1-month average), reflecting a greater focus on upkeep, infrastructure, and testing enhancements.
- A notable increase in the waste score (+605%, 1 this month vs 0-waste 1-month average) suggests a period heavily focused on bug fixing and rework, particularly in critical areas.
- The grow score decreased by 21% (3 this month vs 4-grow 1-month average), indicating a relative shift from new feature development towards maintenance and stability, despite the overall increase in commit activity.
- A significant portion of the activity (10 commits) was dedicated to bug fixes, addressing issues in *LLM streaming aggregation* ([2472d61f · Karol Droste]), *LLM internal content processing* ([163763b6 · Gustaf]), *A2A execution cleanup* ([6e1fcdb3 · Serob Nahapetyan]), *Vertex AI session management* ([f09fe89b · Gustaf]), *LLM internal flow management* ([a7091922 · Gustaf], [50a84c00 · Gustaf]), *replay_plugin* ([ffb3c531 · João Westerberg]), *agent transfer validation* ([96e74d1b · Anastasia]), *ADKA2A compatibility layer* ([428efadb · Yaroslav]), *nil dereference prevention* ([9eb7630f · Artsiom Shut]), *StateDelta propagation* ([ead8568e · Artsiom Shut]), *request Decode error handling* ([3954b835 · Artsiom Shut]), *adka2a public API incompatibility* ([120787de · Yaroslav]), and *thought signature propagation* ([83692605 · João Westerberg]).
- The `internal/llminternal` directory emerged as a complexity hotspot, receiving numerous bug fixes and feature enhancements related to *LLM internal flow*, *content processing*, *streaming tools*, and *session management*.
- Extensive refactoring for *context unification* was observed across `agent` and `tool` packages ([d19c1670 · Karol Droste], [6c2384a3 · Karol Droste]), aiming to simplify and standardize internal architecture.
- The *ADKA2A subsystem* was a major area of focus, with improvements in *structured error propagation* ([05d6b957 · Yaroslav]), *SDK version upgrades* ([ae8321f1 · Serob Nahapetyan]), and multiple bug fixes, indicating ongoing refinement of agent-to-agent communication.
Performance over time
ETV stacked by Growth, Maintenance and Fixes — 90-day moving average, normalized to ETV / month.
Average performance per developer
ETV per active developer per month — 30-day moving average.
Active developers over time
Unique developers committing each day — 90-day moving average.
Knowledge concentration
How dependent is this repo on a small number of contributors? Higher top-1 share = higher key-person risk.
Dmitry Pasiukevich owns 22.3 % of commits.
Top contributors
Most impactful commits
Top 20 by ETV in the all-time window.
- 2.1ETVMove llm agent code to new packages. (#68) * Move llm agent code to new packages. 1. Now it uses new session, llm, agent, llmagent packages. 2. LLMAgent request processors are now moved to the internal package. 3. Test case logic is kept the same everywhere. 4. Diffs with the doc (these are temporary to simplify the migration): * Tool interface has ProcessRequest method and llm.Request has Tools field. This is to keep current request_processors logic for llmagent. * agent.Config accepts Self field to allow setting correct entity as a parent.Dmitry Pasiukevich · 3c040a32 · 2025-08-18
- 1.7ETVRename sessionservice -> session.Service (#133) * Rename sessionservice -> session.Service Removed StoredSession and Session.ID for ADK conformityDmitry Pasiukevich · edad99a0 · 2025-10-02
- 1.6ETVAgent Engine support (#749) * Agent Engine support * Test fix * Fixes * Fixes * Error handling fix * Fixes * Fixes in encode * Fixed encode * sseTimeout fix * reflection fix * sseWriteTime fix * fix * encode fixes * linter fixes * various fixes * encode tests * linter fixes * fix * linter fixes * Fixes in encodeKarol Droste · a586408f · 2026-04-23
- 1.6ETVRename package llm->model (#130) Also 2 types rename: llm.Request -> model.LLMRequest llm.Response -> model.LLMResponseDmitry Pasiukevich · ea221509 · 2025-10-02
- 1.6ETVfix: remoteagent partial response handling leads to data duplication (#545) * set explicit partial event marking and maintain a temporary artifact for streaming events * fix metadata merging * fix duplicating long running function call * fix citations not included * explicit mark as turnComplete on event conversion * fix response duplication for partial and non-partial events * aggregation logic tests * gemini mock streaming test * added failing test cases * lint * fix partial not reset on errors * fix testYaroslav · ab29975f · 2026-02-10
- 1.5ETVfeat: add plugin package (#480) * Add plugin system * Add plugin system * Removed test with redundant check, tool.Context can never be cast to agent.InvocationContext. * lint fixes * Fix tests plugin name * Added symmetrical after callback execution for plugins * Moved pluginManager to internal context value * Fix runOnToolErrorCallbacks for tool not found * Change plugins fields to private * Small test fixJoão Westerberg · 781f76da · 2026-01-20
- 1.4ETVfeat: add human in the loop confirmation (#490) * Add ToolConfirmation (WIP) * Modify processor type to generator * Add tool confirmation sample * Fix loss of tool confirmation when handling event with multiple function calls * Add basic tool confirmation test * Add request confirmation tests * Fix merge test failures * lint fixes * Remove duplicated code block * merge fix * fix merge confict in base_flow_test * Add tool confirmation docs * merge fix set_test * lint fix * Add package doc for toolconfirmation example * Add tools_processor to cache tools * Update RequireConfirmationProvider doc * Move session.REQUEST_CONFIRMATION_FUNCTION_CALL_NAME to toolconfirmation.RequestConfirmationFunctionCallName. Add toolconfirmation.OriginalCallFrom helper function. * Add OriginalCallFrom godocs * Remove comments on OriginalCallFrom * Change RequestConfirmationFunctionCallName to toolconfirmation.FunctionCallName * Fix godocJoão Westerberg · ac8f39c1 · 2026-01-28
- 1.4ETVfeat: Add conformance test recording plugin (#890) * Add conformance test recording plugin. * lint fix * lint fix * lint fixJoão Westerberg · 6516f76c · 2026-05-29
- 1.3ETVAdd DatabaseSessionService (#177) * Add DatabaseSessionService * Fix api changes * Merge gomod * Fix go mod tidy diff * Add missing err validations on test db start * Change service-test to run in sqlite instead o spanner * Fix applyEvent timestamp * Removed spanner dependency * Clear comments * Change gorm types visibility * Add error context, and dynamicJSON json nils * Add test to append event to session with existing events * Update session prefix references.João Westerberg · de4e4a12 · 2025-10-30
- 1.3ETVUnified launcher (#185) * Moved webui files * Rewritten universal launcher * Changed config struct * Updated example quickstart * Cleaning unsued code, minor fixes * Updated examples * Updated README for examples * Rewritten universal launcher * Removed web base * Initial A2A support * a2a fix * Improved error message * General launcher def * Universal & console implementation * New version of web + api launcher * Quickstart example with web api * Temporarly disabled * Added A2A launcher * Removed unneeded code * Added WebUI launcher * Fixes for API and Web launchers * Updated Examples/quickstart * Console code cleaning * Code cleaning & comments * Full & prod * Updated examples/quickstart * Updated examples * Lint fix * Moved api a2a and webui under web package * Removed comments * A2A fixes * Added A2A Reflection * Updated README.md for Examples * Comment fix in prod launcher * A2A update fix * Unified API_KEY: GOOGLE_API_KEY instead of GEMINI_API_KEY * Fixed typos * Minor fixes * Introduced root agent for agent loader * Added non-failing NewSingleAgentLoader and possibly failing NewMultipleAgentLoader * Comments for AgentLoader * Refactor of launchers * Updated examples * Added memory service to adk config * Comments * CommentsKarol Droste · 0befb4da · 2025-10-31
- 1.3ETVAdd replay plugin (#618) * Add replay plugin * lint fixes * lint fix * Add allowedBaseDir to replay_plugin * lint fix * Move replay plugin to internal/configurable/comformance * Add Python-isms to JSON-isms normalizer to replay plugin * Simplify records unmarshalingJoão Westerberg · d8e57c08 · 2026-03-09
- 1.1ETVRemove agent.Context (#136) It's replaced with InvocationContext, ReadonlyContext and CallbackContext to have ADK conformity.Dmitry Pasiukevich · d8931638 · 2025-10-07
- 1.0ETVfeat(live): Add core bidirectional streaming support (#833) * feat(live): Add core bidirectional streaming support Brings over the core files for live agent execution, including RunLive implementation, base flow updates, and session management. * Change live run config type * lint fixes * lint fix * Add logging to runtime controller * Replace fmt prints with logJoão Westerberg · 3f835cd3 · 2026-05-15
- 1.0ETVfix: long-running operation handling as a2a input-required task (#499) * Include long-running tool function call and response are into A2A TaskStatus message. This is tracked by `inputRequiredProcessor`. This makes it possible for non-blocking clients to discover which input is required to continue a task. * Before starting execution in `adka2a.Executor` validate that user message carries all the required `FunctionCallResponse`s by comparing them against those recorded in task status. * Added test for checking that A2A request payload is assembled correctly by remoteagent. * Refactored `contents_processor` to use functions from `utils`. * Updated `runner.go` to handle the case when user message carries a function response for a long-running call initiated by a non-root agent. This agent needs to be invoked bypassing root. Added integration tests for two cases: * a2aclient -> a2aserver -> adka2a.Executor -> llmagent with a long running tool * a2aclient -> server A -> adka2a.Executor A ->-> llmagent with remote subagent -> remotesubagent -> server B -> adka2a.Executor B -> llmagent with a long running toolYaroslav · 41fbf43c · 2026-01-23
- 1.0ETVUpdate runner to new packages (#67) * Add agent_context implementation. It's mostly a placeholder for now. agent.NewContext(...) will be used by the runner or agent packages to create a new context for each agent Run call. * Update runner from types package. Now runner uses new packages: session, agent. There is only types.AgentRunConfig but this will be updated in subsequent PRs. Remove internal runner -- because callback logic (the only logic there) is now moved to agent, wrapping each agent Run. * Update workflow agents to use new packages. Workflow agents are now structured as: agent/workflowagents loopagent/ sequentialagent/ And they are created now with loopagent.New(...) sequentialagent.New(...) * review commentsDmitry Pasiukevich · 363d0746 · 2025-08-13
- 1.0ETVfeat: add progressive SSE to streaming aggregator and parallel function call execution (#654) * Modify streaming aggregator to support progressive sse * Add parallel execution, add replay test * Remove previous TestStreamAggregator * Remove unused httpr * lint fixes * Add check thoughtSignature to TestParallelFunctionCalls * Change aggregator close to use response error code and messageJoão Westerberg · 81dfe5eb · 2026-03-17
- 0.9ETVAdd callback state modification (#192) * Add state delta modification by agent callbacks and model callbacks. * Change tool context to pass state delta * Remove endInvocation bool type * Change AfterAgentCallback to create new event. * Add nil stateDelta validation to CallbackContext state * Fix state delta test comparisons * Replace base_flow tmpEvent with stateDelta referenceJoão Westerberg · 64491bfb · 2025-10-31
- 0.9ETVfeat: add adk configurable and cli initializer (#617) * Add adk configurable and cli initializer * lint fixes * lint fix * Add conversion checks * lint fix * Move configurable and cli to internal packages * Move conformance loader to internal * fix nit --------- Co-authored-by: Dmitry Pasiukevich <20398573+dpasiukevich@users.noreply.github.com>João Westerberg · 9eb5c288 · 2026-03-06
- 0.9ETVfeat: adka2a conversion extendability and metadata handling (#410) * 1.0.0 compliant change to emit Task as the first event * extension point for modifying emitted events * convert and restore grounding, usage and custom metadata * callbacks for intercepting execution start and end * update a2a-goYaroslav · 9b193f64 · 2025-12-15
- 0.8ETVinternal/httprr: copy golang.org/x/oscar/internal/httprr to internal/httprr (#14) This provides the utility to record and replay HTTP (while removing secrets from the log). Use it to make model's TestNewGeminiModel test deterministic. To regenerate the httprr file, run `go generate` from the directory.Hyang-Ah Hana Kim · 2f44b9ef · 2025-06-17