Update

all: run golangci-lint fmt happy (#308)

Koichi Shiraishi
2 months ago

Commit: e0c09d1

Date: November 19, 2025 at 8:01 AM

  • golangci-lint: add gofumpt formatters and settings

Signed-off-by: Koichi Shiraishi

  • all: run golangci-lint fmt happy

$ go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest fmt

Signed-off-by: Koichi Shiraishi

---------

Signed-off-by: Koichi Shiraishi

Update

Added minor linter fixes. (#311)

Dmitry Pasiukevich
2 months ago

Commit: a09263b

Date: November 18, 2025 at 1:29 PM

  • Added Minor linter fixes.
  • More typos
  • upd

Commit: 0a038b6

Date: November 14, 2025 at 4:18 PM

  • refactor: extract repeated values into named constants

fix TraceMergedToolCalls() comment

  • fix duplicate key in the attributes

fix untracked files

Commit: dabb9bd

Date: November 14, 2025 at 4:15 PM

  • Added interceptor setting the user in metadata
  • Ignore ctx in adka2a processor
  • Update to TOC in CONTRIBUTING.md
  • Fix typo in launcher/prod
  • Restore .gitignore
  • Added CallInterceptor to set the user in a2a
  • Fix blank lines in CONTRIBUTING.md
  • Minor fix - argument order
  • Minor fix - execution arg order
Update

Add CONTRIBUTING.md (#286)

Dmitry Pasiukevich
2 months ago

Commit: 8df5415

Date: November 14, 2025 at 10:47 AM

  • Add CONTRIBUTING.md
Fix

all: run modernize happy (#281)

Koichi Shiraishi
2 months ago

Commit: 7a27c16

Date: November 14, 2025 at 3:33 AM

$ go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...

Signed-off-by: Koichi Shiraishi

Commit: f1d3cc5

Date: November 13, 2025 at 9:26 PM

Add nil check in Flow.callLLM() after BeforeModelCallbacks but before

accessing Model.GenerateContent(). This prevents a nil pointer dereference

panic when an llmagent is created without a Model configuration.

The check is positioned after BeforeModelCallbacks to allow callbacks that

return cached responses to short-circuit execution without requiring a Model.

This provides a clear error message instead of a cryptic segmentation fault:

'agent %q has no Model configured; ensure Model is set in llmagent.Config'

Preserves valid use cases:

  • Testing agent metadata/structure without running the agent
  • BeforeAgentCallbacks that short-circuit before agent execution
  • BeforeModelCallbacks that return cached responses

Fixes panic: runtime error: invalid memory address or nil pointer

dereference when sub-agents without Models were invoked.

Update

Allow using a custom MCP client (#276)

Jaana Dogan
2 months ago

Commit: 7f5fe5e

Date: November 13, 2025 at 4:39 PM

Update

Restructure the REST API packages (#254)

Jaana Dogan
2 months ago

Commit: f5d265a

Date: November 13, 2025 at 4:30 PM

Commit: 437ef38

Date: November 13, 2025 at 4:29 PM

This change re-introduces error as a possible return value for function tools. The previous removal of this feature led to poor error-handling patterns, as functions often need to signal failures from validation, I/O, or network calls. Restoring the ability to return errors allows for conventional error handling.

Fixes #260.

Breaking

Remove misleading session service (#273)

Jaana Dogan
2 months ago

Commit: 7b07455

Date: November 13, 2025 at 3:43 PM

VertexAI chat isn't suitable for session storage, and the implementation returns a fake "test-id" as the session ID. Remove this package.

Commit: b5bc2c3

Date: November 13, 2025 at 3:40 PM

Per Go style guideline, avoid repetitiveness caused by package name in identifier names.

Commit: 9992414

Date: November 13, 2025 at 10:01 AM

  • Add command-line params in web launcher for server timeouts
  • Added comments

Commit: cffe3b0

Date: November 12, 2025 at 12:18 PM

  • Add NewHandler() function to return http.Handler instead of requiring mux.Router - Created NewHandler() that returns standard http.Handler for better decoupling - Marked SetupRouter() as deprecated for backward compatibility - Allows users to use ADK REST API with any HTTP server/router, not just gorilla/mux
  • Update api launcher to use NewHandler() instead of SetupRouter() - Refactored SetupSubrouters to use web.NewHandler() - Wraps handler with CORS middleware before registration - Uses http.StripPrefix for proper path handling - No breaking changes to web launcher interface
  • Add example demonstrating NewHandler() usage with standard net/http - Shows how to use web.NewHandler() with net/http.ServeMux - Demonstrates framework-agnostic approach - Includes health check endpoint to show composability - Example works with any HTTP server/router, not tied to gorilla/mux
  • Resolve PR feedback: remove SetupRouter and update example to use launcher.Config
  • Clean up comments in NewHandler and setupRouter

Removed comments about the preferred integration method and the public SetupRouter helper.

  • Fix linter issues: handle w.Write error and format with goimports
  • Fix missing newline at end of api.go

Add a newline at the end of the file.

  • Fix goimports formatting: remove trailing blank line and handle w.Write error

---------

Co-authored-by: Dmitry Pasiukevich

Improvement

Add automigrate function to database package. (#241)

João Westerberg
2 months ago

Commit: 4336819

Date: November 12, 2025 at 9:11 AM

  • Add database automigrate.
  • Align an error message with common Go formatting conventions
  • Improve error message for auto migration failure

---------

Co-authored-by: Dmitry Pasiukevich

Commit: f7322b1

Date: November 12, 2025 at 5:39 AM

Beacuse there will be other protocols we will have to support soon, and implement new Agent implementations. We can provide all first class remote agent implementations from this package.

Commit: b51b0ee

Date: November 11, 2025 at 10:31 AM

  • fix: semgrep_go.lang.security.audit.xss.import-text-template.import-text-template_internal/llminternal/agent_transfer.go_21
  • Reorder import statement for 'slices'

---------

Co-authored-by: Dmitry Pasiukevich

Improvement

Improve readability in examples (#253)

Jaana Dogan
2 months ago

Commit: 9157fd1

Date: November 11, 2025 at 10:15 AM

  • Improve readability in examples

Developers usually copy/paste these sample. Provide minor readability improvements.

  • Fix typo in createAgent function name

---------

Co-authored-by: Dmitry Pasiukevich

Breaking

Remove the cmd/launcher/adk package (#252)

Jaana Dogan
2 months ago

Commit: e385395

Date: November 11, 2025 at 9:53 AM

  • Remove the cmd/launcher/adk package
  • Rename adkConfig to config
  • Remove config parameter in AddSubrouter method

---------

Co-authored-by: Dmitry Pasiukevich

Commit: c6af0f0

Date: November 11, 2025 at 9:37 AM

  • Fix refine usage golang example to handle only weather query

Commit: e4c5333

Date: November 11, 2025 at 9:36 AM

  • Fix a few typos and one inconsisent naming issue
  • Rename newVertexAiSessionService to newVertexAISessionService
  • Apply Gemini's suggestions
Update

Avoid the unnecessary type alias (#250)

Jaana Dogan
2 months ago

Commit: 7e06e5b

Date: November 11, 2025 at 9:36 AM

Type aliases are useful for large scale refactoring for a gradual transition. They used to be used only exceptional cases when the old code has to keep using the old type.

Update

Typo in package comment (#246)

Marc Herbrechter
2 months ago

Commit: 2325424

Date: November 10, 2025 at 1:34 PM

  • Typo
  • Update main.go

---------

Co-authored-by: Dmitry Pasiukevich

New

Bo-Yi Wu
2 months ago

Commit: cbf8d4f

Date: November 10, 2025 at 12:46 PM

  • refactor(mcp): integrate context propagation and signal-based cancellation
  • Add signal handling to gracefully cancel the context on interrupt (SIGINT, SIGTERM)
  • Update functions to accept context instead of creating a new one internally
  • Pass the main context to MCP transport constructors for improved cancellation support

Signed-off-by: appleboy

  • refactor: improve signal handling and cleanup unused imports
  • Remove unused import of syscall
  • Create cancellation context only for SIGINT (Ctrl+C), not SIGTERM

Signed-off-by: appleboy

  • style: adopt Go-style octal file permissions throughout codebase
  • Use Go-style octal notation (0o) for file permission arguments in os.MkdirAll and os.WriteFile
  • Remove a few unnecessary blank lines at the end of main functions

Signed-off-by: appleboy

---------

Signed-off-by: appleboy

Breaking

Add .gitignore for adk-go (#230)

hulk
2 months ago

Commit: db9205e

Date: November 10, 2025 at 12:25 PM

  • Add .gitignore for adk-go
  • Remove vendor
  • Draw a line for the function of the gitignore
  • Remove lines
  • Remove empty line from .gitignore

---------

Co-authored-by: Dmitry Pasiukevich

Update

cmd/adkgo: hide adkgo subpackages to internal (#232)

Hyang-Ah Hana Kim
2 months ago

Commit: 445add1

Date: November 7, 2025 at 6:46 PM

They don't need to be public yet.

Update

Add artifact docs (#231)

ngeorgy
2 months ago

Commit: 185ba8d

Date: November 7, 2025 at 3:03 PM

Breaking

Remove examples.Run method and update public docs (#229)

Dmitry Pasiukevich
2 months ago

Commit: 25c34c5

Date: November 7, 2025 at 12:03 PM

  • Remove examples.Run method and update public docs
Fix

branch prefix checking (#228)

ngeorgy
2 months ago

Commit: 1aee1b5

Date: November 7, 2025 at 11:12 AM

  • Fix branch prefix checking
Update

Add runner package docs. (#227)

Dmitry Pasiukevich
2 months ago

Commit: 68a9844

Date: November 7, 2025 at 10:27 AM

Update

Add tool docs (#224)

ngeorgy
2 months ago

Commit: 693f47b

Date: November 7, 2025 at 10:26 AM

Commit: b82cf83

Date: November 6, 2025 at 6:00 PM

  • Add workflowagents comments
  • Add model comments
  • Add memory package comments
  • Update agent/workflowagents/loopagent/agent.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

  • Update agent/workflowagents/sequentialagent/agent.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

  • Update agent/workflowagents/parallelagent/agent.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

  • Update agent/workflowagents/sequentialagent/agent.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

  • Update memory/service.go

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

New

a2a example (#222)

Yaroslav
2 months ago

Commit: a8f2b0e

Date: November 6, 2025 at 2:59 PM

  • minor doc fixes
  • remote a2a agent example
  • set partial flag
  • correct net/url usage
  • remove addressChan
  • fix reassignment of err from parent scope
Update

Comments for cmd/adkgo and cmd/launcher (#220)

Karol Droste
2 months ago

Commit: 4251f7d

Date: November 6, 2025 at 1:55 PM

  • Comments for cmd/adkgo/
  • Comments for cmd/launcher/
  • Make web and console launchers unexported
Update

Add llmagent docs (#221)

Dmitry Pasiukevich
2 months ago

Commit: 5ba0fd7

Date: November 6, 2025 at 1:50 PM

  • Add llmagent docs
Update

Handle partial events in console launcher (#219)

Dmitry Pasiukevich
2 months ago

Commit: 18150b3

Date: November 6, 2025 at 12:32 PM

Update

Add gemini tracking headers. (#218)

João Westerberg
2 months ago

Commit: b81ab80

Date: November 6, 2025 at 12:31 PM

  • Add gemini tracking headers.
  • Add httprr test validating request headers
  • Change func name
  • Change test error message
Update

Expose event.IsFinalResponse() (#217)

Dmitry Pasiukevich
2 months ago

Commit: bd771b9

Date: November 6, 2025 at 11:05 AM

Fix

Add handling for nil Content (#216)

Karol Droste
2 months ago

Commit: 0e799ff

Date: November 6, 2025 at 10:52 AM

  • Added handling for nil Content
  • Minor fix
Update

Add nightly build badges (#215)

Dmitry Pasiukevich
2 months ago

Commit: 88f07ba

Date: November 6, 2025 at 9:05 AM

  • Add nightly build and reddit badges
Update

Update LICENSE file name and go doc link (#214)

Dmitry Pasiukevich
2 months ago

Commit: ccd61aa

Date: November 5, 2025 at 9:27 PM

  • Update LICENSE file name and go doc link
  • Update README.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

Update

Update README.md (#213)

Maciej Zasada
2 months ago

Commit: 257321e

Date: November 5, 2025 at 7:23 PM

Use google.golang.org/adk instead of github.com target

Update

Update README.md (#212)

Maciej Zasada
2 months ago

Commit: 4e594e4

Date: November 5, 2025 at 7:00 PM

Update

Add docs for the agent package. (#209)

Dmitry Pasiukevich
2 months ago

Commit: 2fc2a4b

Date: November 5, 2025 at 6:21 PM

  • Add docs for the agent package.
  • comments
Update

Implement EndInvocation (#206)

ngeorgy
2 months ago

Commit: a5f7812

Date: November 5, 2025 at 2:53 PM

  • Implement EndInvocation

Commit: 4e3f8ef

Date: November 5, 2025 at 2:48 PM

  • Add args to CloudRun deployment for a2a agent card
  • minor fix
Update

Update README.md (#207)

Maciej Zasada
2 months ago

Commit: 40a2ba2

Date: November 5, 2025 at 1:59 PM

Add links to the other ADKs.

Fix

parallel agent data race (#203)

João Westerberg
2 months ago

Commit: 2ebcd61

Date: November 5, 2025 at 1:18 PM

New

Remove unsupported RunConfig fields. (#202)

Dmitry Pasiukevich
2 months ago

Commit: dd8b832

Date: November 4, 2025 at 3:22 PM

Those were added in the very beginning. But we kept Live feature support for later adk-go versions.

I'm removing these fields to adoid confusion from users.

Breaking

Remove adkgo run local and build webui (#201)

Karol Droste
2 months ago

Commit: fc146ad

Date: November 4, 2025 at 12:24 PM

  • Removed cmd/adkgo/run/local
  • Removed cmd/adkgo/root/build
  • Remove non-existing imports
Update

Create server package and move restapi and a2a there (#200)

Dmitry Pasiukevich
2 months ago

Commit: 1ac0a25

Date: November 4, 2025 at 12:17 PM

Commit: 294c298

Date: November 4, 2025 at 12:09 PM

  • use jsonrpc instead of grpc
  • fix test and comment
  • remove wrapLaunchers
  • use a2a 0.3.0
Update

Comments and names (#199)

Karol Droste
2 months ago

Commit: 82bef94

Date: November 4, 2025 at 11:25 AM

  • build webui comments
  • deploy cloudrun comments
  • Removed http/2 support - no longer needed by A2A
  • deploy comments
  • internal/cli/util comments
  • examples / web / ... comments
  • cmd / restapi comments
  • cmd / launcher comments
  • cmd / adkgo comments
  • Readme update
  • linter fixes
  • renamed WebSublauncher to Sublauncher
Fix

universal launcher test example (#181)

Yaroslav
2 months ago

Commit: c390af8

Date: November 3, 2025 at 6:39 PM

  • universal launcher test example
  • use Host header
  • fix lint
  • simplify
  • a2a launcher test
  • test comment
  • Apply suggestion from @dpasiukevich

---------

Co-authored-by: Dmitry Pasiukevich

Update

Add region to gcloud proxy (#197)

Karol Droste
2 months ago

Commit: bcf15ed

Date: November 3, 2025 at 6:29 PM

Commit: deddaac

Date: November 3, 2025 at 6:26 PM

  • Fix ev.Escalate exiting before yielding all current sub agent events
  • Replace log with testing log on TestNewLoopAgent
Update

Cloudrun fixes, visibility fixes, comments (#194)

Karol Droste
2 months ago

Commit: cc1a990

Date: November 3, 2025 at 4:03 PM

  • Updated cloudrun build and deployment
  • Added control over launchers (a2a, api, webui)
  • Visibility fixes
  • Comments & visibility fixes
  • Minor fixes
Update

Add rootname validation to parentMap (#195)

João Westerberg
2 months ago

Commit: 96f2973

Date: November 3, 2025 at 3:20 PM

  • Add rootname validation to parentMap, ensuring that no child shares the root agent name
  • Add subAgent uniqueness validation
  • Change unique name message
Fix

incorrect LlmAgent validation on findAgentToRun (#193)

João Westerberg
2 months ago

Commit: d682fb2

Date: November 3, 2025 at 10:26 AM

  • Fix incorrect LlmAgent validation on findAgentToRun
  • Change TestNewSequentialAgent to loop validation
  • Fix TestNewSequentialAgent, ignore stateDelta
New

Add callback state modification (#192)

João Westerberg
2 months ago

Commit: 64491bf

Date: October 31, 2025 at 5:18 PM

  • 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 reference
New

Unified launcher (#185)

Karol Droste
2 months ago

Commit: 0befb4d

Date: October 31, 2025 at 2:44 PM

  • 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
  • Comments

Commit: 15a76de

Date: October 31, 2025 at 10:27 AM

  • Add user scoped artifacts to inmemory artifact service
  • Change userPathPart const to userScopedArtifactKey
  • Add userScopedArtifactKey comment
Fix

Add state scopes to inmemmory session service (#182)

João Westerberg
2 months ago

Commit: 91262b5

Date: October 31, 2025 at 9:17 AM

  • Add state scopes to inmemmory session service
  • Fix TestRunner_SaveInputBlobsAsArtifacts using stale session copy
  • Add stateMap alias, fix inmemoryService create to return copy.
  • Remove TestMutableSession_Set_Persistence. Directly setting the state will not persist it.
  • Add comment to appendEvent
  • Fix typo
  • Update session prefix references

Commit: 5eb9968

Date: October 31, 2025 at 9:06 AM

  • update a2a-go
  • make config accessible through internal/agent
  • agent skill builder util
  • use latest a2a

Commit: e96b399

Date: October 30, 2025 at 2:36 PM

Fix

fix flaky remoteagent test (#190)

Yaroslav
2 months ago

Commit: 3248d98

Date: October 30, 2025 at 1:08 PM

  • fix tests
  • fix Fail in goroutine after test has completed
  • cleanup
Fix

Add DatabaseSessionService (#177)

João Westerberg
2 months ago

Commit: de4e4a1

Date: October 30, 2025 at 10:48 AM

  • 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.
New

Add InstructionProviders (#123)

Dmitry Pasiukevich
2 months ago

Commit: d80c2c1

Date: October 30, 2025 at 9:35 AM

  • feat: Add InstructionProviders

Added for instruction and globalinstruction.

Also exported util InjectSessionState func.

  • Remove duplicate methods after rebase
  • Add tests and expose util/instructionutil package

Commit: 7cdc189

Date: October 29, 2025 at 1:48 PM

Update

use latest a2a (#187)

Yaroslav
2 months ago

Commit: d458a22

Date: October 29, 2025 at 10:37 AM

Commit: 5b52d9b

Date: October 28, 2025 at 12:27 PM

New

remote a2a agent (#167)

Yaroslav
2 months ago

Commit: a6cc67e

Date: October 24, 2025 at 11:03 AM

Implements a remote a2a agent.

An agent can be created as `remoteagent.New(remoteagent.A2AConfig{...})`.

The agent can be configured with either an `a2a.AgentCard` or an `AgentCardSource` pointing to a local file or an http resource.

Other options contain configurations for the various steps of execution: card resolution, message send configuration, client creation.

For remote agent input:

1. If the last session event is a user function tool response: send content parts as new message parts with the task and contextID matching those on the matching function tool call.

2. Combine parts from all the events after the last event authored by the remote agent and present them as a single user message.

For remote agent output:

1. `TaskStatusUpdate` event parts are converted to thoughts, unless it's the final task status updates.

2. Empty `TaskArtifactUpdate`s (no parts) are skipped.

3. Every event has a `CustomMetadata` with task and context IDs, the original A2A request and a matching A2A event.

4. If an error is generated during an execution it's converted to a session event with ErrorMessage.

These are slightly different from Python, but changes changes were made based on the implementation of `adka2a.NewExecutor`, I'll open a bug in their tracker to reconcile implementations.

New

remoteagent utils (#166)

Yaroslav
2 months ago

Commit: 37e0403

Date: October 24, 2025 at 6:57 AM

1. `getUserFunctionCallAt` returns a non-nil response if the last session event is a user function call response.

2. `toMissingRemoteSessionParts` collects parts from all the events not present in the remote agent session. An event is considered present in a remote session if there's an event at a higher index with remote agent as an author.

3. `presentAsUserMessage` takes an event authored by another agent and converts it to a user event describing the provided event, eg:

Update

Make llmagent.Config.IncludeContents a custom type (#180)

Dmitry Pasiukevich
2 months ago

Commit: 959ef80

Date: October 24, 2025 at 5:54 AM

This clarifies for users which actual values are available.

Commit: adb487b

Date: October 23, 2025 at 6:35 PM

  • Implement BeforeToolCallback
  • Implement AfterToolCallback
  • Address Comments
  • Address comment vol2

Commit: 4d5117b

Date: October 23, 2025 at 3:54 PM

New

adka2a event mapper code (#165)

Yaroslav
2 months ago

Commit: f4f6a84

Date: October 23, 2025 at 2:27 PM

  • Add `adka2a` package `a2a.Event -> session.Event` converters for `remoteagent` package to use. (#167)
  • Move `adka2a.toMapStructure` to `internal/utils/ToMapStructure`. The utility is used by `adka2a` and `remoteagent` for converting structs to metadata `map[string]any` values.
  • Rename and export utility functions for creating metadata keys. Python adds `adk_` prefix for keys it stores in a2a metadata, and `a2a:` prefix for keys it stores in `session.Event.CustomMetadata`, I'm doing the same.

Commit: 93eccf7

Date: October 23, 2025 at 1:35 PM

Commit: d759896

Date: October 23, 2025 at 12:32 PM

Update

Rename tool.Set -> tool.Toolset (#176)

Dmitry Pasiukevich
2 months ago

Commit: 18bc277

Date: October 22, 2025 at 1:48 PM

From the feedback of ADK team, Toolset is one word so it should be named

as Toolset.

New

adka2a cli integration (part 4) (#153)

Yaroslav
2 months ago

Commit: 977d08a

Date: October 22, 2025 at 12:20 PM

  • Extended AgentLoader to provide a method for accessing a Root() agent. This will likely be useful for restapi as well.
  • Extended cmd/web/server.go to support exposing a root agent via a2a.

Commit: 484c1b3

Date: October 22, 2025 at 12:18 PM

Update

Update agent/model callback name in agent config (#175)

Dmitry Pasiukevich
2 months ago

Commit: ee2a659

Date: October 22, 2025 at 11:24 AM

Update

Move each tool to its own package (#170)

Dmitry Pasiukevich
2 months ago

Commit: 7651a0a

Date: October 22, 2025 at 9:02 AM

  • Move each tool to its own package

This converges the tools API, as now some tools are in its package and

some are in the tool package.

  • Rename functiontool.Function -> Func
  • Merge long_running_function_tool to function_tool
Update

Update agent.Artifacts and Memory interfaces (#174)

Dmitry Pasiukevich
2 months ago

Commit: 8aca055

Date: October 22, 2025 at 8:44 AM

1. They now return actual responses instead a subset of it. This should

make it more prone to changes in future.

2. Added a context to parameters to get rid of context.Background() in

the Artifacts/Memory implementation.

Breaking

Remove tool.Tool from tool.Set interface (#173)

Dmitry Pasiukevich
2 months ago

Commit: 68f6428

Date: October 21, 2025 at 7:58 PM

  • Toolset is not a tool anymore
  • Update package mcptool -> mcptoolset
Update

Update event.LLMResponse to be a struct (#168)

Dmitry Pasiukevich
2 months ago

Commit: d3427db

Date: October 21, 2025 at 12:24 PM

Right now it's a pointer, which requires checking for nil or explicitly

setting the field.

In addition, I've made llm.CreateLLMResponse func as adk internal, as

it's not needed to be in the public API.

Update

Add toolFilter to MCP ToolSet (#164)

Dmitry Pasiukevich
2 months ago

Commit: 2198be0

Date: October 20, 2025 at 6:53 PM

Update

Enable streaming by default in cli launcher (#163)

Dmitry Pasiukevich
2 months ago

Commit: 3a9f522

Date: October 20, 2025 at 3:10 PM

Fix

fix go.sum

Yaroslav Shevchuk
2 months ago

Commit: 94d7967

Date: October 20, 2025 at 12:26 PM

Commit: 20fee56

Date: October 20, 2025 at 8:13 AM

Executor invokes an ADK agent and translates session.Events to a2a.Events according to the following rules:

  • If the input doesn't reference any `Task`, produce a `TaskStatusUpdateEvent` with `TaskStateSubmitted`.
  • Right before `runner.Runner` invocation, produce `TaskStatusUpdateEvent` with `TaskStateWorking`.
  • For every `session.Event` produce a `TaskArtifactUpdateEvent{Append=true}` with transformed parts.
  • After the last `session.Event` is processed produce an empty `TaskArtifactUpdateEvent{Append=true}` with `LastChunk=true`, if at least one artifact update was produced during the run.
  • If there was an `LLMResponse` with non-zero error code, produce a `TaskStatusUpdateEvent` with `TaskStateFailed`.

Else if there was an `LLMResponse` with long-running tool invocation, produce a `TaskStatusUpdateEvent` with `TaskStateInputRequired`.

Else produce a `TaskStatusUpdateEvent` with `TaskStateCompleted`.

There's no `TaskAuthRequiredState` production rules at the moment, because A2A assumes an Agent is still executing while waiting for auth credentials. A proper integration will require more research and planning.

Commit: 4b493e0

Date: October 20, 2025 at 7:51 AM

Event processing logic required for adka2a adapter.

  • For every `session.Event` produce a `TaskArtifactUpdateEvent{Append=true}` with transformed parts.
  • After the last `session.Event` is processed produce an empty `TaskArtifactUpdateEvent{Append=true}` with `LastChunk=true`, if at least one artifact update was produced during the run.
  • If there was an `LLMResponse` with non-zero error code, produce a `TaskStatusUpdateEvent` with `TaskStateFailed`.

Else if there was an `LLMResponse` with long-running tool invocation, produce a `TaskStatusUpdateEvent` with `TaskStateInputRequired`.

Else produce a `TaskStatusUpdateEvent` with `TaskStateCompleted`.

Fix

Universal executor (#159)

Karol Droste
2 months ago

Commit: cf95b74

Date: October 17, 2025 at 12:56 PM

Adds functionality to run the same code in console or web (according to command-line params).

Allows easier e2e tests for examples

  • Universal launcher for web
  • Update example for web
  • Move ADK Web UI distr files
  • Added support for console
  • BuildLauncher fix
  • Example Web - fix
  • Add NewSingleAgentLoader
  • Renaming & small fixes
  • Comments & licences
  • userloop removal
  • Config by value
  • lint fix
  • Bringing back userloop
  • Added MatchingAgent to retrieve an agent to be run
  • Name / packege conflict fix
  • BuildLauncher fix
  • Added dedicated error message for empty agent name
  • Lint fix
  • Redesigned Agent loaders
  • Comments

Commit: 7cc2548

Date: October 15, 2025 at 1:46 PM

New

adka2a part mapping (part 1) (#150)

Yaroslav
2 months ago

Commit: 92bd90d

Date: October 14, 2025 at 5:24 PM

  • part mapping code
Fix

Add ExitLoop Tool (#138)

João Westerberg
2 months ago

Commit: 051d855

Date: October 13, 2025 at 8:44 PM

  • Add ExitLoop Tool
  • Omit type int from declaration
  • Change exit loop tool to "exit_loop" and remove unused wantErr
  • Merge fix, api changes
Update

Add Agent Tool (#140)

ngeorgy
2 months ago

Commit: 952b61c

Date: October 13, 2025 at 2:50 PM

  • Add Agent Tool
Fix

Static UI serving path fix (#155)

Karol Droste
2 months ago

Commit: a223885

Date: October 13, 2025 at 1:32 PM

Commit: 41760bc

Date: October 13, 2025 at 11:11 AM

Python's ReadonlyContext/CallbackContext/ToolContext will allow

to access user id, branch, etc.

In the mean time, fix the tool.Context so it doesn't allow to

access to InvocationContext.

And add tests.

Update

Add agent OutputKey to include state in instructions (#146)

João Westerberg
2 months ago

Commit: 08020f8

Date: October 10, 2025 at 4:11 PM

  • Add agent outputKey and state injecting for instructions
  • Add sequentialCode sample
  • Add nil event validation for save to state, and propagate error for state.Set
  • Change TestInjectSessionState to use in memory implementations
  • Change output key to llmagent.State

Commit: bb28888

Date: October 9, 2025 at 2:51 PM

  • Add check parent is llmagent in tranfer agent targets.
  • Add AgentWithParallelParent and AgentWithSequetialParent tests to agent transfer
  • Add AgentWithSequentialSubagent test case

Commit: 48a3a1c

Date: October 9, 2025 at 1:35 PM

Breaking

Remove 3rdpartylicenses.txt (#148)

ngeorgy
2 months ago

Commit: 735e0fe

Date: October 9, 2025 at 1:23 PM

Commit: af7b60a

Date: October 9, 2025 at 11:43 AM

Update

Small fixes (#145)

ngeorgy
2 months ago

Commit: b6e070d

Date: October 9, 2025 at 8:03 AM

Fix

the language name spelling in README (#143)

Jaana Dogan
2 months ago

Commit: 140b564

Date: October 8, 2025 at 7:47 AM

Update

Rename package memoryservice -> memory (#144)

Dmitry Pasiukevich
2 months ago

Commit: 1c967fb

Date: October 8, 2025 at 7:47 AM

Also:

  • Updated the struct name: memoryservice.MemoryEntry -> memory.Entry
  • Updated the internal package name: internal/memoryinternal ->

internal/memory (with imemory import name) to make the internal

package naming consistent.

Update

Extract ProcessRequest from tools (#141)

ngeorgy
2 months ago

Commit: b5fb31f

Date: October 7, 2025 at 11:28 PM

Breaking

Remove agent.Context (#136)

Dmitry Pasiukevich
2 months ago

Commit: d893163

Date: October 7, 2025 at 1:45 PM

It's replaced with InvocationContext, ReadonlyContext and

CallbackContext to have ADK conformity.

Commit: 76e862b

Date: October 6, 2025 at 12:14 PM

  • Embed resources and serve them from the executable
  • Change CLI UI - expose errors less (gcloud writes non-error messages to stderr a lot)
  • Improve help for main commands
  • Improved error reporting
  • Removed copying static WebUI content from container creation
  • Merge fix
  • Removing flags for webui distr
  • Lint fixes
Fix

examples to ignore aggregated event (#137)

João Westerberg
2 months ago

Commit: 0fd811f

Date: October 6, 2025 at 12:09 PM

New

Align to New(Config) for consistency (#135)

Dmitry Pasiukevich
2 months ago

Commit: a594958

Date: October 3, 2025 at 9:29 AM

In all places we use New(Config). The runner had New(*Config). Updating

it to align to one consistent approach.

Update

Rename artifactservice to artifact. (#134)

Dmitry Pasiukevich
2 months ago

Commit: 9b53121

Date: October 3, 2025 at 8:10 AM

  • Rename artifactservice -> artifact
  • Shorten the dir name for artifactsinternal -> artifact
  • Rename artifact.Mem() -> artifact.InMemoryService
  • Move artifact service test suite to internal
Update

Rename sessionservice -> session.Service (#133)

Dmitry Pasiukevich
2 months ago

Commit: edad99a

Date: October 2, 2025 at 8:10 PM

  • Rename sessionservice -> session.Service

Removed StoredSession and Session.ID for ADK conformity

Update

Update model.LLM interface to be ADK conformant (#132)

Dmitry Pasiukevich
2 months ago

Commit: 28e3009

Date: October 2, 2025 at 5:02 PM

Other ADKs' BaseLLM class exposes only one method: generate_content(req,

stream) -> iterator

Fix

multiple tools issue (#129)

ngeorgy
2 months ago

Commit: c2d13de

Date: October 2, 2025 at 12:54 PM

  • Fix multiple tools issue

Commit: acb5dfb

Date: October 2, 2025 at 11:45 AM

  • CLI for command build webui
  • Added compiled version of adk-web - https://github.com/google/adk-web/commit/280f08de309dac5a65dd7a010be85e1d8dc2b5a0
  • Added runtime generation of /assets/config/runtime-config.json
  • Modified command line description
  • Modified the way the local server is run
  • Modified the deployment to cloudrun to use compiled version of adk-web
  • Error handling fixes
  • Removed unused variables
  • Text changes. Default redirection from / to /ui/
  • Merging fixes
  • Cloudrun deployment with ingress set to "all"
  • Lint fix - Err assigment
  • Removed commented code, minor fixes
  • Removed runtime-config.json (generated in runtime)
  • Commented runtime generation of /assets/config/runtime-config.json
  • Removed rs/cors implementation
  • go mod tidy
  • Removed flags for starting ADK REST API and/or ADK Web UI
  • Minor code structure update
Update

Rename package llm->model (#130)

Dmitry Pasiukevich
2 months ago

Commit: ea22150

Date: October 2, 2025 at 9:35 AM

Also 2 types rename:

llm.Request -> model.LLMRequest

llm.Response -> model.LLMResponse

Commit: ce11bc5

Date: October 1, 2025 at 12:06 PM

  • Add StreamAggregator model proxy
  • Add stream aggregator tests
  • Modify the implementation to apply the aggregator directly to the model.
  • Fix set_test to use llm.Model.
  • Add llmResponse create function using GenerateContentResponse
  • Add test for create llm request
  • Change gemini_test readResponse to use custom struct

Commit: ca9cdbc

Date: September 30, 2025 at 2:42 PM

llmagent.Config.GenerateContentConfig was dropped. Correctly pass it.

Add a test that uses llmagent's handling of streaming genai api

and thinking mode, which indirectly tests GenerateContentConfig

configuration handling.

Commit: 556f806

Date: September 30, 2025 at 2:27 PM

Commit: 693415d

Date: September 29, 2025 at 1:21 PM

Update

adding run config for userloop example

Dima Stabrouski
2 months ago

Commit: 4d0e5c3

Date: September 29, 2025 at 10:22 AM

Commit: 1599bc5

Date: September 26, 2025 at 1:45 PM

Update LLMAgent to remove DisplayName from media files as Gemini API doesn't support that

Commit: 0d91e9a

Date: September 26, 2025 at 11:31 AM

  • Fix LoadArtifactsTool

There were two issues with load artifacts tool:

Unmarshalling json string array, it was treating string array as []any instead of []string, because of it it wasn't converting properly, leaving the artifactsName array empty.

The prompt wasn't completely right, the older prompt ran into issues like failing to process the artifact since it thought it could load them once and be done. But we want it to issue the load_artifact function call every time it needs to access them. I've asked about the issue to Java adk developer and they fixed it on their side as well.

I've also added example where I insert two artifacts and you can ask the agent about it and it can describe them without issues.

Fix

CLI for command build webui (#116)

Karol Droste
2 months ago

Commit: f1bef15

Date: September 26, 2025 at 9:39 AM

  • CLI for command build webui
  • Improved error handling & comments
  • Function name update
  • Naming and text fixes
  • Moved cli util to internal
  • Import fix for cli/util
New

add the internal agent state (#121)

Dmitry Pasiukevich
2 months ago

Commit: 7d877d1

Date: September 26, 2025 at 8:00 AM

  • Add internal agent state struct
Update

extend mcp example with github mcp server (#122)

Dmitry Pasiukevich
2 months ago

Commit: 80de3f1

Date: September 25, 2025 at 6:53 PM

Improvement

Add rearrange events to content processor (#97)

João Westerberg
2 months ago

Commit: 9899067

Date: September 25, 2025 at 3:26 PM

  • Add rearrange events to content processor
  • Add complete long running function test suite.
  • Replace contentWithPartsByModel/user with gen.ai function
  • Change test to use tool.Context
  • Moved event methods to content helper functions
  • Add rearrange test suite to content processor
  • Simplify long_running_function tests with cmp
  • Improve failure message for test slice length checks
Improvement

Add GCSArtifactService (#110)

João Westerberg
2 months ago

Commit: fe3a283

Date: September 25, 2025 at 2:41 PM

  • Add GCSArtifactService.
  • Fix dependecies diff
  • Add io.Close err validation
  • Standardize function and method naming for gcsService.

Rename functions and methods within the gcsService to improve clarity and align with Go conventions.

  • Add artifactservice/gcs package, add request detailed validation

Moved the gcs artifact service implementation to a separate gcs package, and the test suite to artifactservice_test.

  • Make mockable_gcs interfaces unexported

The mockable_gcs interface is only relevant for testing and its use can be limited to the gcs package.

  • Add ValidatorTestCases interface to reduce duplicated code on test execution
  • Move mockable_storage to test file
  • Improve gcs service error handling, add support for parts with text. Add parallel execution on delete all versions.
  • Add err validation to setAttrSelection
  • Change test suite to include NewPartFromText example
  • Add Client.Options to gcs artifact service constructor for configuring the client
  • Add err context for request validation in artifact service

Commit: f1d8000

Date: September 25, 2025 at 12:38 PM

update to jsonschema-go@v0.3.0

update github.com/modelcontextprotocol/go-sdk@v0.7.0

jsonschema-go@v0.3.0 isn't compatible with older version of mcp-go

New

Add MCP tool set basic logic (#100)

Dmitry Pasiukevich
2 months ago

Commit: 20c97a8

Date: September 25, 2025 at 7:34 AM

  • feat: Add MCP tool set basic logic

Tool sets are used for their Tools() method to extract tools during llm.request preprocess

Update

initial implementation of vertex ai session creation

Dima Stabrouski
2 months ago

Commit: c7ab027

Date: September 24, 2025 at 11:43 AM

Update

initial structure for vertex ai session service

Dima Stabrouski
2 months ago

Commit: e765c59

Date: September 23, 2025 at 3:03 PM

Commit: 7e70cc3

Date: September 23, 2025 at 9:52 AM

Commit: 4fa468a

Date: September 19, 2025 at 2:21 PM

Update

Rename CLI to adkgo (#113)

Karol Droste
2 months ago

Commit: 1dd3df1

Date: September 19, 2025 at 2:02 PM

  • Changed cli to adkgo to make go install easier
  • Changed cli to adkgo to make go install easier

Commit: 025b502

Date: September 19, 2025 at 11:55 AM

Implement basic graph representation of agents structure.

Commit: 8a2eb76

Date: September 19, 2025 at 11:48 AM

Implementation of artifact handlers in ADK-Web REST API.

Commit: f951e94

Date: September 19, 2025 at 11:04 AM

Implementation of runtime and app endpoints in ADK-Web REST API

Update

CLI & ADK WebUI support (#111)

Karol Droste
2 months ago

Commit: 8205a65

Date: September 19, 2025 at 10:30 AM

  • Initial CLI version with cloudrun deployment
  • Added pretty stdout/stderr forwarding from

commands

  • Rearranged CLI commands, added web server
  • Added cli descriptions
  • Housekeeping
  • go.mod updates
  • Added licence headers
  • Added licence headers
  • Simplified ReprintableStream
  • Updated licence headers
  • Minor fixes
  • Removed comments
  • Added comments
  • Added comments
Update

Minor fixes (#107)

ngeorgy
2 months ago

Commit: 4b8df2e

Date: September 18, 2025 at 3:15 PM

Commit: cba136a

Date: September 18, 2025 at 8:31 AM

Initial version of implementation of session service in ADK Web REST API.

Commit: 366201d

Date: September 17, 2025 at 3:55 PM

Commit: 11eec05

Date: September 17, 2025 at 3:47 PM

Update

Add LongRunningFunctionTool (#96)

João Westerberg
2 months ago

Commit: 26a8c68

Date: September 17, 2025 at 3:04 PM

  • Add LongRunningFunctionTool, Moved TestAgentRunner to internal testutils package.

Added LongRunningFunctionTool struct, the callIDs to long running tool are now stored in the Event.

  • Modify findLongRunningFunctionCallIDs to use slices.Collect and maps.Keys.

Changes to longRunningTool and Tool comments.

  • Add runner.Config to NewTestAgentRunner
Update

Init ADK-Web structure (#93)

Anastasia
2 months ago

Commit: 3ae0694

Date: September 16, 2025 at 11:10 AM

Initial structure for ADK-Web REST API service.

Update

Implement runner.Config (#102)

ngeorgy
2 months ago

Commit: a304842

Date: September 16, 2025 at 10:02 AM

Commit: 0ab6f11

Date: September 15, 2025 at 8:34 PM

Commit: 66870dc

Date: September 12, 2025 at 11:14 AM

Commit: 09ae8a8

Date: September 11, 2025 at 10:51 AM

  • Change function.Run to create wrapper map if result can't be unmarshaled
  • Update tool/function.go explicit nil err return

Co-authored-by: Dmitry Pasiukevich

---------

Co-authored-by: Dmitry Pasiukevich

Commit: 6908892

Date: September 10, 2025 at 8:16 AM

Update

Add memoryservice with in-memory implementation. (#89)

Dmitry Pasiukevich
2 months ago

Commit: 4f35d0e

Date: September 9, 2025 at 12:48 PM

  • Add memoryservice with in-memory implementation.

Reflects

https://github.com/google/adk-python/tree/e45c3be23895b5ec68908ad9ee19bd622dcbd003/src/google/adk/memory

It currently operates with session.Session. I'd follow up regarding the

use-cases for Session vs StoredSession and update if needed in future

PR.

Inmemory implementation is based on the 2-level map: {appName, userID} ->

sessionID -> {event + eventWords}

eventWords is a precomputation to fetch based on the read request words.

  • Skip joining string

Commit: b246f59

Date: September 5, 2025 at 5:38 PM

Updated httprr files to reflect changes in jsonschema json marshalling

Reference: internal CL/803459492 by rfindley

Update

Implement load artifacts tool (#62)

ngeorgy
2 months ago

Commit: cc5edc3

Date: September 5, 2025 at 12:32 PM

Update

Make gemini tool adapter. (#90)

Dmitry Pasiukevich
2 months ago

Commit: f3d3773

Date: September 3, 2025 at 7:50 PM

  • Make gemini tool adapter.
  • Add a default google_search tool.
  • Rename agent/context.go
Update

Add parallel agent. (#83)

Dmitry Pasiukevich
2 months ago

Commit: a1cb067

Date: August 29, 2025 at 4:41 PM

  • Add parallel agent.
  • Handle errors from subAgents in the parallelAgent
  • Handle case if main goroutine exits during cancelled context

Commit: be08481

Date: August 28, 2025 at 8:59 PM

  • Update after agent callback to receive resp and error.

This would allow the callback implementation to inspect and take action

based on the actual agent response and errors.

  • align test case field names with the api struct
Update

Minimize tool interface. (#87)

Dmitry Pasiukevich
2 months ago

Commit: 73f639c

Date: August 28, 2025 at 8:53 PM

  • Minimize tool interface.
  • Rename package itype -> toolinternal
  • Update tool constructors to return Tool interface.

Also added test to verify tools implement toolinternal interfaces.

  • Use t.Fatal with string literal
Update

Align sessionservice interface with artifactservice. (#86)

Dmitry Pasiukevich
2 months ago

Commit: b7492cf

Date: August 26, 2025 at 5:29 PM

New

Ensure runner is created with a constructor. (#82)

Dmitry Pasiukevich
2 months ago

Commit: 4693cea

Date: August 22, 2025 at 10:24 AM

runner.New() creates agent tree

Update

Updated licensing, including httprr (#73)

Karol Droste
2 months ago

Commit: a19fcac

Date: August 21, 2025 at 1:19 PM

  • Moving the original httprr files to 'rr' folder with a proper LICENCE file
  • Updated LICENCE (contains two licences for

different parts )

  • Separate httprr and genai (genai goes to internal/testutil)
  • removed local .vscode/tasks.json
  • Added README.md. Added information about licenses
  • Renamed internal testutil - got rid for 'ForTesting' from the function name
Breaking

Remove types directory. (#81)

Dmitry Pasiukevich
2 months ago

Commit: 500d94f

Date: August 21, 2025 at 8:47 AM

Originally it held all public adk types together but we restructured it

to separate own packages.

Update

Migrate agent_run_config. (#75)

Dmitry Pasiukevich
2 months ago

Commit: 914bc3a

Date: August 21, 2025 at 8:32 AM

  • Migrate agent_run_config.

Added as runner.AgentRunConfig for users to specify runtime

configuration.

Update

Use Gemini 2.5 Flash in the example (#78)

Jaana Dogan
2 months ago

Commit: 4c853b7

Date: August 20, 2025 at 5:52 PM

Update

Use log.Fatal in examples instead of panic (#77)

Jaana Dogan
2 months ago

Commit: c6aadfc

Date: August 20, 2025 at 5:40 PM

Breaking

Remove empty file (#76)

Jaana Dogan
2 months ago

Commit: b262229

Date: August 20, 2025 at 5:40 PM

Breaking

Remove dead code (#74)

Jaana Dogan
2 months ago

Commit: 1bcecf5

Date: August 20, 2025 at 4:51 PM

As a part of the overall reconsuction effort, the contents of the types package is living in their corresponding package. Removing the dead/duplicate code that is not used for the rest of the packages.

Breaking

Minor code cleanup (#72)

Dmitry Pasiukevich
2 months ago

Commit: e7df4a5

Date: August 20, 2025 at 8:50 AM

1. Used t.Context() in tests instead of ctx.Background()

2. Minor updates to the in-memory service implementation:

* no error on delete not_found

* required fields set validation

Update

Introduce the internal parentmap. (#71)

Dmitry Pasiukevich
2 months ago

Commit: ff5f5ed

Date: August 19, 2025 at 7:27 AM

When an agent is created, adk automatically sets a parent for subagents.

This is done in the "agent" package.

For LLMAgent creation this means, it's needed to propagate "self" to

this code to ensure each subagent.Parent is set with a proper concrete

type of llmagent (and not just a base agent).

To get rid of the "self" field in the public API, we can move the agent

tree setup to an internal package, used by runner on creation.

Also, this shows an example of propagating data from runner to the

agent.

Such propagation will be done only for 2 cases:

  • agent hierarchy (created by runner, needed by LLMAgent for transfer

logic).

  • agent run config (set by users to control agents).
Breaking

Remove old model package in favor of llm. (#70)

Dmitry Pasiukevich
2 months ago

Commit: 26eace3

Date: August 18, 2025 at 2:08 PM

Update

Bump genai to v1.20.0 (#69)

Dmitry Pasiukevich
2 months ago

Commit: dedaf8b

Date: August 18, 2025 at 1:36 PM

To sync with g3. Genai lib version 1.13 client generated URLs with

double //. This was captured by httprr.

But internally we use version genai 1.20 and its client has proper / in

the URIs.

This diff caused test failures internally due to httprr URL

mismatch.

New

Move llm agent code to new packages. (#68)

Dmitry Pasiukevich
2 months ago

Commit: 3c040a3

Date: August 18, 2025 at 7:36 AM

  • 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.

New

Update runner to new packages (#67)

Dmitry Pasiukevich
2 months ago

Commit: 363d074

Date: August 13, 2025 at 3:04 PM

  • 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 comments
New

Update agent constructors. (#66)

Dmitry Pasiukevich
2 months ago

Commit: fef856d

Date: August 12, 2025 at 9:01 AM

From Builder{}.Agent() to more agent.New(agent.Config{}) and similarly

for LLMAgent.

Introduce internal/llmagent package to allow reading LLMAgent properties

in adk (e.g. runner).

Update

extend checks on CI (#57)

Yaroslav
2 months ago

Commit: 69503f3

Date: August 11, 2025 at 8:05 AM

  • Pinned action dependencies to commit hashes
  • Parallel lint and test jobs in PR check workflow
  • Enforce tidy `go.mod`
  • Enforce `goimports` (and transitively `gofmt`)
  • Use `golangci-lint` with default linters and `goheader` for license header enforcement
  • Add a nightly workflow that runs shuffled test with race detector and cache ignore
  • Run `govulncheck` in the nightly workflow
  • Make code changes for `golangci-lint` to pass
  • Add concurrency control block for cancelling CI runs if multiple commits modifying a PR are pushed in rapid succession
Update

Partially migrate types.Event -> session.Event (#64)

Dmitry Pasiukevich
2 months ago

Commit: 77293cb

Date: August 8, 2025 at 10:10 AM

Let's do it iterativery, otherwise the PR may get quite large.

Update

Add sessionservice and inmemory implementation (#63)

Dmitry Pasiukevich
2 months ago

Commit: f4a0689

Date: August 8, 2025 at 8:35 AM

  • Add sessionservice definitions
  • Add inmemory sessionservice
Update

Add loop and sequential agents. (#51)

Dmitry Pasiukevich
2 months ago

Commit: 2c77bb6

Date: August 6, 2025 at 10:03 AM

  • Add loop and sequential agents.

In addition also update runner to set event.Author if it's not set (e.g.

by a custom agent).

Logic to determine author is same as in adk-python: if event.contents.author

== "user" -> "user" else agent_name.

  • review comments
  • update code to fetch latest types

Commit: a63b6c6

Date: August 5, 2025 at 8:16 PM

  • Add llm package.

It provides basic LLM definitions.

  • Add new entities for the session package.

Current code is kept to have a buildable code. Later we will

update/move/cleanup this code.

  • Add entities for agent and tools packages.
  • Add LLMAgent implementation
Update

"Add ArtifactService to InvocationContext"

Giorgi Nigalidze
2 months ago

Commit: a6c7b48

Date: August 5, 2025 at 2:32 PM

This reverts commit 31206ec096b176480f6f05b317eed97711f43364.

Update

"Add ListArtifacts method to ToolContext"

Giorgi Nigalidze
2 months ago

Commit: 935c761

Date: August 5, 2025 at 2:31 PM

This reverts commit c0a642e0b0ec86ad51bc20950f581f4e401200ff.

Update

Add ListArtifacts method to ToolContext

Giorgi Nigalidze
2 months ago

Commit: c0a642e

Date: August 5, 2025 at 1:58 PM

Update

Add ArtifactService to InvocationContext

Giorgi Nigalidze
2 months ago

Commit: 31206ec

Date: August 5, 2025 at 11:15 AM

Breaking

Add agent events to session service in runner (#49)

Dmitry Pasiukevich
2 months ago

Commit: 86d3a16

Date: August 1, 2025 at 2:03 PM

  • Add agent events to session service in runner.

Current implementation only adds user events.

  • Remove test runner implementation in favor or adk.runner
Update

all: move core types to the types package (#56)

Hyang-Ah Hana Kim
2 months ago

Commit: bec9f02

Date: August 1, 2025 at 12:20 PM

The root of the module will host the documentation for users

and contributors.

Update

tool: add Google Search Tool (#46)

ngeorgy
2 months ago

Commit: b8e7b6d

Date: August 1, 2025 at 9:22 AM

Java example: https://github.com/google/adk-java/blob/main/core/src/main/java/com/google/adk/tools/GoogleSearchTool.java

Python example:

Python example: https://github.com/google/adk-python/blob/main/src/google/adk/tools/googlesearchtool.py

Update

all: use google.golang.org/adk (#52)

Hyang-Ah Hana Kim
2 months ago

Commit: dcddd83

Date: August 1, 2025 at 8:02 AM

Related: go.dev/cl/692135

New

Add examples dir (#50)

Dmitry Pasiukevich
2 months ago

Commit: 3babda3

Date: July 31, 2025 at 10:44 AM

It hosts basic simple examples with the intention for new users to easily try out ADK Go.

Update

Add before/after model callbacks (#48)

Dmitry Pasiukevich
2 months ago

Commit: f9c785d

Date: July 31, 2025 at 6:51 AM

Update

artifact: in-memory artifact service (#39)

Hyang-Ah Hana Kim
2 months ago

Commit: a82f85b

Date: July 31, 2025 at 6:31 AM

This is similar to the in-memory session service, and built on top

of the omap.

Update

Set initial user message in the invocation context (#47)

Dmitry Pasiukevich
2 months ago

Commit: 48a6557

Date: July 30, 2025 at 2:58 PM

Update

Add before/after agent callbacks. (#45)

Dmitry Pasiukevich
2 months ago

Commit: b31ac57

Date: July 30, 2025 at 7:19 AM

Update

Add findAgentToRun to the runner implementation. (#44)

Dmitry Pasiukevich
2 months ago

Commit: fbe6ba9

Date: July 30, 2025 at 5:59 AM

Update

"Update code for AgentSpec (#41)" (#43)

Dmitry Pasiukevich
2 months ago

Commit: 8c1db63

Date: July 29, 2025 at 7:51 AM

This reverts commit 0fbfaf374b8b0b89a71b698d01efaa96d796db17.

Update

Update code for AgentSpec (#41)

Dmitry Pasiukevich
2 months ago

Commit: 0fbfaf3

Date: July 28, 2025 at 9:23 AM

This removes need to embed/cast between agent types.

Currently all fields are exported but if we decide it would be easy to hide them behind constructor and accessors.

Update

Add basic runner implementation. (#36)

Dmitry Pasiukevich
2 months ago

Commit: e4d83d9

Date: July 25, 2025 at 8:18 AM

Commit: ccf7ac7

Date: July 25, 2025 at 5:54 AM

This change simplifies the Agent interface to be

```

type Agent interface {

Spec() *AgentSpec

Run(context.Context, InvocationContext) iter.Seq2[Event, error]

// TODO: RunLive

}

```

And consolidate common properties of ADK Agents into `AgentSpec`.

In the offline discussion, AgentSpec was suggested as a type in a sub package and used by LLMAgent and other custom agents. However, circular dependency makes it challenging and harder to maintain.

I hope it's not too bad to have AgentSpec along with the Agent.

The AgentSpec needs some initialization so it can be associated with the Agent that is containing the AgentSpec.

This is done by `Init`.

For example, if a logic in the AgentSpec needs to call the logic implemented in the containing Agent, it needs to know which Agent implementation it should use. See the usage of `AgentSpec.self` in this draft.

Instead of making the interface include methods like `Name`, `Parent`, `SubAgents`, `Description`, ...

I propose to have just `Spec()` that returns the Agent's AgentSpec. That will help us avoid expanding the interface.

Adding methods or fields to AgentSpec won't break custom agents in the future.

For LLMAgent, this PR experiments with the variadic Option

that can configure both LLMAgent's AgentSpec and LLMAgent's own properties.

Fix

agent: fix typo (#37)

Hyang-Ah Hana Kim
2 months ago

Commit: d3426f3

Date: July 25, 2025 at 12:09 AM

Obviously, we don't use this field yet.