Skip to content

Docs: cover creating a BYO Harness in the UI for kagent 1.x #539

Description

@Rachael-Graham

Important

Adjusted for 1.0.0-alpha5 on 2026-09-29. All four runtimes survive and a byo Harness still requires workload.command, so the core of this issue stands. Two changes affect the steps below:

  • allowedAgentTemplates is removed from HarnessSpec entirely. The test step that creates a template "labelled for that harness" describes label pairing that no longer exists. alpha5 pairs a template to a harness through the explicit Agent kind instead.
  • The UI gained explicit Agent create, edit and delete in kagent#2953, on the same surface this issue covers. Decide whether that belongs here or in its own page before writing.

Part of #549.

kagent#2935 added bring-your-own harnesses to the UI. agents/bring-your-own-agent.md documents the CLI and YAML path alone, so a reader working in the UI has no route through the feature.

This is a section added to an existing page, plus screenshots.

What changed in the UI

  • Agents → New Harness offers byo as a runtime, with command and args inputs. Create stays disabled until a command is supplied, which mirrors the API rule that a byo Harness must override the entrypoint because kagent does not infer it.
  • The model is now optional on an AgentTemplate. The form warns when a matching non-BYO harness still needs one. This is the change most likely to confuse a reader who learned the old rule, so it wants stating plainly rather than as a UI aside.
  • The Harnesses tab reports the runtime as byo, where HarnessService previously returned it blank.

How this meets the existing page

bring-your-own-agent.md already carries the four requirements a byo image must meet and the rule that kagent enforces only spec.workload.command at apply time. The UI enforces that same rule at a different moment, by disabling Create. Write the UI path as another route to the same contract rather than as a separate feature, so the page does not grow two accounts of one thing.

Check whether agents/agent-harness.md needs a matching line, since its workload field table is where a reader meets workload.command first.

Screenshots

The pull request added a BYO harness to the mock fixtures, so the new-harness form and the Harnesses tab can be captured from mocks rather than from a live cluster. Confirm that against the harness before assuming it, because a live capture and a mock capture are configured differently.

What to check before starting

  1. Read agents/bring-your-own-agent.md end to end, so the UI section states the contract the same way the YAML section already does.
  2. Build the fixture image with make build-byo-a2a, and create a BYO harness through the form using that image's digest.
  3. Confirm Create stays disabled until a command is entered.
  4. Confirm the Harnesses tab shows the runtime as byo.
  5. Create an AgentTemplate with no model, labelled for that harness, and confirm it saves and appears under Runs on.
  6. Send the agent a message and confirm it replies.

Done when

  • The page covers creating a byo Harness through the UI, including command and args.
  • The disabled Create button is explained by the underlying rule rather than described as UI behavior.
  • The optional model on an AgentTemplate is documented, including when the form warns.
  • Screenshots follow the site's existing capture setup, and the page says which UI version they show.
  • agents/agent-harness.md is checked for a matching update.
  • Every step was run against a real BYO image.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions