Run Agent workloads in your configured provider or coding harness. Keep
runtime credentials and execution controls in that environment.
ATLAN_GATEWAY_URL and ATLAN_TOKEN in your
environment, and a workspace you can write to. Read
authentication first.
1. Register an Agent
name and workspace_id are the only required fields. Everything else
describes the Agent so a reader — human or agent — can tell what it is for.
id. Keep it in your deployment record rather
than looking the Agent up by name later.
To change any of it later,
PATCH /agent/v1/agents/{agent_id}. To retire an
Agent, POST /agent/v1/agents/{agent_id}/archive — there is no destructive
delete on the public plane.
For a Claude workflow, see
Claude Managed Agents.
2. Give the Agent its tools
tools declares what the Agent can call. Each entry is one of two shapes:
agent_patch_agent replaces
the whole tools list, so send every tool the Agent should keep:
Find the
server and tool values with
registry__search or
GET /tools/mcp/v1/servers/{server_id}/tools. See the
MCP overview for the catalog.
tools is not how Skills attach to an Agent — see
Skills and Agents below.3. Register a provider
A provider records where the Agent runs. Required:name, workspace_id, and
provider_type, which is local or custom.
agent_provider_id when you create or patch the Agent.
Keep provider credentials out of source code, URLs, browser storage, and
committed configuration — the provider record is a catalog entry, not a
credential store.
Environments and frameworks work the same way, at
POST /agent/v1/environments and POST /agent/v1/agent-frameworks.
4. Enable tracing
This is what makes the Agent record useful rather than decorative.Your own agent
Use the tracing SDK. Set
service_name to the Agent’s name so its runs
attach to this record.A coding agent
Install the Claude Code trace plugin. No code change; sessions and tool
calls are captured locally and exported.
Anything OTel
Point an existing OTLP exporter at
/otel/v1/traces with your API key and
workspace.service_name you gave the Agent ties its
runs to this record. Install it as described in Install —
atlanai[tracing] in Python, the ./tracing subpath plus its
OpenTelemetry peers in TypeScript.
ATLAN_API_KEY and ATLAN_WORKSPACE_ID —
and does not reuse the management bearer token. A process doing both configures
both.
Verify by reading the Agent’s traces back rather than trusting the export:
GET /agent/v1/agents/{agent_id}/traces/{trace_id} and
.../traces/{trace_id}/spans.
5. Record a completed run by hand
Only for a runtime you cannot instrument. Create the session with the original execution timestamps, not the time you uploaded it.
Then append the transcript.
sequence_number fixes the order, so send it
explicitly rather than relying on insertion order:
message_role is system, user, assistant, or tool. For a tool call,
use message_role: "tool" with tool_name and tool_call_id so the call
lines up with the assistant message that requested it.
For provider-run Agents, inspect provider-native activity through
GET /agent/v1/sessions/{session_id}/events. Use session messages for the
transcript records your harness uploads.
6. Attach a file artifact
Uploading is a two-step ticket flow: ask for a ticket, then send the bytes.201 returns an upload ticket:
Check
is_presigned before sending. When it is true, send the bytes to
upload_url as given and do not attach your Atlan token — that URL carries
its own authorization. When it is false, send them to the Gateway:
is_presigned yourself:
204 with no body. Confirm it by listing files:
GET /file/v1/files/{file_id}/content returns the current bytes, and
GET /file/v1/files/{file_id}/versions/{version_ordinal}/content a pinned
version. Both return the stored media type, not JSON — check the content type
before parsing, or you will write a corrupt file.
From the CLI, atlanai file upload and atlanai file download do this in one
command — see the files guide.
7. Find and inspect Agents
Search and aggregation arePOST because the query goes in the body:
All 79 agent operations are in the
agent operations reference.
An agent doing this itself should use MCP rather than the API — see
registry__search and
registry__get_artifact.
Skills and Agents
Skills and Agents are related through the Registry’s artifact graph, and that graph is readable but not publicly writable today. You can read the edges around any artifact:registry__get_related_artifactsreturns the exact incoming and outgoing edges for one artifact, each with its relationship type, direction, status, and the artifact at the other end.registry__searchwithstrategy: "group"returns a ranked graph neighbourhood from a query.registry__get_artifactincludes relationship context for a known artifact.
toolson an Agent takes builtin and MCP tool references only, not Skill ids.atlanai skill linkassociates a local directory with an existing server-side Skill so later pushes append versions to it. It does not link a Skill to an Agent.
Verify the result
A2xx confirms Atlan accepted the record. It does not confirm the record is
right. Before you rely on it:
- Read the Agent back and confirm the workspace is the one you intended — not another your token can also reach.
- Read the session back and compare its timestamps and
session_statusagainst the external runtime. - Confirm message
sequence_numbers are contiguous and the transcript reads in order. - For traces, confirm they appear under the Agent, not just that the export returned success.
Related
Agents in the product
Lifecycle, sessions, and trace inspection.
Tracing SDK
Report runs as they happen instead of reconstructing them.
Errors and retries
Recover from a failed write without duplicating it.
Skills cookbook
Publish, retrieve, and inspect reusable Skills.