← API reference
CANONICAL TYPE REFERENCE

AIAgentState

A reusable AI agent persona definition for LLM-driven workflow tasks

Unique identifier

nameString!

Display name

Optional description

roleString!

Short role title

goalString!

What this agent is trying to achieve

backstoryString!

Rich context about expertise and perspective

Which AI adapter to use for LLM calls

modelString

Model override

Temperature override

Max response tokens override

Additional system prompt template

Expected output format

Max tool-calling iterations

Tools this agent can use

Allowlist of GraphQL operations

Timeout for a single invocation

createdAtString!

Creation timestamp (ISO8601)

updatedAtString!

Last update timestamp (ISO8601)

View exact SDL
"""A reusable AI agent persona definition for LLM-driven workflow tasks"""
type AIAgentState @iac_resource(name: "ai_agent") @iac_ops(create: "createAIAgent", read: "getAIAgent", update: "updateAIAgent", delete: "deleteAIAgent") {
  """Unique identifier"""
  id: AIAgentID! @iac_identity(assignedBy: SERVER) @iac_computed
  """Display name"""
  name: String!
  """Optional description"""
  description: String
  """Short role title"""
  role: String!
  """What this agent is trying to achieve"""
  goal: String!
  """Rich context about expertise and perspective"""
  backstory: String!
  """Which AI adapter to use for LLM calls"""
  adapterId: AIAdapterID! @iac_ref(resource: "ai_adapter")
  """Model override"""
  model: String
  """Temperature override"""
  temperature: Float
  """Max response tokens override"""
  maxTokens: Int
  """Additional system prompt template"""
  systemPromptTemplate: String
  """Expected output format"""
  responseFormat: AgentResponseFormat!
  """Max tool-calling iterations"""
  maxIterations: Int!
  """Tools this agent can use"""
  tools: [AgentToolRef!]!
  """Allowlist of GraphQL operations"""
  allowedGraphQLOperations: [String!]
  """Timeout for a single invocation"""
  maxExecutionTimeSeconds: Int
  """Creation timestamp (ISO8601)"""
  createdAt: String! @iac_computed
  """Last update timestamp (ISO8601)"""
  updatedAt: String! @iac_computed
}

One stable address across all schema views. Follow a field’s type to explore connections between domains.