TanStack

defineAgent

ts
function defineAgent<TName, TTools, TSchema, TInterrupts>(agent): DefinedAgent<TName, TTools, TSchema, TInterrupts>;

Defined in: packages/ai/src/activities/chat/agents/define-agent.ts:100

Define a named child agent. Pass the same object to chat({ subagents }). Pass the agents array to useChat({ subagents }) when you render parts yourself. The hook uses it for types only. It does not call run.

Type Parameters

TName

TName extends string

TTools

TTools extends readonly SubagentTool[] = readonly []

TSchema

TSchema extends SchemaInput | undefined = undefined

TInterrupts

TInterrupts extends readonly InterruptDefinition<any, any, any, any, any>[] = readonly []

Parameters

agent

DefinedAgent<TName, TTools, TSchema, TInterrupts>

Returns

DefinedAgent<TName, TTools, TSchema, TInterrupts>

Example

ts
const researcher = defineAgent({
  name: 'researcher',
  description: 'Looks up facts',
  run: (ctx) =>
    chat({
      adapter: openaiText('gpt-5.6'),
      messages: ctx.messages,
      threadId: ctx.threadId,
      runId: ctx.runId,
      parentRunId: ctx.parentRunId,
      subagentRunId: ctx.subagentRunId,
      resume: ctx.resume,
    }),
})