← Back to packages

Package intrinsic_proto.executive

Service CodeExecutionInfoService

Service ExecutiveBlackboard

Service ExecutiveService

Service ProtoBuilder

Message AnyList

Message AnyWithAssignments

Message Assignment

Message BehaviorCall

Message BehaviorTree

Message BlackboardExpression

Message BlackboardValue

Message Branch

Message BranchNode

Message Breakpoint

Message CodeExecution

Message Condition

Message CreateBreakpointRequest

Message CreateOperationRequest

Message CreateOrUpdate

Message DataNode

Message DebugNode

Message Decorators

Message DeleteAllBreakpointsRequest

Message DeleteBlackboardValueRequest

Message DeleteBreakpointRequest

Message ExecutionSettings

Message ExtendedStatusMatch

Message ExtendedStatusSettings

Message FailNode

Message FailureSettings

Message FallbackNode

Message ForEach

Message GetBlackboardValueRequest

Message GetOperationMetadataRequest

Message GetOperationViewRequest

Message GetPythonTemplateRequest

Message GetPythonTemplateResponse

Message GetWellKnownTypesRequest

Message GetWellKnownTypesResponse

Message ListBlackboardValuesRequest

Message ListBlackboardValuesResponse

Message ListBreakpointsRequest

Message ListBreakpointsResponse

Message LoggedOperation

Message LogicalCompound

Message LoopNode

Message Node

Message ParallelNode

Message ParameterAssignment

Message ProtoCompileRequest

Message ProtoCompileResponse

Message ProtoComposeRequest

Message ProtoComposeResponse

Message PythonCode

Message Remove

Message ResetOperationRequest

Message ResourceSpecification

Message ResumeOperationRequest

Message RetryNode

Message RunMetadata

Message SelectorNode

Message SequenceNode

Message SetNodeExecutionSettingsRequest

Message SetNodeExecutionSettingsResponse

Message SkillExecutionData

Message SkillExecutionOptions

Message StartOperationRequest

Message SubtreeNode

Message Suspend

Message SuspendOperationRequest

Message TaskNode

Message TracingInfo

Message Try

Message TypeVersion

Message TypeWithVersions

Message UpdateBlackboardValueRequest

Message UserData

Enum DisabledResultState

Enum ExecutionMode

Enum FailureReason

Enum Mode

Enum ResumeMode

Enum SimulationMode

Enum SkillTraceHandling

Enum State

Enum State

Enum State

Enum State

Enum State

Enum Type

Enum View

Enum View

Services

service CodeExecutionInfoService intrinsic/executive/proto/code_execution_info_service.proto

Provides information on how code in task nodes gets executed.

Returns a Python template which is equivalent to the code being executed when a task node with Python code is processed. The template is dynamic and depends on a subset of the properties of a given [CodeExecution][intrinsic_proto.executive.CodeExecution] task. The template is suitable, e.g., for displaying the full code context in a text editor.

service ExecutiveBlackboard intrinsic/executive/proto/blackboard_service.proto

service ExecutiveService intrinsic/executive/proto/executive_service.proto

The Executive is responsible for executing and monitoring Behavior Trees.

Given the declarative description in the form of a behavior tree, the Executive executes the tree according to the defined semantics, for example, by executing one child after the other for a sequence node. As part of the execution it invokes skills according to the skill API contract.

Key concepts of the executive: - Behavior Tree: declarative behavior specification to define a process. - Blackboard: an internal key-value store for data flow. - Operation: the operational envelope for one Behavior Tree.

The concept of an operation is central to the Executive Service API: by creating an operation a behavior tree is loaded. Then the operation is the reference item to start, suspend, resume. The operation and in turn the Behavior Tree it encloses. Note: at this point in time there can be at most one operation. Creating a second operation fails, even if the previous operation was completed. It must be deleted (and possibly stopped if still active) before creating another one.

Loads a behavior tree. Depending on the current feature set multiple operations or only a single operation are supported. Thus calling this while an operation already exists might result in an error. In that case delete the operation before calling CreateOperation again.

Get a particular operation by name. The returned operation can be used to: - check whether it has completed (the done field will be true) - access the result when done (error or response field set) - inspect the detailed state in the operation's metadata.

Get a particular operation by name with configurable metadata.

Prefer to use this call over GetOperation when only a small subset of the operation proto is of interest. In particular when just checking on the state of the operation.

Deletes an operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. This returns an error if the operation's behavior tree is not in a WAITING state.

Starts the operation and thus the execution of its behavior tree. Only valid if the behavior tree is in the ACCEPTED state.

Starts asynchronous cancellation on a long-running operation. Clients can use GetOperation to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an [Operation.error][] value with a [google.rpc.Status.code][] of 1, corresponding to Code.CANCELED.

Returns an error if the behavior tree is not in a cancellable state.

Waits until the specified operation is done (SUCCEEDED, FAILED, or CANCELED) or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. The default timeout is 60 minutes. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no indicator that the operation is done.

Suspends an operation by waiting for active skills to finish and then pausing execution of the remainder of the behavior tree. The method will return immediately and doesn't wait for the tree to be fully suspended (use GetOperation to see the operation's behavior tree state).

Returns an error if the behavior tree is not RUNNING.

Resumes an operation by resuming its behavior tree. Returns an error if called when the behavior tree is not in the SUSPENDED state. This method returns immediately and does not wait for the tree to be fully resumed (use GetOperation to see the operation's behavior tree state).

Resets an operation and its associated behavior tree. This resets the operation into a state as if it had just been created. If the reset procedure succeeds, the operation will eventually be ready to be started again.

Clients must ensure GetOperation shows an ACCEPTED state before calling StartOperation after a reset.

Returns an error if the behavior tree is not in a WAITING state.

rpc CreateBreakpoint
Request: intrinsic_proto.executive.CreateBreakpointRequest
Response: intrinsic_proto.executive.BehaviorTree.Breakpoint

Creates a new breakpoint on the given operation's loaded behavior tree.

Deletes a breakpoint from the given operation's behavior tree.

Deletes all breakpoints of the loaded behavior tree.

Get a list of all breakpoints set on the loaded behavior tree. The information is the same as presented through decorators in the behavior tree in the state proto retrieved using GetOperation or GetOperationView.

service ProtoBuilder intrinsic/executive/proto/proto_builder.proto

Compiles a proto schema into a file descriptor set, e.g., to generate one for skill parameters.

Composes file descriptor set from given descriptors using only well-known types. This creates a transitively closed file descriptor set which contains the given input descriptors and transitive dependencies.

Retrieves list of well-known types as a list of names and transitively closed file descriptor set (that may also contain dependencies which are not considered to be well-known types themselves).

Messages

message AnyList intrinsic/executive/proto/any_list.proto

Field Type Description
1 items repeated google.protobuf.Any

message AnyWithAssignments intrinsic/executive/proto/any_with_assignments.proto

Define a proto were arbitrary fields can be overridden from CEL expressions.

Field Type Description
1 proto google.protobuf.Any
2 assign repeated intrinsic_proto.executive.AnyWithAssignments.Assignment

message Assignment (Nested in intrinsic_proto.executive.AnyWithAssignments ) intrinsic/executive/proto/any_with_assignments.proto

Field Type Description
1 path string

The path for which to set the value, the root is the proto. Can be a proto path or a simplified dot path.

2 cel_expression string

Expression to generate the desired value. Result type must be compatible with the field in the proto that is being set.

message BehaviorCall intrinsic/executive/proto/behavior_call.proto

A BehaviorCall is a reference to a fully configured behavior to execute. It can either be a skill or a parameterizable behavior tree. It references the skill_id and configures parameters, parameter assignments and resources as well as the key for the return value.

Field Type Description
1 skill_id string

Catalog id of the behavior to be instantiated. Can refer to a skill or a parameterizable behavior tree. References a intrinsic_proto.skills.Skill.id.

2 instance_name optional string

Name of a particular instance of the skill identified in the name field. The instance name should be unique among all other existing skill instances that are being used in a process. Deprecated: Do not set this field.

3 parameters google.protobuf.Any

Single-message parameters for the skill. The executive will never modify this. The parameters actually used during execution may be (partially) resolved from parameter assignments instead.

4 assignments repeated intrinsic_proto.executive.BehaviorCall.ParameterAssignment

List of parameter assignments from blackboard. Contains access path into the parameter and cel_expression to access the blackboard value.

5 resources map<string, ResourceSpecification>

This is a map from slot to resource name or reference. The name can then be used to retrieve a resource handle. The reference will be instantiated from a BehaviorCall.

6 return_value_name string

This is the key for accessing the return value of the behavior call on the blackboard.

7 skill_execution_options optional intrinsic_proto.executive.BehaviorCall.SkillExecutionOptions
8 skill_execution_data optional intrinsic_proto.executive.BehaviorCall.SkillExecutionData

Deprecated: Do not fill or use this data.

9 resources_current map<string, string>

Current resources for a BehaviorCall that is executing. All references in the ResourceSpecification have been replaced with the actual handles.

message BehaviorTree intrinsic/executive/proto/behavior_tree.proto

Message to encode an entire Behavior Tree. Example: says "Good morning" in the morning, "Good day" otherwise name: "bt1" root { selector { children { condition_formula { fact { predicate_name: "is-morning" } } task { call_behavior { name: "ai.intrinsic.say" parameters { [type.googleapis.com/intrinsic_proto.skills.SayParams] { text: "Good morning" } } } } } children { condition_formula { not { sub_formula { fact { predicate_name: "is-morning" } } } } task { call_behavior { name: "say" parameters { [type.googleapis.com/intrinsic_proto.skills.SayParams] { text: "Good day" } } } } } } }

Field Type Description
1 name string

A name for the tree that may be used for display.

2 root intrinsic_proto.executive.BehaviorTree.Node
3 user_data optional intrinsic_proto.executive.BehaviorTree.UserData

User provided data that is treated opaquely by the executive. The data is assumed to be small (all data combined in the order of kilobytes) as to not slow down state retrieval.

4 description intrinsic_proto.skills.Skill
5 return_value_expression string
7 state optional intrinsic_proto.executive.BehaviorTree.State

This is only set on retrieval by the executive. It is ignored when uploading a tree.

8 blackboard_scope optional string

The blackboard scope that any blackboard key in this behavior tree is in. This is an output only field.

9 tree_id optional string

A unique identifier for this behavior tree. This must be unique over all subtrees and subtree conditions across all operations that are currently in the executive. This can optionally be set as an input to refer to a specific (sub-)tree later on. If it is not unique, the tree will fail to load, thus generating an UUID is advised. When not set, the executive will automatically generate a unique id. The format must follow: [a-zA-Z0-9][a-zA-Z0-9_-]*

For a parameterizable behavior tree, this field might be changed by the executive during import to guarantee uniqueness. The reason is that the same PBT can be loaded multiple times which requires the trees to have different tree ids. When calling a PBT in a TaskNode via call_behavior, use the called_tree_state field to determine the tree_id of the PBT instance.

message BlackboardExpression (Nested in intrinsic_proto.executive.BehaviorTree.Condition ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
oneof expression_type
1 cel_expression string

https://cel.dev/

message BlackboardValue intrinsic/executive/proto/blackboard_service.proto

Field Type Description
1 key string
2 scope string
3 value google.protobuf.Any
4 operation_name string

message Branch (Nested in intrinsic_proto.executive.BehaviorTree.SelectorNode ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
1 condition intrinsic_proto.executive.BehaviorTree.Condition
2 node intrinsic_proto.executive.BehaviorTree.Node

The node must not have a decorator condition.

message BranchNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Evaluate the "if" condition. If it is satisfied, execute the "then" branch, else execute the "else" branch.

Field Type Description
1 if intrinsic_proto.executive.BehaviorTree.Condition
2 then intrinsic_proto.executive.BehaviorTree.Node
3 else intrinsic_proto.executive.BehaviorTree.Node

message Breakpoint (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
1 tree_id string
2 node_id uint32
3 type intrinsic_proto.executive.BehaviorTree.Breakpoint.Type

message CodeExecution intrinsic/executive/proto/code_execution.proto

Field Type Description
2 parameters intrinsic_proto.executive.AnyWithAssignments

Input parameters (potentially with assignments from the blackboard). Must be a message of the type specified by [parameter_message_full_name][intrinsic_proto.executive.CodeExecution.parameter_message_full_name].

3 return_value_key string

Blackboard key under which to store the return value. Will be a message of type specified by [return_value_message_full_name][intrinsic_proto.executive.CodeExecution.return_value_message_full_name].

4 parameter_message_full_name string

Full proto message name of the message specifying the input parameters.

5 return_value_message_full_name string

Full proto message name of the message specifying the return values.

6 file_descriptor_set google.protobuf.FileDescriptorSet

A file descriptor set containing the proto files with the message definitions for the parameter message (see [parameter_message_full_name]) and return value message (see [return_value_message_full_name]) and all transitive dependencies. Parameter and return value message are expected to be defined in the same proto file, else the code execution will fail. The file descriptor set can be created with the proto builder service.

oneof code
1 python_code intrinsic_proto.executive.PythonCode

message Condition (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

This represents a condition (and is not a node).

Field Type Description
7 state optional intrinsic_proto.executive.BehaviorTree.Condition.State

This is only set by the executive on retrieval. It is ignored when uploading a tree.

8 satisfied optional bool

This is only set by the executive and ignored when loading a tree. The field is set if and only if the state is FINISHED and reflects the outcome of the evaluation of this condition.

oneof condition_type
2 blackboard intrinsic_proto.executive.BehaviorTree.Condition.BlackboardExpression
4 all_of intrinsic_proto.executive.BehaviorTree.Condition.LogicalCompound
5 any_of intrinsic_proto.executive.BehaviorTree.Condition.LogicalCompound
6 not intrinsic_proto.executive.BehaviorTree.Condition
9 behavior_tree intrinsic_proto.executive.BehaviorTree
10 status_match intrinsic_proto.executive.BehaviorTree.Condition.ExtendedStatusMatch

message CreateBreakpointRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

2 breakpoint intrinsic_proto.executive.BehaviorTree.Breakpoint

message CreateOperationRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
oneof runnable_type
1 behavior_tree intrinsic_proto.executive.BehaviorTree

The behavior tree to create the operation for

2 use_default_plan bool

If set to true, will load the default process specified for the solution. Deprecated: Specify a behavior_tree explicitly.

message CreateOrUpdate (Nested in intrinsic_proto.executive.BehaviorTree.DataNode ) intrinsic/executive/proto/behavior_tree.proto

Creates or updates data on the blackboard.

Field Type Description
1 blackboard_key string

Blackboard key where to store the data.

oneof input_type
10 cel_expression string

Expression to set the value of the blackboard key.

Deprecated: Replace references to blackboard_key in the behavior tree by inlining this cel_expression.

For example, given a data node: data { create_or_update { blackboard_key: "foo" cel_expression: "skill_return.bar" } }

is used in a skill call as: task { call_behavior { skill_id: "ai.intrinsic.some_skill" assignments { parameter_path: "my_param" cel_expression: "foo" } } }

then it should be replaced by: task { call_behavior { skill_id: "ai.intrinsic.some_skill" assignments { parameter_path: "my_param" cel_expression: "skill_return.bar" } } }

and eliminate the data node entirely.

11 from_world intrinsic_proto.executive.AnyWithAssignments

The Any proto MUST be of type intrinsic_proto.executive.WorldQuery. Deprecated: Replace this, e.g., by a task node with Python code execution.

12 proto google.protobuf.Any

When the proto is created/updated in the blackboard it is stored unpacked. Therefore the proto must be of a type that is a well-known or skill proto.

13 protos intrinsic_proto.executive.AnyList

All protos must be of a type that is a well-known or skill proto. The protos are stored packed in the blackboard. Deprecated: If used with a for each loop, replace that loop by a while loop.

message DataNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Creates, updates, or deletes data on the blackboard.

Field Type Description
oneof operation_type
1 create_or_update intrinsic_proto.executive.BehaviorTree.DataNode.CreateOrUpdate
2 remove intrinsic_proto.executive.BehaviorTree.DataNode.Remove

message DebugNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
1 suspend optional intrinsic_proto.executive.BehaviorTree.DebugNode.Suspend

If set, the enclosing operation will be suspended when this node is selected for execution.

message Decorators (Nested in intrinsic_proto.executive.BehaviorTree.Node ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
1 condition intrinsic_proto.executive.BehaviorTree.Condition

Condition to denote whether a SELECTED node can transition to RUNNING. If the condition is unsatisfied when a node is selected the node transitions to FAILED.

3 breakpoint optional intrinsic_proto.executive.BehaviorTree.Breakpoint.Type
4 execution_settings optional intrinsic_proto.executive.BehaviorTree.Node.ExecutionSettings
5 on_failure optional intrinsic_proto.executive.BehaviorTree.Node.Decorators.FailureSettings

message DeleteAllBreakpointsRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

message DeleteBlackboardValueRequest intrinsic/executive/proto/blackboard_service.proto

Field Type Description
1 key string
2 scope string
3 operation_name string

message DeleteBreakpointRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

2 breakpoint intrinsic_proto.executive.BehaviorTree.Breakpoint

message ExecutionSettings (Nested in intrinsic_proto.executive.BehaviorTree.Node ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
1 mode intrinsic_proto.executive.BehaviorTree.Node.ExecutionSettings.Mode
2 disabled_result_state optional intrinsic_proto.executive.BehaviorTree.Node.ExecutionSettings.DisabledResultState

If DISABLED, do not set the resulting state based on execution semantics, but force the resulting state. Only SUCCEEDED or FAILED are valid.

message ExtendedStatusMatch (Nested in intrinsic_proto.executive.BehaviorTree.Condition ) intrinsic/executive/proto/behavior_tree.proto

Matches an ExtendedStatus stored in the blackboard.

Field Type Description
1 blackboard_key string

The blackboard key where the ExtendedStatus is stored. This must have previously been set using the on_failure decorator to emit an extended status.

oneof match_type
2 status_code intrinsic_proto.status.StatusCode

Match a specific status code. If component is empty or code is zero it is ignored for the match, e.g., enabling to match any error of a specific component.

message ExtendedStatusSettings (Nested in intrinsic_proto.executive.BehaviorTree.Node.Decorators.FailureSettings ) intrinsic/executive/proto/behavior_tree.proto

If the node fails, emit an extended status under the given blackboard key. If child nodes, or invoked services/skills, etc. emitted an extended status, they are added as context (in this node's extended status proto). If the node succeeds the entry is not modified.

Field Type Description
1 to_blackboard_key string
2 extended_status optional intrinsic_proto.status.ExtendedStatus

An optional extended status to emit. If the extended status is given, it is emitted to the given blackboard key and children’s extended statuses (if any) are added to context. If the field is not set, a propagated extended status is emitted to the given blackboard key, or if multiple extended statuses are propagated a collector status is auto-generated with these statuses as context.

message FailNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Leaf node for throwing execution failures, to direct the control flow

Field Type Description

message FailureSettings (Nested in intrinsic_proto.executive.BehaviorTree.Node.Decorators ) intrinsic/executive/proto/behavior_tree.proto

Specification what to do on failure of the node

Field Type Description
1 emit_extended_status intrinsic_proto.executive.BehaviorTree.Node.Decorators.FailureSettings.ExtendedStatusSettings

Emit extended status available for this node (on failure) to the given blackboard key. This can then be used, for example, as a condition (ExtendedStatusMatch).

message FallbackNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

This tries each child one by one sequentially. First a Try's condition is evaluated and when satisfied its node is executed. If a Try node succeeds, the fallback node succeeds. If a Try fails either due to an unsatisfied condition or an execution failure of the node, the next child is tried. If all tries fail, the fallback node fails.

Field Type Description
1 children repeated intrinsic_proto.executive.BehaviorTree.Node

Exactly one of these fields must be set.

Do not use. Prefer tries.

2 tries repeated intrinsic_proto.executive.BehaviorTree.FallbackNode.Try

message ForEach (Nested in intrinsic_proto.executive.BehaviorTree.LoopNode ) intrinsic/executive/proto/behavior_tree.proto

Specification to iterate over a number of protos in the blackboard.

Field Type Description
3 value_blackboard_key string

Blackboard key that the currently looped over value will be available on. This is one entry of the for_each field.

oneof for_each_generator_type
1 protos intrinsic_proto.executive.AnyList

A list of protos, where the loop node executes one cycle for each proto. In the n-th cycle the n-th proto is available with the key specified in value_blackboard_key. The protos must be of a type that is in the transitive closure of all well-known or skill proto types. The value is internally unpacked, e.g., if a Pose proto is specified, its values are accessible and within a for_each loop an expression like current_value.x would be valid (assuming the value_blackboard_key is "current_value").

2 generator_cel_expression string

A CEL expression to generate an array of protos, e.g., retrieving a repeated field of some proto in the blackboard. If the data is generated, e.g., by a DataNode, this is simply the data node's blackboard_key to which the result was written (using create_or_update).

https://cel.dev/

message GetBlackboardValueRequest intrinsic/executive/proto/blackboard_service.proto

Field Type Description
1 key string
2 scope optional string

A blackboard key is scoped based on where it is defined, use: "PROCESS_TREE" for an item in the process tree. For example to retrieve the return value of a skill that just ran. This is the default for most use cases. This is the default, if scope is not set.

3 operation_name string

message GetOperationMetadataRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

message GetOperationViewRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

oneof view_type
2 metadata_fieldmask google.protobuf.FieldMask

The following enables to limit the data that is returned in the operation's metadata field (of type RunMetadata in the Any proto). If not set returns the full metadata. A typical limited mask could be "paths: behavior_tree.state" to get only the behavior tree's overall state. If this is set to an empty FieldMask (nothing in FieldMask.paths), the metadata field will not be filled.

3 view intrinsic_proto.executive.GetOperationViewRequest.View

Use a predefined view.

message GetPythonTemplateRequest intrinsic/executive/proto/code_execution_info_service.proto

Field Type Description
4 parameter_message_full_name string

Full proto message name of the message specifying the input parameters. This should be the same as [CodeExecution.parameter_message_full_name][intrinsic_proto.executive.CodeExecution.parameter_message_full_name].

5 return_value_message_full_name string

Full proto message name of the message specifying the return values. This should be the same as [CodeExecution.return_value_message_full_name][intrinsic_proto.executive.CodeExecution.return_value_message_full_name].

6 file_descriptor_set google.protobuf.FileDescriptorSet

A file descriptor set containing the proto files with the message definitions for the parameter message (see [parameter_message_full_name]) and return value message (see [return_value_message_full_name]) and all transitive dependencies. Parameter and return value message are expected to be defined in the same proto file, else an error will be returned. This should be the same as [CodeExecution.file_descriptor_set][intrinsic_proto.executive.CodeExecution.file_descriptor_set].

message GetPythonTemplateResponse intrinsic/executive/proto/code_execution_info_service.proto

Field Type Description
1 code_template string

A template string containing the placeholder "{compute_body}" for the user's python code. When expanded, produces a full, valid Python script Also see [PythonCode][intrinsic_proto.executive.PythonCode].

message GetWellKnownTypesRequest intrinsic/executive/proto/proto_builder.proto

Field Type Description

message GetWellKnownTypesResponse intrinsic/executive/proto/proto_builder.proto

Field Type Description
1 type_names repeated string

Flat list of all full message names in [types_with_versions].

2 file_descriptor_set google.protobuf.FileDescriptorSet

Transitively closed file descriptor set containing all well-known types.

3 types_with_versions repeated intrinsic_proto.executive.TypeWithVersions

Nested list of all well-known types in which all versions of "the same type" are grouped together. The types in this list are guaranteed to have a [TypeWithVersions.display_name] which is unique within this list.

message ListBlackboardValuesRequest intrinsic/executive/proto/blackboard_service.proto

Field Type Description
1 scope optional string

Limit the request to a specific scope. Will return all blackboard values, if not set.

2 operation_name string
3 view intrinsic_proto.executive.ListBlackboardValuesRequest.View

message ListBlackboardValuesResponse intrinsic/executive/proto/blackboard_service.proto

Field Type Description
2 values repeated intrinsic_proto.executive.BlackboardValue

message ListBreakpointsRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

message ListBreakpointsResponse intrinsic/executive/proto/executive_service.proto

Field Type Description
1 breakpoints repeated intrinsic_proto.executive.BehaviorTree.Breakpoint

message LoggedOperation intrinsic/executive/proto/log_items.proto

Message to log an operation snapshot.

Field Type Description
1 operation google.longrunning.Operation

message LogicalCompound (Nested in intrinsic_proto.executive.BehaviorTree.Condition ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
1 conditions repeated intrinsic_proto.executive.BehaviorTree.Condition

message LoopNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Repeatedly execute a sub-tree. Exit conditions are one of: - condition does not hold - "do" child (sub-tree) fails - if max_times is set, repeat tree has been executed that number of times Omitting condition and max_times leads to a potentially infinite loop, it only exits if the do child fails. The loop succeeds if: - "while" condition is unsatisfied - "do" child has been executed successfully "max_times" times

Field Type Description
2 do intrinsic_proto.executive.BehaviorTree.Node
3 max_times optional uint32

Maximum number of iterations to perform. This cannot be set in the case of a for_each loop.

4 num_times optional uint32
5 loop_counter_blackboard_key string
oneof loop_type
1 while intrinsic_proto.executive.BehaviorTree.Condition
6 for_each intrinsic_proto.executive.BehaviorTree.LoopNode.ForEach

Deprecated: Use a while loop instead

message Node (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

The tree nodes to formulate the tree.

Field Type Description
12 decorators intrinsic_proto.executive.BehaviorTree.Node.Decorators
13 state optional intrinsic_proto.executive.BehaviorTree.Node.State

This is only set on retrieval by the executive. It is ignored when uploading a tree.

14 failure_reason optional intrinsic_proto.executive.BehaviorTree.Node.FailureReason
15 name optional string

An optional (display) name for the node.

17 id optional uint32

An identifier for the node. The identifier must be unique for the behavior tree containing the node. Given a subtree (TREE-A), which gets used in another tree (TREE-B), both TREE-A and TREE-B may contain a node with id 1, but TREE-A (and TREE-B) may both only contain one node with id 1. This would be forbidden:


| sequence a | | id: 1 |


      |
 ----------
 | task a |
 | id: 1  |
 ----------

While this would be allowed:


| sequence a | | id: 1 |


      |

| subtree a | | id: 2 |


     |
 ----------
 | task b |
 | id: 1  |
 ----------
20 description optional string

An optional description for a node. This can be used, for example, to provide documentation for a particular node.

21 user_data optional intrinsic_proto.executive.BehaviorTree.UserData

User provided data that is treated opaquely by the executive. The data is assumed to be small (all data combined in the order of kilobytes) as to not slow down state retrieval.

oneof node_type
1 sequence intrinsic_proto.executive.BehaviorTree.SequenceNode
2 parallel intrinsic_proto.executive.BehaviorTree.ParallelNode
3 task intrinsic_proto.executive.BehaviorTree.TaskNode
4 fail intrinsic_proto.executive.BehaviorTree.FailNode
5 selector intrinsic_proto.executive.BehaviorTree.SelectorNode
6 fallback intrinsic_proto.executive.BehaviorTree.FallbackNode
7 branch intrinsic_proto.executive.BehaviorTree.BranchNode
8 loop intrinsic_proto.executive.BehaviorTree.LoopNode
9 retry intrinsic_proto.executive.BehaviorTree.RetryNode
11 sub_tree intrinsic_proto.executive.BehaviorTree.SubtreeNode
18 data intrinsic_proto.executive.BehaviorTree.DataNode
19 debug intrinsic_proto.executive.BehaviorTree.DebugNode

message ParallelNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Children will be executed concurrently. If any child fails, the Parallel fails. Depending on the set failure behavior, the node will either preempt other running children, or wait for them to complete. If all children have succeeded, the Parallel succeeds.

Field Type Description
1 children repeated intrinsic_proto.executive.BehaviorTree.Node

message ParameterAssignment (Nested in intrinsic_proto.executive.BehaviorCall ) intrinsic/executive/proto/behavior_call.proto

Field Type Description
oneof source
2 cel_expression string
oneof target
1 parameter_path string

Proto field path into the parameters message. Examples of supported path syntax: - Top-level field: "target_pose" - Nested field: "target_pose.position.x" - Repeated field: "target_poses[3]" or "target_poses[3].position" - Append to repeated field: "target_poses[]" ([] is only allowed in the last path element, i.e., after the last ".") Map fields are not supported.

message ProtoCompileRequest intrinsic/executive/proto/proto_builder.proto

Field Type Description
1 proto_filename string
2 proto_schema string
3 dependencies google.protobuf.FileDescriptorSet

message ProtoCompileResponse intrinsic/executive/proto/proto_builder.proto

Field Type Description
1 file_descriptor_set google.protobuf.FileDescriptorSet

message ProtoComposeRequest intrinsic/executive/proto/proto_builder.proto

Field Type Description
1 proto_filename string

Name of the file in the result file descriptor set to contain the input proto.

2 proto_package string

Package for the enclosed type

3 input_descriptor repeated google.protobuf.DescriptorProto

A set of descriptors which use only basic (int64, string etc.) and well-known (cf. GetWellKnownTypes) types.

message ProtoComposeResponse intrinsic/executive/proto/proto_builder.proto

Field Type Description
1 file_descriptor_set google.protobuf.FileDescriptorSet

message PythonCode intrinsic/executive/proto/code_execution.proto

Python code to be executed. Not a self-contained Python script - must fit into the Python template provided by the code execution service. The function body follows this signature: def compute( params: run_python_code_pb2.Parameters, context: run_python_code.BasicComputeContext, ) -> Optional[run_python_code_pb2.ReturnValue]:

Field Type Description
1 function_body string

message Remove (Nested in intrinsic_proto.executive.BehaviorTree.DataNode ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
1 blackboard_key string

message ResetOperationRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

2 keep_blackboard bool

If set to true, the blackboard of the operation will not be reset and all keys are kept.

message ResourceSpecification (Nested in intrinsic_proto.executive.BehaviorCall ) intrinsic/executive/proto/behavior_call.proto

Field Type Description
oneof resource_specification_type
1 handle string
2 reference string

message ResumeOperationRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

2 mode optional intrinsic_proto.executive.ResumeOperationRequest.ResumeMode

message RetryNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Try the single child node for the given number of tries. On success of the child, the retry node succeeds. If the child fails: - the maximum number of tries has been reached: fail - max_tries = 0 or num_tries < max_tries: - if a recovery node exists: run recovery node - if recovery fails: fail - else reset the retry node and run the next try - if there is no recovery node: reset and re-run child

Field Type Description
1 child intrinsic_proto.executive.BehaviorTree.Node
2 max_tries uint32
3 num_tries optional uint32
4 retry_counter_blackboard_key string
5 recovery intrinsic_proto.executive.BehaviorTree.Node

message RunMetadata intrinsic/executive/proto/run_metadata.proto

Field Type Description
19 world_id string
20 execution_mode intrinsic_proto.executive.ExecutionMode

These fields will be initialized when starting a behavior tree (not immediately when creating it).

21 simulation_mode intrinsic_proto.executive.SimulationMode
22 tracing_info intrinsic_proto.executive.RunMetadata.TracingInfo

The field is initialized when starting a behavior tree (not immediately when creating it).

23 log_context optional intrinsic_proto.data_logger.Context

This context is set when getting the operation info via the service. It contains the session ID and possibly the ID of the current runnable. It will not contain an action ID. The field is not set for logged executive states (which already are associated with a context anyway). The IDs can be used to query other relevant data.

24 start_tree_id optional string

These fields are set, if the operation is configured to execute only a specific node of a sub-behavior tree of the loaded behavior tree.

25 start_node_id optional uint32
26 start_time optional google.protobuf.Timestamp

These fields are set and updated after the operation is started. Time the operation was started in UTC.

27 execution_time optional google.protobuf.Duration

Time the operation was actively executing, e.g., excluding preparing to start, being suspended or done.

28 diagnostics optional intrinsic_proto.status.ExtendedStatus

This contains diagnostics information for the current operation. These are not errors, but warnings and informational messages. After a successful call to CreateOperation this may generate diagnostics that could be reported to the user.

29 scene_id string

The scene ID that is associated with this operation. This is the starting state for the world in which this operation is running/ ran. This is only set once the operation transitions from ACCEPTED to RUNNING, and only if it was set when starting the operation. It is cleared when the operation is reset.

30 operation_state intrinsic_proto.executive.RunMetadata.State
oneof runnable_type
1 behavior_tree intrinsic_proto.executive.BehaviorTree
oneof state_type
10 behavior_tree_state intrinsic_proto.executive.BehaviorTree.State

Deprecated: Use operation_state instead of behavior_tree_state.

message SelectorNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Evaluate each branch condition in the given order. If a condition of a node is unsatisfied, continue and evaluate the next branch condition. If a condition of a node is satisfied, execute the child. The outcome of the child determines the outcome of the SelectorNode, i.e., if it fails, the selector node fails; if the child succeeds, the selector node succeeds. If the conditions of all children are unsatisfied, the selector node fails.

Field Type Description
1 children repeated intrinsic_proto.executive.BehaviorTree.Node

Exactly one of these fields must be set.

Use the branches field instead.

2 branches repeated intrinsic_proto.executive.BehaviorTree.SelectorNode.Branch

message SequenceNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Children in the sequence will be executed in the given order. If any child fails, the sequence fails. If all children have succeeded, the sequence succeeds.

Field Type Description
1 children repeated intrinsic_proto.executive.BehaviorTree.Node

message SetNodeExecutionSettingsRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

2 tree_id string

tree_id and node_id identify the node to change settings for. tree_id and node_id must be in the operation identified by name and node_id must be in the tree identified by tree_id.

3 node_id uint32

The respective node_id to set (see tree_id).

4 execution_settings intrinsic_proto.executive.BehaviorTree.Node.ExecutionSettings

New settings to apply for this node.

message SetNodeExecutionSettingsResponse intrinsic/executive/proto/executive_service.proto

Field Type Description

message SkillExecutionData (Nested in intrinsic_proto.executive.BehaviorCall ) intrinsic/executive/proto/behavior_call.proto

The fields in SkillExecutionData are updated based on a skill.predict() call. They are passed to skill.execute() if set. At a later point these fields may be set, for example when prediction was run off-line. This is currently not implemented. Confer documentation of intrinsic_proto.skills.PredictResult and intrinsic_proto.skills.ExecuteRequest.

Field Type Description
1 footprint intrinsic_proto.skills.Footprint

The footprint (required resources etc.) of the skill.

2 internal_data bytes

Arbitrary internal data from prediction. This could be anything and you cannot make any assumptions on the structure. Since it's passed from a call to predict to the call of execute on the exact same skill, it can know what to expect.

message SkillExecutionOptions (Nested in intrinsic_proto.executive.BehaviorCall ) intrinsic/executive/proto/behavior_call.proto

Optional data that can be set when calling a skill.

Field Type Description
1 project_timeout google.protobuf.Duration

When set, use the specified timeout instead of the default timeout when calling skill.predict() (report failure if predict does not finish within this time bound).

2 execute_timeout google.protobuf.Duration

When set, use the specified timeout instead of the default timeout calling skill.execute() (report failure if execute does not finish within this time bound).

message StartOperationRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

2 execution_mode intrinsic_proto.executive.ExecutionMode
3 simulation_mode intrinsic_proto.executive.SimulationMode
4 skill_trace_handling intrinsic_proto.executive.RunMetadata.TracingInfo.SkillTraceHandling
5 start_tree_id optional string

Optionally select a specific node in the operation to be executed instead of the full tree. start_node_id must be in start_tree_id and start_tree_id must be part of the named operation. start_node_id will be executed as if it were the root of start_tree_id and as if start_tree_id were the process tree of the operation. No other parts of the tree will be executed.

6 start_node_id optional uint32

The respective start_node_id to start (see start_tree_id).

7 parameters google.protobuf.Any

Parameters for the tree. Must be set if the behavior tree that the operation was created with sets the parameter_message_full_name field in its description.

This also works when specifying a start_tree_id/start_node_id to only run parts of the process. In every case the parameter specification is taken from the operation's tree.

8 resources map<string, string>

This is a map from slot to the name of the resource handle.

9 scene_id optional string

The scene ID to be associated with this operation. This specifies the starting state for the world in which this operation will run. If this value is not set, the operation will run in the world in its current state.

message SubtreeNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
11 tree intrinsic_proto.executive.BehaviorTree

message Suspend (Nested in intrinsic_proto.executive.BehaviorTree.DebugNode ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
1 fail_on_resume bool

By default the DebugNode will transition to SUCCEEDED on resume. In some situations, like in the context of a fallback node, it may be desirable to enter the FAILED state on resume. This is done if set to true.

message SuspendOperationRequest intrinsic/executive/proto/executive_service.proto

Field Type Description
1 name string

Name of the operation

message TaskNode (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Leaf node encoding a single action to be executed. Succeeds if the action succeeds, fails otherwise.

Field Type Description
1 state optional intrinsic_proto.executive.BehaviorTree.TaskNode.State

This is only set by the executive on retrieval. It is ignored when uploading a tree.

4 called_tree_state optional intrinsic_proto.executive.BehaviorTree

Exports the BehaviorTree and its state, if this task node executes a parameterizable behavior tree. This is only set by the executive on retrieval. It is an error when uploading a tree.

oneof task_type
3 call_behavior intrinsic_proto.executive.BehaviorCall

Call a skill or Parameterizable Behavior Tree.

5 execute_code intrinsic_proto.executive.CodeExecution

Execute a code snippet.

message TracingInfo (Nested in intrinsic_proto.executive.RunMetadata ) intrinsic/executive/proto/run_metadata.proto

Tracing information for retrieval of tracing info. The feature is only available internally for Intrinsic at this point in time.

Field Type Description
1 trace_id string
2 trace_url string
3 skill_trace_handling intrinsic_proto.executive.RunMetadata.TracingInfo.SkillTraceHandling

message Try (Nested in intrinsic_proto.executive.BehaviorTree.FallbackNode ) intrinsic/executive/proto/behavior_tree.proto

Field Type Description
1 condition optional intrinsic_proto.executive.BehaviorTree.Condition

If the condition is not given, a "true" condition is assumed.

2 node intrinsic_proto.executive.BehaviorTree.Node

The node must not have a decorator condition.

message TypeVersion intrinsic/executive/proto/proto_builder.proto

Field Type Description
1 message_full_name string
2 display_version string

A short display name for the version, e.g., "v1" or "unversioned". May be empty if a type has only one version.

message TypeWithVersions intrinsic/executive/proto/proto_builder.proto

Field Type Description
1 display_name string

A short name for the type, e.g., "Pose" or "ObjectReference" to be shown, e.g. in a UI. Typically equal to the message name without the package. But may contain additional content (including whitespace and special characters) for disambiguation.

2 versions repeated intrinsic_proto.executive.TypeVersion

All versions for this type identified by their full message name. Contains at least one element. The first element is the recommended version which, e.g., can be shown by UIs as the default choice.

message UpdateBlackboardValueRequest intrinsic/executive/proto/blackboard_service.proto

Field Type Description
1 value intrinsic_proto.executive.BlackboardValue

message UserData (Nested in intrinsic_proto.executive.BehaviorTree ) intrinsic/executive/proto/behavior_tree.proto

Data provided by the user associated with the tree. It can be stored in a catalog or to disk and is returned as provided in the executive state. It is not further examined or used.

Field Type Description
1 data_bytes map<string, bytes>
2 data_any map<string, Any>

Enums

enum DisabledResultState intrinsic/executive/proto/behavior_tree.proto

This is a subset of the State enum.

Name Number Description
DISABLED_RESULT_STATE_UNSPECIFIED 0
SUCCEEDED 1
FAILED 2

enum ExecutionMode intrinsic/executive/proto/executive_execution_mode.proto

Name Number Description
EXECUTION_MODE_UNSPECIFIED 0
EXECUTION_MODE_NORMAL 1

Execute normally, i.e., process loaded behavior tree.

EXECUTION_MODE_STEP_WISE 2

Execute step-wise, i.e., stop after the execution of a node.

enum FailureReason intrinsic/executive/proto/behavior_tree.proto

Name Number Description
UNKNOWN_FAILURE 0

an unknown error occurred

FAILED_CONDITION 1

condition decorator unsatisfied

FAILED_EXECUTION 2

error while executing the tree

enum Mode intrinsic/executive/proto/behavior_tree.proto

Name Number Description
UNSPECIFIED 0
NORMAL 1
DISABLED 2

enum ResumeMode intrinsic/executive/proto/executive_service.proto

Name Number Description
RESUME_MODE_UNSPECIFIED 0

As if the field was not set, see below.

CONTINUE 1

Set execution mode to normal and resume

STEP 2

Take a step and select the next node. Only valid in step-wise mode.

NEXT 3

Mark sub-trees of node that caused last step-wise suspend to not trigger a suspend and continue execution. First non-marked node triggers a suspend again. Only valid in step-wise mode.

enum SimulationMode intrinsic/executive/proto/executive_execution_mode.proto

Name Number Description
SIMULATION_MODE_UNSPECIFIED 0
SIMULATION_MODE_REALITY 1

Executes in real or with simulator as close to reality as possible.

SIMULATION_MODE_DRAFT 2

Executes skills by using preview and visualizing updates.

SIMULATION_MODE_FAST_PREVIEW 3

Executes skills by using preview without visualization.

enum SkillTraceHandling intrinsic/executive/proto/run_metadata.proto

Defines how skill traces are handled within a behavior tree trace.

Name Number Description
SKILL_TRACES_UNSPECIFIED 0
SKILL_TRACES_LINK 1

Leave skill traces as individual traces and provide links to these as attributes in task nodes.

SKILL_TRACES_EMBED 2

Embed skill traces as part of the current behavior tree trace.

enum State intrinsic/executive/proto/behavior_tree.proto

Name Number Description
UNSPECIFIED 0
ACCEPTED 1
EVALUATING 2
SUSPENDING 3
SUSPENDED 4
CLEANUP 5
FINISHED 6
ERROR 7
CANCELED 8
CANCELING 9

enum State intrinsic/executive/proto/behavior_tree.proto

Represents the state of the enclosed execution item, i.e., skill or parameterizable behavior tree.

Name Number Description
ACCEPTED 0
SELECTED 1
PROJECTING 2
PROJECTED 3
CHECKING_FOOTPRINT 4
READY 5
PENDING 6
RUNNING 7
CANCELING 10

User-invoked cancellation is ongoing.

CANCELING_EXECUTION_TIMEOUT 12

Cancellation after execution has timed out is ongoing.

CANCELED 11
SUCCEEDED 8
FAILED 9

enum State intrinsic/executive/proto/behavior_tree.proto

These enum values need to be kept in sync with the states of the behavior-tree-node CLIPS template.

Name Number Description
UNSPECIFIED 0
ACCEPTED 1
SELECTED 2
EVALUATING_CONDITION 3
READY 4
RUNNING 5
CANCELING 9
CANCELED 10
SUCCEEDED 6
FAILED 7
SUSPENDED 8

enum State intrinsic/executive/proto/behavior_tree.proto

Describes the overall state of the Behavior Tree.

Name Number Description
UNSPECIFIED 0

Default value, will not occur on retrieval.

ACCEPTED 1

Tree has been loaded successfully.

RUNNING 2

Tree is currently executing.

SUSPENDING 3

Tree is waiting for in-flight actions to complete.

SUSPENDED 4

Tree has been paused (and can be resumed),

CANCELING 5

Tree is waiting for cancellation to finish.

SUCCEEDED 6

Tree has finished execution successfully.

FAILED 7

Tree has failed to execute.

CANCELED 8

Tree was canceled as requested.

enum State intrinsic/executive/proto/run_metadata.proto

Describes the overall state of the Operation.

Name Number Description
UNSPECIFIED 0

Default value, will not occur on retrieval.

ACCEPTED 10

Operation has been loaded successfully.

PREPARING 20

Operation is preparing to start execution.

RUNNING 30

Operation is currently executing.

SUSPENDING 40

Operation is waiting for in-flight actions to complete.

SUSPENDED 50

Operation has been paused (and can be resumed),

CANCELING 60

Operation is waiting for cancellation to finish.

SUCCEEDED 70

Operation has finished execution successfully.

FAILED 80

Operation has failed to execute.

CANCELED 90

Operation was canceled as requested.

enum Type intrinsic/executive/proto/behavior_tree.proto

Name Number Description
TYPE_UNSPECIFIED 0
BEFORE 1
AFTER 2

enum View intrinsic/executive/proto/blackboard_service.proto

Name Number Description
DEFAULT 0

Currently this corresponds to ANY_TYPEURL_ONLY

FULL 1
ANY_TYPEURL_ONLY 2

enum View intrinsic/executive/proto/executive_service.proto

Some presets to simplify querying from frontend.

Name Number Description
VIEW_DEFAULT 0

Full view, corresponds to "no fieldmask"

VIEW_STATE_ONLY 1

Only report state, not runnable (behavior tree).