Skip to main content

cmind/agents/v1/preset_agent_service.proto

Package: cmind.agents.v1

Enums

ToolServerKind

ValueNumberDescription
TOOL_SERVER_KIND_UNSPECIFIED0
TOOL_SERVER_KIND_RAG1
TOOL_SERVER_KIND_MCP2

PresetAgentAvailability

Stable public readiness state. Raw operator conditions and dependency names are intentionally not exposed by the manager API.

ValueNumberDescription
PRESET_AGENT_AVAILABILITY_UNSPECIFIED0
PRESET_AGENT_AVAILABILITY_RECONCILING1
PRESET_AGENT_AVAILABILITY_READY2
PRESET_AGENT_AVAILABILITY_UNAVAILABLE3

PresetAgentAccessFilter

Which access the list is filtered by. A closed enum rather than a relation string, so a caller cannot ask the list to filter by an arbitrary FGA relation.

ValueNumberDescription
PRESET_AGENT_ACCESS_FILTER_UNSPECIFIED0Treated as INVOCABLE, which is what the list has always returned.
PRESET_AGENT_ACCESS_FILTER_INVOCABLE1Agents the caller may use.
PRESET_AGENT_ACCESS_FILTER_MANAGEABLE2Agents the caller may administer — the management surface's list. It includes an agent held only through a delegated grant, which is how a member who is not a tenant admin finds the agent they were granted.

Messages

ToolServerRef

Reference to a registered tool server the agent may use — a RAG deployment or an external MCP server, whole-server granularity. Never an inline tool definition or credentials. A per-tool narrowing field can be added later.

FieldTypeNumberDescription
kindToolServerKind1Shape (kind set, name non-empty) is validated by the create and update handlers.
namestring2RAG deployment id or external MCP server name

LockedParams

Params the agent pins on every invocation; callers cannot override them. Enforcement happens at invocation in the model-gateway.

FieldTypeNumberDescription
temperatureoptional double1
topPoptional double2
maxOutputTokensoptional int643

PresetAgent

FieldTypeNumberDescription
namestring1Agent id — what callers put in the model field on /v1/responses. Shares one namespace with model publicModelIds; create rejects collisions. DNS-1123 subdomain shape (no "/"), matching manager-go and K8s validation.
displayNamestring2
baseModelstring3publicModelId of the model the agent runs on. Required on create. May name a model alias; the agent then follows the alias when it repoints.
instructionsstring4System prompt injected on every invocation; callers cannot override it.
toolServersrepeated ToolServerRef5
lockedParamsLockedParams6
sharingcmind.modelmanager.v1.Sharing7Mutated by UpdatePresetAgent; this service has no separate sharing RPC
tenantIdstring8Owning tenant; empty means platform-owned.
availabilityPresetAgentAvailability9

CreatePresetAgentRequest

FieldTypeNumberDescription
presetAgentPresetAgent1
tenantIdstring2Tenant that owns the agent

CreatePresetAgentResponse

FieldTypeNumberDescription
presetAgentPresetAgent1

CreatePlatformPresetAgentRequest

FieldTypeNumberDescription
presetAgentPresetAgent1

CreatePlatformPresetAgentResponse

FieldTypeNumberDescription
presetAgentPresetAgent1

GetPresetAgentRequest

FieldTypeNumberDescription
namestring1

GetPresetAgentResponse

FieldTypeNumberDescription
presetAgentPresetAgent1

ToolServerList

Wraps the repeated refs so PresetAgentUpdate can distinguish absent (unchanged) from present with no values (clear).

FieldTypeNumberDescription
valuesrepeated ToolServerRef1

PresetAgentUpdate

The fields UpdatePresetAgent can change. An absent field leaves the stored value unchanged; a present field replaces the stored value whole, so a present-but-empty value clears it. Exception: base_model is required and cannot be cleared. Fields not carried here (name, tenant_id) are immutable.

FieldTypeNumberDescription
displayNameoptional string1
instructionsoptional string2
baseModeloptional string3publicModelId; may name a model alias.
toolServersToolServerList4
lockedParamsLockedParams5
sharingcmind.modelmanager.v1.Sharing6

UpdatePresetAgentRequest

FieldTypeNumberDescription
namestring1
updatePresetAgentUpdate2

UpdatePresetAgentResponse

FieldTypeNumberDescription
presetAgentPresetAgent1

DeletePresetAgentRequest

FieldTypeNumberDescription
namestring1

DeletePresetAgentResponse

ListPresetAgentsRequest

FieldTypeNumberDescription
accessPresetAgentAccessFilter1A value outside the enum is rejected with InvalidArgument rather than defaulted, because answering a different question than the caller asked is worse than failing.

PresetAgentSummary

List view for preset agents

FieldTypeNumberDescription
namestring1
displayNamestring2
baseModelstring3
shareToAllbool4
tenantIdstring5Owning tenant
availabilityPresetAgentAvailability6

ListPresetAgentsResponse

FieldTypeNumberDescription
presetAgentsrepeated PresetAgentSummary1

ListPresetAgentPermissionsRequest

FieldTypeNumberDescription
namestring1
subjectTypeoptional cmind.permissions.v1.SubjectType2
roleoptional cmind.permissions.v1.DeploymentRole3

ListPresetAgentPermissionsResponse

FieldTypeNumberDescription
permissionsrepeated cmind.permissions.v1.DeploymentPermission1

AddPresetAgentPermissionRequest

FieldTypeNumberDescription
namestring1
subjectcmind.permissions.v1.Subject2
rolecmind.permissions.v1.DeploymentRole3

AddPresetAgentPermissionResponse

RemovePresetAgentPermissionRequest

FieldTypeNumberDescription
namestring1
subjectcmind.permissions.v1.Subject2
rolecmind.permissions.v1.DeploymentRole3

RemovePresetAgentPermissionResponse

GetPresetAgentMcpOAuthMetadataRequest

FieldTypeNumberDescription
agentNamestring1
serverNamestring2

GetPresetAgentMcpOAuthMetadataResponse

FieldTypeNumberDescription
oauthExternalMcpOAuthConfig1
redirectUristring2
metadataVersionstring3

ExchangePresetAgentMcpOAuthTokenRequest

Exactly one grant: authorization code or refresh token. The endpoint and client credentials are resolved from the currently pinned MCP resource.

FieldTypeNumberDescription
agentNamestring1
serverNamestring2
codestring3
codeVerifierstring4
redirectUristring5
refreshTokenstring6
metadataVersionstring7

ExchangePresetAgentMcpOAuthTokenResponse

FieldTypeNumberDescription
accessTokenstring1
tokenTypestring2
expiresInint643
refreshTokenstring4
scopestring5

Services

PresetAgentService

In FGA, preset agents use the dedicated preset_agent type.

CreatePresetAgent

POST /cmind.agents.v1.PresetAgentService/CreatePresetAgent

Creates a preset agent owned by a tenant

Request: CreatePresetAgentRequest

Response: CreatePresetAgentResponse

CreatePlatformPresetAgent

POST /cmind.agents.v1.PresetAgentService/CreatePlatformPresetAgent

Creates a preset agent owned by the platform

Request: CreatePlatformPresetAgentRequest

Response: CreatePlatformPresetAgentResponse

GetPresetAgent

GET /cmind.agents.v1.PresetAgentService/GetPresetAgent

Request: GetPresetAgentRequest

Response: GetPresetAgentResponse

UpdatePresetAgent

POST /cmind.agents.v1.PresetAgentService/UpdatePresetAgent

Request: UpdatePresetAgentRequest

Response: UpdatePresetAgentResponse

DeletePresetAgent

POST /cmind.agents.v1.PresetAgentService/DeletePresetAgent

Request: DeletePresetAgentRequest

Response: DeletePresetAgentResponse

ListPresetAgents

GET /cmind.agents.v1.PresetAgentService/ListPresetAgents

The handler returns every agent the caller holds the requested access on; see ListPresetAgentsRequest.access

Request: ListPresetAgentsRequest

Response: ListPresetAgentsResponse

ListPresetAgentPermissions

GET /cmind.agents.v1.PresetAgentService/ListPresetAgentPermissions

Request: ListPresetAgentPermissionsRequest

Response: ListPresetAgentPermissionsResponse

AddPresetAgentPermission

POST /cmind.agents.v1.PresetAgentService/AddPresetAgentPermission

Request: AddPresetAgentPermissionRequest

Response: AddPresetAgentPermissionResponse

RemovePresetAgentPermission

POST /cmind.agents.v1.PresetAgentService/RemovePresetAgentPermission

Request: RemovePresetAgentPermissionRequest

Response: RemovePresetAgentPermissionResponse

GetPresetAgentMcpOAuthMetadata

POST /cmind.agents.v1.PresetAgentService/GetPresetAgentMcpOAuthMetadata

Returns OAuth bootstrap metadata for an MCP server pinned by this ready agent. The caller needs access to the agent, not a direct server grant.

Request: GetPresetAgentMcpOAuthMetadataRequest

Response: GetPresetAgentMcpOAuthMetadataResponse

ExchangePresetAgentMcpOAuthToken

POST /cmind.agents.v1.PresetAgentService/ExchangePresetAgentMcpOAuthToken

Exchanges or refreshes a caller-owned OAuth token for an MCP server pinned by this ready agent. The agent and server are re-read for every exchange.

Request: ExchangePresetAgentMcpOAuthTokenRequest

Response: ExchangePresetAgentMcpOAuthTokenResponse