Skip to content

Documentation / @agentick/core / AgentickInstance

Class: AgentickInstance

Defined in: core/src/agentick-instance.ts:666

Agentick configuration instance.

Users interact with instances, never the class directly. Agentick is the default global instance.

Implements

  • MiddlewareRegistry

Constructors

Constructor

new AgentickInstance(options?): AgentickInstance

Defined in: core/src/agentick-instance.ts:713

Internal

Parameters

options?
telemetryProvider?

TelemetryProvider

Returns

AgentickInstance

Properties

run

readonly run: Procedure<RunHandler, true>

Defined in: core/src/agentick-instance.ts:708

One-shot execution of a JSX component.

Accepts a JSX element and optional RunInput. Creates a temporary app and session, runs to completion, then cleans up.

Prop merging: Element props are defaults, input.props override them. { ...element.props, ...input.props } — so <Agent query="default" /> with { props: { query: "override" } } uses "override".

Returns SessionExecutionHandle (AsyncIterable, not PromiseLike):

  • await run(...).result → SendResult
  • for await (const event of await run(...)) → StreamEvent

Examples

typescript
const result = await Agentick.run(
  <MyAgent />,
  { messages: [{ role: "user", content: [...] }], model }
).result;
typescript
const handle = await Agentick.run(<MyAgent />, { messages, model });
for await (const event of handle) {
  if (event.type === 'content_delta') {
    process.stdout.write(event.delta);
  }
}
typescript
const loggedRun = Agentick.run.use(loggingMiddleware);
const result = await loggedRun(<MyAgent />, { messages, model }).result;

Accessors

telemetryProvider

Get Signature

get telemetryProvider(): TelemetryProvider | undefined

Defined in: core/src/agentick-instance.ts:819

Get the telemetry provider.

Returns

TelemetryProvider | undefined

Set Signature

set telemetryProvider(provider): void

Defined in: core/src/agentick-instance.ts:826

Set the telemetry provider.

Parameters
provider

TelemetryProvider | undefined

Returns

void

Methods

clear()

clear(): this

Defined in: core/src/agentick-instance.ts:811

Clear all registered middleware. Useful for testing or resetting state.

Returns

this


create()

create(options?): AgentickInstance

Defined in: core/src/agentick-instance.ts:850

Create a child instance.

By default, the child inherits all middleware from this instance. Use inheritDefaults: false for a completely isolated instance.

Parameters

options?

AgentickInstanceCreateOptions = {}

Instance options

Returns

AgentickInstance

A new AgentickInstance

Example

typescript
// Create scoped instance that inherits global middleware
const scoped = Agentick.create();
scoped.use('model:generate', rateLimitMiddleware);
const app = scoped.createApp(MyAgent);

// Create isolated instance (no inheritance)
const isolated = Agentick.create({ inheritDefaults: false });

createApp()

createApp<P>(Component, options?): App<P>

Defined in: core/src/agentick-instance.ts:893

Create an app from a component function.

The app inherits middleware from this Agentick instance.

Type Parameters

P

P

Parameters

Component

ComponentFunction<P>

The component function that defines the Model Interface

options?

AppOptions = {}

App configuration options

Returns

App<P>

An App instance with run, send, and session methods

Example

typescript
const MyAgent = ({ query }) => (
  <>
    <System>You are helpful.</System>
    <Timeline />
    <User>{query}</User>
  </>
);

// Use global Agentick
const app = createApp(MyAgent, { model });

// Use scoped instance
const scoped = Agentick.create();
scoped.use('tool:*', authMiddleware);
const scopedApp = scoped.createApp(MyAgent, { model });

getMiddlewareFor()

getMiddlewareFor(procedureName): Middleware[]

Defined in: core/src/agentick-instance.ts:785

Get middleware matching a procedure name.

Resolution order:

  1. Global ('*')
  2. Category wildcard (e.g., 'tool:*' matches 'tool:run')
  3. Exact match (e.g., 'tool:run')

Parameters

procedureName

string

The procedure name to match (e.g., 'tool:run', 'model:generate')

Returns

Middleware[]

Array of middleware functions in execution order

Implementation of

MiddlewareRegistry.getMiddlewareFor


use()

use(key, ...middleware): this

Defined in: core/src/agentick-instance.ts:768

Register middleware for a procedure pattern.

Keys can be:

  • '*' - all procedures
  • 'tool:*' - all tool procedures (tool:run, etc.)
  • 'model:*' - all model procedures (model:generate, model:stream)
  • 'tool:run' - specific procedure name
  • 'model:generate' - specific procedure name

Middleware is executed in order: global → category → specific

Parameters

key

string

Procedure pattern to match

middleware

...Middleware[]

Middleware functions to register

Returns

this

this for chaining

Example

typescript
Agentick
  .use('*', loggingMiddleware)
  .use('tool:*', authMiddleware)
  .use('model:generate', rateLimitMiddleware);

Released under the ISC License.