Repository navigation
feat(helm): add example Agents with the kagent-tools skills - #3417
Draft
danielle-mustillo wants to merge 12 commits into
Draft
danielle-mustillo wants to merge 12 commits into
danielle-mustillo wants to merge 12 commits into
Conversation
Signed-off-by: Danielle Mustillo <[email protected]>
One binding lists at most 50 tools, Claude and Codex accept each MCP server once, and OpenAI accepts at most 128 tools per request. Three Agents with one binding each fit every harness. Signed-off-by: Danielle Mustillo <[email protected]>
Signed-off-by: Danielle Mustillo <[email protected]>
Read each example Agent's skills from the chart template and run every Agent shape on every harness. Each must advertise only its own skills and load one of them. Signed-off-by: Danielle Mustillo <[email protected]>
The example Harness copied the release's Go ADK image into spec.workload.image, which marks it as an explicit override that no longer follows the image catalog. Leave workload unset so the controller selects the release default. Give the networking Agent the Kubernetes read tools its Istio and Cilium skills need to find pods, services, logs, and events. Update the e2e README for the three-Agent test. Signed-off-by: Danielle Mustillo <[email protected]>
…writes Only release packaging writes kagent-tools-image.json, and it writes it into its staging folder, never into the chart sources. Signed-off-by: Danielle Mustillo <[email protected]>
It had one caller. The example Agents' setup checks now sit together at the top of example-agents.yaml. Signed-off-by: Danielle Mustillo <[email protected]>
tools-image-metadata.sh now writes {image, version} to the output file
itself, and removes an old file first. Release packaging checks the
version against the chart's kagent-tools dependency and copies the file,
instead of parsing a Buildx-shaped record back into an image reference.
The Makefile recipe no longer juggles a temp file.
Signed-off-by: Danielle Mustillo <[email protected]>
…nfig Signed-off-by: Danielle Mustillo <[email protected]>
danielle-mustillo
force-pushed
the
danielle-mustillo/skills-examples
branch
from
October 29, 2026 02:41
318c094 to
8ba54e1
Compare
The template now shows the Harness and the three Agents as plain YAML, instead of a dictionary of names, skills and tools fed to a range loop, so a reader sees what the chart deploys. The rendered output is unchanged. The skills e2e test reads each Agent from the YAML lines. Signed-off-by: Danielle Mustillo <[email protected]>
exampleAgents.snapshotLocation now defaults to gs://ate-snapshots/kagent/, the bucket that the Substrate chart's built-in rustfs store creates. A user who turned off rustfs sets their own bucket. Reword the example Agents comments, docs, and messages for plain technical writing: no semicolons, active voice, and one idea per sentence. Signed-off-by: Danielle Mustillo <[email protected]>
danielle-mustillo
marked this pull request as ready for review
October 29, 2026 03:52
A PR number goes stale once kagent-tools ships the skills. Say that kagent-tools 0.3.0 and earlier have no skills folder, which is the rule release packaging enforces. Signed-off-by: Danielle Mustillo <[email protected]>
moezdil
reviewed
Oct 29, 2026
| tools: | ||
| - k8s_apply_manifest | ||
| - k8s_check_service_connectivity | ||
| - k8s_delete_resource |
Contributor
There was a problem hiding this comment.
delete and uninstall tools lack requireApproval here
danielle-mustillo
marked this pull request as draft
October 29, 2026 16:21
This was referenced Oct 29, 2026
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.
Why
kagent 1.x dropped the ready-made example agents that 0.x shipped as Helm charts. kagent-dev/tools#91 ports their domain guidance to Agent Skills inside the kagent-tools image. This PR adds a chart flag that installs example Agents that load those skills, so a user can try the skills without writing their own Agent.
What changed
exampleAgents.enabled(off by default) installs one Go ADK Harness,kagent-tools-example, and three Agents on it:kagent-tools-cluster-opsk8s-troubleshooting,helm-release-management,argo-rollouts-progressive-delivery,prometheus-observabilitykagent-tools-networkingistio-traffic-debugging,cilium-network-debuggingkagent-tools-securitykubescape-security-postureEach Agent uses
default-model-config, the built-in prompts, one binding to the chart's kagent-tools MCP server, and the skills fromopt/kagent-tools-skillsin the kagent-tools image, pinned by@sha256digest.make helm-publishresolves the digest of the kagent-tools image that the chart depends on and packages it asfiles/kagent-tools-image.json. It records no digest for kagent-tools 0.3.0 and earlier, which have no skills.exampleAgents.snapshotLocationdefaults togs://ate-snapshots/kagent/, the bucket that the Substrate chart's built-in rustfs store creates.Scope
exampleAgents.skillsImageto an image built from that PR. A follow-up PR bumps the kagent-tools dependency so that the packaged digest makesskillsImageoptional.snapshotLocationto their own bucket.Tradeoffs
The original request was for a single example Agent. One Agent cannot hold all seven skills. The skills name 64 tools, one binding lists at most 50, and the whole tool server exceeds the 128-tool limit of OpenAI and Azure OpenAI. Two bindings to the same server work on Go ADK. The Claude and Codex harnesses reject them. Three Agents with one binding each run on every harness.
Blast radius
Nothing renders unless a user sets the flag, and the render fails with a clear message when
skillsImageis missing orsnapshotLocationis empty. The skills image mounts read-only in full, so an Agent can read the files of skills it did not select. Skill selection is not a security boundary.Verification
helm unittest helm/kagent(347 passed),scripts/package-release-charts_test.sh, andmake lintpass.TestExampleAgentToolsSkillschecks that each Agent advertises exactly its own skills and loads one of them, on the kagent, byo-adk, Claude, and Codex harnesses with a mock model. It passed 3 of 3 runs on a local Kind cluster with an image built from feat: ship kagent 1.x skills bundle in the tools OCI image tools#91. CI skips it until a kagent-tools release ships the skills.