Repository navigation
feat: ship the kagent-tools skills with a k8s-agent, and add skills to the agent template form - #3554
Open
danielle-mustillo wants to merge 6 commits into
Open
danielle-mustillo wants to merge 6 commits into
danielle-mustillo wants to merge 6 commits into
Conversation
danielle-mustillo
force-pushed
the
danielle-mustillo/k8s-agent-skills
branch
from
November 6, 2026 14:37
819f7ed to
29f2818
Compare
danielle-mustillo
force-pushed
the
danielle-mustillo/k8s-agent-skills
branch
from
November 6, 2026 15:09
29f2818 to
eb66003
Compare
…ols skills The chart now creates a default Go ADK Harness and a k8s Agent on it. The Agent uses the kagent-tools Kubernetes tools, with tools that change the cluster behind approval, and the k8s-troubleshooting skill. The skill comes from the kagent-tools image that the chart already deploys. The chart packages files/builtin-skills.json, which pins that image by digest and lists the skills in it. make builtin-skills-catalog regenerates the file from the image. Bump kagent-tools to 0.3.1, the release that ships the skills. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
The UI ConfigMap passes the catalog as KAGENT_UI_BUILTIN_SKILLS, so the UI can offer the built-in skills when a user builds an agent. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
The UI image writes KAGENT_UI_BUILTIN_SKILLS into env-config.js as BUILTIN_SKILLS, and runtimeConfig parses it into a typed catalog. A missing or invalid catalog means the UI offers no built-in skills. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
A user building an agent can now add one of the built-in skills or their own skill from an OCI image, a Git commit or an S3 object version. The form owns spec.skills and checks the same rules as the CRD. A row that holds a built-in skill unchanged shows as a kagent skill with its description. The mock backend serves a built-in catalog, and the agent templates journey adds both kinds of skill and reads them back. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
…roller A live spec builds an AgentTemplate with a kagent skill and an OCI, a Git and an S3 skill through the form. It reads spec.skills back from the controller, keeps them through an edit, and refuses a short Git commit and a name with a slash. A second test builds an Agent with only the kagent skill and checks in chat that load_skill returns the skill's text. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
danielle-mustillo
force-pushed
the
danielle-mustillo/k8s-agent-skills
branch
from
November 6, 2026 15:20
eb66003 to
543e5fc
Compare
Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
Contributor
Author
pr3554-reel.mp4ScreenshotsWritten by 🤖 |
danielle-mustillo
marked this pull request as ready for review
November 6, 2026 16:12
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
A new kagent install has no example agent and no skills to start from, and the UI has no way to add a skill to an agent. Today skills can only be set with kubectl.
What changed
Built-ins in the chart. A new
builtinsvalues group gives a new install a starting point:builtins.harness: a Go ADK Harness namedkagenton the chart's worker pool.builtins.k8sAgent: an Agent namedk8s-agenton that Harness. It uses the kagent-tools Kubernetes tools and thek8s-troubleshootingskill. Tools that change the cluster wait for approval.builtins.skills: the skills the UI offers.builtins.skills.imagewithbuiltins.skills.listoffers skills from another image instead.builtins.enabled: falseturns all three off. Each also has its ownenabled.The Harness and the Agent need
substrateWorkerPool.create, whichkagent installsets.Skills come from kagent-tools. kagent does not build a skills image of its own.
k8s-troubleshooting,helm-release-managementandistio-traffic-debugging. The image's other skills need Argo Rollouts, Cilium, Kubescape or Prometheus, so the list leaves them out.helm/kagent/files/builtin-skills.jsonholds the list and the kagent-tools image pinned by digest.make builtin-skills-catalogregenerates it from the image.KAGENT_UI_BUILTIN_SKILLS.global.imageRegistrymirrors the image.Skills in the agent template form.
spec.skills. The form rejects what the CRD or the runtime would reject, and each message names the skill.pluginsandpromptTemplate, which the form does not show, are kept on save.Limits
helm upgrade --reuse-valuesfrom an older release keeps the old chart's defaults, which have nobuiltinsvalues. The chart then renders no built-ins instead of failing.--reset-then-reuse-valuespicks up the new defaults and turns them on.builtins.harness.enabled: false, because the lifecycle suite applies its own Harness namedkagent. CI also turns kagent-tools off, so CI does not runk8s-agent.Testing
helm unittest helm/kagent: 378 tests pass.yarn typecheck, vitest (810 tests), the UI entrypoint Go tests and the mock Playwright agent-templates journey pass.k8s-agentis Ready with its skill fromghcr.io/kagent-dev/kagent/tools@sha256:607cb0ac…. Asked about a crash-looping pod, it calledload_skillfork8s-troubleshootingand got the kagent-tools text back.builtins.enabled=falseremoved the Harness, the Agent and the UI skill list. Turning it back on restored them, andk8s-agentbecame Ready again.--reuse-valuessucceeded with no built-ins. A following--reset-then-reuse-valuesupgrade brought them back, andk8s-agentbecame Ready.