Skip to content

[DO NOT MERGE] ADK Go v2.0.0#1870

Draft
ToniCorinne wants to merge 8 commits into
mainfrom
go2
Draft

[DO NOT MERGE] ADK Go v2.0.0#1870
ToniCorinne wants to merge 8 commits into
mainfrom
go2

Conversation

@ToniCorinne

Copy link
Copy Markdown
Member

Includes:

  • HITL updates
  • Workflow Graph updates
  • 1.0 --> 2.0 migration guidance
  • New example snippets
  • release notes updates

Does not include:

  • site banner announcement for v2 release

@netlify

netlify Bot commented Jun 25, 2026

Copy link
Copy Markdown

Deploy Preview for adk-docs-preview ready!

Name Link
🔨 Latest commit 13c5568
🔍 Latest deploy log https://app.netlify.com/projects/adk-docs-preview/deploys/6a3d5977bb58a60008b70cc1
😎 Deploy Preview https://deploy-preview-1870--adk-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@koverholt koverholt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for all of these updates! I reviewed the docs and Go snippets against the adk-go v2 branch and confirmed the APIs and examples line up.

I left a handful of minor in-line comments, plus two worth fixing before merge: the @v2 install command won't resolve after release, and there's some committed that might be accidental and should be removed and gitignored. Thanks again!

const (
appName = "hitl_demo"
userID = "demo_user"
modelName = "gemini-2.5-flash"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Use gemini-flash-latest.

"google.golang.org/adk/tool/functiontool"
)

const modelName = "gemini-2.5-flash"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Use gemini-flash-latest.

func newHITLWorkflow() (agent.Agent, error) {
rerun := true

// greetNode pauses for the user's name on the first pass and produces a

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is the Yes/No approval node, but the comment calls it "greetNode" pausing for a name, and the Python pseudocode says rerun_on_resume=False while the Go uses true. Suggest renaming greetNode to approvalNode and updating the comment to describe a Yes/No approval node instead of greeting/pausing for a name.

Comment thread examples/go/index

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Were these binaries committed intentionally; are they needed? If not would be good to remove and add to a .gitignore.

Comment thread examples/go/main

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Were these binaries committed intentionally; are they needed? If not would be good to remove and add to a .gitignore.

Comment thread docs/graphs/routes.md
!!! caution "Caution: Workflow agent limitations"

You can add ***LlmAgents*** to graph-based workflows, however they must
be configured for single-turn (task) mode. For more information about

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

"single-turn (task) mode" reads like single-turn and task are the same mode, but they're two distinct modes. The older wording "a task or single-turn mode" was clearer. Suggest "single-turn or task mode."

// report_text = await ctx.run_node(city_report_agent, city_time)
// return report_text
func newDataHandlingWorkflow(ctx context.Context) (agent.Agent, error) {
model, err := gemini.NewModel(ctx, "gemini-2.5-flash", &genai.ClientConfig{})

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Use gemini-flash-latest.

// check_resp = await ctx.run_node(compile_lint_check, code)
// return code
func newLoopWorkflow(ctx context.Context) (agent.Agent, error) {
model, err := gemini.NewModel(ctx, "gemini-2.5-flash", &genai.ClientConfig{})

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Use gemini-flash-latest.


```shell
go get google.golang.org/adk
go get google.golang.org/adk@v2

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

go get ...adk@v2 won't resolve once the module adopts the /v2 path (v2 releases live under google.golang.org/adk/v2, not as a @v2 tag on the bare path). Suggest matching the form used on the 2.0 release page: go get google.golang.org/adk/v2.

Comment thread docs/2.0/index.md
Comment on lines +234 to +235
ADK Go 2.0 introduces new fields `node_info` and `output` to the core
***Event*** schema to track graph state and workflow outputs.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

In the Go event model these fields serialize as Output (no JSON tag) and nodeInfo (json:"nodeInfo"), not node_info/output (that's the Python naming). Since this section is about updating custom storage schemas, worth using the names that a Go session.Service actually emits, or clarifying which serialization you mean.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants