---
title: "CreateAgentWorkflow"
method: POST
path: "/v1/namespaces/{tenant_meta.namespace}/agent-workflows"
tags: ["AgentWorkflowService"]
---

# CreateAgentWorkflow

`POST /v1/namespaces/{tenant_meta.namespace}/agent-workflows`

## Request

- Base URL: `https://api.endorlabs.com`
- URL: `https://api.endorlabs.com/v1/namespaces/{tenant_meta.namespace}/agent-workflows`
- Auth: none declared

Creates an AgentWorkflow.

## Path parameters

- `tenant_meta.namespace` string, required

## Request body

- AgentWorkflowServiceCreateAgentWorkflowBody: Represents an agent workflow that orchestrates multiple agents. Workflows can be of different types, such as chain, planner, or swarm. The initial implementation supports chain workflows where agents execute sequentially, passing outputs to the next agent in the chain.
  - `meta` V1Meta, required: Common fields for all Endor Labs resources.
    - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
    - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
    - `description` string: Resource description. Must be less than 1024 bytes.
    - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
      - `data` string[]
      - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
      - `tenant` string
      - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
    - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
    - `name` string, required: Resource name. Must be 63 characters or less.
    - `parent_kind` string: Parent object resource kind, for example, Project.
    - `parent_uuid` string: Parent object UUID.
    - `references` object: Map of objects referenced in a query API.
    - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
    - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
    - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `version` string: Message version.
  - `propagate` boolean: Object can be propagated to child namespaces. Global objects are visible to all namespaces.
  - `spec` V1AgentWorkflowSpec
    - `chain` AgentWorkflowChainWorkflow: ChainWorkflow defines a sequential execution of agents where each agent's output becomes the input for the next agent. Note: There is a limitation on the number of results an agent can produce reliably. If an agent's output array contains too many elements (for example, more than 10), the next agent in the workflow may not process all results. This should be taken into account when designing workflows and configuring agents.
      - `steps` AgentWorkflowChainStep[]: The steps to execute in sequence.
        - `agent_config` V1AgentConfig: Represents the information captured from an AgentConfig of endorctl.
          - `meta` V1Meta, required: Common fields for all Endor Labs resources.
            - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
            - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
            - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
            - `description` string: Resource description. Must be less than 1024 bytes.
            - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
              - …
            - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
            - `name` string, required: Resource name. Must be 63 characters or less.
            - `parent_kind` string: Parent object resource kind, for example, Project.
            - `parent_uuid` string: Parent object UUID.
            - `references` object: Map of objects referenced in a query API.
            - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
            - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
            - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
            - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
            - `version` string: Message version.
          - `propagate` boolean: Object can be propagated to child namespaces. Global objects are visible to all namespaces.
          - `spec` V1AgentConfigSpec
            - `llm` 'AVAILABLE_LLM_UNSPECIFIED' | 'AVAILABLE_LLM_OPENAI_GPT_5' | 'AVAILABLE_LLM_OPENAI_GPT_5_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_5_NANO' | 'AVAILABLE_LLM_OPENAI_GPT_5_CHAT' | 'AVAILABLE_LLM_OPENAI_GPT_5_1' | 'AVAILABLE_LLM_OPENAI_GPT_5_1_CHAT' | 'AVAILABLE_LLM_OPENAI_GPT_5_1_CODEX' | 'AVAILABLE_LLM_OPENAI_GPT_5_1_CODEX_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_5_2_CODEX' | 'AVAILABLE_LLM_OPENAI_GPT_5_2' | 'AVAILABLE_LLM_OPENAI_GPT_5_3_CODEX' | 'AVAILABLE_LLM_OPENAI_GPT_5_3_CHAT' | 'AVAILABLE_LLM_OPENAI_GPT_5_4_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_5_4_NANO' | 'AVAILABLE_LLM_OPENAI_GPT_5_4' | 'AVAILABLE_LLM_OPENAI_GPT_5_5' | 'AVAILABLE_LLM_OPENAI_GPT_5_6_LUNA' | 'AVAILABLE_LLM_OPENAI_GPT_5_6_SOL' | 'AVAILABLE_LLM_OPENAI_GPT_5_6_TERRA' | 'AVAILABLE_LLM_OPENAI_GPT_6_SOL' | 'AVAILABLE_LLM_OPENAI_GPT_6_LUNA' | 'AVAILABLE_LLM_OPENAI_GPT_6_1_SOL' | 'AVAILABLE_LLM_OPENAI_GPT_6_1_TERRA' | 'AVAILABLE_LLM_OPENAI_GPT_4' | 'AVAILABLE_LLM_OPENAI_GPT_4O_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_4_1' | 'AVAILABLE_LLM_OPENAI_GPT_4_1_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_4_1_NANO' | 'AVAILABLE_LLM_OPENAI_O1' | 'AVAILABLE_LLM_OPENAI_O3' | 'AVAILABLE_LLM_OPENAI_GPT_4O' | 'AVAILABLE_LLM_OPENAI_O3_MINI' | 'AVAILABLE_LLM_OPENAI_O4_MINI' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_0' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_LATEST' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_PREVIEW' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_LITE' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_0_LITE' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_LITE_LATEST' | 'AVAILABLE_LLM_GOOGLE_GEMINI_2_5_PRO' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_PRO_PREVIEW' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_1_PRO_PREVIEW' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_5_FLASH_LITE' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_5_FLASH' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_6_FLASH' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_7_FLASH' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_FLASH_PREVIEW' | 'AVAILABLE_LLM_ANTHROPIC_CLAUDE_3_5_SONNET' | 'AVAILABLE_LLM_ANTHROPIC_CLAUDE_4_5_SONNET' | 'AVAILABLE_LLM_ANTHROPIC_CLAUDE_4_5_HAIKU' | 'AVAILABLE_LLM_GROQ_LLAMA_3_2_90B' | 'AVAILABLE_LLM_GROQ_COMPOUND' | 'AVAILABLE_LLM_GROQ_COMPOUND_MINI' | 'AVAILABLE_LLM_GROQ_LLAMA_3_3_70B_VERSATILE' | 'AVAILABLE_LLM_GROQ_LLAMA_4_MAVERICK_17B' | 'AVAILABLE_LLM_GROQ_LLAMA_4_SCOUT_17B' | 'AVAILABLE_LLM_GROQ_OPENAI_GPT_OSS_20B' | 'AVAILABLE_LLM_GROQ_OPENAI_GPT_OSS_120B' | 'AVAILABLE_LLM_GROQ_OPENAI_GPT_OSS_SAFEGUARD_20B' | 'AVAILABLE_LLM_GROQ_QWEN_3_32B' | 'AVAILABLE_LLM_GROQ_LLAMA_PROMPT_GUARD_2_22M' | 'AVAILABLE_LLM_GROQ_LLAMA_PROMPT_GUARD_2_86M' | 'AVAILABLE_LLM_GROQ_LLAMA_GUARD_4_12B' | 'AVAILABLE_LLM_ENDOR_DEEPSEEK_R1' | 'AVAILABLE_LLM_ENDOR_QWEN_3_8_27B' | 'AVAILABLE_LLM_GOOGLE_GEMMA_4_26B_A4B_IT' | 'AVAILABLE_LLM_GOOGLE_GEMINI_R2D2_LATEST' | 'AVAILABLE_LLM_FIREWORKS_GPT_OSS_20B' | 'AVAILABLE_LLM_FIREWORKS_GPT_OSS_120B' | 'AVAILABLE_LLM_FIREWORKS_KIMI_K25' | 'AVAILABLE_LLM_FIREWORKS_MINIMAX_M27' | 'AVAILABLE_LLM_FIREWORKS_QWEN_3_6_PLUS', required: LLMs available to AgentConfig. - AVAILABLE_LLM_OPENAI_GPT_5_CHAT: GPT-5 chat is a variant of GPT-5 that is optimized for chat use cases and does not support reasoning. - AVAILABLE_LLM_OPENAI_GPT_5_6_LUNA: GPT-5.6 Luna is the cost-efficient GPT-5.6 tier. - AVAILABLE_LLM_OPENAI_GPT_5_6_SOL: GPT-5.6 Sol is the highest-capability GPT-5.6 tier. - AVAILABLE_LLM_OPENAI_GPT_5_6_TERRA: GPT-5.6 Terra balances GPT-5.6 cost and capability. - AVAILABLE_LLM_OPENAI_GPT_6_1_SOL: GPT-6.1 Sol provides reasoning through the OpenAI provider. - AVAILABLE_LLM_OPENAI_GPT_6_1_TERRA: GPT-6.1 Terra supports visual reasoning and computer use through OpenAI. - AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_PREVIEW: deprecated: use AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_LITE instead. - AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_LITE_LATEST: NEVER USE: use AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_LITE instead. - AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW: deprecated: use AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE instead. - AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE: GA Gemini 3.1 Flash Lite; in the EU it is served from the eu.rep data-residency endpoint. - AVAILABLE_LLM_GOOGLE_GEMINI_3_5_FLASH_LITE: Generally available Gemini 3.5 Flash Lite model on Vertex AI: the high-throughput tier of the 3.5 generation. - AVAILABLE_LLM_GOOGLE_GEMINI_3_5_FLASH: Generally available Gemini 3.5 Flash model on Vertex AI. - AVAILABLE_LLM_GOOGLE_GEMINI_3_6_FLASH: Generally available Gemini 3.6 Flash model on Vertex AI: the successor to 3.5 Flash. - AVAILABLE_LLM_GOOGLE_GEMINI_3_7_FLASH: Generally available Gemini 3.7 Flash model on Vertex AI: the successor to 3.6 Flash.
            - `local_execution_only` boolean: LocalExecutionOnly is true if the agent can only be executed locally.
            - `mcp_servers` SpecMCPServer[]
              - …
            - `options` SpecOptions
              - …
            - `system_prompt` string, required: SystemPrompt is the system prompt that the agent will use.
            - `tool_names` string[]: tool_names is the list of tool names that the agent will use. It must be one of the supported tools. If the tool is not supported, the request will fail.
            - `vector_store_uuid` string: VectorStoreUUID is the vector store that the agent can use.
          - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
            - `namespace` string, required: Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
          - `uuid` string: The UUID of an AgentConfig.
        - `agent_config_uuid` string: Reference to an existing AgentConfig by UUID. This allows reusing AgentConfigs across multiple workflows.
  - `tenant_meta` object: AgentWorkflows are associated with a tenant or are global.
  - `uuid` string: The UUID of an AgentWorkflow.

## Response `200`

A successful response.

- V1AgentWorkflow: Represents an agent workflow that orchestrates multiple agents. Workflows can be of different types, such as chain, planner, or swarm. The initial implementation supports chain workflows where agents execute sequentially, passing outputs to the next agent in the chain.
  - `meta` V1Meta, required: Common fields for all Endor Labs resources.
    - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
    - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
    - `description` string: Resource description. Must be less than 1024 bytes.
    - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
      - `data` string[]
      - `search_score` number, float: search_score is the score of the resource for search. Internal use only.
      - `tenant` string
      - `will_be_deleted_at` string, date-time: Time that the resource will be deleted.
    - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
    - `name` string, required: Resource name. Must be 63 characters or less.
    - `parent_kind` string: Parent object resource kind, for example, Project.
    - `parent_uuid` string: Parent object UUID.
    - `references` object: Map of objects referenced in a query API.
    - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
    - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
    - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `version` string: Message version.
  - `propagate` boolean: Object can be propagated to child namespaces. Global objects are visible to all namespaces.
  - `spec` V1AgentWorkflowSpec
    - `chain` AgentWorkflowChainWorkflow: ChainWorkflow defines a sequential execution of agents where each agent's output becomes the input for the next agent. Note: There is a limitation on the number of results an agent can produce reliably. If an agent's output array contains too many elements (for example, more than 10), the next agent in the workflow may not process all results. This should be taken into account when designing workflows and configuring agents.
      - `steps` AgentWorkflowChainStep[]: The steps to execute in sequence.
        - `agent_config` V1AgentConfig: Represents the information captured from an AgentConfig of endorctl.
          - `meta` V1Meta, required: Common fields for all Endor Labs resources.
            - `annotations` object: Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
            - `create_time` string, date-time: Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
            - `created_by` string: Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
            - `description` string: Resource description. Must be less than 1024 bytes.
            - `index_data` V1IndexData: IndexData is used to index the resource for search. It's an internal object.
              - …
            - `kind` string: Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
            - `name` string, required: Resource name. Must be 63 characters or less.
            - `parent_kind` string: Parent object resource kind, for example, Project.
            - `parent_uuid` string: Parent object UUID.
            - `references` object: Map of objects referenced in a query API.
            - `tags` string[]: List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
            - `update_time` string, date-time: Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
            - `updated_by` string: Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
            - `upsert_time` string, date-time: Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
            - `version` string: Message version.
          - `propagate` boolean: Object can be propagated to child namespaces. Global objects are visible to all namespaces.
          - `spec` V1AgentConfigSpec
            - `llm` 'AVAILABLE_LLM_UNSPECIFIED' | 'AVAILABLE_LLM_OPENAI_GPT_5' | 'AVAILABLE_LLM_OPENAI_GPT_5_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_5_NANO' | 'AVAILABLE_LLM_OPENAI_GPT_5_CHAT' | 'AVAILABLE_LLM_OPENAI_GPT_5_1' | 'AVAILABLE_LLM_OPENAI_GPT_5_1_CHAT' | 'AVAILABLE_LLM_OPENAI_GPT_5_1_CODEX' | 'AVAILABLE_LLM_OPENAI_GPT_5_1_CODEX_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_5_2_CODEX' | 'AVAILABLE_LLM_OPENAI_GPT_5_2' | 'AVAILABLE_LLM_OPENAI_GPT_5_3_CODEX' | 'AVAILABLE_LLM_OPENAI_GPT_5_3_CHAT' | 'AVAILABLE_LLM_OPENAI_GPT_5_4_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_5_4_NANO' | 'AVAILABLE_LLM_OPENAI_GPT_5_4' | 'AVAILABLE_LLM_OPENAI_GPT_5_5' | 'AVAILABLE_LLM_OPENAI_GPT_5_6_LUNA' | 'AVAILABLE_LLM_OPENAI_GPT_5_6_SOL' | 'AVAILABLE_LLM_OPENAI_GPT_5_6_TERRA' | 'AVAILABLE_LLM_OPENAI_GPT_6_SOL' | 'AVAILABLE_LLM_OPENAI_GPT_6_LUNA' | 'AVAILABLE_LLM_OPENAI_GPT_6_1_SOL' | 'AVAILABLE_LLM_OPENAI_GPT_6_1_TERRA' | 'AVAILABLE_LLM_OPENAI_GPT_4' | 'AVAILABLE_LLM_OPENAI_GPT_4O_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_4_1' | 'AVAILABLE_LLM_OPENAI_GPT_4_1_MINI' | 'AVAILABLE_LLM_OPENAI_GPT_4_1_NANO' | 'AVAILABLE_LLM_OPENAI_O1' | 'AVAILABLE_LLM_OPENAI_O3' | 'AVAILABLE_LLM_OPENAI_GPT_4O' | 'AVAILABLE_LLM_OPENAI_O3_MINI' | 'AVAILABLE_LLM_OPENAI_O4_MINI' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_0' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_LATEST' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_PREVIEW' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_LITE' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_0_LITE' | 'AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_LITE_LATEST' | 'AVAILABLE_LLM_GOOGLE_GEMINI_2_5_PRO' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_PRO_PREVIEW' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_1_PRO_PREVIEW' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_5_FLASH_LITE' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_5_FLASH' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_6_FLASH' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_7_FLASH' | 'AVAILABLE_LLM_GOOGLE_GEMINI_3_FLASH_PREVIEW' | 'AVAILABLE_LLM_ANTHROPIC_CLAUDE_3_5_SONNET' | 'AVAILABLE_LLM_ANTHROPIC_CLAUDE_4_5_SONNET' | 'AVAILABLE_LLM_ANTHROPIC_CLAUDE_4_5_HAIKU' | 'AVAILABLE_LLM_GROQ_LLAMA_3_2_90B' | 'AVAILABLE_LLM_GROQ_COMPOUND' | 'AVAILABLE_LLM_GROQ_COMPOUND_MINI' | 'AVAILABLE_LLM_GROQ_LLAMA_3_3_70B_VERSATILE' | 'AVAILABLE_LLM_GROQ_LLAMA_4_MAVERICK_17B' | 'AVAILABLE_LLM_GROQ_LLAMA_4_SCOUT_17B' | 'AVAILABLE_LLM_GROQ_OPENAI_GPT_OSS_20B' | 'AVAILABLE_LLM_GROQ_OPENAI_GPT_OSS_120B' | 'AVAILABLE_LLM_GROQ_OPENAI_GPT_OSS_SAFEGUARD_20B' | 'AVAILABLE_LLM_GROQ_QWEN_3_32B' | 'AVAILABLE_LLM_GROQ_LLAMA_PROMPT_GUARD_2_22M' | 'AVAILABLE_LLM_GROQ_LLAMA_PROMPT_GUARD_2_86M' | 'AVAILABLE_LLM_GROQ_LLAMA_GUARD_4_12B' | 'AVAILABLE_LLM_ENDOR_DEEPSEEK_R1' | 'AVAILABLE_LLM_ENDOR_QWEN_3_8_27B' | 'AVAILABLE_LLM_GOOGLE_GEMMA_4_26B_A4B_IT' | 'AVAILABLE_LLM_GOOGLE_GEMINI_R2D2_LATEST' | 'AVAILABLE_LLM_FIREWORKS_GPT_OSS_20B' | 'AVAILABLE_LLM_FIREWORKS_GPT_OSS_120B' | 'AVAILABLE_LLM_FIREWORKS_KIMI_K25' | 'AVAILABLE_LLM_FIREWORKS_MINIMAX_M27' | 'AVAILABLE_LLM_FIREWORKS_QWEN_3_6_PLUS', required: LLMs available to AgentConfig. - AVAILABLE_LLM_OPENAI_GPT_5_CHAT: GPT-5 chat is a variant of GPT-5 that is optimized for chat use cases and does not support reasoning. - AVAILABLE_LLM_OPENAI_GPT_5_6_LUNA: GPT-5.6 Luna is the cost-efficient GPT-5.6 tier. - AVAILABLE_LLM_OPENAI_GPT_5_6_SOL: GPT-5.6 Sol is the highest-capability GPT-5.6 tier. - AVAILABLE_LLM_OPENAI_GPT_5_6_TERRA: GPT-5.6 Terra balances GPT-5.6 cost and capability. - AVAILABLE_LLM_OPENAI_GPT_6_1_SOL: GPT-6.1 Sol provides reasoning through the OpenAI provider. - AVAILABLE_LLM_OPENAI_GPT_6_1_TERRA: GPT-6.1 Terra supports visual reasoning and computer use through OpenAI. - AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_PREVIEW: deprecated: use AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_LITE instead. - AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_LITE_LATEST: NEVER USE: use AVAILABLE_LLM_GOOGLE_GEMINI_FLASH_2_5_LITE instead. - AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE_PREVIEW: deprecated: use AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE instead. - AVAILABLE_LLM_GOOGLE_GEMINI_3_1_FLASH_LITE: GA Gemini 3.1 Flash Lite; in the EU it is served from the eu.rep data-residency endpoint. - AVAILABLE_LLM_GOOGLE_GEMINI_3_5_FLASH_LITE: Generally available Gemini 3.5 Flash Lite model on Vertex AI: the high-throughput tier of the 3.5 generation. - AVAILABLE_LLM_GOOGLE_GEMINI_3_5_FLASH: Generally available Gemini 3.5 Flash model on Vertex AI. - AVAILABLE_LLM_GOOGLE_GEMINI_3_6_FLASH: Generally available Gemini 3.6 Flash model on Vertex AI: the successor to 3.5 Flash. - AVAILABLE_LLM_GOOGLE_GEMINI_3_7_FLASH: Generally available Gemini 3.7 Flash model on Vertex AI: the successor to 3.6 Flash.
            - `local_execution_only` boolean: LocalExecutionOnly is true if the agent can only be executed locally.
            - `mcp_servers` SpecMCPServer[]
              - …
            - `options` SpecOptions
              - …
            - `system_prompt` string, required: SystemPrompt is the system prompt that the agent will use.
            - `tool_names` string[]: tool_names is the list of tool names that the agent will use. It must be one of the supported tools. If the tool is not supported, the request will fail.
            - `vector_store_uuid` string: VectorStoreUUID is the vector store that the agent can use.
          - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
            - `namespace` string, required: Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
          - `uuid` string: The UUID of an AgentConfig.
        - `agent_config_uuid` string: Reference to an existing AgentConfig by UUID. This allows reusing AgentConfigs across multiple workflows.
  - `tenant_meta` V1TenantMeta: Tenant related data for the tenant containing the resource.
    - `namespace` string, required: Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
  - `uuid` string: The UUID of an AgentWorkflow.

## Other responses

- `default`: An unexpected error response.

## Changes

- **2026-11-03** `4acd9fe15140`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/changes/v1/namespaces/:tenant_meta.namespace/agent-workflows/post.md)

---

[API](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference.md) - [All operations](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/endorlabs/apis/endor-labs-rest-api-reference/revisions/4acd9fe15140?raw)
