docs/API_REFERENCE.md
This is a source-oriented reference for the TypeScript runtime and its core extension points.
AgentRuntimepackages/typescript/src/runtime.tsIAgentRuntime (packages/typescript/src/types/runtime.ts)Key methods:
constructor(opts?: { character?: Character; plugins?: Plugin[]; adapter?: IDatabaseAdapter; ... })initialize(options?: { skipMigrations?: boolean }): Promise<void>stop(): Promise<void>registerPlugin(plugin: Plugin): Promise<void>composeState(message: Memory, includeList?: string[] | null, onlyInclude?: boolean, skipCache?: boolean): Promise<State>useModel(modelType: TextGenerationModelType, params: GenerateTextParams, provider?: string): Promise<string>useModel<T extends keyof ModelParamsMap, R = ModelResultMap[T]>(modelType: T, params: ModelParamsMap[T], provider?: string): Promise<R>registerModel(modelType: ModelTypeName | string, handler, provider: string, priority?: number): voidgetModel(modelType: ModelTypeName | string): ((runtime, params) => Promise<unknown>) | undefinedprocessActions(message: Memory, responses: Memory[], state?: State, callback?: HandlerCallback, options?: { onStreamChunk?: (chunk: string, messageId?: string) => Promise<void> }): Promise<void>evaluate(message: Memory, state?: State, didRespond?: boolean, callback?: HandlerCallback, responses?: Memory[]): Promise<Evaluator[] | null>registerAction(action: Action): voidregisterProvider(provider: Provider): voidregisterEvaluator(evaluator: Evaluator): voidregisterService(service: typeof Service): Promise<void>getService<T extends Service>(serviceName: ServiceTypeName | string): T | nullIAgentRuntime extends IDatabaseAdapter in packages/typescript/src/types/runtime.tsPluginpackages/typescript/src/types/plugin.tsexport interface Plugin {
name: string;
description: string;
init?: (config: Record<string, string>, runtime: IAgentRuntime) => Promise<void>;
config?: Record<string, string | number | boolean | null>;
services?: (typeof Service)[];
componentTypes?: ComponentTypeDefinition[];
actions?: Action[];
providers?: Provider[];
evaluators?: Evaluator[];
adapter?: IDatabaseAdapter;
models?: { [K in keyof ModelParamsMap]?: (runtime: IAgentRuntime, params: ModelParamsMap[K]) => Promise<PluginModelResult<K>> };
events?: PluginEvents;
routes?: Route[];
tests?: TestSuite[];
dependencies?: string[];
testDependencies?: string[];
priority?: number;
schema?: Record<string, unknown>;
}
packages/typescript/src/types/components.tsActionexport interface Action {
name: string;
description: string;
handler: Handler;
validate: Validator;
similes?: string[];
examples?: ActionExample[][];
priority?: number;
tags?: string[];
parameters?: ActionParameter[];
}
Providerexport interface Provider {
name: string;
description?: string;
dynamic?: boolean;
position?: number;
private?: boolean;
get: (runtime: IAgentRuntime, message: Memory, state: State) => Promise<ProviderResult>;
}
Evaluatorexport interface Evaluator {
alwaysRun?: boolean;
description: string;
similes?: string[];
examples: EvaluationExample[];
handler: Handler;
name: string;
validate: Validator;
}
packages/typescript/src/types/state.tsexport interface State {
values: StateValues;
data: StateData;
text: string;
[key: string]: unknown;
}
packages/typescript/src/types/memory.tsexport interface Memory {
id?: UUID;
entityId: UUID;
agentId?: UUID;
createdAt?: number;
content: Content;
embedding?: number[];
roomId: UUID;
worldId?: UUID;
unique?: boolean;
similarity?: number;
metadata?: MemoryMetadata;
}
Helper:
createMessageMemory(...): packages/typescript/src/memory.tsDatabaseAdapterpackages/typescript/src/database.tsDatabaseAdapter is an abstract base class implementing IDatabaseAdapter. Concrete adapters (e.g. SQL/PGLite/Postgres) live in plugins such as @elizaos/plugin-sql.
See packages/interop/README.md and INTEROP_GUIDE.md for the cross-language plugin contract and loaders.