Resource: ReasoningEngine
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/{reasoningEngine}
displayName
string
Required. The display name of the ReasoningEngine.
description
string
Optional. The description of the ReasoningEngine.
spec
object ( ReasoningEngineSpec
)
Optional. Configurations of the ReasoningEngine
createTime
string ( Timestamp
format)
Output only. timestamp when this ReasoningEngine was created.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
updateTime
string ( Timestamp
format)
Output only. timestamp when this ReasoningEngine was most recently updated.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
etag
string
Optional. Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens.
contextSpec
object ( ReasoningEngineContextSpec
)
Optional. Configuration for how Agent Engine sub-resources should manage context.
encryptionSpec
object ( EncryptionSpec
)
Customer-managed encryption key spec for a ReasoningEngine. If set, this ReasoningEngine and all sub-resources of this ReasoningEngine will be secured by this key.
labels
map (key: string, value: string)
Labels for the ReasoningEngine.
| JSON representation |
|---|
{ "name" : string , "displayName" : string , "description" : string , "spec" : { object ( |
ReasoningEngineSpec
ReasoningEngine configurations
packageSpec
object ( PackageSpec
)
Optional. user provided package spec of the ReasoningEngine. Ignored when users directly specify a deployment image through deploymentSpec.first_party_image_override
, but keeping the field_behavior to avoid introducing breaking changes. The deployment_source
field should not be set if packageSpec
is specified.
deploymentSpec
object ( DeploymentSpec
)
Optional. The specification of a Reasoning Engine deployment.
classMethods[]
object ( Struct
format)
Optional. Declarations for object class methods in OpenAPI specification format.
agentFramework
string
Optional. The OSS agent framework used to develop the agent. Currently supported values: "google-adk", "langchain", "langgraph", "ag2", "llama-index", "custom".
identityType
enum ( IdentityType
)
Optional. The identity type to use for the Reasoning Engine. If not specified, the serviceAccount
field will be used if set, otherwise the default Vertex AI Reasoning Engine service Agent in the project will be used.
deployment_source
Union type
package_spec
field should not be set if deployment_source
is specified. deployment_source
can be only one of the following:sourceCodeSpec
object ( SourceCodeSpec
)
Deploy from source code files with a defined entrypoint.
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.
| JSON representation |
|---|
{ "packageSpec" : { object ( |
SourceCodeSpec
Specification for deploying from source code.
source
Union type
source
can be only one of the following:inlineSource
object ( InlineSource
)
Source code is provided directly in the request.
developerConnectSource
object ( DeveloperConnectSource
)
Source code is in a Git repository managed by Developer Connect.
language_spec
Union type
language_spec
can be only one of the following:pythonSpec
object ( PythonSpec
)
Configuration for a Python application.
| JSON representation |
|---|
{ // source "inlineSource" : { object ( |
InlineSource
Specifies source code provided as a byte stream.
sourceArchive
string ( bytes
format)
Required. Input only. The application source code archive. It must be a compressed tarball (.tar.gz) file.
A base64-encoded string.
| JSON representation |
|---|
{ "sourceArchive" : string } |
DeveloperConnectSource
Specifies source code to be fetched from a Git repository managed through the Developer Connect service.
config
object ( DeveloperConnectConfig
)
Required. The Developer Connect configuration that defines the specific repository, revision, and directory to use as the source code root.
| JSON representation |
|---|
{
"config"
:
{
object (
|
DeveloperConnectConfig
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.
| JSON representation |
|---|
{ "gitRepositoryLink" : string , "dir" : string , "revision" : string } |
PythonSpec
Specification for running a Python application from source.
version
string
Optional. The version of Python to use. Support version includes 3.9, 3.10, 3.11, 3.12, 3.13. If not specified, default value is 3.10.
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.
entrypointObject
string
Optional. The name of the callable object within the entrypointModule
to use as the application If not specified, defaults to "root_agent".
requirementsFile
string
Optional. The path to the requirements file, relative to the source root. If not specified, defaults to "requirements.txt".
| JSON representation |
|---|
{ "version" : string , "entrypointModule" : string , "entrypointObject" : string , "requirementsFile" : string } |
PackageSpec
user-provided package specification, containing pickled object and package requirements.
pickleObjectGcsUri
string
Optional. The Cloud Storage URI of the pickled python object.
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.9, 3.10, 3.11, 3.12, 3.13. If not specified, the default value is 3.10.
| JSON representation |
|---|
{ "pickleObjectGcsUri" : string , "dependencyFilesGcsUri" : string , "requirementsGcsUri" : string , "pythonVersion" : string } |
DeploymentSpec
The specification of a Reasoning Engine deployment.
env[]
object ( EnvVar
)
Optional. Environment variables to be set with the Reasoning Engine deployment. The environment variables can be updated through the reasoningEngines.patch API.
secretEnv[]
object ( SecretEnvVar
)
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.
pscInterfaceConfig
object ( PscInterfaceConfig
)
Optional. Configuration for PSC-I.
resourceLimits
map (key: string, value: string)
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
minInstances
integer
Optional. The minimum number of application instances that will be kept running at all times. Defaults to 1. Range: [0, 10].
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].
containerConcurrency
integer
Optional. Concurrency for each container and agent server. Recommended value: 2 * cpu + 1. Defaults to 9.
| JSON representation |
|---|
{ "env" : [ { object ( |
SecretEnvVar
Represents an environment variable where the value is a secret in Cloud Secret Manager.
name
string
Required. name of the secret environment variable.
secretRef
object ( SecretRef
)
Required. Reference to a secret stored in the Cloud Secret Manager that will provide the value for this environment variable.
| JSON representation |
|---|
{
"name"
:
string
,
"secretRef"
:
{
object (
|
SecretRef
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.
| JSON representation |
|---|
{ "secret" : string , "version" : string } |
IdentityType
The identity type to use for the Reasoning Engine.
| Enums | |
|---|---|
IDENTITY_TYPE_UNSPECIFIED
|
Default value. Use a custom service account if the serviceAccount
field is set, otherwise use the default Vertex AI Reasoning Engine service Agent in the project. Same behavior as SERVICE_ACCOUNT. |
SERVICE_ACCOUNT
|
Use a custom service account if the serviceAccount
field is set, otherwise use the default Vertex AI Reasoning Engine service Agent in the project. |
AGENT_IDENTITY
|
Use Agent Identity. The serviceAccount
field must not be set. |
ReasoningEngineContextSpec
Configuration for how Agent Engine sub-resources should manage context.
memoryBankConfig
object ( MemoryBankConfig
)
Optional. Specification for a Memory Bank, which manages memories for the Agent Engine.
| JSON representation |
|---|
{
"memoryBankConfig"
:
{
object (
|
MemoryBankConfig
Specification for a Memory Bank.
generationConfig
object ( GenerationConfig
)
Optional. Configuration for how to generate memories for the Memory Bank.
similaritySearchConfig
object ( SimilaritySearchConfig
)
Optional. Configuration for how to perform similarity search on memories. If not set, the Memory Bank will use the default embedding model text-embedding-005
.
ttlConfig
object ( TtlConfig
)
Optional. Configuration for automatic TTL ("time-to-live") of the memories in the Memory Bank. If not set, TTL will not be applied automatically. The TTL can be explicitly set by modifying the expireTime
of each Memory resource.
disableMemoryRevisions
boolean
If true, no memory revisions will be created for any requests to the Memory Bank.
| JSON representation |
|---|
{ "generationConfig" : { object ( |
GenerationConfig
Configuration for how to generate memories.
model
string
Required. The model used to generate memories. Format: projects/{project}/locations/{location}/publishers/google/models/{model}
.
| JSON representation |
|---|
{ "model" : string } |
SimilaritySearchConfig
Configuration for how to perform similarity search on memories.
| JSON representation |
|---|
{ "embeddingModel" : string } |
TtlConfig
Configuration for automatically setting the TTL ("time-to-live") of the memories in the Memory Bank.
ttl
Union type
ttl
can be only one of the following:defaultTtl
string ( Duration
format)
Optional. The default TTL duration of the memories in the Memory Bank. This applies to all operations that create or update a memory.
A duration in seconds with up to nine fractional digits, ending with ' s
'. Example: "3.5s"
.
granularTtlConfig
object ( GranularTtlConfig
)
Optional. The granular TTL configuration of the memories in the Memory Bank.
memory_revision_ttl
Union type
memory_revision_ttl
can be only one of the following:memoryRevisionDefaultTtl
string ( Duration
format)
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.
A duration in seconds with up to nine fractional digits, ending with ' s
'. Example: "3.5s"
.
| JSON representation |
|---|
{
// ttl
"defaultTtl"
:
string
,
"granularTtlConfig"
:
{
object (
|
GranularTtlConfig
Configuration for TTL of the memories in the Memory Bank based on the action that created or updated the memory.
createTtl
string ( Duration
format)
Optional. The TTL duration for memories uploaded via CreateMemory.
A duration in seconds with up to nine fractional digits, ending with ' s
'. Example: "3.5s"
.
generateCreatedTtl
string ( Duration
format)
Optional. The TTL duration for memories newly generated via GenerateMemories ( GenerateMemoriesResponse.GeneratedMemory.Action.CREATED
).
A duration in seconds with up to nine fractional digits, ending with ' s
'. Example: "3.5s"
.
generateUpdatedTtl
string ( Duration
format)
Optional. The TTL duration for memories updated via GenerateMemories ( GenerateMemoriesResponse.GeneratedMemory.Action.UPDATED
). In the case of an UPDATE action, the expireTime
of the existing memory will be updated to the new value (now + TTL).
A duration in seconds with up to nine fractional digits, ending with ' s
'. Example: "3.5s"
.
| JSON representation |
|---|
{ "createTtl" : string , "generateCreatedTtl" : string , "generateUpdatedTtl" : string } |
Methods |
|
|---|---|
|
Creates a reasoning engine. |
|
Deletes a reasoning engine. |
|
Gets a reasoning engine. |
|
Lists reasoning engines in a location. |
|
Updates a reasoning engine. |
|
Queries using a reasoning engine. |
|
Streams queries using a reasoning engine. |

