Add Google ADK Go integration#527
Merged
Merged
Conversation
77868a1 to
4270f84
Compare
danielchalef
added a commit
that referenced
this pull request
Jun 18, 2026
The Claude Code Review workflow (added in #530) granted only `pull-requests: read` / `issues: read`. The anthropics/claude-code-action needs Pull requests + Issues write access to post its findings as inline PR comments — with read-only, the run succeeds but posts nothing (observed: `permission_denials_count: 20`, `No buffered inline comments`, zero comments on PRs #522–#527/#529). Per the official docs, the action's GitHub App requires Contents/Issues/Pull requests Read & write, and every posting example uses `pull-requests: write` + `issues: write`. Bump pull-requests and issues to write (contents stays read — review-only, no commits/PRs created). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
danielchalef
added a commit
that referenced
this pull request
Jun 18, 2026
The code-review plugin only posts findings when invoked with `--comment`; without it the action reviews the PR (spending tokens) but prints to the hidden terminal and posts nothing. Confirmed across PRs #522–#527/#529: runs complete `success` with write perms (post-#531) but log "No buffered inline comments" and leave zero comments. Per the plugin spec ("If --comment was NOT provided, stop here. Do not post any GitHub comments."). Append --comment to the prompt; #531's pull-requests/issues write perms are required for it to post and stay in place. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Zep memory for Google ADK (Go) via a before-model callback, a memory.Service,
and a graph-search tool.
- NewBeforeModelCallback(client, ...): persists the latest user message
(Thread.AddMessages{ReturnContext:true}) and injects the returned Context
Block into req.Config.SystemInstruction. Attach via llmagent.Config
BeforeModelCallbacks.
- zepMemoryService implements memory.Service (AddSessionToMemory / SearchMemory
over Graph.Search); attaches at the Runner. Optional graph-search FunctionTool.
- Module github.com/getzep/zep/integrations/adk/go; deps google.golang.org/adk
v1.4.0 + github.com/getzep/zep-go/v3 v3.23.0. Live calls guarded when
ZEP_API_KEY is unset.
- README, SETUP, example main.go, table tests. CI already routes integrations/adk/go.
Verified: go build ./... + go vet ./... + go test ./... (all exit 0). See
integrations/SPIKE_FINDINGS.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The pinned golangci-lint-action@v6 installs golangci-lint v1.64.8 (built with go1.24), which fails to lint a module whose go.mod targets go 1.25.0 with "the Go language version (go1.24) ... is lower than the targeted Go version (1.25.0)". v8 installs golangci-lint v2.x (built with go >=1.25), which lints go 1.25 modules. golangci-lint v2.12.2 reports 0 issues on the adk/go package. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apply code-review fixes to the zepadk integration: - BeforeModelCallback no longer re-persists the user message or re-injects the Context Block on tool-loop continuations (e.g. the search_memory path). It detects a continuation by checking whether the latest req.Contents entry is a function response, so a turn is recorded in Zep exactly once. - Add NewAfterModelCallback (WithAssistantMessageName, WithAfterLogger) that persists the assistant's reply to the same thread via Thread.AddMessages, so the user graph captures both halves of the conversation. Wired into the example and documented. - Map every supported graph search scope into results in both the memory service and the search tool (edges -> facts, nodes -> entity summaries, episodes -> content, observations -> derived memories, auto -> Context Block). Unsupported scopes (e.g. thread_summaries) are rejected loudly instead of silently returning nothing. Shared mapping lives in search.go. - Truncate over-limit message content to 4000 chars (Zep's limit is 4096) before persisting, with a lengths-only warning (never logs content/PII). Shared helper in zep.go. - Introduce a minimal zepAPI seam over *zepclient.Client (AddMessages/Search) so persist/inject/dedup/scope-mapping are table-tested with an in-memory fake (seam_test.go); public constructor signatures are unchanged. - Correct the documented Go floor to 1.25 (adk v1.4.0 requires it). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8a9c88c to
bfdaed7
Compare
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the Google ADK Go integration (module
github.com/getzep/zep/integrations/adk/go).Hook (verified against
google.golang.org/adkv1.4.0)NewBeforeModelCallback(client, ...)— aBeforeModelCallbackthat persists the latest user message viaThread.AddMessages{ReturnContext:true}and injects the returned Context Block intoreq.Config.SystemInstruction; attach viallmagent.Config.BeforeModelCallbacks.zepMemoryServiceimplementsmemory.Service(AddSessionToMemory/SearchMemoryoverGraph.Search) and attaches at the Runner. Optional graph-searchfunctiontool. Live calls are guarded whenZEP_API_KEYis unset.Deps
google.golang.org/adk@v1.4.0,github.com/getzep/zep-go/v3@v3.23.0(genai pinned viago mod tidy). Go ≥1.23.Release note
Go modules aren't published to a registry — this versions via the module-path tag
integrations/adk/go/vX.Y.Z(go get github.com/getzep/zep/integrations/adk/go@vX.Y.Z).Ships
README, SETUP.md (Zep signup), example
main.go, table tests, Makefile.Validation
go build ./...+go vet ./...+go test ./...(all exit 0). Approach inintegrations/SPIKE_FINDINGS.md.🤖 Generated with Claude Code