Updates an existing agent
Patches top-level agent metadata (display name, description, etc.). This does not touch the flow definition or any revision — to change the executable behavior, edit the draft revision and redeploy. The update is applied to the live agent record immediately and is visible to all collaborators on the next read. Returns 404 if the agent has been deleted or is still in the deletion grace period from another caller.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The unique identifier of the agent to update.
The tenant identifier
The agent update request.
Enum representing the different types of AI agents supported by Fruxon.
Wire form is UPPER_SNAKE; Unspecified = 0 is the AIP-126
zero-sentinel.
This enum is mandatory, meaning every agent must have a specific type.
"UNSPECIFIED" | "SUMMARIZATION" | "RECOMMENDATION" | "ANALYZER" | "CHAT" | "OTHER"Configuration for an externally-hosted agent. Persisted as JSONB on Fruxon.Model.Agents.Agent.ExternalConfig; null when Fruxon.Model.Agents.Agent.Origin is Fruxon.Model.Agents.External.AgentOrigin.Native.
Connection details are a free-form
System.Collections.Generic.Dictionary2 whose schema is declared per-platform by the matching IAgentPlatformDescriptor.ConnectionParameters. This mirrors how connectors and integrations work: persistent state is a flat dict, descriptors carry the schema, secrets are auto-encrypted by walking the metadata. Adding a new platform with novel auth (OAuth, signed JWT, mTLS) needs no shared-code changes — just new ParameterMetadata` entries on the descriptor.
Conventional keys (most platforms use most of these):
endpoint: the HTTP base URLassistant_id: platform-side agent identifier (LangGraph assistant_id, OpenAI assistant id)auth_header_name/auth_header_value: generic header-based authapi_key: when the platform expects a fixed headertimeout_seconds: per-invocation timeout
Per-agent prompt/completion redaction toggle. Nullable so the partial-update payload can leave it untouched; only flipped when the caller explicitly sends a value.
Response Body
curl -X PUT "https://api.fruxon.com/v1/tenants/string/agents/string" \ -H "Content-Type: application/json" \ -d '{}'{
"id": "string",
"displayName": "string",
"description": "string",
"avatarFileId": "string",
"tags": [
"string"
],
"type": "SUMMARIZATION",
"enabled": false,
"currentRevision": 0,
"createdAt": 0,
"modifiedAt": 0,
"tenantId": "00000000-0000-0000-0000-000000000000",
"solutionId": "string",
"deletedAt": 0,
"evaluationMetrics": [
{
"metricId": "00000000-0000-0000-0000-000000000000",
"weight": 0
}
],
"origin": "NATIVE",
"externalConfig": {
"parameters": {}
},
"redactLlmMessages": false
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}Deletes an agent
Soft-deletes the agent: it disappears from list/get responses immediately, all running executions are abandoned, and a background purge job removes underlying data (revisions, execution history, traces, collaborator grants) after a grace period. During the grace window the deletion can be reversed with `POST /v1/tenants/{tenant}/agents/{agent}:cancelDelete`; once the purge runs the agent ID is unrecoverable. Returns 204 on success and is idempotent against an already-deleted agent (returns 404).
Gets aggregated cost for a specific agent revision or all revisions.
Returns cost information including total input/output costs, token usage, and execution count. Use `*` as the revision parameter to aggregate costs across all revisions.