Creates an Agent canonically owned by the Application in the route.
The Application in the route wins — any owner supplied in the body is overwritten before validation, so an Agent can never be created into a different Application than the one the caller was authorized against. Requires the Editor role. Responds 201 with a `Location` header pointing at the new Agent, or 400 with per-field validation errors.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
Id of the Application that will own the Agent.
uuidThe tenant identifier
The Agent definition. Its owning-Application field is ignored and replaced by the route value.
1 <= lengthEnum 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"The Application selected to own this Agent at creation.
uuidWhere 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.
"UNSPECIFIED" | "NATIVE" | "LANG_GRAPH" | "CREW_AI" | "OPEN_AI_ASSISTANTS" | "DIFY"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
Response Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/networks/497f6eca-6276-4993-bfeb-53cbbbba6f08/agents" \ -H "Content-Type: application/json" \ -d '{ "id": "string" }'{
"id": "string",
"displayName": "string",
"description": "string",
"avatarFileId": "string",
"type": "SUMMARIZATION",
"tags": [
"string"
],
"enabled": false,
"currentRevision": 0,
"createdAt": 0,
"modifiedAt": 0,
"origin": "NATIVE",
"networkId": "00000000-0000-0000-0000-000000000000"
}{
"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 through its canonical owning Application.
Soft-deletes the Agent — it stops serving traffic but stays readable within the deletion grace period before it is purged. The lookup is scoped to the Application in the route, so an Agent owned by a different Application returns 404. Requires the Admin role.
Updates an Agent through its canonical owning Application.
Updates the Agent's top-level metadata only — the flow graph is versioned separately through the revisions endpoints. The lookup is scoped to the Application in the route, so an Agent owned by a different Application returns 404. Requires the Editor role.