Repository navigation
feat: ship built-in Agents and skills editor - #3554
danielle-mustillo wants to merge 17 commits into
Conversation
819f7ed to
29f2818
Compare
29f2818 to
eb66003
Compare
eb66003 to
543e5fc
Compare
This comment has been minimized.
This comment has been minimized.
Charlesthebird
left a comment
There was a problem hiding this comment.
This automated review is a first pass. A manual review will follow once the blockers are addressed.
Nothing blocks merge. One non-blocking gap: the skill form accepts an OCI image the controller rejects.
✅ What I checked
- ✅
--reuse-valuesfrom a release withoutbuiltins: every read goes throughdigon.Values.AsMap - ✅
global.imageRegistry: the catalog andk8s-agentboth use the mirrored image, so "Older version" compares like with like - ✅ Git, S3, path, 50-skill limit and duplicate-name checks against the v1alpha3 CRD and the translator
- ✅
pluginsandpromptTemplateon save:specFromDraftreplaces onlyspec.skills - ✅
KAGENT_UI_BUILTIN_SKILLSescaping through the entrypoint intoJSON.parse - ✅ CI: only the Harness named
kagentclashes with the lifecycle suite, andk8s-agentdrops out with kagent-tools off - ✅ Default
s3://ate-snapshots/kagent/matches the RustFS store insetup-cluster.sh - ✅ No internal brand terms in the diff
Written by 🤖
|
The kagent-tools bump to 0.3.1 in this PR also fixes a downgrade for users upgrading from 0.10.x. The v0.10.6 chart depends on kagent-tools 0.3.1, while v1.0.0 pins 0.3.0, so moving from 0.10.6 to 1.0.0 rolls kagent-tools back. Keeping this dependency on the latest tools release matters because operational fixes land there. For example, kagent-dev/tools#84 (the Streamable HTTP server leaking heap on every MCP initialize request) was fixed in 0.3.0 by kagent-dev/tools#85. Users only get fixes like that without overriding the subchart when the chart tracks the current release. Changes between kagent-tools 0.3.0 and 0.3.1:
If the rest of this PR needs more review time, landing the dependency bump on its own would keep the next 1.0.x release from shipping the older tools chart. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
- k8s-agent is now an AgentTemplate plus an Agent that references it. - platform-agent is a second example Agent with the k8s, Helm, Istio and Argo Rollouts skills and their tools; tools that change things need approval. - The UI skill catalog also offers Argo Rollouts and Kubescape, and offers Prometheus only when kagent-tools.tools.prometheus.url is an http(s) URL. - The built-in agents render from builtin-agents.yaml and the Harness from builtin-harness.yaml. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
- The UI rejects an OCI skill image path with uppercase letters. The controller cannot parse it, so the Agent would never become Ready. - On the AgentTemplate pages, divider lines separate the skills, each remove button names its skill, and a Git skill's repository is a link. - The built-in Harness is named kagent-builtin. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
The built-in Agents now use kagent-default and appear only when harnesses.enabled is on. That is off in the chart and on in kagent install. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
…t subagents - builtins has three switches: enabled, k8sAgent.enabled and platformAgent.enabled. - The built-in skills always come from the kagent-tools image when builtins.enabled is on. - platform-agent routes each task to a specialist AgentTemplate with one skill. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
02b340d to
28f847f
Compare
… kagent-tools Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
|
Thanks! Changes from your review:
🤖 written by Claude |
|
Thanks! I'm kicking off another automated review and video to see the changes |
|
Before is
pr3554-verify-reel.mp4Screenshots🤖 written by Claude |
Charlesthebird
left a comment
There was a problem hiding this comment.
This automated review is a first pass. A manual review will follow once the blockers are addressed.
Nothing blocks merge. Two Medium findings are inline: the specialists bind no Kubernetes read tools, and a multi-line KAGENT_UI_BUILTIN_SKILLS override breaks the whole UI config.
✅ What I checked
- ✅ Rendered AgentTemplate and Agent fields match the v1alpha3 CRD types (
tools[].mcp.server,requireApproval,subAgent.templateRef,skills[].source.oci/path,harnessRef). - ✅ platform-agent calls k8s-agent, which has no subagents, so the compiler's one-level and no-repeat rules hold.
- ✅
helm unitteston the chart with kagent-tools 0.3.1: 35 suites, 383 tests pass;go test ./ui/entrypoint/...passes. - ✅ UI validation matches the CRD patterns (OCI digest, Git URL and commit, S3 fields, relative paths, 50-skill cap, unique names).
- ✅ Save keeps
pluginsandpromptTemplate;mustToJsonescapes<, so a skill description cannot close the<script>tag.
Written by 🤖
Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
k8s-agent becomes the platform-kubernetes specialist AgentTemplate, and platform-agent's description says it sends Kubernetes questions to a specialist. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
| builtins: | ||
| # -- Create the built-in Agent and offer the kagent-tools skills in the UI. | ||
| # The Agent needs `harnesses.enabled`, `harnesses.kagent.enabled` and `kagent-tools.enabled`. | ||
| enabled: true |
There was a problem hiding this comment.
I had thought we would have this disabled by default and only enable it by default with the kagent install flow.
Can you remind me why it's enabled by default here?
There was a problem hiding this comment.
They rendered nothing on a plain install because they also depended on harnesses.enabled, but that was hard to see. builtins.enabled is now false in the chart and kagent install sets it to true, like harnesses.enabled. The chart now fails with a clear message when platform-agent is on but the kagent-default Harness or kagent-tools is off.
Written by 🤖
builtins.platformAgent now fails the render when the kagent-default Harness or kagent-tools is off, instead of rendering nothing. Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>
Signed-off-by: Danielle Mustillo <danielle.mustillo@solo.io>














Written by 🤖 (start)
Why
New installs have no example agents. Skills need kubectl today.
What changed
platform-agentruns onkagent-default.builtins.platformAgent.enabled: falseturns it off.builtins.enabledis off in the chart;kagent installturns it on withharnesses.enabled.platform-agentis on withoutkagent-defaultor kagent-tools.--profile minimalnow skips it.files/builtin-skills.jsonlists them, pinned by digest.make builtin-skills-catalogregenerates it.env-config.jsnow escapes multi-line values.Limits
--reuse-valuesupgrades render no built-ins.platform-agentloaded its skill in 2 of 4 chats.Testing
kagent installon Kind.platform-agentis Ready.platform-agentabout a failing pod.k8s-troubleshooting.kagent install --profile minimal; expect no built-in Agent.Written by 🤖 (end)