---
title: "POST /v1/{+parent}/reasoningEngines"
method: POST
path: "/v1/{+parent}/reasoningEngines"
tags: ["projects"]
---

# POST /v1/{+parent}/reasoningEngines

`POST /v1/{+parent}/reasoningEngines`

Creates a reasoning engine.

## Path parameters

- `parent` string, required

## Request body

- GoogleCloudAiplatformV1ReasoningEngine — ReasoningEngine provides a customizable runtime for models to determine which actions to take and in which order.
  - `name` string — Identifier. The resource name of the ReasoningEngine. Format: `projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine}`
  - `description` string — Optional. The description of the ReasoningEngine.
  - `createTime` string, google-datetime — Output only. Timestamp when this ReasoningEngine was created.
  - `displayName` string — Required. The display name of the ReasoningEngine.
  - `contextSpec` GoogleCloudAiplatformV1ReasoningEngineContextSpec — Configuration for how Agent Engine sub-resources should manage context.
    - `memoryBankConfig` GoogleCloudAiplatformV1ReasoningEngineContextSpecMemoryBankConfig — Specification for a Memory Bank.
      - `generationConfig` GoogleCloudAiplatformV1ReasoningEngineContextSpecMemoryBankConfigGenerationConfig — Configuration for how to generate memories.
        - `model` string — Optional. The model used to generate memories. Format: `projects/{project}/locations/{location}/publishers/google/models/{model}`.
        - `generationTriggerConfig` GoogleCloudAiplatformV1MemoryGenerationTriggerConfig — Represents configuration for triggering generation.
          - `generationRule` GoogleCloudAiplatformV1MemoryGenerationTriggerConfigGenerationTriggerRule — Represents the active rule that determines when to flush the buffer.
            - `idleDuration` string, google-duration — Optional. Specifies to trigger generation if the stream is inactive for the specified duration after the most recent event. The duration must have a minute-level granularity.
            - `fixedInterval` string, google-duration — Optional. Specifies to trigger generation at a fixed interval. The duration must have a minute-level granularity.
            - `overlapEventCount` integer — Optional. Re-include the last N already-processed events in the next window.
            - `eventCount` integer — Optional. Specifies to trigger generation when the event count reaches this limit.
      - `customizationConfigs` GoogleCloudAiplatformV1MemoryBankCustomizationConfig[] — Optional. Configuration for how to customize Memory Bank behavior for a particular scope.
        - `disableNaturalLanguageMemories` boolean — Optional. Indicates whether natural language memory generation should be disabled for all requests. By default, natural language memory generation is enabled. Set this to `true` when you only want to generate structured memories.
        - `scopeKeys` string[] — Optional. Represents the scope keys (i.e. 'user_id') for which to use this config. A request's scope must include all of the provided keys for the config to be used (order does not matter). If empty, then the config will be used for all requests that do not have a more specific config. Only one default config is allowed per Memory Bank.
        - `generateMemoriesExamples` GoogleCloudAiplatformV1MemoryBankCustomizationConfigGenerateMemoriesExample[] — Optional. Provides examples of how to generate memories for a particular scope.
          - `conversationSource` GoogleCloudAiplatformV1MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSource — A conversation source for the example. This is similar to `DirectContentsSource`.
            - `events` GoogleCloudAiplatformV1MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSourceEvent[] — Optional. Represents the input conversation events for the example.
              - …
          - `generatedMemories` GoogleCloudAiplatformV1MemoryBankCustomizationConfigGenerateMemoriesExampleGeneratedMemory[] — Optional. Represents the memories that are expected to be generated from the input conversation. An empty list indicates that no memories are expected to be generated for the input conversation.
            - `fact` string — Required. Represents the fact to generate a memory from.
            - `topics` GoogleCloudAiplatformV1MemoryTopicId[] — Optional. Represents the list of topics that the memory should be associated with. For example, use `custom_memory_topic_label = "jargon"` if the extracted memory is an example of memory extraction for the custom topic `jargon`.
              - …
        - `memoryTopics` GoogleCloudAiplatformV1MemoryBankCustomizationConfigMemoryTopic[] — Optional. Represents topics of information that should be extracted from conversations and stored as memories. If not set, then Memory Bank's default topics will be used.
          - `customMemoryTopic` GoogleCloudAiplatformV1MemoryBankCustomizationConfigMemoryTopicCustomMemoryTopic — A custom memory topic defined by the developer.
            - `label` string — Required. Represents the label of the topic.
            - `description` string — Required. Represents the description of the memory topic. This should explain what information should be extracted for this topic.
          - `managedMemoryTopic` GoogleCloudAiplatformV1MemoryBankCustomizationConfigMemoryTopicManagedMemoryTopic — A managed memory topic defined by the system.
            - `managedTopicEnum` 'MANAGED_TOPIC_ENUM_UNSPECIFIED' | 'USER_PERSONAL_INFO' | 'USER_PREFERENCES' | 'KEY_CONVERSATION_DETAILS' | 'EXPLICIT_INSTRUCTIONS' — Required. Represents the managed topic.
        - `consolidationConfig` GoogleCloudAiplatformV1MemoryBankCustomizationConfigConsolidationConfig — Represents configuration for customizing how memories are consolidated.
          - `revisionsPerCandidateCount` integer — Optional. Represents the maximum number of revisions to consider for each candidate memory. If not set, then the default value (1) will be used, which means that only the latest revision will be considered.
        - `enableThirdPersonMemories` boolean — Optional. Indicates whether the memories will be generated in the third person (i.e. "The user generates memories with Memory Bank."). By default, the memories will be generated in the first person (i.e. "I generate memories with Memory Bank.")
      - `disableMemoryRevisions` boolean — If true, no memory revisions will be created for any requests to the Memory Bank.
      - `similaritySearchConfig` GoogleCloudAiplatformV1ReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfig — Configuration for how to perform similarity search on memories.
        - `embeddingModel` string — Required. The model used to generate embeddings to lookup similar memories. Format: `projects/{project}/locations/{location}/publishers/google/models/{model}`.
      - `ttlConfig` GoogleCloudAiplatformV1ReasoningEngineContextSpecMemoryBankConfigTtlConfig — Configuration for automatically setting the TTL ("time-to-live") of the memories in the Memory Bank.
        - `memoryRevisionDefaultTtl` string, google-duration — Optional. The default TTL duration of the memory revisions in the Memory Bank. This applies to all operations that create a memory revision. If not set, a default TTL of 365 days will be used.
        - `granularTtlConfig` GoogleCloudAiplatformV1ReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfig — Configuration for TTL of the memories in the Memory Bank based on the action that created or updated the memory.
          - `generateUpdatedTtl` string, google-duration — Optional. The TTL duration for memories updated via GenerateMemories (GenerateMemoriesResponse.GeneratedMemory.Action.UPDATED). In the case of an UPDATE action, the `expire_time` of the existing memory will be updated to the new value (now + TTL).
          - `createTtl` string, google-duration — Optional. The TTL duration for memories uploaded via CreateMemory.
          - `generateCreatedTtl` string, google-duration — Optional. The TTL duration for memories newly generated via GenerateMemories (GenerateMemoriesResponse.GeneratedMemory.Action.CREATED).
        - `defaultTtl` string, google-duration — Optional. The default TTL duration of the memories in the Memory Bank. This applies to all operations that create or update a memory.
  - `etag` string — Optional. Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens.
  - `encryptionSpec` GoogleCloudAiplatformV1EncryptionSpec — Represents a customer-managed encryption key specification that can be applied to a Vertex AI resource.
    - `kmsKeyName` string — Required. Resource name of the Cloud KMS key used to protect the resource. The Cloud KMS key must be in the same region as the resource. It must have the format `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  - `spec` GoogleCloudAiplatformV1ReasoningEngineSpec — ReasoningEngine configurations
    - `agentFramework` string — Optional. The OSS agent framework used to develop the agent. Currently supported values: "google-adk", "langchain", "langgraph", "ag2", "llama-index", "custom".
    - `identityType` 'IDENTITY_TYPE_UNSPECIFIED' | 'SERVICE_ACCOUNT' | 'AGENT_IDENTITY' — Optional. The identity type to use for the Reasoning Engine. If not specified, the `service_account` field will be used if set, otherwise the default Vertex AI Reasoning Engine Service Agent in the project will be used.
    - `sourceCodeSpec` GoogleCloudAiplatformV1ReasoningEngineSpecSourceCodeSpec — Specification for deploying from source code.
      - `developerConnectSource` GoogleCloudAiplatformV1ReasoningEngineSpecSourceCodeSpecDeveloperConnectSource — Specifies source code to be fetched from a Git repository managed through the Developer Connect service.
        - `config` GoogleCloudAiplatformV1ReasoningEngineSpecSourceCodeSpecDeveloperConnectConfig — Specifies the configuration for fetching source code from a Git repository that is managed by Developer Connect. This includes the repository, revision, and directory to use.
          - `gitRepositoryLink` string — Required. The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`.
          - `dir` string — Required. Directory, relative to the source root, in which to run the build.
          - `revision` string — Required. The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.
      - `agentConfigSource` GoogleCloudAiplatformV1ReasoningEngineSpecSourceCodeSpecAgentConfigSource — Specification for the deploying from agent config.
        - `adkConfig` GoogleCloudAiplatformV1ReasoningEngineSpecSourceCodeSpecAgentConfigSourceAdkConfig — Configuration for the Agent Development Kit (ADK).
          - `jsonConfig` object — Required. The value of the ADK config in JSON format.
        - `inlineSource` GoogleCloudAiplatformV1ReasoningEngineSpecSourceCodeSpecInlineSource — Specifies source code provided as a byte stream.
          - `sourceArchive` string, byte — Required. Input only. The application source code archive. It must be a compressed tarball (.tar.gz) file.
      - `inlineSource` GoogleCloudAiplatformV1ReasoningEngineSpecSourceCodeSpecInlineSource — Specifies source code provided as a byte stream.
        - `sourceArchive` string, byte — Required. Input only. The application source code archive. It must be a compressed tarball (.tar.gz) file.
      - `pythonSpec` GoogleCloudAiplatformV1ReasoningEngineSpecSourceCodeSpecPythonSpec — Specification for running a Python application from source.
        - `entrypointObject` string — Optional. The name of the callable object within the `entrypoint_module` to use as the application If not specified, defaults to "root_agent". This field should not be set if the source is `agent_config_source`.
        - `version` string — Optional. The version of Python to use. Supported versions include 3.10, 3.11, 3.12, 3.13, 3.14. If not specified, default value is 3.10.
        - `requirementsFile` string — Optional. The path to the requirements file, relative to the source root. If not specified, defaults to "requirements.txt".
        - `entrypointModule` string — Optional. The Python module to load as the entrypoint, specified as a fully qualified module name. For example: path.to.agent. If not specified, defaults to "agent". The project root will be added to Python sys.path, allowing imports to be specified relative to the root. This field should not be set if the source is `agent_config_source`.
      - `imageSpec` GoogleCloudAiplatformV1ReasoningEngineSpecSourceCodeSpecImageSpec — The image spec for building an image (within a single build step), based on the config file (i.e. Dockerfile) in the source directory.
        - `buildArgs` object — Optional. Build arguments to be used. They will be passed through --build-arg flags.
    - `containerSpec` GoogleCloudAiplatformV1ReasoningEngineSpecContainerSpec — Specification for deploying from a container image.
      - `imageUri` string — Required. The Artifact Registry Docker image URI (e.g., us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag) of the container image that is to be run on each worker replica.
    - `deploymentSpec` GoogleCloudAiplatformV1ReasoningEngineSpecDeploymentSpec — The specification of a Reasoning Engine deployment.
      - `env` GoogleCloudAiplatformV1EnvVar[] — Optional. Environment variables to be set with the Reasoning Engine deployment. The environment variables can be updated through the UpdateReasoningEngine API.
        - `value` string — Required. Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.
        - `name` string — Required. Name of the environment variable. Must be a valid C identifier.
      - `minInstances` integer — Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 75].
      - `keepAliveProbe` GoogleCloudAiplatformV1KeepAliveProbe — Represents the configuration for keep-alive probe. Contains configuration on a specified endpoint that a deployment host should use to keep the container alive based on the probe settings.
        - `maxSeconds` integer — Optional. Specifies the maximum duration (in seconds) to keep the instance alive via this probe. Can be a maximum of 3600 seconds (1 hour).
        - `httpGet` GoogleCloudAiplatformV1KeepAliveProbeHttpGet — Specifies the HTTP GET configuration for the probe.
          - `path` string — Required. Specifies the path of the HTTP GET request (e.g., `"/is_busy"`).
          - `port` integer — Optional. Specifies the port number on the container to which the request is sent.
      - `agentGatewayConfig` GoogleCloudAiplatformV1ReasoningEngineSpecDeploymentSpecAgentGatewayConfig — Agent Gateway configuration for a Reasoning Engine deployment.
        - `clientToAgentConfig` GoogleCloudAiplatformV1ReasoningEngineSpecDeploymentSpecAgentGatewayConfigClientToAgentConfig — Configuration for traffic targeting a Reasoning Engine.
          - `agentGateway` string — Required. The resource name of the Agent Gateway to use for inbound traffic. It must be set to a Google-managed gateway whose `governed_access_path` is `CLIENT_TO_AGENT`. Format: `projects/{project}/locations/{location}/agentGateways/{agent_gateway}`
        - `agentToAnywhereConfig` GoogleCloudAiplatformV1ReasoningEngineSpecDeploymentSpecAgentGatewayConfigAgentToAnywhereConfig — Configuration for traffic originating from a Reasoning Engine.
          - `agentGateway` string — Required. The resource name of the Agent Gateway for outbound traffic. It must be set to a Google-managed gateway whose `governed_access_path` is `AGENT_TO_ANYWHERE`. Format: `projects/{project}/locations/{location}/agentGateways/{agent_gateway}`
      - `containerConcurrency` integer — Optional. Concurrency for each container and agent server. Recommended value: 2 * cpu + 1. Defaults to 9.
      - `pscInterfaceConfig` GoogleCloudAiplatformV1PscInterfaceConfig — Configuration for PSC-I.
        - `networkAttachment` string — Optional. The name of the Compute Engine [network attachment](https://cloud.google.com/vpc/docs/about-network-attachments) to attach to the resource within the region and user project. To specify this field, you must have already [created a network attachment] (https://cloud.google.com/vpc/docs/create-manage-network-attachments#create-network-attachments). This field is only used for resources using PSC-I.
        - `dnsPeeringConfigs` GoogleCloudAiplatformV1DnsPeeringConfig[] — Optional. DNS peering configurations. When specified, Vertex AI will attempt to configure DNS peering zones in the tenant project VPC to resolve the specified domains using the target network's Cloud DNS. The user must grant the dns.peer role to the Vertex AI Service Agent on the target project.
          - `domain` string — Required. The DNS name suffix of the zone being peered to, e.g., "my-internal-domain.corp.". Must end with a dot.
          - `targetProject` string — Required. The project ID hosting the Cloud DNS managed zone that contains the 'domain'. The Vertex AI Service Agent requires the dns.peer role on this project.
          - `targetNetwork` string — Required. The VPC network name in the target_project where the DNS zone specified by 'domain' is visible.
      - `secretEnv` GoogleCloudAiplatformV1SecretEnvVar[] — Optional. Environment variables where the value is a secret in Cloud Secret Manager. To use this feature, add 'Secret Manager Secret Accessor' role (roles/secretmanager.secretAccessor) to AI Platform Reasoning Engine Service Agent.
        - `secretRef` GoogleCloudAiplatformV1SecretRef — Reference to a secret stored in the Cloud Secret Manager that will provide the value for this environment variable.
          - `secret` string — Required. The name of the secret in Cloud Secret Manager. Format: {secret_name}.
          - `version` string — The Cloud Secret Manager secret version. Can be 'latest' for the latest version, an integer for a specific version, or a version alias.
        - `name` string — Required. Name of the secret environment variable.
      - `maxInstances` integer — Optional. The maximum number of application instances that can be launched to handle increased traffic. Defaults to 100. Range: [1, 1000]. If VPC-SC or PSC-I is enabled, the acceptable range is [1, 100].
      - `resourceLimits` object — Optional. Resource limits for each container. Only 'cpu' and 'memory' keys are supported. Defaults to {"cpu": "4", "memory": "4Gi"}. * The only supported values for CPU are '1', '2', '4', '6' and '8'. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. * The only supported values for memory are '1Gi', '2Gi', ... '32 Gi'. * For required cpu on different memory values, go to https://cloud.google.com/run/docs/configuring/memory-limits
    - `classMethods` object[] — Optional. Declarations for object class methods in OpenAPI specification format.
    - `buildSpec` GoogleCloudAiplatformV1ReasoningEngineSpecBuildSpec — Specification for building container image.
      - `workerPool` string — Optional. Identifier. The resource name of the Cloud Build WorkerPool to use for the build. Format: `projects/{project}/locations/{location}/workerPools/{worker_pool}`
    - `packageSpec` GoogleCloudAiplatformV1ReasoningEngineSpecPackageSpec — User-provided package specification, containing pickled object and package requirements.
      - `dependencyFilesGcsUri` string — Optional. The Cloud Storage URI of the dependency files in tar.gz format.
      - `requirementsGcsUri` string — Optional. The Cloud Storage URI of the `requirements.txt` file
      - `pythonVersion` string — Optional. The Python version. Supported values are 3.10, 3.11, 3.12, 3.13, 3.14. If not specified, the default value is 3.10.
      - `pickleObjectGcsUri` string — Optional. The Cloud Storage URI of the pickled python object.
    - `effectiveIdentity` string — Output only. The identity to use for the Reasoning Engine. It can contain one of the following values: * service-{project}@gcp-sa-aiplatform-re.googleapis.com (for SERVICE_AGENT identity type) * {name}@{project}.gserviceaccount.com (for SERVICE_ACCOUNT identity type) * agents.global.{org}.system.id.goog/resources/aiplatform/projects/{project}/locations/{location}/reasoningEngines/{reasoning_engine} (for AGENT_IDENTITY identity type)
    - `serviceAccount` string — Optional. The service account that the Reasoning Engine artifact runs as. It should have "roles/storage.objectViewer" for reading the user project's Cloud Storage and "roles/aiplatform.user" for using Vertex extensions. If not specified, the Vertex AI Reasoning Engine Service Agent in the project will be used.
  - `updateTime` string, google-datetime — Output only. Timestamp when this ReasoningEngine was most recently updated.
  - `labels` object — Labels for the ReasoningEngine.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/aiplatform.md) · [All operations](https://skmtc.net/google/apis/aiplatform/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/aiplatform/versions/b608d71b91f0/schema)
