Skip to content

Documentation / @agentick/core / AgentickInstance

Class: AgentickInstance ​

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

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:700

Internal

Parameters ​

options? ​
telemetryProvider? ​

TelemetryProvider

Returns ​

AgentickInstance

Properties ​

run ​

readonly run: Procedure<RunHandler, true>

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

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:806

Get the telemetry provider.

Returns ​

TelemetryProvider | undefined

Set Signature ​

set telemetryProvider(provider): void

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

Set the telemetry provider.

Parameters ​
provider ​

TelemetryProvider | undefined

Returns ​

void

Methods ​

clear() ​

clear(): this

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

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

Returns ​

this


create() ​

create(options?): AgentickInstance

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

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:880

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:772

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:755

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.