Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

@sms/plugin-agent-loop

Interfaces

AgentLoopOptions

Defined in: packages/plugins/agent-loop/src/index.ts:24

Properties

identity?
optional identity?: string;

Defined in: packages/plugins/agent-loop/src/index.ts:27

Extra identity text placed at the top of the system prompt.

maxSteps?
optional maxSteps?: number;

Defined in: packages/plugins/agent-loop/src/index.ts:25

sessionStore?
optional sessionStore?: AgentSessionStore;

Defined in: packages/plugins/agent-loop/src/index.ts:29

Rehydrates a session on its first chat() in this process.


AgentService

Defined in: packages/plugins/agent-loop/src/contract.ts:57

Methods

chat()
chat(sessionId, text): Promise<ChatResult>;

Defined in: packages/plugins/agent-loop/src/contract.ts:59

Run one turn to completion. Turns on the same session run one after another.

Parameters
ParameterType
sessionIdstring
textstring
Returns

Promise<ChatResult>

chatStream()
chatStream(sessionId, text): AsyncIterable<AgentEvent>;

Defined in: packages/plugins/agent-loop/src/contract.ts:65

The same turn as live events: model deltas (text_delta, thinking_delta when the driver exposes reasoning), tool_start/tool_end, each transcript message, then done or error. The turn keeps running if the consumer stops reading.

Parameters
ParameterType
sessionIdstring
textstring
Returns

AsyncIterable<AgentEvent>

history()
history(sessionId): ModelMessage[];

Defined in: packages/plugins/agent-loop/src/contract.ts:66

Parameters
ParameterType
sessionIdstring
Returns

ModelMessage[]

reset()
reset(sessionId): void;

Defined in: packages/plugins/agent-loop/src/contract.ts:67

Parameters
ParameterType
sessionIdstring
Returns

void

systemPrompt()
systemPrompt(): string;

Defined in: packages/plugins/agent-loop/src/contract.ts:68

Returns

string

tools()
tools(): ModelTool[];

Defined in: packages/plugins/agent-loop/src/contract.ts:69

Returns

ModelTool[]


AgentSessionStore

Defined in: packages/plugins/agent-loop/src/contract.ts:77

Where a session’s prior turns come from when the loop does not have them in memory (a fresh process, an evicted Durable Object), and — through append — where they go as they are produced. Without append an application can still diff agent.history() after each chat().

Methods

append()?
optional append(sessionId, messages): Promise<void>;

Defined in: packages/plugins/agent-loop/src/contract.ts:80

Optional: called with each message as the loop appends it (user text, assistant turn, tool results).

Parameters
ParameterType
sessionIdstring
messagesModelMessage[]
Returns

Promise<void>

load()
load(sessionId): Promise<
  | ModelMessage[]
| undefined>;

Defined in: packages/plugins/agent-loop/src/contract.ts:78

Parameters
ParameterType
sessionIdstring
Returns

Promise< | ModelMessage[] | undefined>


ChatResult

Defined in: packages/plugins/agent-loop/src/contract.ts:52

Properties

reply
reply: string;

Defined in: packages/plugins/agent-loop/src/contract.ts:53

steps
steps: ChatStep[];

Defined in: packages/plugins/agent-loop/src/contract.ts:54


ChatStep

Defined in: packages/plugins/agent-loop/src/contract.ts:45

Properties

error?
optional error?: boolean;

Defined in: packages/plugins/agent-loop/src/contract.ts:49

input
input: unknown;

Defined in: packages/plugins/agent-loop/src/contract.ts:47

output
output: string;

Defined in: packages/plugins/agent-loop/src/contract.ts:48

tool
tool: string;

Defined in: packages/plugins/agent-loop/src/contract.ts:46


PromptSection

Defined in: packages/plugins/agent-loop/src/contract.ts:39

Properties

order?
optional order?: number;

Defined in: packages/plugins/agent-loop/src/contract.ts:42

section
section: string;

Defined in: packages/plugins/agent-loop/src/contract.ts:40

text
text: string | (() => string);

Defined in: packages/plugins/agent-loop/src/contract.ts:41


Tool

Defined in: packages/plugins/agent-loop/src/contract.ts:32

Properties

description
description: string;

Defined in: packages/plugins/agent-loop/src/contract.ts:34

handler
handler: (input) => unknown;

Defined in: packages/plugins/agent-loop/src/contract.ts:36

Parameters
ParameterType
inputRecord<string, unknown>
Returns

unknown

input_schema?
optional input_schema?: Record<string, unknown>;

Defined in: packages/plugins/agent-loop/src/contract.ts:35

name
name: string;

Defined in: packages/plugins/agent-loop/src/contract.ts:33

Type Aliases

AgentEvent

type AgentEvent = 
  | Exclude<ModelEvent, {
  type: "done";
}>
  | {
  id: string;
  input: unknown;
  name: string;
  type: "tool_start";
}
  | {
  id: string;
  step: ChatStep;
  type: "tool_end";
}
  | {
  message: ModelMessage;
  type: "message";
}
  | {
  result: ChatResult;
  type: "done";
}
  | {
  message: string;
  type: "error";
};

Defined in: packages/plugins/agent-loop/src/loop.ts:16

Union Members

Exclude<ModelEvent, { type: "done"; }>


Type Literal
{
  id: string;
  input: unknown;
  name: string;
  type: "tool_start";
}

Type Literal
{
  id: string;
  step: ChatStep;
  type: "tool_end";
}

Type Literal
{
  message: ModelMessage;
  type: "message";
}

A transcript message as it is appended (user text, assistant turn, tool results).


Type Literal
{
  result: ChatResult;
  type: "done";
}

Type Literal
{
  message: string;
  type: "error";
}

Variables

AGENT_KEY

const AGENT_KEY: "agent" = 'agent';

Defined in: packages/plugins/agent-loop/src/contract.ts:10

Key under which the agent loop provides AgentService (system-only).


PROMPT_POINT

const PROMPT_POINT: "prompt" = 'prompt';

Defined in: packages/plugins/agent-loop/src/contract.ts:14

Extension point for { section, text, order? } system prompt sections.


TOOL_POINT

const TOOL_POINT: "tool" = 'tool';

Defined in: packages/plugins/agent-loop/src/contract.ts:12

Extension point for { name, description, input_schema?, handler(input) } tools.

Functions

catalog()

function catalog(kernel): unknown;

Defined in: packages/plugins/agent-loop/src/catalog.ts:5

A JSON summary of the running system for the model. Functions are shown as “[function]”.

Parameters

ParameterType
kernelKernelApi

Returns

unknown


createAgentLoopPlugin()

function createAgentLoopPlugin(opts?): SystemPlugin;

Defined in: packages/plugins/agent-loop/src/index.ts:34

Parameters

ParameterType
optsAgentLoopOptions

Returns

SystemPlugin

References

createModelPlugin

Re-exports createModelPlugin


createScriptedModel

Re-exports createScriptedModel


MODEL_KEY

Re-exports MODEL_KEY


ModelContent

Re-exports ModelContent


ModelEvent

Re-exports ModelEvent


ModelMessage

Re-exports ModelMessage


ModelRequest

Re-exports ModelRequest


ModelResponse

Re-exports ModelResponse


ModelService

Re-exports ModelService


ModelTool

Re-exports ModelTool