Create Agent From Config
Create a config-based agent, optionally deploying it.
Set deploy=false to save as draft without deploying.
/agents/configAuthorizationBearer token · headerrequireddeploybooleanapplication/jsonnamestringrequiredAgent display name
descriptionstring | nullHuman-readable context for the agent
Show propertiesHide properties
stringnullenabledbooleanKill switch. When false, the Flink runtime accepts the deploy but stops emitting output — used by support to disable a runaway tenant agent without a full cancel/redeploy.
agentTypeAgentTypeEnumAgent type — derived from the tool list post-validation; client-supplied value is overwritten
workflowreactinputAgentInputConfigrequiredInput configuration for the agent.
Show propertiesHide properties
topicPatternstringrequiredRegex pattern for input topics, e.g. '^(orders)$'
inputSerializationAgentSerializationEnumInput deserialization format
JsonConfluentAvroConfluentfieldsstring[] | nullColumn-level filter - only these fields sent to LLM
Show propertiesHide properties
stringstringnullcreateTableSQLstring | nullFlink SQL CREATE TABLE (required if filterSQL is set)
Show propertiesHide properties
stringnullfilterSQLstring | nullWHERE clause predicate for row-level filtering
Show propertiesHide properties
stringnulloutputAgentOutputConfigrequiredOutput configuration for the agent.
Show propertiesHide properties
topicstringrequiredFixed output topic name
deadLetterTopicstring | nullDLQ topic name
Show propertiesHide properties
stringnulloutputSerializationAgentSerializationEnumOutput serialization format
JsonConfluentAvroConfluentschemaobjectOutput schema: {field_name: TYPE_STRING}
llmAgentLlmConfigrequiredInline LLM configuration embedded on the agent.
Carries provider, credentials, model, and tuning controls as a single
blob. The FE prefills the form from a saved :class:AgentLlmConnection
(which now carries default model + tuning + reasoning controls) and
the user can override per-agent before save; the resulting blob is
stored verbatim and shipped to the Flink runtime at deploy.
Two credential shapes (XOR, mirrors :class:ValidateLlmRequest):
- Inline -
apiKeyis filled directly. The BE KMS-encrypts it at save and decrypts it at deploy / test-run. - Linked -
llmConnectionIdreferences a row inagent_connections.llmConnectionsandapiKeyis left empty. The BE resolves the real key server-side at deploy and at test-run via :func:agents_service.resolve_saved_llm_credentials, so the browser never needs to hold (or re-paste) the stored plaintext when editing an existing agent.
provider == ollama accepts an empty key without a link (the
runtime is local and unauthenticated).
Show propertiesHide properties
providerAgentLlmProviderEnumrequiredUnified LLM provider enum.
A single AgentLlmConnection row carries one provider and a set of
capabilities (chat / embedding). PROVIDER_CAPABILITIES below pins
which capabilities each provider can serve — picked by the FE Connections
drawer and re-validated server-side on every write.
anthropicopenaiopenai-responsesollamaazureazure-openaibedrockqwenopenai-compatiblemodelstringrequiredModel name, e.g. claude-sonnet-4-20250514
apiKeystringAPI key - use '${SECRET:ENV_VAR_NAME}' for env var resolution. Empty when llmConnectionId is set.
llmConnectionIdstring | nullTenant-scoped reference to agent_connections.llmConnections[].id. When set with an empty apiKey, the BE resolves the real key server-side at deploy and at test-run.
Show propertiesHide properties
stringnullbaseUrlstring | nullBase URL for OpenAI-compatible proxies
Show propertiesHide properties
stringnulltemperaturenumber | nullSampling temperature (null = matrix-skipped)
Show propertiesHide properties
numbernullmaxTokensinteger | nullMax output tokens (null = matrix-skipped)
Show propertiesHide properties
integernulltimeoutinteger | nullRequest timeout in seconds (null = matrix-skipped)
Show propertiesHide properties
integernullreasoningEffortstring | nullOpenAI / GPT-5 reasoning effort. The accepted set is per-model: the matrix in app/utils/llm_capabilities.py rejects values not in caps.reasoning_effort_values for the chosen provider+model.
Show propertiesHide properties
stringnullthinkingBudgetTokensinteger | nullAnthropic Claude 4 extended-thinking budget (tokens). Non-null enables thinking.
Show propertiesHide properties
integernullollamaThinkboolean | nullOllama 'think' toggle for reasoning models
Show propertiesHide properties
booleannullmaxRetriesinteger | nullUniversal — max retry attempts on LLM call. Accepted by every provider.
Show propertiesHide properties
integernullregionstring | nullBedrock: AWS region (e.g. us-east-1). Ignored for non-bedrock providers.
Show propertiesHide properties
stringnullstrictboolean | nullopenai-responses: enable JSON-schema strict mode.
Show propertiesHide properties
booleannullstoreboolean | nullopenai-responses: server-side response storage flag.
Show propertiesHide properties
booleannullinstructionsstring | nullopenai-responses: system-level instructions passed as a top-level Responses param.
Show propertiesHide properties
stringnulladditionalKwargsobject | nullopenai-responses / azure-openai: free-form extra request params forwarded verbatim by the runtime.
Show propertiesHide properties
objectnullapiVersionstring | nullazure-openai: Azure OpenAI API version (e.g. '2024-02-01'). Required for azure-openai.
Show propertiesHide properties
stringnullazureEndpointstring | nullazure-openai: Azure resource endpoint (e.g. https://<resource>.openai.azure.com). Required.
Show propertiesHide properties
stringnullazureUrlPathModestring | nullazure-openai: URL path resolution — AUTO / LEGACY / UNIFIED. Optional.
Show propertiesHide properties
stringnullpromptsAgentPromptConfigrequiredPrompt configuration for the agent.
The final system prompt is auto-assembled by build_system_prompt() from the
agent type template + output schema + tool descriptions + custom_instructions.
The system field stores the assembled result (set by the backend, not the user).
Show propertiesHide properties
systemstringAssembled system prompt (auto-generated by backend)
customInstructionsstringUser-provided instructions appended to the auto-generated prompt
userstringUser prompt template - {input_json} is replaced with the input record
mcpServerAgentMcpServerConfig | nullShared MCP server config for all MCP tools
Show propertiesHide properties
projectKeyIdstring | nullID of an agentic-enabled Project Key. When set, deploy-time resolves the Streamkap MCP serverUrl + auth header from the PK row. Mutually exclusive with serverUrl - one or the other, never both.
Show propertiesHide properties
stringnullserverUrlstring | nullExternal MCP server URL. Required when projectKeyId is unset. Server-stamped from the PK row when projectKeyId is set.
Show propertiesHide properties
stringnullheadersobjectAuth headers for MCP server
nulltoolsAgentToolConfig[]Agent tools (MCP, HTTP, transform)
Show propertiesHide properties
AgentToolConfignamestringrequiredTool name (must be unique)
typeAgentToolTypeEnumrequiredTool type: http, transform, or mcp
httptransformmcpdescriptionstringTool description for the LLM
configobjectType-specific configuration
parametersAgentToolParameterConfig[]Tool parameters the LLM can provide
Show propertiesHide properties
AgentToolParameterConfignamestringrequiredParameter name
typestringParameter type (string, number, boolean)
descriptionstringParameter description for the LLM
memoryAgentMemoryConfig | nullMemory config (short-term + long-term)
Show propertiesHide properties
keyFieldstring | nullField to partition memory by (e.g. 'customer_id'). Default: topic key
Show propertiesHide properties
stringnullshortTermAgentShortTermMemoryConfigShort-term (conversation) memory config.
Show propertiesHide properties
enabledbooleanEnable short-term memory
ttlMsintegerTime-to-live in milliseconds (default: 1 hour)
maxEntriesintegerMax conversation entries per key
longTermAgentLongTermMemoryConfigLong-term (vector store) memory config.
References a saved AgentVectorStoreConnection by id. At deploy time
the resolver reads the connection's apiKey + endpoint and composes
the inline vectorStore block the Java runtime expects.
Legacy agents may still carry destinationId (a Pinecone destination
connector from the old flow). The deploy resolver handles both: if
vectorStoreConnectionId is set it wins; otherwise it falls back to
the legacy destinationId path. New agents created through the FE
always use vectorStoreConnectionId.
Show propertiesHide properties
enabledbooleanEnable long-term memory
vectorStoreConnectionIdstring | nullReference to a saved AgentVectorStoreConnection. Resolved at deploy time.
Show propertiesHide properties
stringnullnamespacestring | nullPer-agent namespace override (falls back to connection's defaultNamespace)
Show propertiesHide properties
stringnulldestinationIdstring | null(Legacy) ObjectId of a Pinecone destination connector. Prefer vectorStoreConnectionId.
Show propertiesHide properties
stringnullnullknowledgeBasesAgentKnowledgeBaseRef[]Knowledge bases this agent can query at runtime for RAG
Show propertiesHide properties
AgentKnowledgeBaseRefidstringrequiredKnowledge base entity ID
namestringDisplay name (denormalized for UI)
processingAgentProcessingConfigProcessing configuration for the agent.
Show propertiesHide properties
parallelismintegerParallelism
checkpointIntervalMinintegerCheckpoint interval in minutes
maxIterationsintegerMax tool-call iterations per record (react type only)
maxTokensPerHourintegerPer-TaskManager rolling-hour token budget. 0 = unlimited. When exceeded, records pass through with a _budget_exceeded: true marker.
Successful Response
_idstringrequirednamestringrequiredjob_typeapp__models__api__agents_api_models__flink_jobs__FlinkJobTypeEnumrequiredpyflinkjaragent_configknowledge_basestatusFlinkJobStatusEnumrequiredCREATEDDEPLOYINGRUNNINGCANCELLINGCANCELLEDFAILEDFINISHEDdesired_statusFlinkJobStatusEnum | nullShow propertiesHide properties
stringnullflink_job_namestringrequiredflink_job_idstring | nullShow propertiesHide properties
stringnullparallelismintegererror_messagestring | nullShow propertiesHide properties
stringnullagent_configobject | nullShow propertiesHide properties
objectnullcreated_bystring | nullShow propertiesHide properties
stringnullcreated_timestampstring<date-time> | nullShow propertiesHide properties
string<date-time>nullupdated_timestampstring<date-time> | nullShow propertiesHide properties
string<date-time>nullValidation Error
detailValidationError[]Show propertiesHide properties
ValidationErrorlocstring | integer[]requiredShow propertiesHide properties
string | integerstringintegermsgstringrequiredtypestringrequiredinputanyctxobject