FruxonDocs
AgentsCore

Creates a new agent.

Provisions a new agent shell with an empty draft revision and grants the calling user the Admin role on it. No flow is deployed yet — the agent is not executable until you build a revision via the agent-revisions endpoints and deploy it with `POST /v1/tenants/{tenant}/agents/{agent}/revisions/{revision}:deploy`. Returns 201 with the new agent's ID, which is used in the path of all subsequent agent-scoped calls.

POST
/v1/tenants/{tenant}/agents
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

tenant*string

The tenant identifier

The agent creation request.

id*string
Length1 <= length
displayName?string|null
description?string|null
avatarFileId?string|null
type?string

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.

Value in"UNSPECIFIED" | "SUMMARIZATION" | "RECOMMENDATION" | "ANALYZER" | "CHAT" | "OTHER"
tags?|null
origin?string

Where an agent's reasoning loop runs. Stored on Agent.Origin and used by the agent gateway to resolve the right IAgentExecutor implementation. Defaults to Fruxon.Model.Agents.External.AgentOrigin.Native for backwards compatibility — every existing agent is native. Wire form is UPPER_SNAKE per project convention.

Value in"UNSPECIFIED" | "NATIVE" | "LANG_GRAPH" | "CREW_AI" | "OPEN_AI_ASSISTANTS" | "DIFY"
externalConfig?

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 URL
  • assistant_id: platform-side agent identifier (LangGraph assistant_id, OpenAI assistant id)
  • auth_header_name / auth_header_value: generic header-based auth
  • api_key: when the platform expects a fixed header
  • timeout_seconds: per-invocation timeout
[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/agents" \  -H "Content-Type: application/json" \  -d '{    "id": "string"  }'
{
  "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
}
Empty
Empty