Prepare before you start
The agent does not have to be reachable from KAOP, or have a public address. The wrapper opens the
connection outward and claims work over it.
The steps
1
Framework
Pick the framework your agent is built on. The choice decides which adapter the generated
wrapper uses and what it captures automatically:
2
Agent card
Name the agent and give it an id and a description. This is the identity KAOP governs — what
appears in Fleet, what permissions attach to, and what runs are attributed to. It is independent
of whatever your code calls itself.
3
Where it runs
Keep the agent where it already runs, or move it to Komodor-hosted. Importing usually means
keeping it in place, which is the point: the code and its network access do not move.
4
Model, tools and triggers
The same wizard steps as any other agent — Model, MCP tools, Integrations,
Triggers, Permissions. An imported agent can skip most of them and keep using its own
model and tools, or adopt KAOP’s so that credentials, guardrails and spend attribution apply to
it too.
5
Generate the wrapper
KAOP produces the install line and the wrapper source for your framework:The wrapper builds its spec with
AgentSpec.from_dir, which reads agent-spec.yaml from the
directory alongside it. That path — rather than constructing the spec in code — is what applies
the AGENTOPS_AGENT_ID override and picks up agent.md, labels and provenance.6
Set three variables and start it
The wrapper authenticates with three environment variables:
Start the agent as you normally would. The wrapper registers it on the first heartbeat.
Validate the import
The Verify step watches for the agent rather than asking you to confirm it, and updates on its own as soon as the agent connects:
If the first heartbeat does not arrive, check these in order:
- All three variables are set, and
AGENTOPS_AGENT_IDmatches the id the token was minted for. A token bound to a different agent authenticates as that one. AGENTOPS_URLis reachable from where the agent runs — not only from your own machine. This is the most common cause: the value was tested from a laptop and the agent runs in a cluster.- The spec is the one you think it is. If it is built in code rather than loaded from
agent-spec.yaml, the environment override does not apply and the agent registers under a different id.
Next steps
Build from scratch
Author an agent with the SDK instead of wrapping one.
Runs & evidence
What the imported agent now records on every run.
Fleet health
Whether it stays online once it is in.