Create agent
Create a new agent for the caller’s org.
Access control
- requires_org
- Restricted tokens need the API scope
api.everything_else
/v1/ai/agentsAuthorizationBearer token · headerrequiredX-Roboto-Org-IdstringX-Roboto-User-Idstringapplication/jsonnamestringrequireddescriptionstring | nullShow propertiesHide properties
stringnullrequest_templateStartAgentThreadRequestrequiredRequest payload for starting a new agent thread.
Contains the initial messages and configuration for creating a new conversation.
Show propertiesHide properties
client_contextClientViewingContext | nullShow propertiesHide properties
dataset_idsstring[]file_idsstring[]collection_idsstring[]device_idsstring[]view_idsstring[]table_stateobject | nullShow propertiesHide properties
objectnulldisplay_time_anchor_nsinteger | nullShow propertiesHide properties
integernulldisplay_time_anchor_labelstring | nullShow propertiesHide properties
stringnullvisualizer_stateobject | nullShow propertiesHide properties
objectnullmisc_contextobject | nullShow propertiesHide properties
objectnullnullmessagesAgentMessage[]Show propertiesHide properties
AgentMessageroleAgentRolerequiredEnumeration of possible roles in an agent thread.
Defines the different participants that can send messages in a thread.
userassistantrobotocontentAgentTextContent | AgentToolUseContent | AgentToolResultContent | AgentErrorContent | AgentDeletedContent | AgentCompressionFillerContent | AgentClientContextEntry[]requiredShow propertiesHide properties
AgentTextContent | AgentToolUseContent | AgentToolResultContent | AgentErrorContent | AgentDeletedContent | AgentCompressionFillerContent | AgentClientContextEntrytextstringrequiredcontent_typestringtool_namestringrequiredtool_use_idstringrequiredinputobject | nullShow propertiesHide properties
objectnullraw_requestobject | nullShow propertiesHide properties
objectnullcontent_typestringtool_namestringrequiredtool_use_idstringrequiredruntime_msintegerrequiredstatusstringrequiredpayloadstring | object | any[] | nullShow propertiesHide properties
stringobjectanyanynullraw_responseobject | nullShow propertiesHide properties
objectnullcontent_typestringerror_messagestringrequirederror_codestring | nullShow propertiesHide properties
stringnullcontent_typestringcontent_typestringcontent_typestringcontextClientViewingContextrequiredWhat the Roboto client (e.g. the Web UI) is currently viewing when the user composed a message.
Passed to the agent as implicit context for resolving deictic references — "this dataset", "those files", "the visualizer state I'm looking at" — that the user would otherwise have to spell out. This type is purely informational; it is not enforced and never gates tool authorization.
Distinct from:
- :class:
AnalysisScope, which is a hard analysis window honored by individual tools on the server side. - :class:
~roboto.ai.goals.AgentGoal, which declares typed outcomes the agent runner must drive the turn to satisfy.
The corresponding wire-format field is client_context (with a
one-release context alias for migration).
statusAgentMessageStatusEnumeration of possible message generation states.
Tracks the lifecycle of message generation from initiation to completion.
not_startedgeneratingcompletedfailedcancelledcreatedstring<date-time>system_promptstring | nullShow propertiesHide properties
stringnullclient_toolsClientToolSpec[] | nullShow propertiesHide properties
ClientToolSpecnamestringrequireddescriptionstringrequiredinput_schemaobjectrequirednullmodel_profilestring | nullShow propertiesHide properties
stringnullanalysis_scopeAnalysisScope | nullShow propertiesHide properties
start_timeinteger | nullShow propertiesHide properties
integernullend_timeinteger | nullShow propertiesHide properties
integernullnullgoalsDatasetSummaryAgentGoal | DatasetTriageGoal | CreateEventsGoal[] | nullShow propertiesHide properties
DatasetSummaryAgentGoal | DatasetTriageGoal | CreateEventsGoalgoal_typestringdataset_idstringrequiredsummary_format_spec_promptstring | nullShow propertiesHide properties
stringnullgoal_typestringdataset_idstringrequiredlabel_vocabularyobjectrequiredgoal_typestringdataset_idstringrequiredevent_vocabularyobjectrequiredtag_vocabularyobjectcollection_idstring | nullShow propertiesHide properties
stringnullevent_focus_promptstring | nullShow propertiesHide properties
stringnullnullinvoke_skillsInvokeSkillSpec[]Show propertiesHide properties
InvokeSkillSpecskill_idstringrequiredversioninteger | nullShow propertiesHide properties
integernullavailable_skillsAvailableSkillSpec[] | nullShow propertiesHide properties
AvailableSkillSpecskill_idstringrequiredversioninteger | nullShow propertiesHide properties
integernullnullvisibilityThreadVisibilityRead-scope for an :class:AgentThreadRecord.
Set when the thread is created, and changed afterwards only by the thread's creator,
via :meth:roboto.ai.agent_thread.AgentThread.set_visibility (POST /v1/ai/threads/<thread_id>/visibility).
Roboto admins read every thread but cannot re-scope one they did not create.
Import as :class:roboto.ai.agent_thread.ThreadVisibility.
privateorgvariablesTemplateVariable[]Show propertiesHide properties
TemplateVariablenamestringrequiredtypeTemplateVariableTypeHow a variable's value is interpreted when an agent is launched.
Substitution itself is type-agnostic: every value is spliced in as a string. The type drives two things a caller can observe — the Roboto web app picks a richer input control (dataset picker, device picker), and a typed value is checked for existence when the agent is launched, so a bad id is rejected up front rather than inside the agent's first tool call.
stringdataset_iddevice_idcollection_iddescriptionstring | nullShow propertiesHide properties
stringnullrequiredbooleandefaultstring | nullShow propertiesHide properties
stringnullcollection_content_typeCollectionResourceType | nullShow propertiesHide properties
stringnullCREATED
dataobjectrequiredA pre-filled :class:StartAgentThreadRequest plus declared variables.
An :class:AgentRecord captures most of what an :class:AgentThread
needs to start - system prompt, model profile, seeded messages, declared
goals - and leaves a small set of named holes that callers must fill at
invoke time. The canonical example is a triage agent whose goal carries a
fixed label_vocabulary but a {{dataset.id}} placeholder, so the
same agent can be re-run against many datasets without re-declaring the
vocabulary.
The record's main invariant - enforced by
:meth:_validate_variables_match_placeholders - is that the set of
{{...}} placeholders found anywhere in :attr:request_template
equals exactly {v.name for v in variables}. A mismatch fails at
save time so stale invoke forms can't paper over typos.
Show propertiesHide properties
agent_idstringrequiredorg_idstringrequirednamestringrequireddescriptionstring | nullShow propertiesHide properties
stringnullrequest_templateStartAgentThreadRequestrequiredRequest payload for starting a new agent thread.
Contains the initial messages and configuration for creating a new conversation.
Show propertiesHide properties
client_contextClientViewingContext | nullShow propertiesHide properties
dataset_idsstring[]file_idsstring[]collection_idsstring[]device_idsstring[]view_idsstring[]table_stateobject | nullShow propertiesHide properties
objectnulldisplay_time_anchor_nsinteger | nullShow propertiesHide properties
integernulldisplay_time_anchor_labelstring | nullShow propertiesHide properties
stringnullvisualizer_stateobject | nullShow propertiesHide properties
objectnullmisc_contextobject | nullShow propertiesHide properties
objectnullnullmessagesAgentMessage[]Show propertiesHide properties
AgentMessageroleAgentRolerequiredEnumeration of possible roles in an agent thread.
Defines the different participants that can send messages in a thread.
userassistantrobotocontentAgentTextContent | AgentToolUseContent | AgentToolResultContent | AgentErrorContent | AgentDeletedContent | AgentCompressionFillerContent | AgentClientContextEntry[]requiredShow propertiesHide properties
AgentTextContent | AgentToolUseContent | AgentToolResultContent | AgentErrorContent | AgentDeletedContent | AgentCompressionFillerContent | AgentClientContextEntrytextstringrequiredcontent_typestringtool_namestringrequiredtool_use_idstringrequiredinputobject | nullShow propertiesHide properties
objectnullraw_requestobject | nullShow propertiesHide properties
objectnullcontent_typestringtool_namestringrequiredtool_use_idstringrequiredruntime_msintegerrequiredstatusstringrequiredpayloadstring | object | any[] | nullShow propertiesHide properties
stringobjectanyanynullraw_responseobject | nullShow propertiesHide properties
objectnullcontent_typestringerror_messagestringrequirederror_codestring | nullShow propertiesHide properties
stringnullcontent_typestringcontent_typestringcontent_typestringcontextClientViewingContextrequiredWhat the Roboto client (e.g. the Web UI) is currently viewing when the user composed a message.
Passed to the agent as implicit context for resolving deictic references — "this dataset", "those files", "the visualizer state I'm looking at" — that the user would otherwise have to spell out. This type is purely informational; it is not enforced and never gates tool authorization.
Distinct from:
- :class:
AnalysisScope, which is a hard analysis window honored by individual tools on the server side. - :class:
~roboto.ai.goals.AgentGoal, which declares typed outcomes the agent runner must drive the turn to satisfy.
The corresponding wire-format field is client_context (with a
one-release context alias for migration).
statusAgentMessageStatusEnumeration of possible message generation states.
Tracks the lifecycle of message generation from initiation to completion.
not_startedgeneratingcompletedfailedcancelledcreatedstring<date-time>system_promptstring | nullShow propertiesHide properties
stringnullclient_toolsClientToolSpec[] | nullShow propertiesHide properties
ClientToolSpecnamestringrequireddescriptionstringrequiredinput_schemaobjectrequirednullmodel_profilestring | nullShow propertiesHide properties
stringnullanalysis_scopeAnalysisScope | nullShow propertiesHide properties
start_timeinteger | nullShow propertiesHide properties
integernullend_timeinteger | nullShow propertiesHide properties
integernullnullgoalsDatasetSummaryAgentGoal | DatasetTriageGoal | CreateEventsGoal[] | nullShow propertiesHide properties
DatasetSummaryAgentGoal | DatasetTriageGoal | CreateEventsGoalgoal_typestringdataset_idstringrequiredsummary_format_spec_promptstring | nullShow propertiesHide properties
stringnullgoal_typestringdataset_idstringrequiredlabel_vocabularyobjectrequiredgoal_typestringdataset_idstringrequiredevent_vocabularyobjectrequiredtag_vocabularyobjectcollection_idstring | nullShow propertiesHide properties
stringnullevent_focus_promptstring | nullShow propertiesHide properties
stringnullnullinvoke_skillsInvokeSkillSpec[]Show propertiesHide properties
InvokeSkillSpecskill_idstringrequiredversioninteger | nullShow propertiesHide properties
integernullavailable_skillsAvailableSkillSpec[] | nullShow propertiesHide properties
AvailableSkillSpecskill_idstringrequiredversioninteger | nullShow propertiesHide properties
integernullnullvisibilityThreadVisibilityRead-scope for an :class:AgentThreadRecord.
Set when the thread is created, and changed afterwards only by the thread's creator,
via :meth:roboto.ai.agent_thread.AgentThread.set_visibility (POST /v1/ai/threads/<thread_id>/visibility).
Roboto admins read every thread but cannot re-scope one they did not create.
Import as :class:roboto.ai.agent_thread.ThreadVisibility.
privateorgvariablesTemplateVariable[]Show propertiesHide properties
TemplateVariablenamestringrequiredtypeTemplateVariableTypeHow a variable's value is interpreted when an agent is launched.
Substitution itself is type-agnostic: every value is spliced in as a string. The type drives two things a caller can observe — the Roboto web app picks a richer input control (dataset picker, device picker), and a typed value is checked for existence when the agent is launched, so a bad id is rejected up front rather than inside the agent's first tool call.
stringdataset_iddevice_idcollection_iddescriptionstring | nullShow propertiesHide properties
stringnullrequiredbooleandefaultstring | nullShow propertiesHide properties
stringnullcollection_content_typeCollectionResourceType | nullShow propertiesHide properties
stringnullcreatedstring<date-time>requiredcreated_bystringrequiredmodifiedstring<date-time>requiredmodified_bystringrequiredThrown when the conversation context (messages, system prompt, tool results) exceeds the model's context window limit.
The token estimate and the model's context limit are not carried on the exception, so a caller cannot read usage numbers off it.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown when authentication fails
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown if an operation would exceed a user or org level limit.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown if a user is attempting to perform an action unrecognized by the Roboto platform.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown if there is a conflict between a resource you're creating and another existing resource
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown if a resource is missing or expired.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullAn error the platform reported that this SDK release cannot resolve to a specific exception class.
Reported for an element of a :py:class:~roboto.http.BatchResponse whose error names a code this release
defines no class for, or that arrived without a code, without a message, or as text that is not an
error envelope at all. It carries whatever code and message the platform sent, so a caller handling the
failure still learns what went wrong; when no message could be read, the message is the error's raw text.
The error envelope carries no status code, so http_status_code reports the 500 inherited from
:py:class:RobotoDomainException rather than the status the failure actually had.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown by shimmed out APIs which have not yet been implemented
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown when a service is unavailable, such as when it's under heavy load and can't accept new requests. This is expected to be transient and ought to be retried.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown when the service times out while processing a request. This is exepcted to be transient and ought to be retried.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | nullThrown when the server cannot complete the request because the response payload exceeds a storage or transport capacity limit (e.g., Lambda response size). This is NOT expected to be transient and should NOT be retried.
errorobjectShow propertiesHide properties
error_codenumbermessagestringstack_tracestring | null