Add GEAK v4 agent integration - #73
Merged
Merged
Conversation
Register a `geak_v4` agent that drives GEAK's kernel_workflow via an SDK-based background-Workflow runner and applies the validated patch in place (apply_to_original="true"), letting the Arena harness enforce integrity and re-score. All changes are confined to agents/geak_v4/, example_configs/, module_registration, and tests — the runner is configured purely through environment variables (GEAK_V4_WORKFLOW_DIR) with no changes to Docker/Makefile/docs, mirroring the `forge` agent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
yueliu14
marked this pull request as ready for review
July 28, 2026 14:22
yueliu14
requested review from
irvineoy,
sharareh-y and
sinarafati-amd
as code owners
July 28, 2026 14:22
irvineoy
reviewed
Jul 28, 2026
irvineoy
left a comment
Collaborator
There was a problem hiding this comment.
I found two integration issues that should be addressed before relying on the new GEAK v4 quickstart.
Addresses the two PR #73 review comments: P1: Map the geak_v4 template to Claude Code provisioning/checks in the Docker-first runner, mount+forward the host's GEAK_V4_WORKFLOW_DIR, and add a supported SDK setup step (make docker-setup-geak / container_setup_geak). The setup installs claude-agent-sdk into the persistent pip user-base via `pip install --target` (venv rejects --user, /opt/venv is unwritable by the non-root runner user) and forwards it on PYTHONPATH; it short-circuits when the image already ships the SDK. Also forward the host's Claude gateway auth (Core42/Primus-safe: ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL + model/TLS/ timeout vars) by name so the in-container CLI can authenticate. P2: normalize_result() gains require_applied; when the run requested apply_to_original, an accepted gain is only "ok" if applied_to_original == "true", otherwise it is an error (Arena would re-score the unmodified baseline). Covered by regression tests. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
RTD builds with Python 3.10; recompiled requirements.txt so transitive pins (ipython, sphinx, myst-parser) resolve to 3.10-compatible versions.
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.
Summary
Integrates the GEAK v4 agent as a kernel-optimization backend in AgentKernelArena, targeting AMD MI300 (
gfx942).GEAK runs through an SDK bridge that drives a multi-role workflow pipeline:
author → profile → engineer(s) → verify → integrator → director validationAgentArena then independently re-measures every result using its centralized evaluator, ensuring an authoritative, apples-to-apples performance score.
What's Included
agents/geak_v4/SDK bridge:workflow_runner.pylaunch_agent.pyIntegration of GEAK's
kernel_workflow.jspipeline with the Arena agent interface.Example configuration:
quickstart_geak_v4_mi300.yamlTest Results
Environment: AMD MI300
Test scope: 9-task smoke run across 6 GPUs
The nine tasks consist of:
5
hip2hip/otherstasks4
triton2triton/geak_evaltasksThe results below are based on Arena's authoritative independent re-measurement, rather than GEAK's internal director-reported numbers.