-
Notifications
You must be signed in to change notification settings - Fork 5k
/
Copy pathsearch-doc-1732515330367.json
1 lines (1 loc) · 795 KB
/
search-doc-1732515330367.json
1
{"searchDocs":[{"title":"Class: FsCacheAdapter","type":0,"sectionRef":"#","url":"/eliza/api/classes/FsCacheAdapter/","content":"","keywords":"","version":"Next"},{"title":"Implements","type":1,"pageTitle":"Class: FsCacheAdapter","url":"/eliza/api/classes/FsCacheAdapter/#implements","content":" ICacheAdapter ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: FsCacheAdapter","url":"/eliza/api/classes/FsCacheAdapter/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new FsCacheAdapter()","type":1,"pageTitle":"Class: FsCacheAdapter","url":"/eliza/api/classes/FsCacheAdapter/#new-fscacheadapter","content":" new FsCacheAdapter(dataDir): FsCacheAdapter Parameters • dataDir: string Returns FsCacheAdapter Defined in packages/core/src/cache.ts:37 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: FsCacheAdapter","url":"/eliza/api/classes/FsCacheAdapter/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"get()","type":1,"pageTitle":"Class: FsCacheAdapter","url":"/eliza/api/classes/FsCacheAdapter/#get","content":" get(key): Promise<string> Parameters • key: string Returns Promise<string> Implementation of ICacheAdapter.get Defined in packages/core/src/cache.ts:39 ","version":"Next","tagName":"h3"},{"title":"set()","type":1,"pageTitle":"Class: FsCacheAdapter","url":"/eliza/api/classes/FsCacheAdapter/#set","content":" set(key, value): Promise<void> Parameters • key: string • value: string Returns Promise<void> Implementation of ICacheAdapter.set Defined in packages/core/src/cache.ts:48 ","version":"Next","tagName":"h3"},{"title":"delete()","type":1,"pageTitle":"Class: FsCacheAdapter","url":"/eliza/api/classes/FsCacheAdapter/#delete","content":" delete(key): Promise<void> Parameters • key: string Returns Promise<void> Implementation of ICacheAdapter.delete Defined in packages/core/src/cache.ts:59 ","version":"Next","tagName":"h3"},{"title":"Class: DbCacheAdapter","type":0,"sectionRef":"#","url":"/eliza/api/classes/DbCacheAdapter/","content":"","keywords":"","version":"Next"},{"title":"Implements","type":1,"pageTitle":"Class: DbCacheAdapter","url":"/eliza/api/classes/DbCacheAdapter/#implements","content":" ICacheAdapter ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: DbCacheAdapter","url":"/eliza/api/classes/DbCacheAdapter/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new DbCacheAdapter()","type":1,"pageTitle":"Class: DbCacheAdapter","url":"/eliza/api/classes/DbCacheAdapter/#new-dbcacheadapter","content":" new DbCacheAdapter(db, agentId): DbCacheAdapter Parameters • db: IDatabaseCacheAdapter • agentId: `${string}-${string}-${string}-${string}-${string}` Returns DbCacheAdapter Defined in packages/core/src/cache.ts:70 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: DbCacheAdapter","url":"/eliza/api/classes/DbCacheAdapter/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"get()","type":1,"pageTitle":"Class: DbCacheAdapter","url":"/eliza/api/classes/DbCacheAdapter/#get","content":" get(key): Promise<string> Parameters • key: string Returns Promise<string> Implementation of ICacheAdapter.get Defined in packages/core/src/cache.ts:75 ","version":"Next","tagName":"h3"},{"title":"set()","type":1,"pageTitle":"Class: DbCacheAdapter","url":"/eliza/api/classes/DbCacheAdapter/#set","content":" set(key, value): Promise<void> Parameters • key: string • value: string Returns Promise<void> Implementation of ICacheAdapter.set Defined in packages/core/src/cache.ts:79 ","version":"Next","tagName":"h3"},{"title":"delete()","type":1,"pageTitle":"Class: DbCacheAdapter","url":"/eliza/api/classes/DbCacheAdapter/#delete","content":" delete(key): Promise<void> Parameters • key: string Returns Promise<void> Implementation of ICacheAdapter.delete Defined in packages/core/src/cache.ts:83 ","version":"Next","tagName":"h3"},{"title":"Class: CacheManager<CacheAdapter>","type":0,"sectionRef":"#","url":"/eliza/api/classes/CacheManager/","content":"","keywords":"","version":"Next"},{"title":"Type Parameters","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#type-parameters","content":" • CacheAdapter extends ICacheAdapter = ICacheAdapter ","version":"Next","tagName":"h2"},{"title":"Implements","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#implements","content":" ICacheManager ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new CacheManager()","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#new-cachemanager","content":" new CacheManager<CacheAdapter>(adapter): CacheManager<CacheAdapter> Parameters • adapter: CacheAdapter Returns CacheManager<CacheAdapter> Defined in packages/core/src/cache.ts:93 ","version":"Next","tagName":"h3"},{"title":"Properties","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"adapter","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#adapter","content":" adapter: CacheAdapter Defined in packages/core/src/cache.ts:91 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"get()","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#get","content":" get<T>(key): Promise<T> Type Parameters • T = unknown Parameters • key: string Returns Promise<T> Implementation of ICacheManager.get Defined in packages/core/src/cache.ts:97 ","version":"Next","tagName":"h3"},{"title":"set()","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#set","content":" set<T>(key, value, opts?): Promise<void> Type Parameters • T Parameters • key: string • value: T • opts?: CacheOptions Returns Promise<void> Implementation of ICacheManager.set Defined in packages/core/src/cache.ts:116 ","version":"Next","tagName":"h3"},{"title":"delete()","type":1,"pageTitle":"Class: CacheManager<CacheAdapter>","url":"/eliza/api/classes/CacheManager/#delete","content":" delete(key): Promise<void> Parameters • key: string Returns Promise<void> Implementation of ICacheManager.delete Defined in packages/core/src/cache.ts:123 ","version":"Next","tagName":"h3"},{"title":"@ai16z/eliza v0.1.4-alpha.3","type":0,"sectionRef":"#","url":"/eliza/api/","content":"","keywords":"","version":"Next"},{"title":"Enumerations","type":1,"pageTitle":"@ai16z/eliza v0.1.4-alpha.3","url":"/eliza/api/#enumerations","content":" GoalStatusModelClassModelProviderNameClientsServiceTypeLoggingLevel ","version":"Next","tagName":"h2"},{"title":"Classes","type":1,"pageTitle":"@ai16z/eliza v0.1.4-alpha.3","url":"/eliza/api/#classes","content":" MemoryCacheAdapterFsCacheAdapterDbCacheAdapterCacheManagerDatabaseAdapterMemoryManagerAgentRuntimeService ","version":"Next","tagName":"h2"},{"title":"Interfaces","type":1,"pageTitle":"@ai16z/eliza v0.1.4-alpha.3","url":"/eliza/api/#interfaces","content":" ICacheAdapterGenerationOptionsContentActionExampleConversationExampleActorObjectiveGoalStateMemoryMessageExampleActionEvaluationExampleEvaluatorProviderRelationshipAccountParticipantRoomIDatabaseAdapterIDatabaseCacheAdapterIMemoryManagerICacheManagerIAgentRuntimeIImageDescriptionServiceITranscriptionServiceIVideoServiceITextGenerationServiceIBrowserServiceISpeechServiceIPdfService ","version":"Next","tagName":"h2"},{"title":"Type Aliases","type":1,"pageTitle":"@ai16z/eliza v0.1.4-alpha.3","url":"/eliza/api/#type-aliases","content":" EnvConfigCharacterConfigUUIDModelModelsHandlerHandlerCallbackValidatorMediaClientPluginCharacterCacheOptionsKnowledgeItem ","version":"Next","tagName":"h2"},{"title":"Variables","type":1,"pageTitle":"@ai16z/eliza v0.1.4-alpha.3","url":"/eliza/api/#variables","content":" defaultCharacterenvSchemaCharacterSchemaevaluationTemplateknowledgeelizaLoggerembeddingDimensionembeddingZeroVectormodelsmessageCompletionFootershouldRespondFooterbooleanFooterstringArrayFootersettings ","version":"Next","tagName":"h2"},{"title":"Functions","type":1,"pageTitle":"@ai16z/eliza v0.1.4-alpha.3","url":"/eliza/api/#functions","content":" composeActionExamplesformatActionNamesformatActionscomposeContextaddHeaderembedretrieveCachedEmbeddingvalidateEnvvalidateCharacterConfigformatEvaluatorNamesformatEvaluatorsformatEvaluatorExamplesformatEvaluatorExampleDescriptionsgenerateTexttrimTokensgenerateShouldRespondsplitChunksgenerateTrueOrFalsegenerateTextArraygenerateObjectgenerateObjectArraygenerateMessageResponsegenerateImagegenerateCaptiongenerateObjectV2handleProvidergetGoalsformatGoalsAsStringupdateGoalcreateGoalgetActorDetailsformatActorsformatMessagesformatTimestampgetModelgetEndpointparseShouldRespondFromTextparseBooleanFromTextparseJsonArrayFromTextparseJSONObjectFromTextformatPostsgetProviderscreateRelationshipgetRelationshipgetRelationshipsformatRelationshipsfindNearestEnvFileconfigureSettingsloadEnvConfiggetEnvVariablehasEnvVariablestringToUuid ","version":"Next","tagName":"h2"},{"title":"Class: MemoryCacheAdapter","type":0,"sectionRef":"#","url":"/eliza/api/classes/MemoryCacheAdapter/","content":"","keywords":"","version":"Next"},{"title":"Implements","type":1,"pageTitle":"Class: MemoryCacheAdapter","url":"/eliza/api/classes/MemoryCacheAdapter/#implements","content":" ICacheAdapter ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: MemoryCacheAdapter","url":"/eliza/api/classes/MemoryCacheAdapter/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new MemoryCacheAdapter()","type":1,"pageTitle":"Class: MemoryCacheAdapter","url":"/eliza/api/classes/MemoryCacheAdapter/#new-memorycacheadapter","content":" new MemoryCacheAdapter(initalData?): MemoryCacheAdapter Parameters • initalData?: Map<string, string> Returns MemoryCacheAdapter Defined in packages/core/src/cache.ts:19 ","version":"Next","tagName":"h3"},{"title":"Properties","type":1,"pageTitle":"Class: MemoryCacheAdapter","url":"/eliza/api/classes/MemoryCacheAdapter/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"data","type":1,"pageTitle":"Class: MemoryCacheAdapter","url":"/eliza/api/classes/MemoryCacheAdapter/#data","content":" data: Map<string, string> Defined in packages/core/src/cache.ts:17 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: MemoryCacheAdapter","url":"/eliza/api/classes/MemoryCacheAdapter/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"get()","type":1,"pageTitle":"Class: MemoryCacheAdapter","url":"/eliza/api/classes/MemoryCacheAdapter/#get","content":" get(key): Promise<string> Parameters • key: string Returns Promise<string> Implementation of ICacheAdapter.get Defined in packages/core/src/cache.ts:23 ","version":"Next","tagName":"h3"},{"title":"set()","type":1,"pageTitle":"Class: MemoryCacheAdapter","url":"/eliza/api/classes/MemoryCacheAdapter/#set","content":" set(key, value): Promise<void> Parameters • key: string • value: string Returns Promise<void> Implementation of ICacheAdapter.set Defined in packages/core/src/cache.ts:27 ","version":"Next","tagName":"h3"},{"title":"delete()","type":1,"pageTitle":"Class: MemoryCacheAdapter","url":"/eliza/api/classes/MemoryCacheAdapter/#delete","content":" delete(key): Promise<void> Parameters • key: string Returns Promise<void> Implementation of ICacheAdapter.delete Defined in packages/core/src/cache.ts:31 ","version":"Next","tagName":"h3"},{"title":"Enumeration: GoalStatus","type":0,"sectionRef":"#","url":"/eliza/api/enumerations/GoalStatus/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: GoalStatus","url":"/eliza/api/enumerations/GoalStatus/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"DONE","type":1,"pageTitle":"Enumeration: GoalStatus","url":"/eliza/api/enumerations/GoalStatus/#done","content":" DONE: "DONE" Defined in packages/core/src/types.ts:100 ","version":"Next","tagName":"h3"},{"title":"FAILED","type":1,"pageTitle":"Enumeration: GoalStatus","url":"/eliza/api/enumerations/GoalStatus/#failed","content":" FAILED: "FAILED" Defined in packages/core/src/types.ts:101 ","version":"Next","tagName":"h3"},{"title":"IN_PROGRESS","type":1,"pageTitle":"Enumeration: GoalStatus","url":"/eliza/api/enumerations/GoalStatus/#in_progress","content":" IN_PROGRESS: "IN_PROGRESS" Defined in packages/core/src/types.ts:102 ","version":"Next","tagName":"h3"},{"title":"Enumeration: Clients","type":0,"sectionRef":"#","url":"/eliza/api/enumerations/Clients/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/api/enumerations/Clients/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"Class: abstract Service","type":0,"sectionRef":"#","url":"/eliza/api/classes/Service/","content":"","keywords":"","version":"Next"},{"title":"Extended by","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/api/classes/Service/#extended-by","content":" IImageDescriptionServiceITranscriptionServiceIVideoServiceITextGenerationServiceIBrowserServiceISpeechServiceIPdfService ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/api/classes/Service/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new Service()","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/api/classes/Service/#new-service","content":" new Service(): Service Returns Service ","version":"Next","tagName":"h3"},{"title":"Accessors","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/api/classes/Service/#accessors","content":" ","version":"Next","tagName":"h2"},{"title":"serviceType","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/api/classes/Service/#servicetype","content":" Get Signature get static serviceType(): ServiceType Returns ServiceType Defined in packages/core/src/types.ts:916 ","version":"Next","tagName":"h3"},{"title":"serviceType","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/api/classes/Service/#servicetype-1","content":" Get Signature get serviceType(): ServiceType Returns ServiceType Defined in packages/core/src/types.ts:927 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/api/classes/Service/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"getInstance()","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/api/classes/Service/#getinstance","content":" static getInstance<T>(): T Type Parameters • T extends Service Returns T Defined in packages/core/src/types.ts:920 ","version":"Next","tagName":"h3"},{"title":"initialize()","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/api/classes/Service/#initialize","content":" abstract initialize(runtime): Promise<void> Add abstract initialize method that must be implemented by derived classes Parameters • runtime: IAgentRuntime Returns Promise<void> Defined in packages/core/src/types.ts:932 ","version":"Next","tagName":"h3"},{"title":"Enumeration: ModelClass","type":0,"sectionRef":"#","url":"/eliza/api/enumerations/ModelClass/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/api/enumerations/ModelClass/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"SMALL","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/api/enumerations/ModelClass/#small","content":" SMALL: "small" Defined in packages/core/src/types.ts:132 ","version":"Next","tagName":"h3"},{"title":"MEDIUM","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/api/enumerations/ModelClass/#medium","content":" MEDIUM: "medium" Defined in packages/core/src/types.ts:133 ","version":"Next","tagName":"h3"},{"title":"LARGE","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/api/enumerations/ModelClass/#large","content":" LARGE: "large" Defined in packages/core/src/types.ts:134 ","version":"Next","tagName":"h3"},{"title":"EMBEDDING","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/api/enumerations/ModelClass/#embedding","content":" EMBEDDING: "embedding" Defined in packages/core/src/types.ts:135 ","version":"Next","tagName":"h3"},{"title":"IMAGE","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/api/enumerations/ModelClass/#image","content":" IMAGE: "image" Defined in packages/core/src/types.ts:136 ","version":"Next","tagName":"h3"},{"title":"DISCORD","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/api/enumerations/Clients/#discord","content":" DISCORD: "discord" Defined in packages/core/src/types.ts:582 ","version":"Next","tagName":"h3"},{"title":"DIRECT","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/api/enumerations/Clients/#direct","content":" DIRECT: "direct" Defined in packages/core/src/types.ts:583 ","version":"Next","tagName":"h3"},{"title":"TWITTER","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/api/enumerations/Clients/#twitter","content":" TWITTER: "twitter" Defined in packages/core/src/types.ts:584 ","version":"Next","tagName":"h3"},{"title":"TELEGRAM","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/api/enumerations/Clients/#telegram","content":" TELEGRAM: "telegram" Defined in packages/core/src/types.ts:585 ","version":"Next","tagName":"h3"},{"title":"Enumeration: LoggingLevel","type":0,"sectionRef":"#","url":"/eliza/api/enumerations/LoggingLevel/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: LoggingLevel","url":"/eliza/api/enumerations/LoggingLevel/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"DEBUG","type":1,"pageTitle":"Enumeration: LoggingLevel","url":"/eliza/api/enumerations/LoggingLevel/#debug","content":" DEBUG: "debug" Defined in packages/core/src/types.ts:1089 ","version":"Next","tagName":"h3"},{"title":"VERBOSE","type":1,"pageTitle":"Enumeration: LoggingLevel","url":"/eliza/api/enumerations/LoggingLevel/#verbose","content":" VERBOSE: "verbose" Defined in packages/core/src/types.ts:1090 ","version":"Next","tagName":"h3"},{"title":"NONE","type":1,"pageTitle":"Enumeration: LoggingLevel","url":"/eliza/api/enumerations/LoggingLevel/#none","content":" NONE: "none" Defined in packages/core/src/types.ts:1091 ","version":"Next","tagName":"h3"},{"title":"Class: MemoryManager","type":0,"sectionRef":"#","url":"/eliza/api/classes/MemoryManager/","content":"","keywords":"","version":"Next"},{"title":"Implements","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#implements","content":" IMemoryManager ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new MemoryManager()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#new-memorymanager","content":" new MemoryManager(opts): MemoryManager Constructs a new MemoryManager instance. Parameters • opts Options for the manager. • opts.tableName: string The name of the table this manager will operate on. • opts.runtime: IAgentRuntime The AgentRuntime instance associated with this manager. Returns MemoryManager Defined in packages/core/src/memory.ts:36 ","version":"Next","tagName":"h3"},{"title":"Properties","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"runtime","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#runtime","content":" runtime: IAgentRuntime The AgentRuntime instance associated with this manager. Implementation of IMemoryManager.runtime Defined in packages/core/src/memory.ts:23 ","version":"Next","tagName":"h3"},{"title":"tableName","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#tablename","content":" tableName: string The name of the database table this manager operates on. Implementation of IMemoryManager.tableName Defined in packages/core/src/memory.ts:28 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"addEmbeddingToMemory()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#addembeddingtomemory","content":" addEmbeddingToMemory(memory): Promise<Memory> Adds an embedding vector to a memory object if one doesn't already exist. The embedding is generated from the memory's text content using the runtime's embedding model. If the memory has no text content, an error is thrown. Parameters • memory: Memory The memory object to add an embedding to Returns Promise<Memory> The memory object with an embedding vector added Throws Error if the memory content is empty Implementation of IMemoryManager.addEmbeddingToMemory Defined in packages/core/src/memory.ts:55 ","version":"Next","tagName":"h3"},{"title":"getMemories()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#getmemories","content":" getMemories(opts): Promise<Memory[]> Retrieves a list of memories by user IDs, with optional deduplication. Parameters • opts Options including user IDs, count, and uniqueness. • opts.roomId: `${string}-${string}-${string}-${string}-${string}` The room ID to retrieve memories for. • opts.count?: number = 10 The number of memories to retrieve. • opts.unique?: boolean = true Whether to retrieve unique memories only. • opts.start?: number • opts.end?: number Returns Promise<Memory[]> A Promise resolving to an array of Memory objects. Implementation of IMemoryManager.getMemories Defined in packages/core/src/memory.ts:90 ","version":"Next","tagName":"h3"},{"title":"getCachedEmbeddings()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#getcachedembeddings","content":" getCachedEmbeddings(content): Promise<object[]> Parameters • content: string Returns Promise<object[]> Implementation of IMemoryManager.getCachedEmbeddings Defined in packages/core/src/memory.ts:114 ","version":"Next","tagName":"h3"},{"title":"searchMemoriesByEmbedding()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#searchmemoriesbyembedding","content":" searchMemoriesByEmbedding(embedding, opts): Promise<Memory[]> Searches for memories similar to a given embedding vector. Parameters • embedding: number[] The embedding vector to search with. • opts Options including match threshold, count, user IDs, and uniqueness. • opts.match_threshold?: number The similarity threshold for matching memories. • opts.count?: number The maximum number of memories to retrieve. • opts.roomId: `${string}-${string}-${string}-${string}-${string}` The room ID to retrieve memories for. • opts.unique?: boolean Whether to retrieve unique memories only. Returns Promise<Memory[]> A Promise resolving to an array of Memory objects that match the embedding. Implementation of IMemoryManager.searchMemoriesByEmbedding Defined in packages/core/src/memory.ts:140 ","version":"Next","tagName":"h3"},{"title":"createMemory()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#creatememory","content":" createMemory(memory, unique): Promise<void> Creates a new memory in the database, with an option to check for similarity before insertion. Parameters • memory: Memory The memory object to create. • unique: boolean = false Whether to check for similarity before insertion. Returns Promise<void> A Promise that resolves when the operation completes. Implementation of IMemoryManager.createMemory Defined in packages/core/src/memory.ts:175 ","version":"Next","tagName":"h3"},{"title":"getMemoriesByRoomIds()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#getmemoriesbyroomids","content":" getMemoriesByRoomIds(params): Promise<Memory[]> Parameters • params • params.roomIds: `${string}-${string}-${string}-${string}-${string}`[] Returns Promise<Memory[]> Implementation of IMemoryManager.getMemoriesByRoomIds Defined in packages/core/src/memory.ts:195 ","version":"Next","tagName":"h3"},{"title":"getMemoryById()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#getmemorybyid","content":" getMemoryById(id): Promise<Memory> Parameters • id: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Memory> Implementation of IMemoryManager.getMemoryById Defined in packages/core/src/memory.ts:202 ","version":"Next","tagName":"h3"},{"title":"removeMemory()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#removememory","content":" removeMemory(memoryId): Promise<void> Removes a memory from the database by its ID. Parameters • memoryId: `${string}-${string}-${string}-${string}-${string}` The ID of the memory to remove. Returns Promise<void> A Promise that resolves when the operation completes. Implementation of IMemoryManager.removeMemory Defined in packages/core/src/memory.ts:213 ","version":"Next","tagName":"h3"},{"title":"removeAllMemories()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#removeallmemories","content":" removeAllMemories(roomId): Promise<void> Removes all memories associated with a set of user IDs. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The room ID to remove memories for. Returns Promise<void> A Promise that resolves when the operation completes. Implementation of IMemoryManager.removeAllMemories Defined in packages/core/src/memory.ts:225 ","version":"Next","tagName":"h3"},{"title":"countMemories()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/api/classes/MemoryManager/#countmemories","content":" countMemories(roomId, unique): Promise<number> Counts the number of memories associated with a set of user IDs, with an option for uniqueness. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The room ID to count memories for. • unique: boolean = true Whether to count unique memories only. Returns Promise<number> A Promise resolving to the count of memories. Implementation of IMemoryManager.countMemories Defined in packages/core/src/memory.ts:238 ","version":"Next","tagName":"h3"},{"title":"Enumeration: ServiceType","type":0,"sectionRef":"#","url":"/eliza/api/enumerations/ServiceType/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/api/enumerations/ServiceType/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"IMAGE_DESCRIPTION","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/api/enumerations/ServiceType/#image_description","content":" IMAGE_DESCRIPTION: "image_description" Defined in packages/core/src/types.ts:1079 ","version":"Next","tagName":"h3"},{"title":"TRANSCRIPTION","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/api/enumerations/ServiceType/#transcription","content":" TRANSCRIPTION: "transcription" Defined in packages/core/src/types.ts:1080 ","version":"Next","tagName":"h3"},{"title":"VIDEO","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/api/enumerations/ServiceType/#video","content":" VIDEO: "video" Defined in packages/core/src/types.ts:1081 ","version":"Next","tagName":"h3"},{"title":"TEXT_GENERATION","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/api/enumerations/ServiceType/#text_generation","content":" TEXT_GENERATION: "text_generation" Defined in packages/core/src/types.ts:1082 ","version":"Next","tagName":"h3"},{"title":"BROWSER","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/api/enumerations/ServiceType/#browser","content":" BROWSER: "browser" Defined in packages/core/src/types.ts:1083 ","version":"Next","tagName":"h3"},{"title":"SPEECH_GENERATION","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/api/enumerations/ServiceType/#speech_generation","content":" SPEECH_GENERATION: "speech_generation" Defined in packages/core/src/types.ts:1084 ","version":"Next","tagName":"h3"},{"title":"PDF","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/api/enumerations/ServiceType/#pdf","content":" PDF: "pdf" Defined in packages/core/src/types.ts:1085 ","version":"Next","tagName":"h3"},{"title":"Enumeration: ModelProviderName","type":0,"sectionRef":"#","url":"/eliza/api/enumerations/ModelProviderName/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"OPENAI","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#openai","content":" OPENAI: "openai" Defined in packages/core/src/types.ts:207 ","version":"Next","tagName":"h3"},{"title":"ANTHROPIC","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#anthropic","content":" ANTHROPIC: "anthropic" Defined in packages/core/src/types.ts:208 ","version":"Next","tagName":"h3"},{"title":"GROK","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#grok","content":" GROK: "grok" Defined in packages/core/src/types.ts:209 ","version":"Next","tagName":"h3"},{"title":"GROQ","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#groq","content":" GROQ: "groq" Defined in packages/core/src/types.ts:210 ","version":"Next","tagName":"h3"},{"title":"LLAMACLOUD","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#llamacloud","content":" LLAMACLOUD: "llama_cloud" Defined in packages/core/src/types.ts:211 ","version":"Next","tagName":"h3"},{"title":"LLAMALOCAL","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#llamalocal","content":" LLAMALOCAL: "llama_local" Defined in packages/core/src/types.ts:212 ","version":"Next","tagName":"h3"},{"title":"GOOGLE","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#google","content":" GOOGLE: "google" Defined in packages/core/src/types.ts:213 ","version":"Next","tagName":"h3"},{"title":"CLAUDE_VERTEX","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#claude_vertex","content":" CLAUDE_VERTEX: "claude_vertex" Defined in packages/core/src/types.ts:214 ","version":"Next","tagName":"h3"},{"title":"REDPILL","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#redpill","content":" REDPILL: "redpill" Defined in packages/core/src/types.ts:215 ","version":"Next","tagName":"h3"},{"title":"OPENROUTER","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#openrouter","content":" OPENROUTER: "openrouter" Defined in packages/core/src/types.ts:216 ","version":"Next","tagName":"h3"},{"title":"OLLAMA","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#ollama","content":" OLLAMA: "ollama" Defined in packages/core/src/types.ts:217 ","version":"Next","tagName":"h3"},{"title":"HEURIST","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/api/enumerations/ModelProviderName/#heurist","content":" HEURIST: "heurist" Defined in packages/core/src/types.ts:218 ","version":"Next","tagName":"h3"},{"title":"Function: configureSettings()","type":0,"sectionRef":"#","url":"/eliza/api/functions/configureSettings/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: configureSettings()","url":"/eliza/api/functions/configureSettings/#parameters","content":" • settings: Settings Object containing environment variables ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: configureSettings()","url":"/eliza/api/functions/configureSettings/#returns","content":" void ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: configureSettings()","url":"/eliza/api/functions/configureSettings/#defined-in","content":" packages/core/src/settings.ts:53 ","version":"Next","tagName":"h2"},{"title":"Function: composeContext()","type":0,"sectionRef":"#","url":"/eliza/api/functions/composeContext/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: composeContext()","url":"/eliza/api/functions/composeContext/#parameters","content":" • params The parameters for composing the context. • params.state: State The state object containing values to replace the placeholders in the template. • params.template: string The template string containing placeholders to be replaced with state values. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: composeContext()","url":"/eliza/api/functions/composeContext/#returns","content":" string The composed context string with placeholders replaced by corresponding state values. ","version":"Next","tagName":"h2"},{"title":"Example","type":1,"pageTitle":"Function: composeContext()","url":"/eliza/api/functions/composeContext/#example","content":" // Given a state object and a template const state = { userName: "Alice", userAge: 30 }; const template = "Hello, {{userName}}! You are {{userAge}} years old"; // Composing the context will result in: // "Hello, Alice! You are 30 years old." const context = composeContext({ state, template }); ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: composeContext()","url":"/eliza/api/functions/composeContext/#defined-in","content":" packages/core/src/context.ts:24 ","version":"Next","tagName":"h2"},{"title":"Function: createGoal()","type":0,"sectionRef":"#","url":"/eliza/api/functions/createGoal/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: createGoal()","url":"/eliza/api/functions/createGoal/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.goal: Goal ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: createGoal()","url":"/eliza/api/functions/createGoal/#returns","content":" Promise<void> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: createGoal()","url":"/eliza/api/functions/createGoal/#defined-in","content":" packages/core/src/goals.ts:55 ","version":"Next","tagName":"h2"},{"title":"Function: composeActionExamples()","type":0,"sectionRef":"#","url":"/eliza/api/functions/composeActionExamples/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: composeActionExamples()","url":"/eliza/api/functions/composeActionExamples/#parameters","content":" • actionsData: Action[] An array of Action objects from which to draw examples. • count: number The number of examples to generate. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: composeActionExamples()","url":"/eliza/api/functions/composeActionExamples/#returns","content":" string A string containing formatted examples of conversations. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: composeActionExamples()","url":"/eliza/api/functions/composeActionExamples/#defined-in","content":" packages/core/src/actions.ts:11 ","version":"Next","tagName":"h2"},{"title":"Function: createRelationship()","type":0,"sectionRef":"#","url":"/eliza/api/functions/createRelationship/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: createRelationship()","url":"/eliza/api/functions/createRelationship/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.userA: `${string}-${string}-${string}-${string}-${string}` • __namedParameters.userB: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: createRelationship()","url":"/eliza/api/functions/createRelationship/#returns","content":" Promise<boolean> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: createRelationship()","url":"/eliza/api/functions/createRelationship/#defined-in","content":" packages/core/src/relationships.ts:3 ","version":"Next","tagName":"h2"},{"title":"Function: findNearestEnvFile()","type":0,"sectionRef":"#","url":"/eliza/api/functions/findNearestEnvFile/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: findNearestEnvFile()","url":"/eliza/api/functions/findNearestEnvFile/#parameters","content":" • startDir?: string = ... Starting directory for the search ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: findNearestEnvFile()","url":"/eliza/api/functions/findNearestEnvFile/#returns","content":" string Path to the nearest .env file or null if not found ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: findNearestEnvFile()","url":"/eliza/api/functions/findNearestEnvFile/#defined-in","content":" packages/core/src/settings.ts:27 ","version":"Next","tagName":"h2"},{"title":"Function: addHeader()","type":0,"sectionRef":"#","url":"/eliza/api/functions/addHeader/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: addHeader()","url":"/eliza/api/functions/addHeader/#parameters","content":" • header: string The header to add to the body. • body: string The body to which to add the header. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: addHeader()","url":"/eliza/api/functions/addHeader/#returns","content":" string The body with the header prepended. ","version":"Next","tagName":"h2"},{"title":"Example","type":1,"pageTitle":"Function: addHeader()","url":"/eliza/api/functions/addHeader/#example","content":" // Given a header and a body const header = "Header"; const body = "Body"; // Adding the header to the body will result in: // "Header\\nBody" const text = addHeader(header, body); ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: addHeader()","url":"/eliza/api/functions/addHeader/#defined-in","content":" packages/core/src/context.ts:58 ","version":"Next","tagName":"h2"},{"title":"Function: embed()","type":0,"sectionRef":"#","url":"/eliza/api/functions/embed/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: embed()","url":"/eliza/api/functions/embed/#parameters","content":" • runtime: IAgentRuntime The agent runtime containing model configuration • input: string The text to generate embeddings for ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: embed()","url":"/eliza/api/functions/embed/#returns","content":" Promise<number[]> Array of embedding numbers ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: embed()","url":"/eliza/api/functions/embed/#defined-in","content":" packages/core/src/embedding.ts:79 ","version":"Next","tagName":"h2"},{"title":"Function: formatActions()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatActions/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatActions()","url":"/eliza/api/functions/formatActions/#parameters","content":" • actions: Action[] An array of Action objects to format. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatActions()","url":"/eliza/api/functions/formatActions/#returns","content":" string A detailed string of actions, including names and descriptions. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatActions()","url":"/eliza/api/functions/formatActions/#defined-in","content":" packages/core/src/actions.ts:59 ","version":"Next","tagName":"h2"},{"title":"Class: AgentRuntime","type":0,"sectionRef":"#","url":"/eliza/api/classes/AgentRuntime/","content":"","keywords":"","version":"Next"},{"title":"Implements","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#implements","content":" IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new AgentRuntime()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#new-agentruntime","content":" new AgentRuntime(opts): AgentRuntime Creates an instance of AgentRuntime. Parameters • opts The options for configuring the AgentRuntime. • opts.conversationLength?: number The number of messages to hold in the recent message cache. • opts.agentId?: `${string}-${string}-${string}-${string}-${string}` Optional ID of the agent. • opts.character?: Character • opts.token: string The JWT token, can be a JWT token if outside worker, or an OpenAI token if inside worker. • opts.serverUrl?: string The URL of the worker. • opts.actions?: Action[] Optional custom actions. • opts.evaluators?: Evaluator[] Optional custom evaluators. • opts.plugins?: Plugin[] • opts.providers?: Provider[] Optional context providers. • opts.modelProvider: ModelProviderName • opts.services?: Service[] Optional custom services. • opts.managers?: IMemoryManager[] • opts.databaseAdapter: IDatabaseAdapter The database adapter used for interacting with the database. • opts.fetch?: unknown Custom fetch function to use for making requests. • opts.speechModelPath?: string • opts.cacheManager: ICacheManager • opts.logging?: boolean Returns AgentRuntime Defined in packages/core/src/runtime.ts:202 ","version":"Next","tagName":"h3"},{"title":"Properties","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"agentId","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#agentid","content":" agentId: `${string}-${string}-${string}-${string}-${string}` The ID of the agent Implementation of IAgentRuntime.agentId Defined in packages/core/src/runtime.ts:62 ","version":"Next","tagName":"h3"},{"title":"serverUrl","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#serverurl","content":" serverUrl: string = "http://localhost:7998" The base URL of the server where the agent's requests are processed. Implementation of IAgentRuntime.serverUrl Defined in packages/core/src/runtime.ts:66 ","version":"Next","tagName":"h3"},{"title":"databaseAdapter","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#databaseadapter","content":" databaseAdapter: IDatabaseAdapter The database adapter used for interacting with the database. Implementation of IAgentRuntime.databaseAdapter Defined in packages/core/src/runtime.ts:71 ","version":"Next","tagName":"h3"},{"title":"token","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#token","content":" token: string Authentication token used for securing requests. Implementation of IAgentRuntime.token Defined in packages/core/src/runtime.ts:76 ","version":"Next","tagName":"h3"},{"title":"actions","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#actions","content":" actions: Action[] = [] Custom actions that the agent can perform. Implementation of IAgentRuntime.actions Defined in packages/core/src/runtime.ts:81 ","version":"Next","tagName":"h3"},{"title":"evaluators","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#evaluators","content":" evaluators: Evaluator[] = [] Evaluators used to assess and guide the agent's responses. Implementation of IAgentRuntime.evaluators Defined in packages/core/src/runtime.ts:86 ","version":"Next","tagName":"h3"},{"title":"providers","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#providers","content":" providers: Provider[] = [] Context providers used to provide context for message generation. Implementation of IAgentRuntime.providers Defined in packages/core/src/runtime.ts:91 ","version":"Next","tagName":"h3"},{"title":"plugins","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#plugins","content":" plugins: Plugin[] = [] Implementation of IAgentRuntime.plugins Defined in packages/core/src/runtime.ts:93 ","version":"Next","tagName":"h3"},{"title":"modelProvider","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#modelprovider","content":" modelProvider: ModelProviderName The model to use for generateText. Implementation of IAgentRuntime.modelProvider Defined in packages/core/src/runtime.ts:98 ","version":"Next","tagName":"h3"},{"title":"fetch()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#fetch","content":" fetch: (input, init?) => Promise<Response>(input, init?) => Promise<Response> Fetch function to use Some environments may not have access to the global fetch function and need a custom fetch override. MDN Reference Parameters • input: RequestInfo | URL • init?: RequestInit Returns Promise<Response> Parameters • input: string | Request | URL • init?: RequestInit Returns Promise<Response> Defined in packages/core/src/runtime.ts:104 ","version":"Next","tagName":"h3"},{"title":"character","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#character","content":" character: Character The character to use for the agent Implementation of IAgentRuntime.character Defined in packages/core/src/runtime.ts:109 ","version":"Next","tagName":"h3"},{"title":"messageManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#messagemanager","content":" messageManager: IMemoryManager Store messages that are sent and received by the agent. Implementation of IAgentRuntime.messageManager Defined in packages/core/src/runtime.ts:114 ","version":"Next","tagName":"h3"},{"title":"descriptionManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#descriptionmanager","content":" descriptionManager: IMemoryManager Store and recall descriptions of users based on conversations. Implementation of IAgentRuntime.descriptionManager Defined in packages/core/src/runtime.ts:119 ","version":"Next","tagName":"h3"},{"title":"loreManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#loremanager","content":" loreManager: IMemoryManager Manage the creation and recall of static information (documents, historical game lore, etc) Implementation of IAgentRuntime.loreManager Defined in packages/core/src/runtime.ts:124 ","version":"Next","tagName":"h3"},{"title":"documentsManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#documentsmanager","content":" documentsManager: IMemoryManager Hold large documents that can be referenced Implementation of IAgentRuntime.documentsManager Defined in packages/core/src/runtime.ts:129 ","version":"Next","tagName":"h3"},{"title":"knowledgeManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#knowledgemanager","content":" knowledgeManager: IMemoryManager Searchable document fragments Implementation of IAgentRuntime.knowledgeManager Defined in packages/core/src/runtime.ts:134 ","version":"Next","tagName":"h3"},{"title":"services","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#services","content":" services: Map<ServiceType, Service> Implementation of IAgentRuntime.services Defined in packages/core/src/runtime.ts:136 ","version":"Next","tagName":"h3"},{"title":"memoryManagers","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#memorymanagers","content":" memoryManagers: Map<string, IMemoryManager> Defined in packages/core/src/runtime.ts:137 ","version":"Next","tagName":"h3"},{"title":"cacheManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#cachemanager","content":" cacheManager: ICacheManager Implementation of IAgentRuntime.cacheManager Defined in packages/core/src/runtime.ts:138 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"registerMemoryManager()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#registermemorymanager","content":" registerMemoryManager(manager): void Parameters • manager: IMemoryManager Returns void Implementation of IAgentRuntime.registerMemoryManager Defined in packages/core/src/runtime.ts:140 ","version":"Next","tagName":"h3"},{"title":"getMemoryManager()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#getmemorymanager","content":" getMemoryManager(tableName): IMemoryManager Parameters • tableName: string Returns IMemoryManager Implementation of IAgentRuntime.getMemoryManager Defined in packages/core/src/runtime.ts:155 ","version":"Next","tagName":"h3"},{"title":"getService()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#getservice","content":" getService<T>(service): T Type Parameters • T extends Service Parameters • service: ServiceType Returns T Implementation of IAgentRuntime.getService Defined in packages/core/src/runtime.ts:159 ","version":"Next","tagName":"h3"},{"title":"registerService()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#registerservice","content":" registerService(service): Promise<void> Parameters • service: Service Returns Promise<void> Implementation of IAgentRuntime.registerService Defined in packages/core/src/runtime.ts:168 ","version":"Next","tagName":"h3"},{"title":"initialize()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#initialize","content":" initialize(): Promise<void> Returns Promise<void> Implementation of IAgentRuntime.initialize Defined in packages/core/src/runtime.ts:359 ","version":"Next","tagName":"h3"},{"title":"getSetting()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#getsetting","content":" getSetting(key): any Parameters • key: string Returns any Implementation of IAgentRuntime.getSetting Defined in packages/core/src/runtime.ts:423 ","version":"Next","tagName":"h3"},{"title":"getConversationLength()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#getconversationlength","content":" getConversationLength(): number Get the number of messages that are kept in the conversation buffer. Returns number The number of recent messages to be kept in memory. Implementation of IAgentRuntime.getConversationLength Defined in packages/core/src/runtime.ts:445 ","version":"Next","tagName":"h3"},{"title":"registerAction()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#registeraction","content":" registerAction(action): void Register an action for the agent to perform. Parameters • action: Action The action to register. Returns void Implementation of IAgentRuntime.registerAction Defined in packages/core/src/runtime.ts:453 ","version":"Next","tagName":"h3"},{"title":"registerEvaluator()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#registerevaluator","content":" registerEvaluator(evaluator): void Register an evaluator to assess and guide the agent's responses. Parameters • evaluator: Evaluator The evaluator to register. Returns void Defined in packages/core/src/runtime.ts:462 ","version":"Next","tagName":"h3"},{"title":"registerContextProvider()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#registercontextprovider","content":" registerContextProvider(provider): void Register a context provider to provide context for message generation. Parameters • provider: Provider The context provider to register. Returns void Defined in packages/core/src/runtime.ts:470 ","version":"Next","tagName":"h3"},{"title":"processActions()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#processactions","content":" processActions(message, responses, state?, callback?): Promise<void> Process the actions of a message. Parameters • message: Memory The message to process. • responses: Memory[] • state?: State • callback?: HandlerCallback Returns Promise<void> Implementation of IAgentRuntime.processActions Defined in packages/core/src/runtime.ts:479 ","version":"Next","tagName":"h3"},{"title":"evaluate()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#evaluate","content":" evaluate(message, state?, didRespond?): Promise<string[]> Evaluate the message and state using the registered evaluators. Parameters • message: Memory The message to evaluate. • state?: State The state of the agent. • didRespond?: boolean Whether the agent responded to the message. Returns Promise<string[]> The results of the evaluation. Implementation of IAgentRuntime.evaluate Defined in packages/core/src/runtime.ts:556 ","version":"Next","tagName":"h3"},{"title":"ensureParticipantExists()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#ensureparticipantexists","content":" ensureParticipantExists(userId, roomId): Promise<void> Ensure the existence of a participant in the room. If the participant does not exist, they are added to the room. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The user ID to ensure the existence of. • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Throws An error if the participant cannot be added. Implementation of IAgentRuntime.ensureParticipantExists Defined in packages/core/src/runtime.ts:626 ","version":"Next","tagName":"h3"},{"title":"ensureUserExists()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#ensureuserexists","content":" ensureUserExists(userId, userName, name, email?, source?): Promise<void> Ensure the existence of a user in the database. If the user does not exist, they are added to the database. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The user ID to ensure the existence of. • userName: string The user name to ensure the existence of. • name: string • email?: string • source?: string Returns Promise<void> Implementation of IAgentRuntime.ensureUserExists Defined in packages/core/src/runtime.ts:642 ","version":"Next","tagName":"h3"},{"title":"ensureParticipantInRoom()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#ensureparticipantinroom","content":" ensureParticipantInRoom(userId, roomId): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Implementation of IAgentRuntime.ensureParticipantInRoom Defined in packages/core/src/runtime.ts:662 ","version":"Next","tagName":"h3"},{"title":"ensureConnection()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#ensureconnection","content":" ensureConnection(userId, roomId, userName?, userScreenName?, source?): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` • userName?: string • userScreenName?: string • source?: string Returns Promise<void> Implementation of IAgentRuntime.ensureConnection Defined in packages/core/src/runtime.ts:679 ","version":"Next","tagName":"h3"},{"title":"ensureRoomExists()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#ensureroomexists","content":" ensureRoomExists(roomId): Promise<void> Ensure the existence of a room between the agent and a user. If no room exists, a new room is created and the user and agent are added as participants. The room ID is returned. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> The room ID of the room between the agent and the user. Throws An error if the room cannot be created. Implementation of IAgentRuntime.ensureRoomExists Defined in packages/core/src/runtime.ts:715 ","version":"Next","tagName":"h3"},{"title":"composeState()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#composestate","content":" composeState(message, additionalKeys): Promise<State> Compose the state of the agent into an object that can be passed or used for response generation. Parameters • message: Memory The message to compose the state from. • additionalKeys = {} Returns Promise<State> The state of the agent. Implementation of IAgentRuntime.composeState Defined in packages/core/src/runtime.ts:728 ","version":"Next","tagName":"h3"},{"title":"updateRecentMessageState()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/api/classes/AgentRuntime/#updaterecentmessagestate","content":" updateRecentMessageState(state): Promise<State> Parameters • state: State Returns Promise<State> Implementation of IAgentRuntime.updateRecentMessageState Defined in packages/core/src/runtime.ts:1173 ","version":"Next","tagName":"h3"},{"title":"Function: formatActors()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatActors/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatActors()","url":"/eliza/api/functions/formatActors/#parameters","content":" • actors list of actors • actors.actors: Actor[] ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatActors()","url":"/eliza/api/functions/formatActors/#returns","content":" string string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatActors()","url":"/eliza/api/functions/formatActors/#defined-in","content":" packages/core/src/messages.ts:45 ","version":"Next","tagName":"h2"},{"title":"Function: formatActionNames()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatActionNames/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatActionNames()","url":"/eliza/api/functions/formatActionNames/#parameters","content":" • actions: Action[] An array of Action objects from which to extract names. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatActionNames()","url":"/eliza/api/functions/formatActionNames/#returns","content":" string A comma-separated string of action names. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatActionNames()","url":"/eliza/api/functions/formatActionNames/#defined-in","content":" packages/core/src/actions.ts:47 ","version":"Next","tagName":"h2"},{"title":"Function: formatEvaluatorExampleDescriptions()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatEvaluatorExampleDescriptions/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatEvaluatorExampleDescriptions()","url":"/eliza/api/functions/formatEvaluatorExampleDescriptions/#parameters","content":" • evaluators: Evaluator[] An array of evaluator objects, each containing examples. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatEvaluatorExampleDescriptions()","url":"/eliza/api/functions/formatEvaluatorExampleDescriptions/#returns","content":" string A string that summarizes the descriptions for each evaluator example, formatted with the evaluator name, example number, and description. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatEvaluatorExampleDescriptions()","url":"/eliza/api/functions/formatEvaluatorExampleDescriptions/#defined-in","content":" packages/core/src/evaluators.ts:110 ","version":"Next","tagName":"h2"},{"title":"Function: formatEvaluatorNames()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatEvaluatorNames/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatEvaluatorNames()","url":"/eliza/api/functions/formatEvaluatorNames/#parameters","content":" • evaluators: Evaluator[] An array of evaluator objects. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatEvaluatorNames()","url":"/eliza/api/functions/formatEvaluatorNames/#returns","content":" string A string that concatenates the names of all evaluators, each enclosed in single quotes and separated by commas. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatEvaluatorNames()","url":"/eliza/api/functions/formatEvaluatorNames/#defined-in","content":" packages/core/src/evaluators.ts:30 ","version":"Next","tagName":"h2"},{"title":"Function: formatEvaluatorExamples()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatEvaluatorExamples/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatEvaluatorExamples()","url":"/eliza/api/functions/formatEvaluatorExamples/#parameters","content":" • evaluators: Evaluator[] An array of evaluator objects, each containing examples to format. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatEvaluatorExamples()","url":"/eliza/api/functions/formatEvaluatorExamples/#returns","content":" string A string that presents each evaluator example in a structured format, including context, messages, and outcomes, with placeholders replaced by generated names. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatEvaluatorExamples()","url":"/eliza/api/functions/formatEvaluatorExamples/#defined-in","content":" packages/core/src/evaluators.ts:55 ","version":"Next","tagName":"h2"},{"title":"Function: formatMessages()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatMessages/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatMessages()","url":"/eliza/api/functions/formatMessages/#parameters","content":" • __namedParameters • __namedParameters.messages: Memory[] • __namedParameters.actors: Actor[] ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatMessages()","url":"/eliza/api/functions/formatMessages/#returns","content":" string string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatMessages()","url":"/eliza/api/functions/formatMessages/#defined-in","content":" packages/core/src/messages.ts:60 ","version":"Next","tagName":"h2"},{"title":"Function: formatPosts()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatPosts/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatPosts()","url":"/eliza/api/functions/formatPosts/#parameters","content":" • __namedParameters • __namedParameters.messages: Memory[] • __namedParameters.actors: Actor[] • __namedParameters.conversationHeader?: boolean = true ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatPosts()","url":"/eliza/api/functions/formatPosts/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatPosts()","url":"/eliza/api/functions/formatPosts/#defined-in","content":" packages/core/src/posts.ts:4 ","version":"Next","tagName":"h2"},{"title":"Function: formatEvaluators()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatEvaluators/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatEvaluators()","url":"/eliza/api/functions/formatEvaluators/#parameters","content":" • evaluators: Evaluator[] An array of evaluator objects. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatEvaluators()","url":"/eliza/api/functions/formatEvaluators/#returns","content":" string A string that concatenates the name and description of each evaluator, separated by a colon and a newline character. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatEvaluators()","url":"/eliza/api/functions/formatEvaluators/#defined-in","content":" packages/core/src/evaluators.ts:41 ","version":"Next","tagName":"h2"},{"title":"Function: formatRelationships()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatRelationships/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatRelationships()","url":"/eliza/api/functions/formatRelationships/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.userId: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatRelationships()","url":"/eliza/api/functions/formatRelationships/#returns","content":" Promise<`${string}-${string}-${string}-${string}-${string}`[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatRelationships()","url":"/eliza/api/functions/formatRelationships/#defined-in","content":" packages/core/src/relationships.ts:43 ","version":"Next","tagName":"h2"},{"title":"Function: formatTimestamp()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatTimestamp/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatTimestamp()","url":"/eliza/api/functions/formatTimestamp/#parameters","content":" • messageDate: number ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatTimestamp()","url":"/eliza/api/functions/formatTimestamp/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatTimestamp()","url":"/eliza/api/functions/formatTimestamp/#defined-in","content":" packages/core/src/messages.ts:94 ","version":"Next","tagName":"h2"},{"title":"Class: abstract DatabaseAdapter<DB>","type":0,"sectionRef":"#","url":"/eliza/api/classes/DatabaseAdapter/","content":"","keywords":"","version":"Next"},{"title":"Type Parameters","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#type-parameters","content":" • DB = any ","version":"Next","tagName":"h2"},{"title":"Implements","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#implements","content":" IDatabaseAdapter ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new DatabaseAdapter()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#new-databaseadapter","content":" new DatabaseAdapter<DB>(): DatabaseAdapter<DB> Returns DatabaseAdapter<DB> ","version":"Next","tagName":"h3"},{"title":"Properties","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"db","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#db","content":" db: DB The database instance. Implementation of IDatabaseAdapter.db Defined in packages/core/src/database.ts:21 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"getAccountById()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getaccountbyid","content":" abstract getAccountById(userId): Promise<Account> Retrieves an account by its ID. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the user account to retrieve. Returns Promise<Account> A Promise that resolves to the Account object or null if not found. Implementation of IDatabaseAdapter.getAccountById Defined in packages/core/src/database.ts:27 ","version":"Next","tagName":"h3"},{"title":"createAccount()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#createaccount","content":" abstract createAccount(account): Promise<boolean> Creates a new account in the database. Parameters • account: Account The account object to create. Returns Promise<boolean> A Promise that resolves when the account creation is complete. Implementation of IDatabaseAdapter.createAccount Defined in packages/core/src/database.ts:34 ","version":"Next","tagName":"h3"},{"title":"getMemories()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getmemories","content":" abstract getMemories(params): Promise<Memory[]> Retrieves memories based on the specified parameters. Parameters • params An object containing parameters for the memory retrieval. • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.count?: number • params.unique?: boolean • params.tableName: string Returns Promise<Memory[]> A Promise that resolves to an array of Memory objects. Implementation of IDatabaseAdapter.getMemories Defined in packages/core/src/database.ts:41 ","version":"Next","tagName":"h3"},{"title":"getMemoriesByRoomIds()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getmemoriesbyroomids","content":" abstract getMemoriesByRoomIds(params): Promise<Memory[]> Parameters • params • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.roomIds: `${string}-${string}-${string}-${string}-${string}`[] • params.tableName: string Returns Promise<Memory[]> Implementation of IDatabaseAdapter.getMemoriesByRoomIds Defined in packages/core/src/database.ts:49 ","version":"Next","tagName":"h3"},{"title":"getMemoryById()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getmemorybyid","content":" abstract getMemoryById(id): Promise<Memory> Parameters • id: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Memory> Implementation of IDatabaseAdapter.getMemoryById Defined in packages/core/src/database.ts:55 ","version":"Next","tagName":"h3"},{"title":"getCachedEmbeddings()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getcachedembeddings","content":" abstract getCachedEmbeddings(params): Promise<object[]> Retrieves cached embeddings based on the specified query parameters. Parameters • params An object containing parameters for the embedding retrieval. • params.query_table_name: string • params.query_threshold: number • params.query_input: string • params.query_field_name: string • params.query_field_sub_name: string • params.query_match_count: number Returns Promise<object[]> A Promise that resolves to an array of objects containing embeddings and levenshtein scores. Implementation of IDatabaseAdapter.getCachedEmbeddings Defined in packages/core/src/database.ts:62 ","version":"Next","tagName":"h3"},{"title":"log()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#log","content":" abstract log(params): Promise<void> Logs an event or action with the specified details. Parameters • params An object containing parameters for the log entry. • params.body • params.userId: `${string}-${string}-${string}-${string}-${string}` • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.type: string Returns Promise<void> A Promise that resolves when the log entry has been saved. Implementation of IDatabaseAdapter.log Defined in packages/core/src/database.ts:88 ","version":"Next","tagName":"h3"},{"title":"getActorDetails()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getactordetails","content":" abstract getActorDetails(params): Promise<Actor[]> Retrieves details of actors in a given room. Parameters • params An object containing the roomId to search for actors. • params.roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Actor[]> A Promise that resolves to an array of Actor objects. Implementation of IDatabaseAdapter.getActorDetails Defined in packages/core/src/database.ts:100 ","version":"Next","tagName":"h3"},{"title":"searchMemories()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#searchmemories","content":" abstract searchMemories(params): Promise<Memory[]> Searches for memories based on embeddings and other specified parameters. Parameters • params An object containing parameters for the memory search. • params.tableName: string • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.embedding: number[] • params.match_threshold: number • params.match_count: number • params.unique: boolean Returns Promise<Memory[]> A Promise that resolves to an array of Memory objects. Implementation of IDatabaseAdapter.searchMemories Defined in packages/core/src/database.ts:107 ","version":"Next","tagName":"h3"},{"title":"updateGoalStatus()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#updategoalstatus","content":" abstract updateGoalStatus(params): Promise<void> Updates the status of a specific goal. Parameters • params An object containing the goalId and the new status. • params.goalId: `${string}-${string}-${string}-${string}-${string}` • params.status: GoalStatus Returns Promise<void> A Promise that resolves when the goal status has been updated. Implementation of IDatabaseAdapter.updateGoalStatus Defined in packages/core/src/database.ts:122 ","version":"Next","tagName":"h3"},{"title":"searchMemoriesByEmbedding()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#searchmemoriesbyembedding","content":" abstract searchMemoriesByEmbedding(embedding, params): Promise<Memory[]> Searches for memories by embedding and other specified parameters. Parameters • embedding: number[] The embedding vector to search with. • params Additional parameters for the search. • params.match_threshold?: number • params.count?: number • params.roomId?: `${string}-${string}-${string}-${string}-${string}` • params.agentId?: `${string}-${string}-${string}-${string}-${string}` • params.unique?: boolean • params.tableName: string Returns Promise<Memory[]> A Promise that resolves to an array of Memory objects. Implementation of IDatabaseAdapter.searchMemoriesByEmbedding Defined in packages/core/src/database.ts:133 ","version":"Next","tagName":"h3"},{"title":"createMemory()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#creatememory","content":" abstract createMemory(memory, tableName, unique?): Promise<void> Creates a new memory in the database. Parameters • memory: Memory The memory object to create. • tableName: string The table where the memory should be stored. • unique?: boolean Indicates if the memory should be unique. Returns Promise<void> A Promise that resolves when the memory has been created. Implementation of IDatabaseAdapter.createMemory Defined in packages/core/src/database.ts:152 ","version":"Next","tagName":"h3"},{"title":"removeMemory()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#removememory","content":" abstract removeMemory(memoryId, tableName): Promise<void> Removes a specific memory from the database. Parameters • memoryId: `${string}-${string}-${string}-${string}-${string}` The UUID of the memory to remove. • tableName: string The table from which the memory should be removed. Returns Promise<void> A Promise that resolves when the memory has been removed. Implementation of IDatabaseAdapter.removeMemory Defined in packages/core/src/database.ts:164 ","version":"Next","tagName":"h3"},{"title":"removeAllMemories()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#removeallmemories","content":" abstract removeAllMemories(roomId, tableName): Promise<void> Removes all memories associated with a specific room. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room whose memories should be removed. • tableName: string The table from which the memories should be removed. Returns Promise<void> A Promise that resolves when all memories have been removed. Implementation of IDatabaseAdapter.removeAllMemories Defined in packages/core/src/database.ts:172 ","version":"Next","tagName":"h3"},{"title":"countMemories()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#countmemories","content":" abstract countMemories(roomId, unique?, tableName?): Promise<number> Counts the number of memories in a specific room. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room for which to count memories. • unique?: boolean Specifies whether to count only unique memories. • tableName?: string Optional table name to count memories from. Returns Promise<number> A Promise that resolves to the number of memories. Implementation of IDatabaseAdapter.countMemories Defined in packages/core/src/database.ts:181 ","version":"Next","tagName":"h3"},{"title":"getGoals()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getgoals","content":" abstract getGoals(params): Promise<Goal[]> Retrieves goals based on specified parameters. Parameters • params An object containing parameters for goal retrieval. • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.userId?: `${string}-${string}-${string}-${string}-${string}` • params.onlyInProgress?: boolean • params.count?: number Returns Promise<Goal[]> A Promise that resolves to an array of Goal objects. Implementation of IDatabaseAdapter.getGoals Defined in packages/core/src/database.ts:192 ","version":"Next","tagName":"h3"},{"title":"updateGoal()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#updategoal","content":" abstract updateGoal(goal): Promise<void> Updates a specific goal in the database. Parameters • goal: Goal The goal object with updated properties. Returns Promise<void> A Promise that resolves when the goal has been updated. Implementation of IDatabaseAdapter.updateGoal Defined in packages/core/src/database.ts:205 ","version":"Next","tagName":"h3"},{"title":"createGoal()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#creategoal","content":" abstract createGoal(goal): Promise<void> Creates a new goal in the database. Parameters • goal: Goal The goal object to create. Returns Promise<void> A Promise that resolves when the goal has been created. Implementation of IDatabaseAdapter.createGoal Defined in packages/core/src/database.ts:212 ","version":"Next","tagName":"h3"},{"title":"removeGoal()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#removegoal","content":" abstract removeGoal(goalId): Promise<void> Removes a specific goal from the database. Parameters • goalId: `${string}-${string}-${string}-${string}-${string}` The UUID of the goal to remove. Returns Promise<void> A Promise that resolves when the goal has been removed. Implementation of IDatabaseAdapter.removeGoal Defined in packages/core/src/database.ts:219 ","version":"Next","tagName":"h3"},{"title":"removeAllGoals()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#removeallgoals","content":" abstract removeAllGoals(roomId): Promise<void> Removes all goals associated with a specific room. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room whose goals should be removed. Returns Promise<void> A Promise that resolves when all goals have been removed. Implementation of IDatabaseAdapter.removeAllGoals Defined in packages/core/src/database.ts:226 ","version":"Next","tagName":"h3"},{"title":"getRoom()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getroom","content":" abstract getRoom(roomId): Promise<`${string}-${string}-${string}-${string}-${string}`> Retrieves the room ID for a given room, if it exists. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room to retrieve. Returns Promise<`${string}-${string}-${string}-${string}-${string}`> A Promise that resolves to the room ID or null if not found. Implementation of IDatabaseAdapter.getRoom Defined in packages/core/src/database.ts:233 ","version":"Next","tagName":"h3"},{"title":"createRoom()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#createroom","content":" abstract createRoom(roomId?): Promise<`${string}-${string}-${string}-${string}-${string}`> Creates a new room with an optional specified ID. Parameters • roomId?: `${string}-${string}-${string}-${string}-${string}` Optional UUID to assign to the new room. Returns Promise<`${string}-${string}-${string}-${string}-${string}`> A Promise that resolves to the UUID of the created room. Implementation of IDatabaseAdapter.createRoom Defined in packages/core/src/database.ts:240 ","version":"Next","tagName":"h3"},{"title":"removeRoom()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#removeroom","content":" abstract removeRoom(roomId): Promise<void> Removes a specific room from the database. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room to remove. Returns Promise<void> A Promise that resolves when the room has been removed. Implementation of IDatabaseAdapter.removeRoom Defined in packages/core/src/database.ts:247 ","version":"Next","tagName":"h3"},{"title":"getRoomsForParticipant()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getroomsforparticipant","content":" abstract getRoomsForParticipant(userId): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Retrieves room IDs for which a specific user is a participant. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the user. Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> A Promise that resolves to an array of room IDs. Implementation of IDatabaseAdapter.getRoomsForParticipant Defined in packages/core/src/database.ts:254 ","version":"Next","tagName":"h3"},{"title":"getRoomsForParticipants()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getroomsforparticipants","content":" abstract getRoomsForParticipants(userIds): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Retrieves room IDs for which specific users are participants. Parameters • userIds: `${string}-${string}-${string}-${string}-${string}`[] An array of UUIDs of the users. Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> A Promise that resolves to an array of room IDs. Implementation of IDatabaseAdapter.getRoomsForParticipants Defined in packages/core/src/database.ts:261 ","version":"Next","tagName":"h3"},{"title":"addParticipant()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#addparticipant","content":" abstract addParticipant(userId, roomId): Promise<boolean> Adds a user as a participant to a specific room. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the user to add as a participant. • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room to which the user will be added. Returns Promise<boolean> A Promise that resolves to a boolean indicating success or failure. Implementation of IDatabaseAdapter.addParticipant Defined in packages/core/src/database.ts:269 ","version":"Next","tagName":"h3"},{"title":"removeParticipant()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#removeparticipant","content":" abstract removeParticipant(userId, roomId): Promise<boolean> Removes a user as a participant from a specific room. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the user to remove as a participant. • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room from which the user will be removed. Returns Promise<boolean> A Promise that resolves to a boolean indicating success or failure. Implementation of IDatabaseAdapter.removeParticipant Defined in packages/core/src/database.ts:277 ","version":"Next","tagName":"h3"},{"title":"getParticipantsForAccount()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getparticipantsforaccount","content":" getParticipantsForAccount(userId) abstract getParticipantsForAccount(userId): Promise<Participant[]> Retrieves participants associated with a specific account. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the account. Returns Promise<Participant[]> A Promise that resolves to an array of Participant objects. Implementation of IDatabaseAdapter.getParticipantsForAccount Defined in packages/core/src/database.ts:284 getParticipantsForAccount(userId) abstract getParticipantsForAccount(userId): Promise<Participant[]> Retrieves participants associated with a specific account. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the account. Returns Promise<Participant[]> A Promise that resolves to an array of Participant objects. Implementation of IDatabaseAdapter.getParticipantsForAccount Defined in packages/core/src/database.ts:291 ","version":"Next","tagName":"h3"},{"title":"getParticipantsForRoom()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getparticipantsforroom","content":" abstract getParticipantsForRoom(roomId): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Retrieves participants for a specific room. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room for which to retrieve participants. Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> A Promise that resolves to an array of UUIDs representing the participants. Implementation of IDatabaseAdapter.getParticipantsForRoom Defined in packages/core/src/database.ts:298 ","version":"Next","tagName":"h3"},{"title":"getParticipantUserState()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getparticipantuserstate","content":" abstract getParticipantUserState(roomId, userId): Promise<"FOLLOWED" | "MUTED"> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<"FOLLOWED" | "MUTED"> Implementation of IDatabaseAdapter.getParticipantUserState Defined in packages/core/src/database.ts:300 ","version":"Next","tagName":"h3"},{"title":"setParticipantUserState()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#setparticipantuserstate","content":" abstract setParticipantUserState(roomId, userId, state): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • userId: `${string}-${string}-${string}-${string}-${string}` • state: "FOLLOWED" | "MUTED" Returns Promise<void> Implementation of IDatabaseAdapter.setParticipantUserState Defined in packages/core/src/database.ts:304 ","version":"Next","tagName":"h3"},{"title":"createRelationship()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#createrelationship","content":" abstract createRelationship(params): Promise<boolean> Creates a new relationship between two users. Parameters • params An object containing the UUIDs of the two users (userA and userB). • params.userA: `${string}-${string}-${string}-${string}-${string}` • params.userB: `${string}-${string}-${string}-${string}-${string}` Returns Promise<boolean> A Promise that resolves to a boolean indicating success or failure of the creation. Implementation of IDatabaseAdapter.createRelationship Defined in packages/core/src/database.ts:315 ","version":"Next","tagName":"h3"},{"title":"getRelationship()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getrelationship","content":" abstract getRelationship(params): Promise<Relationship> Retrieves a relationship between two users if it exists. Parameters • params An object containing the UUIDs of the two users (userA and userB). • params.userA: `${string}-${string}-${string}-${string}-${string}` • params.userB: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Relationship> A Promise that resolves to the Relationship object or null if not found. Implementation of IDatabaseAdapter.getRelationship Defined in packages/core/src/database.ts:325 ","version":"Next","tagName":"h3"},{"title":"getRelationships()","type":1,"pageTitle":"Class: abstract DatabaseAdapter<DB>","url":"/eliza/api/classes/DatabaseAdapter/#getrelationships","content":" abstract getRelationships(params): Promise<Relationship[]> Retrieves all relationships for a specific user. Parameters • params An object containing the UUID of the user. • params.userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Relationship[]> A Promise that resolves to an array of Relationship objects. Implementation of IDatabaseAdapter.getRelationships Defined in packages/core/src/database.ts:335 ","version":"Next","tagName":"h3"},{"title":"Function: generateObject()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateObject/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateObject()","url":"/eliza/api/functions/generateObject/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.context: string • __namedParameters.modelClass: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateObject()","url":"/eliza/api/functions/generateObject/#returns","content":" Promise<any> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateObject()","url":"/eliza/api/functions/generateObject/#defined-in","content":" packages/core/src/generation.ts:622 ","version":"Next","tagName":"h2"},{"title":"Function: generateMessageResponse()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateMessageResponse/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateMessageResponse()","url":"/eliza/api/functions/generateMessageResponse/#parameters","content":" • opts The options for the generateText request. • opts.runtime: IAgentRuntime • opts.context: string The context of the message to be completed. • opts.modelClass: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateMessageResponse()","url":"/eliza/api/functions/generateMessageResponse/#returns","content":" Promise<Content> The completed message. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateMessageResponse()","url":"/eliza/api/functions/generateMessageResponse/#defined-in","content":" packages/core/src/generation.ts:706 ","version":"Next","tagName":"h2"},{"title":"Function: generateCaption()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateCaption/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/api/functions/generateCaption/#parameters","content":" • data • data.imageUrl: string • runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/api/functions/generateCaption/#returns","content":" Promise<object> ","version":"Next","tagName":"h2"},{"title":"title","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/api/functions/generateCaption/#title","content":" title: string ","version":"Next","tagName":"h3"},{"title":"description","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/api/functions/generateCaption/#description","content":" description: string ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/api/functions/generateCaption/#defined-in","content":" packages/core/src/generation.ts:874 ","version":"Next","tagName":"h2"},{"title":"Function: generateObjectV2()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateObjectV2/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateObjectV2()","url":"/eliza/api/functions/generateObjectV2/#parameters","content":" • options: GenerationOptions Configuration options for generating objects. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateObjectV2()","url":"/eliza/api/functions/generateObjectV2/#returns","content":" Promise<GenerateObjectResult<unknown>> A promise that resolves to an array of generated objects. ","version":"Next","tagName":"h2"},{"title":"Throws","type":1,"pageTitle":"Function: generateObjectV2()","url":"/eliza/api/functions/generateObjectV2/#throws","content":" Throws an error if the provider is unsupported or if generation fails. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateObjectV2()","url":"/eliza/api/functions/generateObjectV2/#defined-in","content":" packages/core/src/generation.ts:931 ","version":"Next","tagName":"h2"},{"title":"Function: generateObjectArray()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateObjectArray/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateObjectArray()","url":"/eliza/api/functions/generateObjectArray/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.context: string • __namedParameters.modelClass: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateObjectArray()","url":"/eliza/api/functions/generateObjectArray/#returns","content":" Promise<any[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateObjectArray()","url":"/eliza/api/functions/generateObjectArray/#defined-in","content":" packages/core/src/generation.ts:658 ","version":"Next","tagName":"h2"},{"title":"Function: formatGoalsAsString()","type":0,"sectionRef":"#","url":"/eliza/api/functions/formatGoalsAsString/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatGoalsAsString()","url":"/eliza/api/functions/formatGoalsAsString/#parameters","content":" • __namedParameters • __namedParameters.goals: Goal[] ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatGoalsAsString()","url":"/eliza/api/functions/formatGoalsAsString/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatGoalsAsString()","url":"/eliza/api/functions/formatGoalsAsString/#defined-in","content":" packages/core/src/goals.ts:30 ","version":"Next","tagName":"h2"},{"title":"Function: generateImage()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateImage/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/api/functions/generateImage/#parameters","content":" • data • data.prompt: string • data.width: number • data.height: number • data.count?: number • data.negativePrompt?: string • data.numIterations?: number • data.guidanceScale?: number • data.seed?: number • data.modelId?: string • data.jobId?: string • runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/api/functions/generateImage/#returns","content":" Promise<object> ","version":"Next","tagName":"h2"},{"title":"success","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/api/functions/generateImage/#success","content":" success: boolean ","version":"Next","tagName":"h3"},{"title":"data?","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/api/functions/generateImage/#data","content":" optional data: string[] ","version":"Next","tagName":"h3"},{"title":"error?","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/api/functions/generateImage/#error","content":" optional error: any ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/api/functions/generateImage/#defined-in","content":" packages/core/src/generation.ts:746 ","version":"Next","tagName":"h2"},{"title":"Function: generateTrueOrFalse()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateTrueOrFalse/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateTrueOrFalse()","url":"/eliza/api/functions/generateTrueOrFalse/#parameters","content":" • opts The options for the generateText request • opts.runtime: IAgentRuntime • opts.context: string = "" The context to evaluate for the boolean response • opts.modelClass: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateTrueOrFalse()","url":"/eliza/api/functions/generateTrueOrFalse/#returns","content":" Promise<boolean> Promise resolving to a boolean value parsed from the model's response ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateTrueOrFalse()","url":"/eliza/api/functions/generateTrueOrFalse/#defined-in","content":" packages/core/src/generation.ts:530 ","version":"Next","tagName":"h2"},{"title":"Function: getEndpoint()","type":0,"sectionRef":"#","url":"/eliza/api/functions/getEndpoint/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getEndpoint()","url":"/eliza/api/functions/getEndpoint/#parameters","content":" • provider: ModelProviderName ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getEndpoint()","url":"/eliza/api/functions/getEndpoint/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getEndpoint()","url":"/eliza/api/functions/getEndpoint/#defined-in","content":" packages/core/src/models.ts:246 ","version":"Next","tagName":"h2"},{"title":"Function: generateShouldRespond()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateShouldRespond/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateShouldRespond()","url":"/eliza/api/functions/generateShouldRespond/#parameters","content":" • opts The options for the generateText request • opts.runtime: IAgentRuntime • opts.context: string The context to evaluate for response • opts.modelClass: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateShouldRespond()","url":"/eliza/api/functions/generateShouldRespond/#returns","content":" Promise<"RESPOND" | "IGNORE" | "STOP" | null> Promise resolving to "RESPOND", "IGNORE", "STOP" or null ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateShouldRespond()","url":"/eliza/api/functions/generateShouldRespond/#defined-in","content":" packages/core/src/generation.ts:447 ","version":"Next","tagName":"h2"},{"title":"Function: generateTextArray()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateTextArray/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateTextArray()","url":"/eliza/api/functions/generateTextArray/#parameters","content":" • opts The options for the generateText request • opts.runtime: IAgentRuntime • opts.context: string The context/prompt to send to the model • opts.modelClass: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateTextArray()","url":"/eliza/api/functions/generateTextArray/#returns","content":" Promise<string[]> Promise resolving to an array of strings parsed from the model's response ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateTextArray()","url":"/eliza/api/functions/generateTextArray/#defined-in","content":" packages/core/src/generation.ts:586 ","version":"Next","tagName":"h2"},{"title":"Function: getEnvVariable()","type":0,"sectionRef":"#","url":"/eliza/api/functions/getEnvVariable/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getEnvVariable()","url":"/eliza/api/functions/getEnvVariable/#parameters","content":" • key: string The environment variable key • defaultValue?: string Optional default value if key doesn't exist ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getEnvVariable()","url":"/eliza/api/functions/getEnvVariable/#returns","content":" string | undefined The environment variable value or default value ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getEnvVariable()","url":"/eliza/api/functions/getEnvVariable/#defined-in","content":" packages/core/src/settings.ts:87 ","version":"Next","tagName":"h2"},{"title":"Function: generateText()","type":0,"sectionRef":"#","url":"/eliza/api/functions/generateText/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateText()","url":"/eliza/api/functions/generateText/#parameters","content":" • opts The options for the generateText request. • opts.runtime: IAgentRuntime • opts.context: string The context of the message to be completed. • opts.modelClass: string • opts.stop?: string[] A list of strings to stop the generateText at. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateText()","url":"/eliza/api/functions/generateText/#returns","content":" Promise<string> The completed message. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateText()","url":"/eliza/api/functions/generateText/#defined-in","content":" packages/core/src/generation.ts:49 ","version":"Next","tagName":"h2"},{"title":"Function: getActorDetails()","type":0,"sectionRef":"#","url":"/eliza/api/functions/getActorDetails/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getActorDetails()","url":"/eliza/api/functions/getActorDetails/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.roomId: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getActorDetails()","url":"/eliza/api/functions/getActorDetails/#returns","content":" Promise<Actor[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getActorDetails()","url":"/eliza/api/functions/getActorDetails/#defined-in","content":" packages/core/src/messages.ts:12 ","version":"Next","tagName":"h2"},{"title":"Function: getRelationship()","type":0,"sectionRef":"#","url":"/eliza/api/functions/getRelationship/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getRelationship()","url":"/eliza/api/functions/getRelationship/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.userA: `${string}-${string}-${string}-${string}-${string}` • __namedParameters.userB: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getRelationship()","url":"/eliza/api/functions/getRelationship/#returns","content":" Promise<Relationship> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getRelationship()","url":"/eliza/api/functions/getRelationship/#defined-in","content":" packages/core/src/relationships.ts:18 ","version":"Next","tagName":"h2"},{"title":"Function: getGoals()","type":0,"sectionRef":"#","url":"/eliza/api/functions/getGoals/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getGoals()","url":"/eliza/api/functions/getGoals/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.roomId: `${string}-${string}-${string}-${string}-${string}` • __namedParameters.userId?: `${string}-${string}-${string}-${string}-${string}` • __namedParameters.onlyInProgress?: boolean = true • __namedParameters.count?: number = 5 ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getGoals()","url":"/eliza/api/functions/getGoals/#returns","content":" Promise<Goal[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getGoals()","url":"/eliza/api/functions/getGoals/#defined-in","content":" packages/core/src/goals.ts:8 ","version":"Next","tagName":"h2"},{"title":"Function: getRelationships()","type":0,"sectionRef":"#","url":"/eliza/api/functions/getRelationships/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getRelationships()","url":"/eliza/api/functions/getRelationships/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.userId: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getRelationships()","url":"/eliza/api/functions/getRelationships/#returns","content":" Promise<Relationship[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getRelationships()","url":"/eliza/api/functions/getRelationships/#defined-in","content":" packages/core/src/relationships.ts:33 ","version":"Next","tagName":"h2"},{"title":"Function: loadEnvConfig()","type":0,"sectionRef":"#","url":"/eliza/api/functions/loadEnvConfig/","content":"","keywords":"","version":"Next"},{"title":"Returns","type":1,"pageTitle":"Function: loadEnvConfig()","url":"/eliza/api/functions/loadEnvConfig/#returns","content":" Settings Environment variables object ","version":"Next","tagName":"h2"},{"title":"Throws","type":1,"pageTitle":"Function: loadEnvConfig()","url":"/eliza/api/functions/loadEnvConfig/#throws","content":" If no .env file is found in Node.js environment ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: loadEnvConfig()","url":"/eliza/api/functions/loadEnvConfig/#defined-in","content":" packages/core/src/settings.ts:63 ","version":"Next","tagName":"h2"},{"title":"Function: getModel()","type":0,"sectionRef":"#","url":"/eliza/api/functions/getModel/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getModel()","url":"/eliza/api/functions/getModel/#parameters","content":" • provider: ModelProviderName • type: ModelClass ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getModel()","url":"/eliza/api/functions/getModel/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getModel()","url":"/eliza/api/functions/getModel/#defined-in","content":" packages/core/src/models.ts:242 ","version":"Next","tagName":"h2"},{"title":"Function: getProviders()","type":0,"sectionRef":"#","url":"/eliza/api/functions/getProviders/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getProviders()","url":"/eliza/api/functions/getProviders/#parameters","content":" • runtime: IAgentRuntime The AgentRuntime object. • message: Memory The incoming message object. • state?: State The current state object. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getProviders()","url":"/eliza/api/functions/getProviders/#returns","content":" Promise<string> A string that concatenates the outputs of each provider. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getProviders()","url":"/eliza/api/functions/getProviders/#defined-in","content":" packages/core/src/providers.ts:10 ","version":"Next","tagName":"h2"},{"title":"Function: parseBooleanFromText()","type":0,"sectionRef":"#","url":"/eliza/api/functions/parseBooleanFromText/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: parseBooleanFromText()","url":"/eliza/api/functions/parseBooleanFromText/#parameters","content":" • text: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: parseBooleanFromText()","url":"/eliza/api/functions/parseBooleanFromText/#returns","content":" boolean ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: parseBooleanFromText()","url":"/eliza/api/functions/parseBooleanFromText/#defined-in","content":" packages/core/src/parsing.ts:36 ","version":"Next","tagName":"h2"},{"title":"Function: parseJSONObjectFromText()","type":0,"sectionRef":"#","url":"/eliza/api/functions/parseJSONObjectFromText/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: parseJSONObjectFromText()","url":"/eliza/api/functions/parseJSONObjectFromText/#parameters","content":" • text: string The input text from which to extract and parse the JSON object. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: parseJSONObjectFromText()","url":"/eliza/api/functions/parseJSONObjectFromText/#returns","content":" Record<string, any> | null An object parsed from the JSON string if successful; otherwise, null or the result of parsing an array. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: parseJSONObjectFromText()","url":"/eliza/api/functions/parseJSONObjectFromText/#defined-in","content":" packages/core/src/parsing.ts:103 ","version":"Next","tagName":"h2"},{"title":"Function: parseShouldRespondFromText()","type":0,"sectionRef":"#","url":"/eliza/api/functions/parseShouldRespondFromText/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: parseShouldRespondFromText()","url":"/eliza/api/functions/parseShouldRespondFromText/#parameters","content":" • text: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: parseShouldRespondFromText()","url":"/eliza/api/functions/parseShouldRespondFromText/#returns","content":" "RESPOND" | "IGNORE" | "STOP" ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: parseShouldRespondFromText()","url":"/eliza/api/functions/parseShouldRespondFromText/#defined-in","content":" packages/core/src/parsing.ts:13 ","version":"Next","tagName":"h2"},{"title":"Function: handleProvider()","type":0,"sectionRef":"#","url":"/eliza/api/functions/handleProvider/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: handleProvider()","url":"/eliza/api/functions/handleProvider/#parameters","content":" • options: ProviderOptions Configuration options specific to the provider. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: handleProvider()","url":"/eliza/api/functions/handleProvider/#returns","content":" Promise<GenerateObjectResult<unknown>> A promise that resolves to an array of generated objects. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: handleProvider()","url":"/eliza/api/functions/handleProvider/#defined-in","content":" packages/core/src/generation.ts:1016 ","version":"Next","tagName":"h2"},{"title":"Function: retrieveCachedEmbedding()","type":0,"sectionRef":"#","url":"/eliza/api/functions/retrieveCachedEmbedding/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: retrieveCachedEmbedding()","url":"/eliza/api/functions/retrieveCachedEmbedding/#parameters","content":" • runtime: IAgentRuntime • input: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: retrieveCachedEmbedding()","url":"/eliza/api/functions/retrieveCachedEmbedding/#returns","content":" Promise<number[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: retrieveCachedEmbedding()","url":"/eliza/api/functions/retrieveCachedEmbedding/#defined-in","content":" packages/core/src/embedding.ts:210 ","version":"Next","tagName":"h2"},{"title":"Function: hasEnvVariable()","type":0,"sectionRef":"#","url":"/eliza/api/functions/hasEnvVariable/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: hasEnvVariable()","url":"/eliza/api/functions/hasEnvVariable/#parameters","content":" • key: string The environment variable key ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: hasEnvVariable()","url":"/eliza/api/functions/hasEnvVariable/#returns","content":" boolean True if the environment variable exists ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: hasEnvVariable()","url":"/eliza/api/functions/hasEnvVariable/#defined-in","content":" packages/core/src/settings.ts:102 ","version":"Next","tagName":"h2"},{"title":"Function: parseJsonArrayFromText()","type":0,"sectionRef":"#","url":"/eliza/api/functions/parseJsonArrayFromText/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: parseJsonArrayFromText()","url":"/eliza/api/functions/parseJsonArrayFromText/#parameters","content":" • text: string The input text from which to extract and parse the JSON array. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: parseJsonArrayFromText()","url":"/eliza/api/functions/parseJsonArrayFromText/#returns","content":" any[] An array parsed from the JSON string if successful; otherwise, null. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: parseJsonArrayFromText()","url":"/eliza/api/functions/parseJsonArrayFromText/#defined-in","content":" packages/core/src/parsing.ts:60 ","version":"Next","tagName":"h2"},{"title":"Function: stringToUuid()","type":0,"sectionRef":"#","url":"/eliza/api/functions/stringToUuid/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: stringToUuid()","url":"/eliza/api/functions/stringToUuid/#parameters","content":" • target: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: stringToUuid()","url":"/eliza/api/functions/stringToUuid/#returns","content":" UUID ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: stringToUuid()","url":"/eliza/api/functions/stringToUuid/#defined-in","content":" packages/core/src/uuid.ts:4 ","version":"Next","tagName":"h2"},{"title":"Function: trimTokens()","type":0,"sectionRef":"#","url":"/eliza/api/functions/trimTokens/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: trimTokens()","url":"/eliza/api/functions/trimTokens/#parameters","content":" • context: string The text to truncate • maxTokens: number Maximum number of tokens to keep • model: TiktokenModel The tokenizer model to use ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: trimTokens()","url":"/eliza/api/functions/trimTokens/#returns","content":" string The truncated text ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: trimTokens()","url":"/eliza/api/functions/trimTokens/#defined-in","content":" packages/core/src/generation.ts:397 ","version":"Next","tagName":"h2"},{"title":"Function: updateGoal()","type":0,"sectionRef":"#","url":"/eliza/api/functions/updateGoal/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: updateGoal()","url":"/eliza/api/functions/updateGoal/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.goal: Goal ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: updateGoal()","url":"/eliza/api/functions/updateGoal/#returns","content":" Promise<void> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: updateGoal()","url":"/eliza/api/functions/updateGoal/#defined-in","content":" packages/core/src/goals.ts:45 ","version":"Next","tagName":"h2"},{"title":"Function: splitChunks()","type":0,"sectionRef":"#","url":"/eliza/api/functions/splitChunks/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: splitChunks()","url":"/eliza/api/functions/splitChunks/#parameters","content":" • content: string The text content to split into chunks • chunkSize: number = 512 The maximum size of each chunk in tokens • bleed: number = 20 Number of characters to overlap between chunks (default: 100) ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: splitChunks()","url":"/eliza/api/functions/splitChunks/#returns","content":" Promise<string[]> Promise resolving to array of text chunks with bleed sections ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: splitChunks()","url":"/eliza/api/functions/splitChunks/#defined-in","content":" packages/core/src/generation.ts:502 ","version":"Next","tagName":"h2"},{"title":"Interface: ActionExample","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/ActionExample/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: ActionExample","url":"/eliza/api/interfaces/ActionExample/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"user","type":1,"pageTitle":"Interface: ActionExample","url":"/eliza/api/interfaces/ActionExample/#user","content":" user: string User associated with the example Defined in packages/core/src/types.ts:39 ","version":"Next","tagName":"h3"},{"title":"content","type":1,"pageTitle":"Interface: ActionExample","url":"/eliza/api/interfaces/ActionExample/#content","content":" content: Content Content of the example Defined in packages/core/src/types.ts:42 ","version":"Next","tagName":"h3"},{"title":"Function: validateEnv()","type":0,"sectionRef":"#","url":"/eliza/api/functions/validateEnv/","content":"","keywords":"","version":"Next"},{"title":"Returns","type":1,"pageTitle":"Function: validateEnv()","url":"/eliza/api/functions/validateEnv/#returns","content":" EnvConfig ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: validateEnv()","url":"/eliza/api/functions/validateEnv/#defined-in","content":" packages/core/src/enviroment.ts:26 ","version":"Next","tagName":"h2"},{"title":"Interface: Account","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Account/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Account","url":"/eliza/api/interfaces/Account/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"id","type":1,"pageTitle":"Interface: Account","url":"/eliza/api/interfaces/Account/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Unique identifier Defined in packages/core/src/types.ts:478 ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Interface: Account","url":"/eliza/api/interfaces/Account/#name","content":" name: string Display name Defined in packages/core/src/types.ts:481 ","version":"Next","tagName":"h3"},{"title":"username","type":1,"pageTitle":"Interface: Account","url":"/eliza/api/interfaces/Account/#username","content":" username: string Username Defined in packages/core/src/types.ts:484 ","version":"Next","tagName":"h3"},{"title":"details?","type":1,"pageTitle":"Interface: Account","url":"/eliza/api/interfaces/Account/#details","content":" optional details: object Optional additional details Index Signature [key: string]: any Defined in packages/core/src/types.ts:487 ","version":"Next","tagName":"h3"},{"title":"email?","type":1,"pageTitle":"Interface: Account","url":"/eliza/api/interfaces/Account/#email","content":" optional email: string Optional email Defined in packages/core/src/types.ts:490 ","version":"Next","tagName":"h3"},{"title":"avatarUrl?","type":1,"pageTitle":"Interface: Account","url":"/eliza/api/interfaces/Account/#avatarurl","content":" optional avatarUrl: string Optional avatar URL Defined in packages/core/src/types.ts:493 ","version":"Next","tagName":"h3"},{"title":"Function: validateCharacterConfig()","type":0,"sectionRef":"#","url":"/eliza/api/functions/validateCharacterConfig/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: validateCharacterConfig()","url":"/eliza/api/functions/validateCharacterConfig/#parameters","content":" • json: unknown ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: validateCharacterConfig()","url":"/eliza/api/functions/validateCharacterConfig/#returns","content":" CharacterConfig ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: validateCharacterConfig()","url":"/eliza/api/functions/validateCharacterConfig/#defined-in","content":" packages/core/src/enviroment.ts:131 ","version":"Next","tagName":"h2"},{"title":"Interface: Action","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Action/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Action","url":"/eliza/api/interfaces/Action/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"similes","type":1,"pageTitle":"Interface: Action","url":"/eliza/api/interfaces/Action/#similes","content":" similes: string[] Similar action descriptions Defined in packages/core/src/types.ts:377 ","version":"Next","tagName":"h3"},{"title":"description","type":1,"pageTitle":"Interface: Action","url":"/eliza/api/interfaces/Action/#description","content":" description: string Detailed description Defined in packages/core/src/types.ts:380 ","version":"Next","tagName":"h3"},{"title":"examples","type":1,"pageTitle":"Interface: Action","url":"/eliza/api/interfaces/Action/#examples","content":" examples: ActionExample[][] Example usages Defined in packages/core/src/types.ts:383 ","version":"Next","tagName":"h3"},{"title":"handler","type":1,"pageTitle":"Interface: Action","url":"/eliza/api/interfaces/Action/#handler","content":" handler: Handler Handler function Defined in packages/core/src/types.ts:386 ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Interface: Action","url":"/eliza/api/interfaces/Action/#name","content":" name: string Action name Defined in packages/core/src/types.ts:389 ","version":"Next","tagName":"h3"},{"title":"validate","type":1,"pageTitle":"Interface: Action","url":"/eliza/api/interfaces/Action/#validate","content":" validate: Validator Validation function Defined in packages/core/src/types.ts:392 ","version":"Next","tagName":"h3"},{"title":"Interface: Content","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Content/","content":"","keywords":"","version":"Next"},{"title":"Indexable","type":1,"pageTitle":"Interface: Content","url":"/eliza/api/interfaces/Content/#indexable","content":" [key: string]: unknown ","version":"Next","tagName":"h2"},{"title":"Properties","type":1,"pageTitle":"Interface: Content","url":"/eliza/api/interfaces/Content/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"text","type":1,"pageTitle":"Interface: Content","url":"/eliza/api/interfaces/Content/#text","content":" text: string The main text content Defined in packages/core/src/types.ts:13 ","version":"Next","tagName":"h3"},{"title":"action?","type":1,"pageTitle":"Interface: Content","url":"/eliza/api/interfaces/Content/#action","content":" optional action: string Optional action associated with the message Defined in packages/core/src/types.ts:16 ","version":"Next","tagName":"h3"},{"title":"source?","type":1,"pageTitle":"Interface: Content","url":"/eliza/api/interfaces/Content/#source","content":" optional source: string Optional source/origin of the content Defined in packages/core/src/types.ts:19 ","version":"Next","tagName":"h3"},{"title":"url?","type":1,"pageTitle":"Interface: Content","url":"/eliza/api/interfaces/Content/#url","content":" optional url: string URL of the original message/post (e.g. tweet URL, Discord message link) Defined in packages/core/src/types.ts:22 ","version":"Next","tagName":"h3"},{"title":"inReplyTo?","type":1,"pageTitle":"Interface: Content","url":"/eliza/api/interfaces/Content/#inreplyto","content":" optional inReplyTo: `${string}-${string}-${string}-${string}-${string}` UUID of parent message if this is a reply/thread Defined in packages/core/src/types.ts:25 ","version":"Next","tagName":"h3"},{"title":"attachments?","type":1,"pageTitle":"Interface: Content","url":"/eliza/api/interfaces/Content/#attachments","content":" optional attachments: Media[] Array of media attachments Defined in packages/core/src/types.ts:28 ","version":"Next","tagName":"h3"},{"title":"Interface: EvaluationExample","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/EvaluationExample/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: EvaluationExample","url":"/eliza/api/interfaces/EvaluationExample/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"context","type":1,"pageTitle":"Interface: EvaluationExample","url":"/eliza/api/interfaces/EvaluationExample/#context","content":" context: string Evaluation context Defined in packages/core/src/types.ts:400 ","version":"Next","tagName":"h3"},{"title":"messages","type":1,"pageTitle":"Interface: EvaluationExample","url":"/eliza/api/interfaces/EvaluationExample/#messages","content":" messages: ActionExample[] Example messages Defined in packages/core/src/types.ts:403 ","version":"Next","tagName":"h3"},{"title":"outcome","type":1,"pageTitle":"Interface: EvaluationExample","url":"/eliza/api/interfaces/EvaluationExample/#outcome","content":" outcome: string Expected outcome Defined in packages/core/src/types.ts:406 ","version":"Next","tagName":"h3"},{"title":"Interface: ConversationExample","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/ConversationExample/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: ConversationExample","url":"/eliza/api/interfaces/ConversationExample/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"userId","type":1,"pageTitle":"Interface: ConversationExample","url":"/eliza/api/interfaces/ConversationExample/#userid","content":" userId: `${string}-${string}-${string}-${string}-${string}` UUID of user in conversation Defined in packages/core/src/types.ts:50 ","version":"Next","tagName":"h3"},{"title":"content","type":1,"pageTitle":"Interface: ConversationExample","url":"/eliza/api/interfaces/ConversationExample/#content","content":" content: Content Content of the conversation Defined in packages/core/src/types.ts:53 ","version":"Next","tagName":"h3"},{"title":"Interface: Actor","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Actor/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Actor","url":"/eliza/api/interfaces/Actor/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"name","type":1,"pageTitle":"Interface: Actor","url":"/eliza/api/interfaces/Actor/#name","content":" name: string Display name Defined in packages/core/src/types.ts:61 ","version":"Next","tagName":"h3"},{"title":"username","type":1,"pageTitle":"Interface: Actor","url":"/eliza/api/interfaces/Actor/#username","content":" username: string Username/handle Defined in packages/core/src/types.ts:64 ","version":"Next","tagName":"h3"},{"title":"details","type":1,"pageTitle":"Interface: Actor","url":"/eliza/api/interfaces/Actor/#details","content":" details: object Additional profile details tagline tagline: string Short profile tagline summary summary: string Longer profile summary quote quote: string Favorite quote Defined in packages/core/src/types.ts:67 ","version":"Next","tagName":"h3"},{"title":"id","type":1,"pageTitle":"Interface: Actor","url":"/eliza/api/interfaces/Actor/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Unique identifier Defined in packages/core/src/types.ts:79 ","version":"Next","tagName":"h3"},{"title":"Interface: ICacheAdapter","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/ICacheAdapter/","content":"","keywords":"","version":"Next"},{"title":"Methods","type":1,"pageTitle":"Interface: ICacheAdapter","url":"/eliza/api/interfaces/ICacheAdapter/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"get()","type":1,"pageTitle":"Interface: ICacheAdapter","url":"/eliza/api/interfaces/ICacheAdapter/#get","content":" get(key): Promise<string> Parameters • key: string Returns Promise<string> Defined in packages/core/src/cache.ts:11 ","version":"Next","tagName":"h3"},{"title":"set()","type":1,"pageTitle":"Interface: ICacheAdapter","url":"/eliza/api/interfaces/ICacheAdapter/#set","content":" set(key, value): Promise<void> Parameters • key: string • value: string Returns Promise<void> Defined in packages/core/src/cache.ts:12 ","version":"Next","tagName":"h3"},{"title":"delete()","type":1,"pageTitle":"Interface: ICacheAdapter","url":"/eliza/api/interfaces/ICacheAdapter/#delete","content":" delete(key): Promise<void> Parameters • key: string Returns Promise<void> Defined in packages/core/src/cache.ts:13 ","version":"Next","tagName":"h3"},{"title":"Interface: Goal","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Goal/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Goal","url":"/eliza/api/interfaces/Goal/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"id?","type":1,"pageTitle":"Interface: Goal","url":"/eliza/api/interfaces/Goal/#id","content":" optional id: `${string}-${string}-${string}-${string}-${string}` Optional unique identifier Defined in packages/core/src/types.ts:110 ","version":"Next","tagName":"h3"},{"title":"roomId","type":1,"pageTitle":"Interface: Goal","url":"/eliza/api/interfaces/Goal/#roomid","content":" roomId: `${string}-${string}-${string}-${string}-${string}` Room ID where goal exists Defined in packages/core/src/types.ts:113 ","version":"Next","tagName":"h3"},{"title":"userId","type":1,"pageTitle":"Interface: Goal","url":"/eliza/api/interfaces/Goal/#userid","content":" userId: `${string}-${string}-${string}-${string}-${string}` User ID of goal owner Defined in packages/core/src/types.ts:116 ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Interface: Goal","url":"/eliza/api/interfaces/Goal/#name","content":" name: string Name/title of the goal Defined in packages/core/src/types.ts:119 ","version":"Next","tagName":"h3"},{"title":"status","type":1,"pageTitle":"Interface: Goal","url":"/eliza/api/interfaces/Goal/#status","content":" status: GoalStatus Current status Defined in packages/core/src/types.ts:122 ","version":"Next","tagName":"h3"},{"title":"objectives","type":1,"pageTitle":"Interface: Goal","url":"/eliza/api/interfaces/Goal/#objectives","content":" objectives: Objective[] Component objectives Defined in packages/core/src/types.ts:125 ","version":"Next","tagName":"h3"},{"title":"Interface: ICacheManager","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/ICacheManager/","content":"","keywords":"","version":"Next"},{"title":"Methods","type":1,"pageTitle":"Interface: ICacheManager","url":"/eliza/api/interfaces/ICacheManager/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"get()","type":1,"pageTitle":"Interface: ICacheManager","url":"/eliza/api/interfaces/ICacheManager/#get","content":" get<T>(key): Promise<T> Type Parameters • T = unknown Parameters • key: string Returns Promise<T> Defined in packages/core/src/types.ts:908 ","version":"Next","tagName":"h3"},{"title":"set()","type":1,"pageTitle":"Interface: ICacheManager","url":"/eliza/api/interfaces/ICacheManager/#set","content":" set<T>(key, value, options?): Promise<void> Type Parameters • T Parameters • key: string • value: T • options?: CacheOptions Returns Promise<void> Defined in packages/core/src/types.ts:909 ","version":"Next","tagName":"h3"},{"title":"delete()","type":1,"pageTitle":"Interface: ICacheManager","url":"/eliza/api/interfaces/ICacheManager/#delete","content":" delete(key): Promise<void> Parameters • key: string Returns Promise<void> Defined in packages/core/src/types.ts:910 ","version":"Next","tagName":"h3"},{"title":"Interface: GenerationOptions","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/GenerationOptions/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"runtime","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#runtime","content":" runtime: IAgentRuntime Defined in packages/core/src/generation.ts:901 ","version":"Next","tagName":"h3"},{"title":"context","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#context","content":" context: string Defined in packages/core/src/generation.ts:902 ","version":"Next","tagName":"h3"},{"title":"modelClass","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#modelclass","content":" modelClass: TiktokenModel Defined in packages/core/src/generation.ts:903 ","version":"Next","tagName":"h3"},{"title":"schema?","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#schema","content":" optional schema: ZodType<any, ZodTypeDef, any> Defined in packages/core/src/generation.ts:904 ","version":"Next","tagName":"h3"},{"title":"schemaName?","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#schemaname","content":" optional schemaName: string Defined in packages/core/src/generation.ts:905 ","version":"Next","tagName":"h3"},{"title":"schemaDescription?","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#schemadescription","content":" optional schemaDescription: string Defined in packages/core/src/generation.ts:906 ","version":"Next","tagName":"h3"},{"title":"stop?","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#stop","content":" optional stop: string[] Defined in packages/core/src/generation.ts:907 ","version":"Next","tagName":"h3"},{"title":"mode?","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#mode","content":" optional mode: "auto" | "json" | "tool" Defined in packages/core/src/generation.ts:908 ","version":"Next","tagName":"h3"},{"title":"experimental_providerMetadata?","type":1,"pageTitle":"Interface: GenerationOptions","url":"/eliza/api/interfaces/GenerationOptions/#experimental_providermetadata","content":" optional experimental_providerMetadata: Record<string, unknown> Defined in packages/core/src/generation.ts:909 ","version":"Next","tagName":"h3"},{"title":"Interface: Evaluator","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Evaluator/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/api/interfaces/Evaluator/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"alwaysRun?","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/api/interfaces/Evaluator/#alwaysrun","content":" optional alwaysRun: boolean Whether to always run Defined in packages/core/src/types.ts:414 ","version":"Next","tagName":"h3"},{"title":"description","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/api/interfaces/Evaluator/#description","content":" description: string Detailed description Defined in packages/core/src/types.ts:417 ","version":"Next","tagName":"h3"},{"title":"similes","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/api/interfaces/Evaluator/#similes","content":" similes: string[] Similar evaluator descriptions Defined in packages/core/src/types.ts:420 ","version":"Next","tagName":"h3"},{"title":"examples","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/api/interfaces/Evaluator/#examples","content":" examples: EvaluationExample[] Example evaluations Defined in packages/core/src/types.ts:423 ","version":"Next","tagName":"h3"},{"title":"handler","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/api/interfaces/Evaluator/#handler","content":" handler: Handler Handler function Defined in packages/core/src/types.ts:426 ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/api/interfaces/Evaluator/#name","content":" name: string Evaluator name Defined in packages/core/src/types.ts:429 ","version":"Next","tagName":"h3"},{"title":"validate","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/api/interfaces/Evaluator/#validate","content":" validate: Validator Validation function Defined in packages/core/src/types.ts:432 ","version":"Next","tagName":"h3"},{"title":"Interface: IDatabaseCacheAdapter","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/IDatabaseCacheAdapter/","content":"","keywords":"","version":"Next"},{"title":"Methods","type":1,"pageTitle":"Interface: IDatabaseCacheAdapter","url":"/eliza/api/interfaces/IDatabaseCacheAdapter/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"getCache()","type":1,"pageTitle":"Interface: IDatabaseCacheAdapter","url":"/eliza/api/interfaces/IDatabaseCacheAdapter/#getcache","content":" getCache(params): Promise<string> Parameters • params • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.key: string Returns Promise<string> Defined in packages/core/src/types.ts:849 ","version":"Next","tagName":"h3"},{"title":"setCache()","type":1,"pageTitle":"Interface: IDatabaseCacheAdapter","url":"/eliza/api/interfaces/IDatabaseCacheAdapter/#setcache","content":" setCache(params): Promise<boolean> Parameters • params • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.key: string • params.value: string Returns Promise<boolean> Defined in packages/core/src/types.ts:854 ","version":"Next","tagName":"h3"},{"title":"deleteCache()","type":1,"pageTitle":"Interface: IDatabaseCacheAdapter","url":"/eliza/api/interfaces/IDatabaseCacheAdapter/#deletecache","content":" deleteCache(params): Promise<boolean> Parameters • params • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.key: string Returns Promise<boolean> Defined in packages/core/src/types.ts:860 ","version":"Next","tagName":"h3"},{"title":"Interface: IPdfService","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/IPdfService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/api/interfaces/IPdfService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Accessors","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/api/interfaces/IPdfService/#accessors","content":" ","version":"Next","tagName":"h2"},{"title":"serviceType","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/api/interfaces/IPdfService/#servicetype","content":" Get Signature get serviceType(): ServiceType Returns ServiceType Inherited from Service.serviceType Defined in packages/core/src/types.ts:927 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/api/interfaces/IPdfService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"initialize()","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/api/interfaces/IPdfService/#initialize","content":" abstract initialize(runtime): Promise<void> Add abstract initialize method that must be implemented by derived classes Parameters • runtime: IAgentRuntime Returns Promise<void> Inherited from Service.initialize Defined in packages/core/src/types.ts:932 ","version":"Next","tagName":"h3"},{"title":"getInstance()","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/api/interfaces/IPdfService/#getinstance","content":" getInstance(): IPdfService Returns IPdfService Defined in packages/core/src/types.ts:1074 ","version":"Next","tagName":"h3"},{"title":"convertPdfToText()","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/api/interfaces/IPdfService/#convertpdftotext","content":" convertPdfToText(pdfBuffer): Promise<string> Parameters • pdfBuffer: Buffer Returns Promise<string> Defined in packages/core/src/types.ts:1075 ","version":"Next","tagName":"h3"},{"title":"Interface: IBrowserService","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/IBrowserService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/api/interfaces/IBrowserService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Accessors","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/api/interfaces/IBrowserService/#accessors","content":" ","version":"Next","tagName":"h2"},{"title":"serviceType","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/api/interfaces/IBrowserService/#servicetype","content":" Get Signature get serviceType(): ServiceType Returns ServiceType Inherited from Service.serviceType Defined in packages/core/src/types.ts:927 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/api/interfaces/IBrowserService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"initialize()","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/api/interfaces/IBrowserService/#initialize","content":" abstract initialize(runtime): Promise<void> Add abstract initialize method that must be implemented by derived classes Parameters • runtime: IAgentRuntime Returns Promise<void> Inherited from Service.initialize Defined in packages/core/src/types.ts:932 ","version":"Next","tagName":"h3"},{"title":"closeBrowser()","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/api/interfaces/IBrowserService/#closebrowser","content":" closeBrowser(): Promise<void> Returns Promise<void> Defined in packages/core/src/types.ts:1061 ","version":"Next","tagName":"h3"},{"title":"getPageContent()","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/api/interfaces/IBrowserService/#getpagecontent","content":" getPageContent(url, runtime): Promise<object> Parameters • url: string • runtime: IAgentRuntime Returns Promise<object> title title: string description description: string bodyContent bodyContent: string Defined in packages/core/src/types.ts:1062 ","version":"Next","tagName":"h3"},{"title":"Interface: IImageDescriptionService","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/IImageDescriptionService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/api/interfaces/IImageDescriptionService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Accessors","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/api/interfaces/IImageDescriptionService/#accessors","content":" ","version":"Next","tagName":"h2"},{"title":"serviceType","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/api/interfaces/IImageDescriptionService/#servicetype","content":" Get Signature get serviceType(): ServiceType Returns ServiceType Inherited from Service.serviceType Defined in packages/core/src/types.ts:927 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/api/interfaces/IImageDescriptionService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"initialize()","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/api/interfaces/IImageDescriptionService/#initialize","content":" abstract initialize(runtime): Promise<void> Add abstract initialize method that must be implemented by derived classes Parameters • runtime: IAgentRuntime Returns Promise<void> Inherited from Service.initialize Defined in packages/core/src/types.ts:932 ","version":"Next","tagName":"h3"},{"title":"describeImage()","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/api/interfaces/IImageDescriptionService/#describeimage","content":" describeImage(imageUrl): Promise<object> Parameters • imageUrl: string Returns Promise<object> title title: string description description: string Defined in packages/core/src/types.ts:1018 ","version":"Next","tagName":"h3"},{"title":"Interface: ISpeechService","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/ISpeechService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/api/interfaces/ISpeechService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Accessors","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/api/interfaces/ISpeechService/#accessors","content":" ","version":"Next","tagName":"h2"},{"title":"serviceType","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/api/interfaces/ISpeechService/#servicetype","content":" Get Signature get serviceType(): ServiceType Returns ServiceType Inherited from Service.serviceType Defined in packages/core/src/types.ts:927 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/api/interfaces/ISpeechService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"initialize()","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/api/interfaces/ISpeechService/#initialize","content":" abstract initialize(runtime): Promise<void> Add abstract initialize method that must be implemented by derived classes Parameters • runtime: IAgentRuntime Returns Promise<void> Inherited from Service.initialize Defined in packages/core/src/types.ts:932 ","version":"Next","tagName":"h3"},{"title":"getInstance()","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/api/interfaces/ISpeechService/#getinstance","content":" getInstance(): ISpeechService Returns ISpeechService Defined in packages/core/src/types.ts:1069 ","version":"Next","tagName":"h3"},{"title":"generate()","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/api/interfaces/ISpeechService/#generate","content":" generate(runtime, text): Promise<Readable> Parameters • runtime: IAgentRuntime • text: string Returns Promise<Readable> Defined in packages/core/src/types.ts:1070 ","version":"Next","tagName":"h3"},{"title":"Interface: ITextGenerationService","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/ITextGenerationService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/api/interfaces/ITextGenerationService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Accessors","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/api/interfaces/ITextGenerationService/#accessors","content":" ","version":"Next","tagName":"h2"},{"title":"serviceType","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/api/interfaces/ITextGenerationService/#servicetype","content":" Get Signature get serviceType(): ServiceType Returns ServiceType Inherited from Service.serviceType Defined in packages/core/src/types.ts:927 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/api/interfaces/ITextGenerationService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"initialize()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/api/interfaces/ITextGenerationService/#initialize","content":" abstract initialize(runtime): Promise<void> Add abstract initialize method that must be implemented by derived classes Parameters • runtime: IAgentRuntime Returns Promise<void> Inherited from Service.initialize Defined in packages/core/src/types.ts:932 ","version":"Next","tagName":"h3"},{"title":"initializeModel()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/api/interfaces/ITextGenerationService/#initializemodel","content":" initializeModel(): Promise<void> Returns Promise<void> Defined in packages/core/src/types.ts:1040 ","version":"Next","tagName":"h3"},{"title":"queueMessageCompletion()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/api/interfaces/ITextGenerationService/#queuemessagecompletion","content":" queueMessageCompletion(context, temperature, stop, frequency_penalty, presence_penalty, max_tokens): Promise<any> Parameters • context: string • temperature: number • stop: string[] • frequency_penalty: number • presence_penalty: number • max_tokens: number Returns Promise<any> Defined in packages/core/src/types.ts:1041 ","version":"Next","tagName":"h3"},{"title":"queueTextCompletion()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/api/interfaces/ITextGenerationService/#queuetextcompletion","content":" queueTextCompletion(context, temperature, stop, frequency_penalty, presence_penalty, max_tokens): Promise<string> Parameters • context: string • temperature: number • stop: string[] • frequency_penalty: number • presence_penalty: number • max_tokens: number Returns Promise<string> Defined in packages/core/src/types.ts:1049 ","version":"Next","tagName":"h3"},{"title":"getEmbeddingResponse()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/api/interfaces/ITextGenerationService/#getembeddingresponse","content":" getEmbeddingResponse(input): Promise<number[]> Parameters • input: string Returns Promise<number[]> Defined in packages/core/src/types.ts:1057 ","version":"Next","tagName":"h3"},{"title":"Interface: Memory","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Memory/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"id?","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#id","content":" optional id: `${string}-${string}-${string}-${string}-${string}` Optional unique identifier Defined in packages/core/src/types.ts:306 ","version":"Next","tagName":"h3"},{"title":"userId","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#userid","content":" userId: `${string}-${string}-${string}-${string}-${string}` Associated user ID Defined in packages/core/src/types.ts:309 ","version":"Next","tagName":"h3"},{"title":"agentId","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#agentid","content":" agentId: `${string}-${string}-${string}-${string}-${string}` Associated agent ID Defined in packages/core/src/types.ts:312 ","version":"Next","tagName":"h3"},{"title":"createdAt?","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#createdat","content":" optional createdAt: number Optional creation timestamp Defined in packages/core/src/types.ts:315 ","version":"Next","tagName":"h3"},{"title":"content","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#content","content":" content: Content Memory content Defined in packages/core/src/types.ts:318 ","version":"Next","tagName":"h3"},{"title":"embedding?","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#embedding","content":" optional embedding: number[] Optional embedding vector Defined in packages/core/src/types.ts:321 ","version":"Next","tagName":"h3"},{"title":"roomId","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#roomid","content":" roomId: `${string}-${string}-${string}-${string}-${string}` Associated room ID Defined in packages/core/src/types.ts:324 ","version":"Next","tagName":"h3"},{"title":"unique?","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#unique","content":" optional unique: boolean Whether memory is unique Defined in packages/core/src/types.ts:327 ","version":"Next","tagName":"h3"},{"title":"similarity?","type":1,"pageTitle":"Interface: Memory","url":"/eliza/api/interfaces/Memory/#similarity","content":" optional similarity: number Embedding similarity score Defined in packages/core/src/types.ts:330 ","version":"Next","tagName":"h3"},{"title":"Interface: ITranscriptionService","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/ITranscriptionService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/api/interfaces/ITranscriptionService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Accessors","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/api/interfaces/ITranscriptionService/#accessors","content":" ","version":"Next","tagName":"h2"},{"title":"serviceType","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/api/interfaces/ITranscriptionService/#servicetype","content":" Get Signature get serviceType(): ServiceType Returns ServiceType Inherited from Service.serviceType Defined in packages/core/src/types.ts:927 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/api/interfaces/ITranscriptionService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"initialize()","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/api/interfaces/ITranscriptionService/#initialize","content":" abstract initialize(runtime): Promise<void> Add abstract initialize method that must be implemented by derived classes Parameters • runtime: IAgentRuntime Returns Promise<void> Inherited from Service.initialize Defined in packages/core/src/types.ts:932 ","version":"Next","tagName":"h3"},{"title":"transcribeAttachment()","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/api/interfaces/ITranscriptionService/#transcribeattachment","content":" transcribeAttachment(audioBuffer): Promise<string> Parameters • audioBuffer: ArrayBuffer Returns Promise<string> Defined in packages/core/src/types.ts:1024 ","version":"Next","tagName":"h3"},{"title":"transcribeAttachmentLocally()","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/api/interfaces/ITranscriptionService/#transcribeattachmentlocally","content":" transcribeAttachmentLocally(audioBuffer): Promise<string> Parameters • audioBuffer: ArrayBuffer Returns Promise<string> Defined in packages/core/src/types.ts:1025 ","version":"Next","tagName":"h3"},{"title":"transcribe()","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/api/interfaces/ITranscriptionService/#transcribe","content":" transcribe(audioBuffer): Promise<string> Parameters • audioBuffer: ArrayBuffer Returns Promise<string> Defined in packages/core/src/types.ts:1028 ","version":"Next","tagName":"h3"},{"title":"transcribeLocally()","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/api/interfaces/ITranscriptionService/#transcribelocally","content":" transcribeLocally(audioBuffer): Promise<string> Parameters • audioBuffer: ArrayBuffer Returns Promise<string> Defined in packages/core/src/types.ts:1029 ","version":"Next","tagName":"h3"},{"title":"Interface: IAgentRuntime","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/IAgentRuntime/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"agentId","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#agentid","content":" agentId: `${string}-${string}-${string}-${string}-${string}` Properties Defined in packages/core/src/types.ts:937 ","version":"Next","tagName":"h3"},{"title":"serverUrl","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#serverurl","content":" serverUrl: string Defined in packages/core/src/types.ts:938 ","version":"Next","tagName":"h3"},{"title":"databaseAdapter","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#databaseadapter","content":" databaseAdapter: IDatabaseAdapter Defined in packages/core/src/types.ts:939 ","version":"Next","tagName":"h3"},{"title":"token","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#token","content":" token: string Defined in packages/core/src/types.ts:940 ","version":"Next","tagName":"h3"},{"title":"modelProvider","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#modelprovider","content":" modelProvider: ModelProviderName Defined in packages/core/src/types.ts:941 ","version":"Next","tagName":"h3"},{"title":"character","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#character","content":" character: Character Defined in packages/core/src/types.ts:942 ","version":"Next","tagName":"h3"},{"title":"providers","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#providers","content":" providers: Provider[] Defined in packages/core/src/types.ts:943 ","version":"Next","tagName":"h3"},{"title":"actions","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#actions","content":" actions: Action[] Defined in packages/core/src/types.ts:944 ","version":"Next","tagName":"h3"},{"title":"evaluators","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#evaluators","content":" evaluators: Evaluator[] Defined in packages/core/src/types.ts:945 ","version":"Next","tagName":"h3"},{"title":"plugins","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#plugins","content":" plugins: Plugin[] Defined in packages/core/src/types.ts:946 ","version":"Next","tagName":"h3"},{"title":"messageManager","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#messagemanager","content":" messageManager: IMemoryManager Defined in packages/core/src/types.ts:948 ","version":"Next","tagName":"h3"},{"title":"descriptionManager","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#descriptionmanager","content":" descriptionManager: IMemoryManager Defined in packages/core/src/types.ts:949 ","version":"Next","tagName":"h3"},{"title":"documentsManager","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#documentsmanager","content":" documentsManager: IMemoryManager Defined in packages/core/src/types.ts:950 ","version":"Next","tagName":"h3"},{"title":"knowledgeManager","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#knowledgemanager","content":" knowledgeManager: IMemoryManager Defined in packages/core/src/types.ts:951 ","version":"Next","tagName":"h3"},{"title":"loreManager","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#loremanager","content":" loreManager: IMemoryManager Defined in packages/core/src/types.ts:952 ","version":"Next","tagName":"h3"},{"title":"cacheManager","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#cachemanager","content":" cacheManager: ICacheManager Defined in packages/core/src/types.ts:954 ","version":"Next","tagName":"h3"},{"title":"services","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#services","content":" services: Map<ServiceType, Service> Defined in packages/core/src/types.ts:956 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"initialize()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#initialize","content":" initialize(): Promise<void> Returns Promise<void> Defined in packages/core/src/types.ts:958 ","version":"Next","tagName":"h3"},{"title":"registerMemoryManager()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#registermemorymanager","content":" registerMemoryManager(manager): void Parameters • manager: IMemoryManager Returns void Defined in packages/core/src/types.ts:960 ","version":"Next","tagName":"h3"},{"title":"getMemoryManager()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#getmemorymanager","content":" getMemoryManager(name): IMemoryManager Parameters • name: string Returns IMemoryManager Defined in packages/core/src/types.ts:962 ","version":"Next","tagName":"h3"},{"title":"getService()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#getservice","content":" getService<T>(service): T Type Parameters • T extends Service Parameters • service: ServiceType Returns T Defined in packages/core/src/types.ts:964 ","version":"Next","tagName":"h3"},{"title":"registerService()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#registerservice","content":" registerService(service): void Parameters • service: Service Returns void Defined in packages/core/src/types.ts:966 ","version":"Next","tagName":"h3"},{"title":"getSetting()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#getsetting","content":" getSetting(key): string Parameters • key: string Returns string Defined in packages/core/src/types.ts:968 ","version":"Next","tagName":"h3"},{"title":"getConversationLength()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#getconversationlength","content":" getConversationLength(): number Methods Returns number Defined in packages/core/src/types.ts:971 ","version":"Next","tagName":"h3"},{"title":"processActions()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#processactions","content":" processActions(message, responses, state?, callback?): Promise<void> Parameters • message: Memory • responses: Memory[] • state?: State • callback?: HandlerCallback Returns Promise<void> Defined in packages/core/src/types.ts:973 ","version":"Next","tagName":"h3"},{"title":"evaluate()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#evaluate","content":" evaluate(message, state?, didRespond?): Promise<string[]> Parameters • message: Memory • state?: State • didRespond?: boolean Returns Promise<string[]> Defined in packages/core/src/types.ts:980 ","version":"Next","tagName":"h3"},{"title":"ensureParticipantExists()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#ensureparticipantexists","content":" ensureParticipantExists(userId, roomId): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:986 ","version":"Next","tagName":"h3"},{"title":"ensureUserExists()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#ensureuserexists","content":" ensureUserExists(userId, userName, name, source): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • userName: string • name: string • source: string Returns Promise<void> Defined in packages/core/src/types.ts:988 ","version":"Next","tagName":"h3"},{"title":"registerAction()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#registeraction","content":" registerAction(action): void Parameters • action: Action Returns void Defined in packages/core/src/types.ts:995 ","version":"Next","tagName":"h3"},{"title":"ensureConnection()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#ensureconnection","content":" ensureConnection(userId, roomId, userName?, userScreenName?, source?): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` • userName?: string • userScreenName?: string • source?: string Returns Promise<void> Defined in packages/core/src/types.ts:997 ","version":"Next","tagName":"h3"},{"title":"ensureParticipantInRoom()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#ensureparticipantinroom","content":" ensureParticipantInRoom(userId, roomId): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:1005 ","version":"Next","tagName":"h3"},{"title":"ensureRoomExists()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#ensureroomexists","content":" ensureRoomExists(roomId): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:1007 ","version":"Next","tagName":"h3"},{"title":"composeState()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#composestate","content":" composeState(message, additionalKeys?): Promise<State> Parameters • message: Memory • additionalKeys? Returns Promise<State> Defined in packages/core/src/types.ts:1009 ","version":"Next","tagName":"h3"},{"title":"updateRecentMessageState()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/api/interfaces/IAgentRuntime/#updaterecentmessagestate","content":" updateRecentMessageState(state): Promise<State> Parameters • state: State Returns Promise<State> Defined in packages/core/src/types.ts:1014 ","version":"Next","tagName":"h3"},{"title":"Interface: MessageExample","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/MessageExample/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: MessageExample","url":"/eliza/api/interfaces/MessageExample/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"user","type":1,"pageTitle":"Interface: MessageExample","url":"/eliza/api/interfaces/MessageExample/#user","content":" user: string Associated user Defined in packages/core/src/types.ts:338 ","version":"Next","tagName":"h3"},{"title":"content","type":1,"pageTitle":"Interface: MessageExample","url":"/eliza/api/interfaces/MessageExample/#content","content":" content: Content Message content Defined in packages/core/src/types.ts:341 ","version":"Next","tagName":"h3"},{"title":"Interface: IVideoService","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/IVideoService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/api/interfaces/IVideoService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Accessors","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/api/interfaces/IVideoService/#accessors","content":" ","version":"Next","tagName":"h2"},{"title":"serviceType","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/api/interfaces/IVideoService/#servicetype","content":" Get Signature get serviceType(): ServiceType Returns ServiceType Inherited from Service.serviceType Defined in packages/core/src/types.ts:927 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/api/interfaces/IVideoService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"initialize()","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/api/interfaces/IVideoService/#initialize","content":" abstract initialize(runtime): Promise<void> Add abstract initialize method that must be implemented by derived classes Parameters • runtime: IAgentRuntime Returns Promise<void> Inherited from Service.initialize Defined in packages/core/src/types.ts:932 ","version":"Next","tagName":"h3"},{"title":"isVideoUrl()","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/api/interfaces/IVideoService/#isvideourl","content":" isVideoUrl(url): boolean Parameters • url: string Returns boolean Defined in packages/core/src/types.ts:1033 ","version":"Next","tagName":"h3"},{"title":"fetchVideoInfo()","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/api/interfaces/IVideoService/#fetchvideoinfo","content":" fetchVideoInfo(url): Promise<Media> Parameters • url: string Returns Promise<Media> Defined in packages/core/src/types.ts:1034 ","version":"Next","tagName":"h3"},{"title":"downloadVideo()","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/api/interfaces/IVideoService/#downloadvideo","content":" downloadVideo(videoInfo): Promise<string> Parameters • videoInfo: Media Returns Promise<string> Defined in packages/core/src/types.ts:1035 ","version":"Next","tagName":"h3"},{"title":"processVideo()","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/api/interfaces/IVideoService/#processvideo","content":" processVideo(url, runtime): Promise<Media> Parameters • url: string • runtime: IAgentRuntime Returns Promise<Media> Defined in packages/core/src/types.ts:1036 ","version":"Next","tagName":"h3"},{"title":"Interface: IMemoryManager","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/IMemoryManager/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"runtime","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#runtime","content":" runtime: IAgentRuntime Defined in packages/core/src/types.ts:864 ","version":"Next","tagName":"h3"},{"title":"tableName","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#tablename","content":" tableName: string Defined in packages/core/src/types.ts:865 ","version":"Next","tagName":"h3"},{"title":"constructor","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#constructor","content":" constructor: Function Defined in packages/core/src/types.ts:866 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"addEmbeddingToMemory()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#addembeddingtomemory","content":" addEmbeddingToMemory(memory): Promise<Memory> Parameters • memory: Memory Returns Promise<Memory> Defined in packages/core/src/types.ts:868 ","version":"Next","tagName":"h3"},{"title":"getMemories()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#getmemories","content":" getMemories(opts): Promise<Memory[]> Parameters • opts • opts.roomId: `${string}-${string}-${string}-${string}-${string}` • opts.count?: number • opts.unique?: boolean • opts.start?: number • opts.end?: number Returns Promise<Memory[]> Defined in packages/core/src/types.ts:870 ","version":"Next","tagName":"h3"},{"title":"getCachedEmbeddings()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#getcachedembeddings","content":" getCachedEmbeddings(content): Promise<object[]> Parameters • content: string Returns Promise<object[]> Defined in packages/core/src/types.ts:878 ","version":"Next","tagName":"h3"},{"title":"getMemoryById()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#getmemorybyid","content":" getMemoryById(id): Promise<Memory> Parameters • id: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Memory> Defined in packages/core/src/types.ts:882 ","version":"Next","tagName":"h3"},{"title":"getMemoriesByRoomIds()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#getmemoriesbyroomids","content":" getMemoriesByRoomIds(params): Promise<Memory[]> Parameters • params • params.roomIds: `${string}-${string}-${string}-${string}-${string}`[] Returns Promise<Memory[]> Defined in packages/core/src/types.ts:883 ","version":"Next","tagName":"h3"},{"title":"searchMemoriesByEmbedding()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#searchmemoriesbyembedding","content":" searchMemoriesByEmbedding(embedding, opts): Promise<Memory[]> Parameters • embedding: number[] • opts • opts.match_threshold?: number • opts.count?: number • opts.roomId: `${string}-${string}-${string}-${string}-${string}` • opts.unique?: boolean Returns Promise<Memory[]> Defined in packages/core/src/types.ts:884 ","version":"Next","tagName":"h3"},{"title":"createMemory()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#creatememory","content":" createMemory(memory, unique?): Promise<void> Parameters • memory: Memory • unique?: boolean Returns Promise<void> Defined in packages/core/src/types.ts:894 ","version":"Next","tagName":"h3"},{"title":"removeMemory()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#removememory","content":" removeMemory(memoryId): Promise<void> Parameters • memoryId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:896 ","version":"Next","tagName":"h3"},{"title":"removeAllMemories()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#removeallmemories","content":" removeAllMemories(roomId): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:898 ","version":"Next","tagName":"h3"},{"title":"countMemories()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/api/interfaces/IMemoryManager/#countmemories","content":" countMemories(roomId, unique?): Promise<number> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • unique?: boolean Returns Promise<number> Defined in packages/core/src/types.ts:900 ","version":"Next","tagName":"h3"},{"title":"Interface: Participant","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Participant/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Participant","url":"/eliza/api/interfaces/Participant/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"id","type":1,"pageTitle":"Interface: Participant","url":"/eliza/api/interfaces/Participant/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Unique identifier Defined in packages/core/src/types.ts:501 ","version":"Next","tagName":"h3"},{"title":"account","type":1,"pageTitle":"Interface: Participant","url":"/eliza/api/interfaces/Participant/#account","content":" account: Account Associated account Defined in packages/core/src/types.ts:504 ","version":"Next","tagName":"h3"},{"title":"Interface: Objective","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Objective/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Objective","url":"/eliza/api/interfaces/Objective/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"id?","type":1,"pageTitle":"Interface: Objective","url":"/eliza/api/interfaces/Objective/#id","content":" optional id: string Optional unique identifier Defined in packages/core/src/types.ts:87 ","version":"Next","tagName":"h3"},{"title":"description","type":1,"pageTitle":"Interface: Objective","url":"/eliza/api/interfaces/Objective/#description","content":" description: string Description of what needs to be achieved Defined in packages/core/src/types.ts:90 ","version":"Next","tagName":"h3"},{"title":"completed","type":1,"pageTitle":"Interface: Objective","url":"/eliza/api/interfaces/Objective/#completed","content":" completed: boolean Whether objective is completed Defined in packages/core/src/types.ts:93 ","version":"Next","tagName":"h3"},{"title":"Interface: IDatabaseAdapter","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/IDatabaseAdapter/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"db","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#db","content":" db: any Database instance Defined in packages/core/src/types.ts:703 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"init()?","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#init","content":" optional init(): Promise<void> Optional initialization Returns Promise<void> Defined in packages/core/src/types.ts:706 ","version":"Next","tagName":"h3"},{"title":"getAccountById()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getaccountbyid","content":" getAccountById(userId): Promise<Account> Get account by ID Parameters • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Account> Defined in packages/core/src/types.ts:709 ","version":"Next","tagName":"h3"},{"title":"createAccount()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#createaccount","content":" createAccount(account): Promise<boolean> Create new account Parameters • account: Account Returns Promise<boolean> Defined in packages/core/src/types.ts:712 ","version":"Next","tagName":"h3"},{"title":"getMemories()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getmemories","content":" getMemories(params): Promise<Memory[]> Get memories matching criteria Parameters • params • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.count?: number • params.unique?: boolean • params.tableName: string • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.start?: number • params.end?: number Returns Promise<Memory[]> Defined in packages/core/src/types.ts:715 ","version":"Next","tagName":"h3"},{"title":"getMemoryById()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getmemorybyid","content":" getMemoryById(id): Promise<Memory> Parameters • id: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Memory> Defined in packages/core/src/types.ts:725 ","version":"Next","tagName":"h3"},{"title":"getMemoriesByRoomIds()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getmemoriesbyroomids","content":" getMemoriesByRoomIds(params): Promise<Memory[]> Parameters • params • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.roomIds: `${string}-${string}-${string}-${string}-${string}`[] Returns Promise<Memory[]> Defined in packages/core/src/types.ts:727 ","version":"Next","tagName":"h3"},{"title":"getCachedEmbeddings()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getcachedembeddings","content":" getCachedEmbeddings(params): Promise<object[]> Parameters • params • params.query_table_name: string • params.query_threshold: number • params.query_input: string • params.query_field_name: string • params.query_field_sub_name: string • params.query_match_count: number Returns Promise<object[]> Defined in packages/core/src/types.ts:732 ","version":"Next","tagName":"h3"},{"title":"log()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#log","content":" log(params): Promise<void> Parameters • params • params.body • params.userId: `${string}-${string}-${string}-${string}-${string}` • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.type: string Returns Promise<void> Defined in packages/core/src/types.ts:741 ","version":"Next","tagName":"h3"},{"title":"getActorDetails()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getactordetails","content":" getActorDetails(params): Promise<Actor[]> Parameters • params • params.roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Actor[]> Defined in packages/core/src/types.ts:748 ","version":"Next","tagName":"h3"},{"title":"searchMemories()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#searchmemories","content":" searchMemories(params): Promise<Memory[]> Parameters • params • params.tableName: string • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.embedding: number[] • params.match_threshold: number • params.match_count: number • params.unique: boolean Returns Promise<Memory[]> Defined in packages/core/src/types.ts:750 ","version":"Next","tagName":"h3"},{"title":"updateGoalStatus()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#updategoalstatus","content":" updateGoalStatus(params): Promise<void> Parameters • params • params.goalId: `${string}-${string}-${string}-${string}-${string}` • params.status: GoalStatus Returns Promise<void> Defined in packages/core/src/types.ts:760 ","version":"Next","tagName":"h3"},{"title":"searchMemoriesByEmbedding()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#searchmemoriesbyembedding","content":" searchMemoriesByEmbedding(embedding, params): Promise<Memory[]> Parameters • embedding: number[] • params • params.match_threshold?: number • params.count?: number • params.roomId?: `${string}-${string}-${string}-${string}-${string}` • params.agentId?: `${string}-${string}-${string}-${string}-${string}` • params.unique?: boolean • params.tableName: string Returns Promise<Memory[]> Defined in packages/core/src/types.ts:765 ","version":"Next","tagName":"h3"},{"title":"createMemory()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#creatememory","content":" createMemory(memory, tableName, unique?): Promise<void> Parameters • memory: Memory • tableName: string • unique?: boolean Returns Promise<void> Defined in packages/core/src/types.ts:777 ","version":"Next","tagName":"h3"},{"title":"removeMemory()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#removememory","content":" removeMemory(memoryId, tableName): Promise<void> Parameters • memoryId: `${string}-${string}-${string}-${string}-${string}` • tableName: string Returns Promise<void> Defined in packages/core/src/types.ts:783 ","version":"Next","tagName":"h3"},{"title":"removeAllMemories()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#removeallmemories","content":" removeAllMemories(roomId, tableName): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • tableName: string Returns Promise<void> Defined in packages/core/src/types.ts:785 ","version":"Next","tagName":"h3"},{"title":"countMemories()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#countmemories","content":" countMemories(roomId, unique?, tableName?): Promise<number> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • unique?: boolean • tableName?: string Returns Promise<number> Defined in packages/core/src/types.ts:787 ","version":"Next","tagName":"h3"},{"title":"getGoals()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getgoals","content":" getGoals(params): Promise<Goal[]> Parameters • params • params.agentId: `${string}-${string}-${string}-${string}-${string}` • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.userId?: `${string}-${string}-${string}-${string}-${string}` • params.onlyInProgress?: boolean • params.count?: number Returns Promise<Goal[]> Defined in packages/core/src/types.ts:793 ","version":"Next","tagName":"h3"},{"title":"updateGoal()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#updategoal","content":" updateGoal(goal): Promise<void> Parameters • goal: Goal Returns Promise<void> Defined in packages/core/src/types.ts:801 ","version":"Next","tagName":"h3"},{"title":"createGoal()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#creategoal","content":" createGoal(goal): Promise<void> Parameters • goal: Goal Returns Promise<void> Defined in packages/core/src/types.ts:803 ","version":"Next","tagName":"h3"},{"title":"removeGoal()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#removegoal","content":" removeGoal(goalId): Promise<void> Parameters • goalId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:805 ","version":"Next","tagName":"h3"},{"title":"removeAllGoals()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#removeallgoals","content":" removeAllGoals(roomId): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:807 ","version":"Next","tagName":"h3"},{"title":"getRoom()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getroom","content":" getRoom(roomId): Promise<`${string}-${string}-${string}-${string}-${string}`> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<`${string}-${string}-${string}-${string}-${string}`> Defined in packages/core/src/types.ts:809 ","version":"Next","tagName":"h3"},{"title":"createRoom()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#createroom","content":" createRoom(roomId?): Promise<`${string}-${string}-${string}-${string}-${string}`> Parameters • roomId?: `${string}-${string}-${string}-${string}-${string}` Returns Promise<`${string}-${string}-${string}-${string}-${string}`> Defined in packages/core/src/types.ts:811 ","version":"Next","tagName":"h3"},{"title":"removeRoom()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#removeroom","content":" removeRoom(roomId): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:813 ","version":"Next","tagName":"h3"},{"title":"getRoomsForParticipant()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getroomsforparticipant","content":" getRoomsForParticipant(userId): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> Defined in packages/core/src/types.ts:815 ","version":"Next","tagName":"h3"},{"title":"getRoomsForParticipants()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getroomsforparticipants","content":" getRoomsForParticipants(userIds): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Parameters • userIds: `${string}-${string}-${string}-${string}-${string}`[] Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> Defined in packages/core/src/types.ts:817 ","version":"Next","tagName":"h3"},{"title":"addParticipant()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#addparticipant","content":" addParticipant(userId, roomId): Promise<boolean> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<boolean> Defined in packages/core/src/types.ts:819 ","version":"Next","tagName":"h3"},{"title":"removeParticipant()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#removeparticipant","content":" removeParticipant(userId, roomId): Promise<boolean> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<boolean> Defined in packages/core/src/types.ts:821 ","version":"Next","tagName":"h3"},{"title":"getParticipantsForAccount()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getparticipantsforaccount","content":" getParticipantsForAccount(userId): Promise<Participant[]> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Participant[]> Defined in packages/core/src/types.ts:823 ","version":"Next","tagName":"h3"},{"title":"getParticipantsForRoom()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getparticipantsforroom","content":" getParticipantsForRoom(roomId): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> Defined in packages/core/src/types.ts:825 ","version":"Next","tagName":"h3"},{"title":"getParticipantUserState()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getparticipantuserstate","content":" getParticipantUserState(roomId, userId): Promise<"FOLLOWED" | "MUTED"> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<"FOLLOWED" | "MUTED"> Defined in packages/core/src/types.ts:827 ","version":"Next","tagName":"h3"},{"title":"setParticipantUserState()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#setparticipantuserstate","content":" setParticipantUserState(roomId, userId, state): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • userId: `${string}-${string}-${string}-${string}-${string}` • state: "FOLLOWED" | "MUTED" Returns Promise<void> Defined in packages/core/src/types.ts:832 ","version":"Next","tagName":"h3"},{"title":"createRelationship()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#createrelationship","content":" createRelationship(params): Promise<boolean> Parameters • params • params.userA: `${string}-${string}-${string}-${string}-${string}` • params.userB: `${string}-${string}-${string}-${string}-${string}` Returns Promise<boolean> Defined in packages/core/src/types.ts:838 ","version":"Next","tagName":"h3"},{"title":"getRelationship()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getrelationship","content":" getRelationship(params): Promise<Relationship> Parameters • params • params.userA: `${string}-${string}-${string}-${string}-${string}` • params.userB: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Relationship> Defined in packages/core/src/types.ts:840 ","version":"Next","tagName":"h3"},{"title":"getRelationships()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/api/interfaces/IDatabaseAdapter/#getrelationships","content":" getRelationships(params): Promise<Relationship[]> Parameters • params • params.userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Relationship[]> Defined in packages/core/src/types.ts:845 ","version":"Next","tagName":"h3"},{"title":"Interface: Room","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Room/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Room","url":"/eliza/api/interfaces/Room/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"id","type":1,"pageTitle":"Interface: Room","url":"/eliza/api/interfaces/Room/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Unique identifier Defined in packages/core/src/types.ts:512 ","version":"Next","tagName":"h3"},{"title":"participants","type":1,"pageTitle":"Interface: Room","url":"/eliza/api/interfaces/Room/#participants","content":" participants: Participant[] Room participants Defined in packages/core/src/types.ts:515 ","version":"Next","tagName":"h3"},{"title":"Type Alias: EnvConfig","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/EnvConfig/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: EnvConfig","url":"/eliza/api/type-aliases/EnvConfig/#defined-in","content":" packages/core/src/enviroment.ts:23 ","version":"Next","tagName":"h2"},{"title":"Interface: State","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/State/","content":"","keywords":"","version":"Next"},{"title":"Indexable","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#indexable","content":" [key: string]: unknown ","version":"Next","tagName":"h2"},{"title":"Properties","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"userId?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#userid","content":" optional userId: `${string}-${string}-${string}-${string}-${string}` ID of user who sent current message Defined in packages/core/src/types.ts:226 ","version":"Next","tagName":"h3"},{"title":"agentId?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#agentid","content":" optional agentId: `${string}-${string}-${string}-${string}-${string}` ID of agent in conversation Defined in packages/core/src/types.ts:229 ","version":"Next","tagName":"h3"},{"title":"bio","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#bio","content":" bio: string Agent's biography Defined in packages/core/src/types.ts:232 ","version":"Next","tagName":"h3"},{"title":"lore","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#lore","content":" lore: string Agent's background lore Defined in packages/core/src/types.ts:235 ","version":"Next","tagName":"h3"},{"title":"messageDirections","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#messagedirections","content":" messageDirections: string Message handling directions Defined in packages/core/src/types.ts:238 ","version":"Next","tagName":"h3"},{"title":"postDirections","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#postdirections","content":" postDirections: string Post handling directions Defined in packages/core/src/types.ts:241 ","version":"Next","tagName":"h3"},{"title":"roomId","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#roomid","content":" roomId: `${string}-${string}-${string}-${string}-${string}` Current room/conversation ID Defined in packages/core/src/types.ts:244 ","version":"Next","tagName":"h3"},{"title":"agentName?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#agentname","content":" optional agentName: string Optional agent name Defined in packages/core/src/types.ts:247 ","version":"Next","tagName":"h3"},{"title":"senderName?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#sendername","content":" optional senderName: string Optional message sender name Defined in packages/core/src/types.ts:250 ","version":"Next","tagName":"h3"},{"title":"actors","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#actors","content":" actors: string String representation of conversation actors Defined in packages/core/src/types.ts:253 ","version":"Next","tagName":"h3"},{"title":"actorsData?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#actorsdata","content":" optional actorsData: Actor[] Optional array of actor objects Defined in packages/core/src/types.ts:256 ","version":"Next","tagName":"h3"},{"title":"goals?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#goals","content":" optional goals: string Optional string representation of goals Defined in packages/core/src/types.ts:259 ","version":"Next","tagName":"h3"},{"title":"goalsData?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#goalsdata","content":" optional goalsData: Goal[] Optional array of goal objects Defined in packages/core/src/types.ts:262 ","version":"Next","tagName":"h3"},{"title":"recentMessages","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#recentmessages","content":" recentMessages: string Recent message history as string Defined in packages/core/src/types.ts:265 ","version":"Next","tagName":"h3"},{"title":"recentMessagesData","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#recentmessagesdata","content":" recentMessagesData: Memory[] Recent message objects Defined in packages/core/src/types.ts:268 ","version":"Next","tagName":"h3"},{"title":"actionNames?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#actionnames","content":" optional actionNames: string Optional valid action names Defined in packages/core/src/types.ts:271 ","version":"Next","tagName":"h3"},{"title":"actions?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#actions","content":" optional actions: string Optional action descriptions Defined in packages/core/src/types.ts:274 ","version":"Next","tagName":"h3"},{"title":"actionsData?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#actionsdata","content":" optional actionsData: Action[] Optional action objects Defined in packages/core/src/types.ts:277 ","version":"Next","tagName":"h3"},{"title":"actionExamples?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#actionexamples","content":" optional actionExamples: string Optional action examples Defined in packages/core/src/types.ts:280 ","version":"Next","tagName":"h3"},{"title":"providers?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#providers","content":" optional providers: string Optional provider descriptions Defined in packages/core/src/types.ts:283 ","version":"Next","tagName":"h3"},{"title":"responseData?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#responsedata","content":" optional responseData: Content Optional response content Defined in packages/core/src/types.ts:286 ","version":"Next","tagName":"h3"},{"title":"recentInteractionsData?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#recentinteractionsdata","content":" optional recentInteractionsData: Memory[] Optional recent interaction objects Defined in packages/core/src/types.ts:289 ","version":"Next","tagName":"h3"},{"title":"recentInteractions?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#recentinteractions","content":" optional recentInteractions: string Optional recent interactions string Defined in packages/core/src/types.ts:292 ","version":"Next","tagName":"h3"},{"title":"formattedConversation?","type":1,"pageTitle":"Interface: State","url":"/eliza/api/interfaces/State/#formattedconversation","content":" optional formattedConversation: string Optional formatted conversation Defined in packages/core/src/types.ts:295 ","version":"Next","tagName":"h3"},{"title":"Type Alias: CacheOptions","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/CacheOptions/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: CacheOptions","url":"/eliza/api/type-aliases/CacheOptions/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"expires?","type":1,"pageTitle":"Type Alias: CacheOptions","url":"/eliza/api/type-aliases/CacheOptions/#expires","content":" optional expires: number ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: CacheOptions","url":"/eliza/api/type-aliases/CacheOptions/#defined-in","content":" packages/core/src/types.ts:903 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Character","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/Character/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"id?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#id","content":" optional id: UUID Optional unique identifier ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#name","content":" name: string Character name ","version":"Next","tagName":"h3"},{"title":"username?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#username","content":" optional username: string Optional username ","version":"Next","tagName":"h3"},{"title":"system?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#system","content":" optional system: string Optional system prompt ","version":"Next","tagName":"h3"},{"title":"modelProvider","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#modelprovider","content":" modelProvider: ModelProviderName Model provider to use ","version":"Next","tagName":"h3"},{"title":"modelEndpointOverride?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#modelendpointoverride","content":" optional modelEndpointOverride: string Optional model endpoint override ","version":"Next","tagName":"h3"},{"title":"templates?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templates","content":" optional templates: object Optional prompt templates ","version":"Next","tagName":"h3"},{"title":"templates.goalsTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatesgoalstemplate","content":" optional goalsTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.factsTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatesfactstemplate","content":" optional factsTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.messageHandlerTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatesmessagehandlertemplate","content":" optional messageHandlerTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.shouldRespondTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatesshouldrespondtemplate","content":" optional shouldRespondTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.continueMessageHandlerTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatescontinuemessagehandlertemplate","content":" optional continueMessageHandlerTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.evaluationTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatesevaluationtemplate","content":" optional evaluationTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.twitterSearchTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatestwittersearchtemplate","content":" optional twitterSearchTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.twitterPostTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatestwitterposttemplate","content":" optional twitterPostTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.twitterMessageHandlerTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatestwittermessagehandlertemplate","content":" optional twitterMessageHandlerTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.twitterShouldRespondTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatestwittershouldrespondtemplate","content":" optional twitterShouldRespondTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.telegramMessageHandlerTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatestelegrammessagehandlertemplate","content":" optional telegramMessageHandlerTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.telegramShouldRespondTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatestelegramshouldrespondtemplate","content":" optional telegramShouldRespondTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.discordVoiceHandlerTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatesdiscordvoicehandlertemplate","content":" optional discordVoiceHandlerTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.discordShouldRespondTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatesdiscordshouldrespondtemplate","content":" optional discordShouldRespondTemplate: string ","version":"Next","tagName":"h3"},{"title":"templates.discordMessageHandlerTemplate?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#templatesdiscordmessagehandlertemplate","content":" optional discordMessageHandlerTemplate: string ","version":"Next","tagName":"h3"},{"title":"bio","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#bio","content":" bio: string | string[] Character biography ","version":"Next","tagName":"h3"},{"title":"lore","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#lore","content":" lore: string[] Character background lore ","version":"Next","tagName":"h3"},{"title":"messageExamples","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#messageexamples","content":" messageExamples: MessageExample[][] Example messages ","version":"Next","tagName":"h3"},{"title":"postExamples","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#postexamples","content":" postExamples: string[] Example posts ","version":"Next","tagName":"h3"},{"title":"people","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#people","content":" people: string[] Known people ","version":"Next","tagName":"h3"},{"title":"topics","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#topics","content":" topics: string[] Known topics ","version":"Next","tagName":"h3"},{"title":"adjectives","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#adjectives","content":" adjectives: string[] Character traits ","version":"Next","tagName":"h3"},{"title":"knowledge?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#knowledge","content":" optional knowledge: string[] Optional knowledge base ","version":"Next","tagName":"h3"},{"title":"clients","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#clients","content":" clients: Clients[] Supported client platforms ","version":"Next","tagName":"h3"},{"title":"plugins","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#plugins","content":" plugins: Plugin[] Available plugins ","version":"Next","tagName":"h3"},{"title":"settings?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#settings","content":" optional settings: object Optional configuration ","version":"Next","tagName":"h3"},{"title":"settings.secrets?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#settingssecrets","content":" optional secrets: object Index Signature [key: string]: string ","version":"Next","tagName":"h3"},{"title":"settings.voice?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#settingsvoice","content":" optional voice: object ","version":"Next","tagName":"h3"},{"title":"settings.voice.model?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#settingsvoicemodel","content":" optional model: string ","version":"Next","tagName":"h3"},{"title":"settings.voice.url?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#settingsvoiceurl","content":" optional url: string ","version":"Next","tagName":"h3"},{"title":"settings.model?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#settingsmodel","content":" optional model: string ","version":"Next","tagName":"h3"},{"title":"settings.embeddingModel?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#settingsembeddingmodel","content":" optional embeddingModel: string ","version":"Next","tagName":"h3"},{"title":"clientConfig?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#clientconfig","content":" optional clientConfig: object Optional client-specific config ","version":"Next","tagName":"h3"},{"title":"clientConfig.discord?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#clientconfigdiscord","content":" optional discord: object ","version":"Next","tagName":"h3"},{"title":"clientConfig.discord.shouldIgnoreBotMessages?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#clientconfigdiscordshouldignorebotmessages","content":" optional shouldIgnoreBotMessages: boolean ","version":"Next","tagName":"h3"},{"title":"clientConfig.discord.shouldIgnoreDirectMessages?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#clientconfigdiscordshouldignoredirectmessages","content":" optional shouldIgnoreDirectMessages: boolean ","version":"Next","tagName":"h3"},{"title":"clientConfig.telegram?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#clientconfigtelegram","content":" optional telegram: object ","version":"Next","tagName":"h3"},{"title":"clientConfig.telegram.shouldIgnoreBotMessages?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#clientconfigtelegramshouldignorebotmessages","content":" optional shouldIgnoreBotMessages: boolean ","version":"Next","tagName":"h3"},{"title":"clientConfig.telegram.shouldIgnoreDirectMessages?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#clientconfigtelegramshouldignoredirectmessages","content":" optional shouldIgnoreDirectMessages: boolean ","version":"Next","tagName":"h3"},{"title":"style","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#style","content":" style: object Writing style guides ","version":"Next","tagName":"h3"},{"title":"style.all","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#styleall","content":" all: string[] ","version":"Next","tagName":"h3"},{"title":"style.chat","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#stylechat","content":" chat: string[] ","version":"Next","tagName":"h3"},{"title":"style.post","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#stylepost","content":" post: string[] ","version":"Next","tagName":"h3"},{"title":"twitterProfile?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#twitterprofile","content":" optional twitterProfile: object Optional Twitter profile ","version":"Next","tagName":"h3"},{"title":"twitterProfile.id","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#twitterprofileid","content":" id: string ","version":"Next","tagName":"h3"},{"title":"twitterProfile.username","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#twitterprofileusername","content":" username: string ","version":"Next","tagName":"h3"},{"title":"twitterProfile.screenName","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#twitterprofilescreenname","content":" screenName: string ","version":"Next","tagName":"h3"},{"title":"twitterProfile.bio","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#twitterprofilebio","content":" bio: string ","version":"Next","tagName":"h3"},{"title":"twitterProfile.nicknames?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#twitterprofilenicknames","content":" optional nicknames: string[] ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/api/type-aliases/Character/#defined-in","content":" packages/core/src/types.ts:590 ","version":"Next","tagName":"h2"},{"title":"Interface: Relationship","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Relationship/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/api/interfaces/Relationship/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"id","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/api/interfaces/Relationship/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Unique identifier Defined in packages/core/src/types.ts:452 ","version":"Next","tagName":"h3"},{"title":"userA","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/api/interfaces/Relationship/#usera","content":" userA: `${string}-${string}-${string}-${string}-${string}` First user ID Defined in packages/core/src/types.ts:455 ","version":"Next","tagName":"h3"},{"title":"userB","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/api/interfaces/Relationship/#userb","content":" userB: `${string}-${string}-${string}-${string}-${string}` Second user ID Defined in packages/core/src/types.ts:458 ","version":"Next","tagName":"h3"},{"title":"userId","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/api/interfaces/Relationship/#userid","content":" userId: `${string}-${string}-${string}-${string}-${string}` Primary user ID Defined in packages/core/src/types.ts:461 ","version":"Next","tagName":"h3"},{"title":"roomId","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/api/interfaces/Relationship/#roomid","content":" roomId: `${string}-${string}-${string}-${string}-${string}` Associated room ID Defined in packages/core/src/types.ts:464 ","version":"Next","tagName":"h3"},{"title":"status","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/api/interfaces/Relationship/#status","content":" status: string Relationship status Defined in packages/core/src/types.ts:467 ","version":"Next","tagName":"h3"},{"title":"createdAt?","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/api/interfaces/Relationship/#createdat","content":" optional createdAt: string Optional creation timestamp Defined in packages/core/src/types.ts:470 ","version":"Next","tagName":"h3"},{"title":"Type Alias: CharacterConfig","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/CharacterConfig/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: CharacterConfig","url":"/eliza/api/type-aliases/CharacterConfig/#defined-in","content":" packages/core/src/enviroment.ts:128 ","version":"Next","tagName":"h2"},{"title":"Interface: Provider","type":0,"sectionRef":"#","url":"/eliza/api/interfaces/Provider/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Provider","url":"/eliza/api/interfaces/Provider/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"get()","type":1,"pageTitle":"Interface: Provider","url":"/eliza/api/interfaces/Provider/#get","content":" get: (runtime, message, state?) => Promise<any> Data retrieval function Parameters • runtime: IAgentRuntime • message: Memory • state?: State Returns Promise<any> Defined in packages/core/src/types.ts:440 ","version":"Next","tagName":"h3"},{"title":"Type Alias: Plugin","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/Plugin/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/api/type-aliases/Plugin/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"name","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/api/type-aliases/Plugin/#name","content":" name: string Plugin name ","version":"Next","tagName":"h3"},{"title":"description","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/api/type-aliases/Plugin/#description","content":" description: string Plugin description ","version":"Next","tagName":"h3"},{"title":"actions?","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/api/type-aliases/Plugin/#actions","content":" optional actions: Action[] Optional actions ","version":"Next","tagName":"h3"},{"title":"providers?","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/api/type-aliases/Plugin/#providers","content":" optional providers: Provider[] Optional providers ","version":"Next","tagName":"h3"},{"title":"evaluators?","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/api/type-aliases/Plugin/#evaluators","content":" optional evaluators: Evaluator[] Optional evaluators ","version":"Next","tagName":"h3"},{"title":"services?","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/api/type-aliases/Plugin/#services","content":" optional services: Service[] Optional services ","version":"Next","tagName":"h3"},{"title":"clients?","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/api/type-aliases/Plugin/#clients","content":" optional clients: Client[] Optional clients ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/api/type-aliases/Plugin/#defined-in","content":" packages/core/src/types.ts:555 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Client","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/Client/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Client","url":"/eliza/api/type-aliases/Client/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"start()","type":1,"pageTitle":"Type Alias: Client","url":"/eliza/api/type-aliases/Client/#start","content":" start: (runtime?) => Promise<unknown> Start client connection Parameters • runtime?: IAgentRuntime Returns Promise<unknown> ","version":"Next","tagName":"h3"},{"title":"stop()","type":1,"pageTitle":"Type Alias: Client","url":"/eliza/api/type-aliases/Client/#stop","content":" stop: (runtime?) => Promise<unknown> Stop client connection Parameters • runtime?: IAgentRuntime Returns Promise<unknown> ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Client","url":"/eliza/api/type-aliases/Client/#defined-in","content":" packages/core/src/types.ts:544 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Handler()","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/Handler/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Type Alias: Handler()","url":"/eliza/api/type-aliases/Handler/#parameters","content":" • runtime: IAgentRuntime • message: Memory • state?: State • options? • callback?: HandlerCallback ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Type Alias: Handler()","url":"/eliza/api/type-aliases/Handler/#returns","content":" Promise<unknown> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Handler()","url":"/eliza/api/type-aliases/Handler/#defined-in","content":" packages/core/src/types.ts:347 ","version":"Next","tagName":"h2"},{"title":"Type Alias: HandlerCallback()","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/HandlerCallback/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Type Alias: HandlerCallback()","url":"/eliza/api/type-aliases/HandlerCallback/#parameters","content":" • response: Content • files?: any ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Type Alias: HandlerCallback()","url":"/eliza/api/type-aliases/HandlerCallback/#returns","content":" Promise<Memory[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: HandlerCallback()","url":"/eliza/api/type-aliases/HandlerCallback/#defined-in","content":" packages/core/src/types.ts:358 ","version":"Next","tagName":"h2"},{"title":"Type Alias: KnowledgeItem","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/KnowledgeItem/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: KnowledgeItem","url":"/eliza/api/type-aliases/KnowledgeItem/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"id","type":1,"pageTitle":"Type Alias: KnowledgeItem","url":"/eliza/api/type-aliases/KnowledgeItem/#id","content":" id: UUID ","version":"Next","tagName":"h3"},{"title":"content","type":1,"pageTitle":"Type Alias: KnowledgeItem","url":"/eliza/api/type-aliases/KnowledgeItem/#content","content":" content: Content ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: KnowledgeItem","url":"/eliza/api/type-aliases/KnowledgeItem/#defined-in","content":" packages/core/src/types.ts:1094 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Media","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/Media/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/api/type-aliases/Media/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"id","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/api/type-aliases/Media/#id","content":" id: string Unique identifier ","version":"Next","tagName":"h3"},{"title":"url","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/api/type-aliases/Media/#url","content":" url: string Media URL ","version":"Next","tagName":"h3"},{"title":"title","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/api/type-aliases/Media/#title","content":" title: string Media title ","version":"Next","tagName":"h3"},{"title":"source","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/api/type-aliases/Media/#source","content":" source: string Media source ","version":"Next","tagName":"h3"},{"title":"description","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/api/type-aliases/Media/#description","content":" description: string Media description ","version":"Next","tagName":"h3"},{"title":"text","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/api/type-aliases/Media/#text","content":" text: string Text content ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/api/type-aliases/Media/#defined-in","content":" packages/core/src/types.ts:521 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Model","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/Model/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"endpoint?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#endpoint","content":" optional endpoint: string Optional API endpoint ","version":"Next","tagName":"h3"},{"title":"settings","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#settings","content":" settings: object Model settings ","version":"Next","tagName":"h3"},{"title":"settings.maxInputTokens","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#settingsmaxinputtokens","content":" maxInputTokens: number Maximum input tokens ","version":"Next","tagName":"h3"},{"title":"settings.maxOutputTokens","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#settingsmaxoutputtokens","content":" maxOutputTokens: number Maximum output tokens ","version":"Next","tagName":"h3"},{"title":"settings.frequency_penalty?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#settingsfrequency_penalty","content":" optional frequency_penalty: number Optional frequency penalty ","version":"Next","tagName":"h3"},{"title":"settings.presence_penalty?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#settingspresence_penalty","content":" optional presence_penalty: number Optional presence penalty ","version":"Next","tagName":"h3"},{"title":"settings.repetition_penalty?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#settingsrepetition_penalty","content":" optional repetition_penalty: number Optional repetition penalty ","version":"Next","tagName":"h3"},{"title":"settings.stop","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#settingsstop","content":" stop: string[] Stop sequences ","version":"Next","tagName":"h3"},{"title":"settings.temperature","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#settingstemperature","content":" temperature: number Temperature setting ","version":"Next","tagName":"h3"},{"title":"imageSettings?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#imagesettings","content":" optional imageSettings: object Optional image generation settings ","version":"Next","tagName":"h3"},{"title":"imageSettings.steps?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#imagesettingssteps","content":" optional steps: number ","version":"Next","tagName":"h3"},{"title":"model","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#model","content":" model: object Model names by size class ","version":"Next","tagName":"h3"},{"title":"model.small","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#modelsmall","content":" small: string ","version":"Next","tagName":"h3"},{"title":"model.medium","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#modelmedium","content":" medium: string ","version":"Next","tagName":"h3"},{"title":"model.large","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#modellarge","content":" large: string ","version":"Next","tagName":"h3"},{"title":"model.embedding?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#modelembedding","content":" optional embedding: string ","version":"Next","tagName":"h3"},{"title":"model.image?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#modelimage","content":" optional image: string ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/api/type-aliases/Model/#defined-in","content":" packages/core/src/types.ts:142 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Models","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/Models/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"openai","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#openai","content":" openai: Model ","version":"Next","tagName":"h3"},{"title":"anthropic","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#anthropic","content":" anthropic: Model ","version":"Next","tagName":"h3"},{"title":"grok","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#grok","content":" grok: Model ","version":"Next","tagName":"h3"},{"title":"groq","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#groq","content":" groq: Model ","version":"Next","tagName":"h3"},{"title":"llama_cloud","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#llama_cloud","content":" llama_cloud: Model ","version":"Next","tagName":"h3"},{"title":"llama_local","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#llama_local","content":" llama_local: Model ","version":"Next","tagName":"h3"},{"title":"google","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#google","content":" google: Model ","version":"Next","tagName":"h3"},{"title":"claude_vertex","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#claude_vertex","content":" claude_vertex: Model ","version":"Next","tagName":"h3"},{"title":"redpill","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#redpill","content":" redpill: Model ","version":"Next","tagName":"h3"},{"title":"openrouter","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#openrouter","content":" openrouter: Model ","version":"Next","tagName":"h3"},{"title":"ollama","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#ollama","content":" ollama: Model ","version":"Next","tagName":"h3"},{"title":"heurist","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#heurist","content":" heurist: Model ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/api/type-aliases/Models/#defined-in","content":" packages/core/src/types.ts:188 ","version":"Next","tagName":"h2"},{"title":"Variable: defaultCharacter","type":0,"sectionRef":"#","url":"/eliza/api/variables/defaultCharacter/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: defaultCharacter","url":"/eliza/api/variables/defaultCharacter/#defined-in","content":" packages/core/src/defaultCharacter.ts:3 ","version":"Next","tagName":"h2"},{"title":"Variable: booleanFooter","type":0,"sectionRef":"#","url":"/eliza/api/variables/booleanFooter/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: booleanFooter","url":"/eliza/api/variables/booleanFooter/#defined-in","content":" packages/core/src/parsing.ts:34 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Validator()","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/Validator/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Type Alias: Validator()","url":"/eliza/api/type-aliases/Validator/#parameters","content":" • runtime: IAgentRuntime • message: Memory • state?: State ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Type Alias: Validator()","url":"/eliza/api/type-aliases/Validator/#returns","content":" Promise<boolean> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Validator()","url":"/eliza/api/type-aliases/Validator/#defined-in","content":" packages/core/src/types.ts:366 ","version":"Next","tagName":"h2"},{"title":"Variable: elizaLogger","type":0,"sectionRef":"#","url":"/eliza/api/variables/elizaLogger/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: elizaLogger","url":"/eliza/api/variables/elizaLogger/#defined-in","content":" packages/core/src/logger.ts:264 ","version":"Next","tagName":"h2"},{"title":"Variable: embeddingZeroVector","type":0,"sectionRef":"#","url":"/eliza/api/variables/embeddingZeroVector/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: embeddingZeroVector","url":"/eliza/api/variables/embeddingZeroVector/#defined-in","content":" packages/core/src/memory.ts:11 ","version":"Next","tagName":"h2"},{"title":"Type Alias: UUID","type":0,"sectionRef":"#","url":"/eliza/api/type-aliases/UUID/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: UUID","url":"/eliza/api/type-aliases/UUID/#defined-in","content":" packages/core/src/types.ts:6 ","version":"Next","tagName":"h2"},{"title":"Variable: embeddingDimension","type":0,"sectionRef":"#","url":"/eliza/api/variables/embeddingDimension/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: embeddingDimension","url":"/eliza/api/variables/embeddingDimension/#defined-in","content":" packages/core/src/memory.ts:10 ","version":"Next","tagName":"h2"},{"title":"Variable: CharacterSchema","type":0,"sectionRef":"#","url":"/eliza/api/variables/CharacterSchema/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"id","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#id","content":" id: ZodOptional<ZodString> ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#name","content":" name: ZodString ","version":"Next","tagName":"h3"},{"title":"system","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#system","content":" system: ZodOptional<ZodString> ","version":"Next","tagName":"h3"},{"title":"modelProvider","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#modelprovider","content":" modelProvider: ZodNativeEnum<typeof ModelProviderName> ","version":"Next","tagName":"h3"},{"title":"modelEndpointOverride","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#modelendpointoverride","content":" modelEndpointOverride: ZodOptional<ZodString> ","version":"Next","tagName":"h3"},{"title":"templates","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#templates","content":" templates: ZodOptional<ZodRecord<ZodString, ZodString>> ","version":"Next","tagName":"h3"},{"title":"bio","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#bio","content":" bio: ZodUnion<[ZodString, ZodArray<ZodString, "many">]> ","version":"Next","tagName":"h3"},{"title":"lore","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#lore","content":" lore: ZodArray<ZodString, "many"> ","version":"Next","tagName":"h3"},{"title":"messageExamples","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#messageexamples","content":" messageExamples: ZodArray<ZodArray<ZodObject<object, "strip", ZodTypeAny, object, object>, "many">, "many"> ","version":"Next","tagName":"h3"},{"title":"postExamples","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#postexamples","content":" postExamples: ZodArray<ZodString, "many"> ","version":"Next","tagName":"h3"},{"title":"people","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#people","content":" people: ZodArray<ZodString, "many"> ","version":"Next","tagName":"h3"},{"title":"topics","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#topics","content":" topics: ZodArray<ZodString, "many"> ","version":"Next","tagName":"h3"},{"title":"adjectives","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#adjectives","content":" adjectives: ZodArray<ZodString, "many"> ","version":"Next","tagName":"h3"},{"title":"knowledge","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#knowledge","content":" knowledge: ZodOptional<ZodArray<ZodString, "many">> ","version":"Next","tagName":"h3"},{"title":"clients","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#clients","content":" clients: ZodArray<ZodNativeEnum<typeof Clients>, "many"> ","version":"Next","tagName":"h3"},{"title":"plugins","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#plugins","content":" plugins: ZodArray<ZodObject<object, "strip", ZodTypeAny, object, object>, "many"> ","version":"Next","tagName":"h3"},{"title":"settings","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#settings","content":" settings: ZodOptional<ZodObject<object, "strip", ZodTypeAny, object, object>> ","version":"Next","tagName":"h3"},{"title":"clientConfig","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#clientconfig","content":" clientConfig: ZodOptional<ZodObject<object, "strip", ZodTypeAny, object, object>> ","version":"Next","tagName":"h3"},{"title":"style","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#style","content":" style: ZodObject<object, "strip", ZodTypeAny, object, object> Type declaration all all: ZodArray<ZodString, "many"> chat chat: ZodArray<ZodString, "many"> post post: ZodArray<ZodString, "many"> ","version":"Next","tagName":"h3"},{"title":"twitterProfile","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#twitterprofile","content":" twitterProfile: ZodOptional<ZodObject<object, "strip", ZodTypeAny, object, object>> ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Variable: CharacterSchema","url":"/eliza/api/variables/CharacterSchema/#defined-in","content":" packages/core/src/enviroment.ts:66 ","version":"Next","tagName":"h2"},{"title":"Variable: models","type":0,"sectionRef":"#","url":"/eliza/api/variables/models/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: models","url":"/eliza/api/variables/models/#defined-in","content":" packages/core/src/models.ts:4 ","version":"Next","tagName":"h2"},{"title":"Variable: shouldRespondFooter","type":0,"sectionRef":"#","url":"/eliza/api/variables/shouldRespondFooter/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: shouldRespondFooter","url":"/eliza/api/variables/shouldRespondFooter/#defined-in","content":" packages/core/src/parsing.ts:8 ","version":"Next","tagName":"h2"},{"title":"Variable: messageCompletionFooter","type":0,"sectionRef":"#","url":"/eliza/api/variables/messageCompletionFooter/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: messageCompletionFooter","url":"/eliza/api/variables/messageCompletionFooter/#defined-in","content":" packages/core/src/parsing.ts:3 ","version":"Next","tagName":"h2"},{"title":"Variable: evaluationTemplate","type":0,"sectionRef":"#","url":"/eliza/api/variables/evaluationTemplate/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: evaluationTemplate","url":"/eliza/api/variables/evaluationTemplate/#defined-in","content":" packages/core/src/evaluators.ts:8 ","version":"Next","tagName":"h2"},{"title":"Variable: stringArrayFooter","type":0,"sectionRef":"#","url":"/eliza/api/variables/stringArrayFooter/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: stringArrayFooter","url":"/eliza/api/variables/stringArrayFooter/#defined-in","content":" packages/core/src/parsing.ts:41 ","version":"Next","tagName":"h2"},{"title":"Variable: settings","type":0,"sectionRef":"#","url":"/eliza/api/variables/settings/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: settings","url":"/eliza/api/variables/settings/#defined-in","content":" packages/core/src/settings.ts:110 ","version":"Next","tagName":"h2"},{"title":"Variable: knowledge","type":0,"sectionRef":"#","url":"/eliza/api/variables/knowledge/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Variable: knowledge","url":"/eliza/api/variables/knowledge/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"get()","type":1,"pageTitle":"Variable: knowledge","url":"/eliza/api/variables/knowledge/#get","content":" get: (runtime, message) => Promise<string[]> Parameters • runtime: AgentRuntime • message: Memory Returns Promise<string[]> ","version":"Next","tagName":"h3"},{"title":"set()","type":1,"pageTitle":"Variable: knowledge","url":"/eliza/api/variables/knowledge/#set","content":" set: (runtime, item, chunkSize, bleed) => Promise<void> Parameters • runtime: AgentRuntime • item: KnowledgeItem • chunkSize: number = 512 • bleed: number = 20 Returns Promise<void> ","version":"Next","tagName":"h3"},{"title":"process","type":1,"pageTitle":"Variable: knowledge","url":"/eliza/api/variables/knowledge/#process","content":" process: Process ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Variable: knowledge","url":"/eliza/api/variables/knowledge/#defined-in","content":" packages/core/src/knowledge.ts:116 ","version":"Next","tagName":"h2"},{"title":"Variable: envSchema","type":0,"sectionRef":"#","url":"/eliza/api/variables/envSchema/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Variable: envSchema","url":"/eliza/api/variables/envSchema/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"OPENAI_API_KEY","type":1,"pageTitle":"Variable: envSchema","url":"/eliza/api/variables/envSchema/#openai_api_key","content":" OPENAI_API_KEY: ZodString API Keys with specific formats ","version":"Next","tagName":"h3"},{"title":"REDPILL_API_KEY","type":1,"pageTitle":"Variable: envSchema","url":"/eliza/api/variables/envSchema/#redpill_api_key","content":" REDPILL_API_KEY: ZodString ","version":"Next","tagName":"h3"},{"title":"GROK_API_KEY","type":1,"pageTitle":"Variable: envSchema","url":"/eliza/api/variables/envSchema/#grok_api_key","content":" GROK_API_KEY: ZodString ","version":"Next","tagName":"h3"},{"title":"GROQ_API_KEY","type":1,"pageTitle":"Variable: envSchema","url":"/eliza/api/variables/envSchema/#groq_api_key","content":" GROQ_API_KEY: ZodString ","version":"Next","tagName":"h3"},{"title":"OPENROUTER_API_KEY","type":1,"pageTitle":"Variable: envSchema","url":"/eliza/api/variables/envSchema/#openrouter_api_key","content":" OPENROUTER_API_KEY: ZodString ","version":"Next","tagName":"h3"},{"title":"GOOGLE_GENERATIVE_AI_API_KEY","type":1,"pageTitle":"Variable: envSchema","url":"/eliza/api/variables/envSchema/#google_generative_ai_api_key","content":" GOOGLE_GENERATIVE_AI_API_KEY: ZodString ","version":"Next","tagName":"h3"},{"title":"ELEVENLABS_XI_API_KEY","type":1,"pageTitle":"Variable: envSchema","url":"/eliza/api/variables/envSchema/#elevenlabs_xi_api_key","content":" ELEVENLABS_XI_API_KEY: ZodString ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Variable: envSchema","url":"/eliza/api/variables/envSchema/#defined-in","content":" packages/core/src/enviroment.ts:5 ","version":"Next","tagName":"h2"},{"title":"Eliza","type":0,"sectionRef":"#","url":"/eliza/docs/api/","content":"","keywords":"","version":"Next"},{"title":"For Chinese Version: 中文说明","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#for-chinese-version-中文说明","content":" ","version":"Next","tagName":"h3"},{"title":"Features","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#features","content":" 🛠 Full-featured Discord, Twitter and Telegram connectors👥 Multi-agent and room support📚 Easily ingest and interact with your documents💾 Retrievable memory and document store🚀 Highly extensible - create your own actions and clients to extend capabilities☁️ Supports many models, including local Llama, OpenAI, Anthropic, Groq, and more📦 Just works! ","version":"Next","tagName":"h2"},{"title":"What can I use it for?","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#what-can-i-use-it-for","content":" 🤖 Chatbots🕵️ Autonomous Agents📈 Business process handling🎮 Video game NPCs Getting Started Prerequisites (MUST): Python 2.7+Node.js 23+pnpm ","version":"Next","tagName":"h2"},{"title":"Edit the .env file","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#edit-the-env-file","content":" Copy .env.example to .env and fill in the appropriate valuesEdit the TWITTER environment variables to add your bot's username and password ","version":"Next","tagName":"h3"},{"title":"Edit the character file","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#edit-the-character-file","content":" Check out the file src/core/defaultCharacter.ts - you can modify thisYou can also load characters with the pnpm start --characters="path/to/your/character.json" and run multiple bots at the same time. After setting up the .env file and character file, you can start the bot with the following command: pnpm i pnpm start Customising Eliza ","version":"Next","tagName":"h3"},{"title":"Adding custom actions","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#adding-custom-actions","content":" To avoid git clashes in the core directory, we recommend adding custom actions to a custom_actions directory and then adding them to the elizaConfig.yaml file. See the elizaConfig.example.yaml file for an example. ","version":"Next","tagName":"h3"},{"title":"Running with different models","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#running-with-different-models","content":" ","version":"Next","tagName":"h2"},{"title":"Run with Llama","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#run-with-llama","content":" You can run Llama 70B or 405B models by setting the XAI_MODEL environment variable to meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo or meta-llama/Meta-Llama-3.1-405B-Instruct ","version":"Next","tagName":"h3"},{"title":"Run with Grok","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#run-with-grok","content":" You can run Grok models by setting the XAI_MODEL environment variable to grok-beta ","version":"Next","tagName":"h3"},{"title":"Run with OpenAI","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#run-with-openai","content":" You can run OpenAI models by setting the XAI_MODEL environment variable to gpt-4o-mini or gpt-4o ","version":"Next","tagName":"h3"},{"title":"Additional Requirements","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#additional-requirements","content":" You may need to install Sharp. If you see an error when starting up, try installing it with the following command: pnpm install --include=optional sharp Environment Setup You will need to add environment variables to your .env file to connect to various platforms: # Required environment variables DISCORD_APPLICATION_ID= DISCORD_API_TOKEN= # Bot token OPENAI_API_KEY=sk-* # OpenAI API key, starting with sk- ELEVENLABS_XI_API_KEY= # API key from elevenlabs GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key # ELEVENLABS SETTINGS ELEVENLABS_MODEL_ID=eleven_multilingual_v2 ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM ELEVENLABS_VOICE_STABILITY=0.5 ELEVENLABS_VOICE_SIMILARITY_BOOST=0.9 ELEVENLABS_VOICE_STYLE=0.66 ELEVENLABS_VOICE_USE_SPEAKER_BOOST=false ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=4 ELEVENLABS_OUTPUT_FORMAT=pcm_16000 TWITTER_DRY_RUN=false TWITTER_USERNAME= # Account username TWITTER_PASSWORD= # Account password TWITTER_EMAIL= # Account email TWITTER_COOKIES= # Account cookies X_SERVER_URL= XAI_API_KEY= XAI_MODEL= # For asking Claude stuff ANTHROPIC_API_KEY= WALLET_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY WALLET_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY BIRDEYE_API_KEY= SOL_ADDRESS=So11111111111111111111111111111111111111112 SLIPPAGE=1 RPC_URL=https://api.mainnet-beta.solana.com HELIUS_API_KEY= ## Telegram TELEGRAM_BOT_TOKEN= TOGETHER_API_KEY= Local Inference Setup ","version":"Next","tagName":"h2"},{"title":"CUDA Setup","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#cuda-setup","content":" If you have an NVIDIA GPU, you can install CUDA to speed up local inference dramatically. pnpm install npx --no node-llama-cpp source download --gpu cuda Make sure that you've installed the CUDA Toolkit, including cuDNN and cuBLAS. ","version":"Next","tagName":"h3"},{"title":"Running locally","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#running-locally","content":" Add XAI_MODEL and set it to one of the above options from Run with Llama - you can leave X_SERVER_URL and XAI_API_KEY blank, it downloads the model from huggingface and queries it locally Clients ","version":"Next","tagName":"h3"},{"title":"Discord Bot","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#discord-bot","content":" For help with setting up your Discord Bot, check out here: https://discordjs.guide/preparations/setting-up-a-bot-application.html Development ","version":"Next","tagName":"h2"},{"title":"Testing","type":1,"pageTitle":"Eliza","url":"/eliza/docs/api/#testing","content":" To run the test suite: pnpm test # Run tests once pnpm test:watch # Run tests in watch mode For database-specific tests: pnpm test:sqlite # Run tests with SQLite pnpm test:sqljs # Run tests with SQL.js Tests are written using Jest and can be found in src/**/*.test.ts files. The test environment is configured to: Load environment variables from .env.testUse a 2-minute timeout for long-running testsSupport ESM modulesRun tests in sequence (--runInBand) To create new tests, add a .test.ts file adjacent to the code you're testing. ","version":"Next","tagName":"h2"},{"title":"Class: MemoryManager","type":0,"sectionRef":"#","url":"/eliza/docs/api/classes/MemoryManager/","content":"","keywords":"","version":"Next"},{"title":"Implements","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#implements","content":" IMemoryManager ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new MemoryManager()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#new-memorymanager","content":" new MemoryManager(opts): MemoryManager Constructs a new MemoryManager instance. Parameters • opts Options for the manager. • opts.runtime: IAgentRuntime The AgentRuntime instance associated with this manager. • opts.tableName: string The name of the table this manager will operate on. Returns MemoryManager Defined in packages/core/src/memory.ts:35 ","version":"Next","tagName":"h3"},{"title":"Properties","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"runtime","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#runtime","content":" runtime: IAgentRuntime The AgentRuntime instance associated with this manager. Implementation of IMemoryManager.runtime Defined in packages/core/src/memory.ts:22 ","version":"Next","tagName":"h3"},{"title":"tableName","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#tablename","content":" tableName: string The name of the database table this manager operates on. Implementation of IMemoryManager.tableName Defined in packages/core/src/memory.ts:27 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"addEmbeddingToMemory()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#addembeddingtomemory","content":" addEmbeddingToMemory(memory): Promise<Memory> Adds an embedding vector to a memory object. If the memory already has an embedding, it is returned as is. Parameters • memory: Memory The memory object to add an embedding to. Returns Promise<Memory> A Promise resolving to the memory object, potentially updated with an embedding vector. Implementation of IMemoryManager.addEmbeddingToMemory Defined in packages/core/src/memory.ts:45 ","version":"Next","tagName":"h3"},{"title":"countMemories()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#countmemories","content":" countMemories(roomId, unique): Promise<number> Counts the number of memories associated with a set of user IDs, with an option for uniqueness. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The room ID to count memories for. • unique: boolean = true Whether to count unique memories only. Returns Promise<number> A Promise resolving to the count of memories. Implementation of IMemoryManager.countMemories Defined in packages/core/src/memory.ts:219 ","version":"Next","tagName":"h3"},{"title":"createMemory()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#creatememory","content":" createMemory(memory, unique): Promise<void> Creates a new memory in the database, with an option to check for similarity before insertion. Parameters • memory: Memory The memory object to create. • unique: boolean = false Whether to check for similarity before insertion. Returns Promise<void> A Promise that resolves when the operation completes. Implementation of IMemoryManager.createMemory Defined in packages/core/src/memory.ts:158 ","version":"Next","tagName":"h3"},{"title":"getCachedEmbeddings()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#getcachedembeddings","content":" getCachedEmbeddings(content): Promise<object[]> Parameters • content: string Returns Promise<object[]> Implementation of IMemoryManager.getCachedEmbeddings Defined in packages/core/src/memory.ts:93 ","version":"Next","tagName":"h3"},{"title":"getMemories()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#getmemories","content":" getMemories(opts): Promise<Memory[]> Retrieves a list of memories by user IDs, with optional deduplication. Parameters • opts Options including user IDs, count, and uniqueness. • opts.agentId?: `${string}-${string}-${string}-${string}-${string}` • opts.count?: number = 10 The number of memories to retrieve. • opts.end?: number • opts.roomId: `${string}-${string}-${string}-${string}-${string}` The room ID to retrieve memories for. • opts.start?: number • opts.unique?: boolean = true Whether to retrieve unique memories only. Returns Promise<Memory[]> A Promise resolving to an array of Memory objects. Implementation of IMemoryManager.getMemories Defined in packages/core/src/memory.ts:66 ","version":"Next","tagName":"h3"},{"title":"getMemoriesByRoomIds()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#getmemoriesbyroomids","content":" getMemoriesByRoomIds(params): Promise<Memory[]> Parameters • params • params.agentId?: `${string}-${string}-${string}-${string}-${string}` • params.roomIds: `${string}-${string}-${string}-${string}-${string}`[] Returns Promise<Memory[]> Implementation of IMemoryManager.getMemoriesByRoomIds Defined in packages/core/src/memory.ts:173 ","version":"Next","tagName":"h3"},{"title":"getMemoryById()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#getmemorybyid","content":" getMemoryById(id): Promise<Memory> Parameters • id: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Memory> Implementation of IMemoryManager.getMemoryById Defined in packages/core/src/memory.ts:184 ","version":"Next","tagName":"h3"},{"title":"removeAllMemories()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#removeallmemories","content":" removeAllMemories(roomId): Promise<void> Removes all memories associated with a set of user IDs. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The room ID to remove memories for. Returns Promise<void> A Promise that resolves when the operation completes. Implementation of IMemoryManager.removeAllMemories Defined in packages/core/src/memory.ts:206 ","version":"Next","tagName":"h3"},{"title":"removeMemory()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#removememory","content":" removeMemory(memoryId): Promise<void> Removes a memory from the database by its ID. Parameters • memoryId: `${string}-${string}-${string}-${string}-${string}` The ID of the memory to remove. Returns Promise<void> A Promise that resolves when the operation completes. Implementation of IMemoryManager.removeMemory Defined in packages/core/src/memory.ts:194 ","version":"Next","tagName":"h3"},{"title":"searchMemoriesByEmbedding()","type":1,"pageTitle":"Class: MemoryManager","url":"/eliza/docs/api/classes/MemoryManager/#searchmemoriesbyembedding","content":" searchMemoriesByEmbedding(embedding, opts): Promise<Memory[]> Searches for memories similar to a given embedding vector. Parameters • embedding: number[] The embedding vector to search with. • opts Options including match threshold, count, user IDs, and uniqueness. • opts.agentId?: `${string}-${string}-${string}-${string}-${string}` • opts.count?: number The maximum number of memories to retrieve. • opts.match_threshold?: number The similarity threshold for matching memories. • opts.roomId: `${string}-${string}-${string}-${string}-${string}` The room ID to retrieve memories for. • opts.unique?: boolean Whether to retrieve unique memories only. Returns Promise<Memory[]> A Promise resolving to an array of Memory objects that match the embedding. Implementation of IMemoryManager.searchMemoriesByEmbedding Defined in packages/core/src/memory.ts:120 ","version":"Next","tagName":"h3"},{"title":"🏗️ Infrastructure Guide","type":0,"sectionRef":"#","url":"/eliza/docs/advanced/infrastructure/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#overview","content":" Eliza's infrastructure is built on a flexible database architecture that supports multiple adapters and efficient data storage mechanisms for AI agent interactions, memory management, and relationship tracking. ","version":"Next","tagName":"h2"},{"title":"Core Components","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#core-components","content":" ","version":"Next","tagName":"h2"},{"title":"Database Adapters","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#database-adapters","content":" Eliza supports multiple database backends through a pluggable adapter system: PostgreSQL - Full-featured adapter with vector search capabilitiesSQLite - Lightweight local database optionSQL.js - In-memory database for testing and developmentSupabase - Cloud-hosted PostgreSQL with additional features ","version":"Next","tagName":"h3"},{"title":"Schema Structure","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#schema-structure","content":" The database schema includes several key tables: - accounts: User and agent identities - rooms: Conversation spaces - memories: Vector-indexed message storage - goals: Agent objectives and progress - participants: Room membership tracking - relationships: Inter-agent connections ","version":"Next","tagName":"h3"},{"title":"Setting Up Infrastructure","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#setting-up-infrastructure","content":" ","version":"Next","tagName":"h2"},{"title":"PostgreSQL Setup","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#postgresql-setup","content":" Install PostgreSQL Extensions CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS fuzzystrmatch; Initialize Core Tables -- Create base tables CREATE TABLE accounts ( "id" UUID PRIMARY KEY, "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, "name" TEXT, "username" TEXT, "email" TEXT NOT NULL, "avatarUrl" TEXT, "details" JSONB DEFAULT '{}'::jsonb ); CREATE TABLE rooms ( "id" UUID PRIMARY KEY, "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE memories ( "id" UUID PRIMARY KEY, "type" TEXT NOT NULL, "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, "content" JSONB NOT NULL, "embedding" vector(1536), "userId" UUID REFERENCES accounts("id"), "agentId" UUID REFERENCES accounts("id"), "roomId" UUID REFERENCES rooms("id"), "unique" BOOLEAN DEFAULT true NOT NULL ); Set Up Indexes CREATE INDEX idx_memories_embedding ON memories USING hnsw ("embedding" vector_cosine_ops); CREATE INDEX idx_memories_type_room ON memories("type", "roomId"); CREATE INDEX idx_participants_user ON participants("userId"); CREATE INDEX idx_participants_room ON participants("roomId"); ","version":"Next","tagName":"h3"},{"title":"Connection Configuration","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#connection-configuration","content":" // PostgreSQL Configuration const postgresConfig = { max: 20, idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000, }; // Supabase Configuration const supabaseConfig = { supabaseUrl: process.env.SUPABASE_URL, supabaseKey: process.env.SUPABASE_KEY, }; ","version":"Next","tagName":"h3"},{"title":"Memory Management","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#memory-management","content":" ","version":"Next","tagName":"h2"},{"title":"Vector Storage","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#vector-storage","content":" The memory system uses vector embeddings for semantic search: async function storeMemory(runtime: IAgentRuntime, content: string) { const embedding = await runtime.embed(content); await runtime.databaseAdapter.createMemory({ type: "message", content: { text: content }, embedding, roomId: roomId, userId: userId, }); } ","version":"Next","tagName":"h3"},{"title":"Memory Retrieval","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#memory-retrieval","content":" async function searchMemories(runtime: IAgentRuntime, query: string) { const embedding = await runtime.embed(query); return runtime.databaseAdapter.searchMemoriesByEmbedding(embedding, { match_threshold: 0.8, count: 10, tableName: "memories", }); } ","version":"Next","tagName":"h3"},{"title":"Scaling Considerations","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#scaling-considerations","content":" ","version":"Next","tagName":"h2"},{"title":"Database Optimization","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#database-optimization","content":" Index Management Use HNSW indexes for vector similarity searchCreate appropriate indexes for frequent query patternsRegularly analyze and update index statistics Connection Pooling const pool = new Pool({ max: 20, // Maximum pool size idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000, }); Query Optimization Use prepared statementsImplement efficient paginationOptimize vector similarity searches ","version":"Next","tagName":"h3"},{"title":"High Availability","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#high-availability","content":" Database Replication Set up read replicas for scaling read operationsConfigure streaming replication for failoverImplement connection retry logic Backup Strategy -- Regular backups pg_dump -Fc mydb > backup.dump -- Point-in-time recovery pg_basebackup -D backup -Fp -Xs -P ","version":"Next","tagName":"h3"},{"title":"Security","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#security","content":" ","version":"Next","tagName":"h2"},{"title":"Access Control","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#access-control","content":" Row Level Security ALTER TABLE memories ENABLE ROW LEVEL SECURITY; CREATE POLICY "memories_isolation" ON memories USING (auth.uid() = "userId" OR auth.uid() = "agentId"); Role Management -- Create application role CREATE ROLE app_user; -- Grant necessary permissions GRANT SELECT, INSERT ON memories TO app_user; GRANT USAGE ON SCHEMA public TO app_user; ","version":"Next","tagName":"h3"},{"title":"Data Protection","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#data-protection","content":" Encryption Use TLS for connectionsEncrypt sensitive data at restImplement key rotation Audit Logging CREATE TABLE logs ( "id" UUID PRIMARY KEY DEFAULT gen_random_uuid(), "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, "userId" UUID NOT NULL REFERENCES accounts("id"), "body" JSONB NOT NULL, "type" TEXT NOT NULL, "roomId" UUID NOT NULL REFERENCES rooms("id") ); ","version":"Next","tagName":"h3"},{"title":"Monitoring","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#monitoring","content":" ","version":"Next","tagName":"h2"},{"title":"Health Checks","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#health-checks","content":" async function checkDatabaseHealth(): Promise<boolean> { try { await db.query("SELECT 1"); return true; } catch (error) { console.error("Database health check failed:", error); return false; } } ","version":"Next","tagName":"h3"},{"title":"Performance Metrics","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#performance-metrics","content":" Track key metrics: Query performanceConnection pool utilizationMemory usageVector search latency ","version":"Next","tagName":"h3"},{"title":"Maintenance","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#maintenance","content":" ","version":"Next","tagName":"h2"},{"title":"Regular Tasks","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#regular-tasks","content":" Vacuum Operations -- Regular vacuum VACUUM ANALYZE memories; -- Analyze statistics ANALYZE memories; Index Maintenance -- Reindex vector similarity index REINDEX INDEX idx_memories_embedding; ","version":"Next","tagName":"h3"},{"title":"Data Lifecycle","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#data-lifecycle","content":" Archival Strategy Archive old conversationsCompress inactive memoriesImplement data retention policies Cleanup Jobs async function cleanupOldMemories() { const cutoffDate = new Date(); cutoffDate.setMonth(cutoffDate.getMonth() - 6); await db.query( ` DELETE FROM memories WHERE "createdAt" < $1 `, [cutoffDate], ); } ","version":"Next","tagName":"h3"},{"title":"Troubleshooting","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#common-issues","content":" Connection Problems Check connection pool settingsVerify network connectivityReview firewall rules Performance Issues Analyze query plansCheck index usageMonitor resource utilization Vector Search Problems Verify embedding dimensionsCheck similarity thresholdsReview index configuration ","version":"Next","tagName":"h3"},{"title":"Diagnostic Queries","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#diagnostic-queries","content":" -- Check connection status SELECT * FROM pg_stat_activity; -- Analyze query performance EXPLAIN ANALYZE SELECT * FROM memories WHERE embedding <-> $1 < 0.3 LIMIT 10; -- Monitor index usage SELECT schemaname, tablename, indexname, idx_scan FROM pg_stat_user_indexes; ","version":"Next","tagName":"h3"},{"title":"Further Reading","type":1,"pageTitle":"🏗️ Infrastructure Guide","url":"/eliza/docs/advanced/infrastructure/#further-reading","content":" PostgreSQL Documentation ","version":"Next","tagName":"h2"},{"title":"🎯 Fine-tuning Guide","type":0,"sectionRef":"#","url":"/eliza/docs/advanced/fine-tuning/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#overview","content":" Eliza supports multiple AI model providers and offers extensive configuration options for fine-tuning model behavior, embedding generation, and performance optimization. ","version":"Next","tagName":"h2"},{"title":"Model Providers","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#model-providers","content":" Eliza supports multiple model providers through a flexible configuration system: enum ModelProviderName { OPENAI, ANTHROPIC, CLAUDE_VERTEX, GROK, GROQ, LLAMACLOUD, LLAMALOCAL, GOOGLE, REDPILL, OPENROUTER, HEURIST, } ","version":"Next","tagName":"h2"},{"title":"Provider Configuration","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#provider-configuration","content":" Each provider has specific settings: const models = { [ModelProviderName.ANTHROPIC]: { settings: { stop: [], maxInputTokens: 200000, maxOutputTokens: 8192, frequency_penalty: 0.0, presence_penalty: 0.0, temperature: 0.3, }, endpoint: "https://api.anthropic.com/v1", model: { [ModelClass.SMALL]: "claude-3-5-haiku", [ModelClass.MEDIUM]: "claude-3-5-sonnet-20241022", [ModelClass.LARGE]: "claude-3-5-opus-20240229", }, }, // ... other providers }; ","version":"Next","tagName":"h3"},{"title":"Model Classes","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#model-classes","content":" Models are categorized into different classes based on their capabilities: enum ModelClass { SMALL, // Fast, efficient for simple tasks MEDIUM, // Balanced performance and capability LARGE, // Most capable but slower/more expensive EMBEDDING // Specialized for vector embeddings IMAGE // Image generation capabilities } ","version":"Next","tagName":"h2"},{"title":"Embedding System","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#embedding-system","content":" ","version":"Next","tagName":"h2"},{"title":"Configuration","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#configuration","content":" const embeddingConfig = { dimensions: 1536, modelName: "text-embedding-3-small", cacheEnabled: true, }; ","version":"Next","tagName":"h3"},{"title":"Implementation","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#implementation","content":" async function embed(runtime: IAgentRuntime, input: string): Promise<number[]> { // Check cache first const cachedEmbedding = await retrieveCachedEmbedding(runtime, input); if (cachedEmbedding) return cachedEmbedding; // Generate new embedding const response = await runtime.fetch( `${runtime.modelProvider.endpoint}/embeddings`, { method: "POST", headers: { Authorization: `Bearer ${runtime.token}`, "Content-Type": "application/json", }, body: JSON.stringify({ input, model: runtime.modelProvider.model.EMBEDDING, dimensions: 1536, }), }, ); const data = await response.json(); return data?.data?.[0].embedding; } ","version":"Next","tagName":"h3"},{"title":"Fine-tuning Options","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#fine-tuning-options","content":" ","version":"Next","tagName":"h2"},{"title":"Temperature Control","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#temperature-control","content":" Configure model creativity vs. determinism: const temperatureSettings = { creative: { temperature: 0.8, frequency_penalty: 0.7, presence_penalty: 0.7, }, balanced: { temperature: 0.5, frequency_penalty: 0.3, presence_penalty: 0.3, }, precise: { temperature: 0.2, frequency_penalty: 0.0, presence_penalty: 0.0, }, }; ","version":"Next","tagName":"h3"},{"title":"Context Window","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#context-window","content":" Manage token limits: const contextSettings = { OPENAI: { maxInputTokens: 128000, maxOutputTokens: 8192, }, ANTHROPIC: { maxInputTokens: 200000, maxOutputTokens: 8192, }, LLAMALOCAL: { maxInputTokens: 32768, maxOutputTokens: 8192, }, }; ","version":"Next","tagName":"h3"},{"title":"Performance Optimization","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#performance-optimization","content":" ","version":"Next","tagName":"h2"},{"title":"Caching Strategy","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#caching-strategy","content":" class EmbeddingCache { private cache: NodeCache; private cacheDir: string; constructor() { this.cache = new NodeCache({ stdTTL: 300 }); // 5 minute TTL this.cacheDir = path.join(__dirname, "cache"); } async get(key: string): Promise<number[] | null> { // Check memory cache first const cached = this.cache.get<number[]>(key); if (cached) return cached; // Check disk cache return this.readFromDisk(key); } async set(key: string, embedding: number[]): Promise<void> { this.cache.set(key, embedding); await this.writeToDisk(key, embedding); } } ","version":"Next","tagName":"h3"},{"title":"Model Selection","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#model-selection","content":" async function selectOptimalModel( task: string, requirements: ModelRequirements, ): Promise<ModelClass> { if (requirements.speed === "fast") { return ModelClass.SMALL; } else if (requirements.complexity === "high") { return ModelClass.LARGE; } return ModelClass.MEDIUM; } ","version":"Next","tagName":"h3"},{"title":"Provider-Specific Optimizations","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#provider-specific-optimizations","content":" ","version":"Next","tagName":"h2"},{"title":"OpenAI","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#openai","content":" const openAISettings = { endpoint: "https://api.openai.com/v1", settings: { stop: [], maxInputTokens: 128000, maxOutputTokens: 8192, frequency_penalty: 0.0, presence_penalty: 0.0, temperature: 0.6, }, model: { [ModelClass.SMALL]: "gpt-4o-mini", [ModelClass.MEDIUM]: "gpt-4o", [ModelClass.LARGE]: "gpt-4o", [ModelClass.EMBEDDING]: "text-embedding-3-small", [ModelClass.IMAGE]: "dall-e-3", }, }; ","version":"Next","tagName":"h3"},{"title":"Anthropic","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#anthropic","content":" const anthropicSettings = { endpoint: "https://api.anthropic.com/v1", settings: { stop: [], maxInputTokens: 200000, maxOutputTokens: 8192, temperature: 0.3, }, model: { [ModelClass.SMALL]: "claude-3-5-haiku", [ModelClass.MEDIUM]: "claude-3-5-sonnet-20241022", [ModelClass.LARGE]: "claude-3-5-opus-20240229", }, }; ","version":"Next","tagName":"h3"},{"title":"Local LLM","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#local-llm","content":" const llamaLocalSettings = { settings: { stop: ["<|eot_id|>", "<|eom_id|>"], maxInputTokens: 32768, maxOutputTokens: 8192, repetition_penalty: 0.0, temperature: 0.3, }, model: { [ModelClass.SMALL]: "NousResearch/Hermes-3-Llama-3.1-8B-GGUF", [ModelClass.MEDIUM]: "NousResearch/Hermes-3-Llama-3.1-8B-GGUF", [ModelClass.LARGE]: "NousResearch/Hermes-3-Llama-3.1-8B-GGUF", [ModelClass.EMBEDDING]: "togethercomputer/m2-bert-80M-32k-retrieval", }, }; ","version":"Next","tagName":"h3"},{"title":"Heurist Provider","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#heurist-provider","content":" const heuristSettings = { settings: { stop: [], maxInputTokens: 32768, maxOutputTokens: 8192, repetition_penalty: 0.0, temperature: 0.7, }, imageSettings: { steps: 20, }, endpoint: "https://llm-gateway.heurist.xyz", model: { [ModelClass.SMALL]: "hermes-3-llama3.1-8b", [ModelClass.MEDIUM]: "mistralai/mixtral-8x7b-instruct", [ModelClass.LARGE]: "nvidia/llama-3.1-nemotron-70b-instruct", [ModelClass.EMBEDDING]: "", // Add later [ModelClass.IMAGE]: "FLUX.1-dev", }, }; ","version":"Next","tagName":"h3"},{"title":"Testing and Validation","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#testing-and-validation","content":" ","version":"Next","tagName":"h2"},{"title":"Embedding Tests","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#embedding-tests","content":" async function validateEmbedding( embedding: number[], expectedDimensions: number = 1536, ): Promise<boolean> { if (!Array.isArray(embedding)) return false; if (embedding.length !== expectedDimensions) return false; if (embedding.some((n) => typeof n !== "number")) return false; return true; } ","version":"Next","tagName":"h3"},{"title":"Model Performance Testing","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#model-performance-testing","content":" async function benchmarkModel( runtime: IAgentRuntime, modelClass: ModelClass, testCases: TestCase[], ): Promise<BenchmarkResults> { const results = { latency: [], tokenUsage: [], accuracy: [], }; for (const test of testCases) { const start = Date.now(); const response = await runtime.generateText({ context: test.input, modelClass, }); results.latency.push(Date.now() - start); // ... additional metrics } return results; } ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"Model Selection Guidelines","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#model-selection-guidelines","content":" Task Complexity Use SMALL for simple, quick responsesUse MEDIUM for balanced performanceUse LARGE for complex reasoning Context Management Keep prompts concise and focusedUse context windows efficientlyImplement proper context truncation Temperature Adjustment Lower for factual responsesHigher for creative tasksBalance based on use case ","version":"Next","tagName":"h3"},{"title":"Performance Optimization","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#performance-optimization-1","content":" Caching Strategy Cache embeddings for frequently accessed contentImplement tiered caching (memory/disk)Regular cache cleanup Resource Management Monitor token usageImplement rate limitingOptimize batch processing ","version":"Next","tagName":"h3"},{"title":"Troubleshooting","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"🎯 Fine-tuning Guide","url":"/eliza/docs/advanced/fine-tuning/#common-issues","content":" Token Limits function handleTokenLimit(error: Error) { if (error.message.includes("token limit")) { return truncateAndRetry(); } } Embedding Errors function handleEmbeddingError(error: Error) { if (error.message.includes("dimension mismatch")) { return regenerateEmbedding(); } } Model Availability async function handleModelFailover(error: Error) { if (error.message.includes("model not available")) { return switchToFallbackModel(); } } ","version":"Next","tagName":"h3"},{"title":"📈 Autonomous Trading","type":0,"sectionRef":"#","url":"/eliza/docs/advanced/autonomous-trading/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#overview","content":" Eliza's autonomous trading system enables automated token trading on the Solana blockchain. The system integrates with Jupiter aggregator for efficient swaps, implements smart order routing, and includes risk management features. ","version":"Next","tagName":"h2"},{"title":"Core Components","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#core-components","content":" ","version":"Next","tagName":"h2"},{"title":"Token Provider","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#token-provider","content":" Manages token information and market data: class TokenProvider { constructor( private tokenAddress: string, private walletProvider: WalletProvider, ) { this.cache = new NodeCache({ stdTTL: 300 }); // 5 minutes cache } async fetchPrices(): Promise<Prices> { const { SOL, BTC, ETH } = TOKEN_ADDRESSES; // Fetch current prices return { solana: { usd: "0" }, bitcoin: { usd: "0" }, ethereum: { usd: "0" }, }; } async getProcessedTokenData(): Promise<ProcessedTokenData> { return { security: await this.fetchTokenSecurity(), tradeData: await this.fetchTokenTradeData(), holderDistributionTrend: await this.analyzeHolderDistribution(), highValueHolders: await this.filterHighValueHolders(), recentTrades: await this.checkRecentTrades(), dexScreenerData: await this.fetchDexScreenerData(), }; } } ","version":"Next","tagName":"h3"},{"title":"Swap Execution","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#swap-execution","content":" Implementation of token swaps using Jupiter: async function swapToken( connection: Connection, walletPublicKey: PublicKey, inputTokenCA: string, outputTokenCA: string, amount: number, ): Promise<any> { // Get token decimals const decimals = await getTokenDecimals(connection, inputTokenCA); const adjustedAmount = amount * 10 ** decimals; // Fetch quote const quoteResponse = await fetch( `https://quote-api.jup.ag/v6/quote?inputMint=${inputTokenCA}` + `&outputMint=${outputTokenCA}` + `&amount=${adjustedAmount}` + `&slippageBps=50`, ); // Execute swap const swapResponse = await fetch("https://quote-api.jup.ag/v6/swap", { method: "POST", body: JSON.stringify({ quoteResponse: await quoteResponse.json(), userPublicKey: walletPublicKey.toString(), wrapAndUnwrapSol: true, }), }); return swapResponse.json(); } ","version":"Next","tagName":"h3"},{"title":"Position Management","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#position-management","content":" ","version":"Next","tagName":"h2"},{"title":"Order Book System","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#order-book-system","content":" interface Order { userId: string; ticker: string; contractAddress: string; timestamp: string; buyAmount: number; price: number; } class OrderBookProvider { async addOrder(order: Order): Promise<void> { let orderBook = await this.readOrderBook(); orderBook.push(order); await this.writeOrderBook(orderBook); } async calculateProfitLoss(userId: string): Promise<number> { const orders = await this.getUserOrders(userId); return orders.reduce((total, order) => { const currentPrice = this.getCurrentPrice(order.ticker); const pl = (currentPrice - order.price) * order.buyAmount; return total + pl; }, 0); } } ","version":"Next","tagName":"h3"},{"title":"Position Sizing","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#position-sizing","content":" async function calculatePositionSize( tokenData: ProcessedTokenData, riskLevel: "LOW" | "MEDIUM" | "HIGH", ): Promise<CalculatedBuyAmounts> { const { liquidity, marketCap } = tokenData.dexScreenerData.pairs[0]; // Impact percentages based on liquidity const impactPercentages = { LOW: 0.01, // 1% of liquidity MEDIUM: 0.05, // 5% of liquidity HIGH: 0.1, // 10% of liquidity }; return { none: 0, low: liquidity.usd * impactPercentages.LOW, medium: liquidity.usd * impactPercentages.MEDIUM, high: liquidity.usd * impactPercentages.HIGH, }; } ","version":"Next","tagName":"h3"},{"title":"Risk Management","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#risk-management","content":" ","version":"Next","tagName":"h2"},{"title":"Token Validation","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#token-validation","content":" async function validateToken(token: TokenPerformance): Promise<boolean> { const security = await fetchTokenSecurity(token.tokenAddress); // Red flags check if ( security.rugPull || security.isScam || token.rapidDump || token.suspiciousVolume || token.liquidity.usd < 1000 || // Minimum $1000 liquidity token.marketCap < 100000 // Minimum $100k market cap ) { return false; } // Holder distribution check const holderData = await fetchHolderList(token.tokenAddress); const topHolderPercent = calculateTopHolderPercentage(holderData); if (topHolderPercent > 0.5) { // >50% held by top holders return false; } return true; } ","version":"Next","tagName":"h3"},{"title":"Trade Management","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#trade-management","content":" interface TradeManager { async executeTrade(params: { inputToken: string, outputToken: string, amount: number, slippage: number }): Promise<string>; async monitorPosition(params: { tokenAddress: string, entryPrice: number, stopLoss: number, takeProfit: number }): Promise<void>; async closePosition(params: { tokenAddress: string, amount: number }): Promise<string>; } ","version":"Next","tagName":"h3"},{"title":"Market Analysis","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#market-analysis","content":" ","version":"Next","tagName":"h2"},{"title":"Price Data Collection","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#price-data-collection","content":" async function collectMarketData( tokenAddress: string, ): Promise<TokenTradeData> { return { price: await fetchCurrentPrice(tokenAddress), volume_24h: await fetch24HourVolume(tokenAddress), price_change_24h: await fetch24HourPriceChange(tokenAddress), liquidity: await fetchLiquidity(tokenAddress), holder_data: await fetchHolderData(tokenAddress), trade_history: await fetchTradeHistory(tokenAddress), }; } ","version":"Next","tagName":"h3"},{"title":"Technical Analysis","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#technical-analysis","content":" function analyzeMarketConditions(tradeData: TokenTradeData): MarketAnalysis { return { trend: analyzePriceTrend(tradeData.price_history), volume_profile: analyzeVolumeProfile(tradeData.volume_history), liquidity_depth: analyzeLiquidityDepth(tradeData.liquidity), holder_behavior: analyzeHolderBehavior(tradeData.holder_data), }; } ","version":"Next","tagName":"h3"},{"title":"Trade Execution","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#trade-execution","content":" ","version":"Next","tagName":"h2"},{"title":"Swap Implementation","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#swap-implementation","content":" async function executeSwap( runtime: IAgentRuntime, input: { tokenIn: string; tokenOut: string; amountIn: number; slippage: number; }, ): Promise<string> { // Prepare transaction const { swapTransaction } = await getSwapTransaction(input); // Sign transaction const keypair = getKeypairFromPrivateKey( runtime.getSetting("WALLET_PRIVATE_KEY"), ); transaction.sign([keypair]); // Execute swap const signature = await connection.sendTransaction(transaction); // Confirm transaction await connection.confirmTransaction({ signature, blockhash: latestBlockhash.blockhash, lastValidBlockHeight: latestBlockhash.lastValidBlockHeight, }); return signature; } ","version":"Next","tagName":"h3"},{"title":"DAO Integration","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#dao-integration","content":" async function executeSwapForDAO( runtime: IAgentRuntime, params: { inputToken: string; outputToken: string; amount: number; }, ): Promise<string> { const authority = getAuthorityKeypair(runtime); const [statePDA, walletPDA] = await derivePDAs(authority); // Prepare instruction data const instructionData = prepareSwapInstruction(params); // Execute swap through DAO return invokeSwapDao( connection, authority, statePDA, walletPDA, instructionData, ); } ","version":"Next","tagName":"h3"},{"title":"Monitoring & Safety","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#monitoring--safety","content":" ","version":"Next","tagName":"h2"},{"title":"Health Checks","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#health-checks","content":" async function performHealthChecks(): Promise<HealthStatus> { return { connection: await checkConnectionStatus(), wallet: await checkWalletBalance(), orders: await checkOpenOrders(), positions: await checkPositions(), }; } ","version":"Next","tagName":"h3"},{"title":"Safety Limits","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#safety-limits","content":" const SAFETY_LIMITS = { MAX_POSITION_SIZE: 0.1, // 10% of portfolio MAX_SLIPPAGE: 0.05, // 5% slippage MIN_LIQUIDITY: 1000, // $1000 minimum liquidity MAX_PRICE_IMPACT: 0.03, // 3% price impact STOP_LOSS: 0.15, // 15% stop loss }; ","version":"Next","tagName":"h3"},{"title":"Error Handling","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#error-handling","content":" ","version":"Next","tagName":"h2"},{"title":"Transaction Errors","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#transaction-errors","content":" async function handleTransactionError( error: Error, transaction: Transaction, ): Promise<void> { if (error.message.includes("insufficient funds")) { await handleInsufficientFunds(); } else if (error.message.includes("slippage tolerance exceeded")) { await handleSlippageError(transaction); } else { await logTransactionError(error, transaction); } } ","version":"Next","tagName":"h3"},{"title":"Recovery Procedures","type":1,"pageTitle":"📈 Autonomous Trading","url":"/eliza/docs/advanced/autonomous-trading/#recovery-procedures","content":" async function recoverFromError( error: Error, context: TradingContext, ): Promise<void> { // Stop all active trades await stopActiveTrades(); // Close risky positions await closeRiskyPositions(); // Reset system state await resetTradingState(); // Notify administrators await notifyAdministrators(error, context); } ","version":"Next","tagName":"h3"},{"title":"Class: AgentRuntime","type":0,"sectionRef":"#","url":"/eliza/docs/api/classes/AgentRuntime/","content":"","keywords":"","version":"Next"},{"title":"Implements","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#implements","content":" IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new AgentRuntime()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#new-agentruntime","content":" new AgentRuntime(opts): AgentRuntime Creates an instance of AgentRuntime. Parameters • opts The options for configuring the AgentRuntime. • opts.actions?: Action[] Optional custom actions. • opts.agentId?: `${string}-${string}-${string}-${string}-${string}` Optional ID of the agent. • opts.character?: Character • opts.conversationLength?: number The number of messages to hold in the recent message cache. • opts.databaseAdapter: IDatabaseAdapter The database adapter used for interacting with the database. • opts.evaluators?: Evaluator[] Optional custom evaluators. • opts.fetch?: unknown Custom fetch function to use for making requests. • opts.managers?: IMemoryManager[] • opts.modelProvider: ModelProviderName • opts.plugins?: Plugin[] • opts.providers?: Provider[] Optional context providers. • opts.serverUrl?: string The URL of the worker. • opts.services?: Service[] Optional custom services. • opts.speechModelPath?: string • opts.token: string The JWT token, can be a JWT token if outside worker, or an OpenAI token if inside worker. Returns AgentRuntime Defined in packages/core/src/runtime.ts:192 ","version":"Next","tagName":"h3"},{"title":"Properties","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"actions","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#actions","content":" actions: Action[] = [] Custom actions that the agent can perform. Implementation of IAgentRuntime.actions Defined in packages/core/src/runtime.ts:78 ","version":"Next","tagName":"h3"},{"title":"agentId","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#agentid","content":" agentId: `${string}-${string}-${string}-${string}-${string}` The ID of the agent Implementation of IAgentRuntime.agentId Defined in packages/core/src/runtime.ts:59 ","version":"Next","tagName":"h3"},{"title":"character","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#character","content":" character: Character The character to use for the agent Implementation of IAgentRuntime.character Defined in packages/core/src/runtime.ts:104 ","version":"Next","tagName":"h3"},{"title":"databaseAdapter","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#databaseadapter","content":" databaseAdapter: IDatabaseAdapter The database adapter used for interacting with the database. Implementation of IAgentRuntime.databaseAdapter Defined in packages/core/src/runtime.ts:68 ","version":"Next","tagName":"h3"},{"title":"descriptionManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#descriptionmanager","content":" descriptionManager: IMemoryManager Store and recall descriptions of users based on conversations. Implementation of IAgentRuntime.descriptionManager Defined in packages/core/src/runtime.ts:114 ","version":"Next","tagName":"h3"},{"title":"documentsManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#documentsmanager","content":" documentsManager: IMemoryManager Hold large documents that can be referenced Defined in packages/core/src/runtime.ts:124 ","version":"Next","tagName":"h3"},{"title":"evaluators","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#evaluators","content":" evaluators: Evaluator[] = [] Evaluators used to assess and guide the agent's responses. Implementation of IAgentRuntime.evaluators Defined in packages/core/src/runtime.ts:83 ","version":"Next","tagName":"h3"},{"title":"fetch()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#fetch","content":" fetch: (input, init?) => Promise<Response>(input, init?) => Promise<Response> Fetch function to use Some environments may not have access to the global fetch function and need a custom fetch override. MDN Reference Parameters • input: RequestInfo | URL • init?: RequestInit Returns Promise<Response> Parameters • input: string | Request | URL • init?: RequestInit Returns Promise<Response> Defined in packages/core/src/runtime.ts:99 ","version":"Next","tagName":"h3"},{"title":"knowledgeManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#knowledgemanager","content":" knowledgeManager: IMemoryManager Searchable document fragments Defined in packages/core/src/runtime.ts:129 ","version":"Next","tagName":"h3"},{"title":"loreManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#loremanager","content":" loreManager: IMemoryManager Manage the creation and recall of static information (documents, historical game lore, etc) Implementation of IAgentRuntime.loreManager Defined in packages/core/src/runtime.ts:119 ","version":"Next","tagName":"h3"},{"title":"memoryManagers","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#memorymanagers","content":" memoryManagers: Map<string, IMemoryManager> Defined in packages/core/src/runtime.ts:132 ","version":"Next","tagName":"h3"},{"title":"messageManager","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#messagemanager","content":" messageManager: IMemoryManager Store messages that are sent and received by the agent. Implementation of IAgentRuntime.messageManager Defined in packages/core/src/runtime.ts:109 ","version":"Next","tagName":"h3"},{"title":"modelProvider","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#modelprovider","content":" modelProvider: ModelProviderName The model to use for generateText. Implementation of IAgentRuntime.modelProvider Defined in packages/core/src/runtime.ts:93 ","version":"Next","tagName":"h3"},{"title":"providers","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#providers","content":" providers: Provider[] = [] Context providers used to provide context for message generation. Implementation of IAgentRuntime.providers Defined in packages/core/src/runtime.ts:88 ","version":"Next","tagName":"h3"},{"title":"serverUrl","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#serverurl","content":" serverUrl: string = "http://localhost:7998" The base URL of the server where the agent's requests are processed. Implementation of IAgentRuntime.serverUrl Defined in packages/core/src/runtime.ts:63 ","version":"Next","tagName":"h3"},{"title":"services","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#services","content":" services: Map<ServiceType, Service> Implementation of IAgentRuntime.services Defined in packages/core/src/runtime.ts:131 ","version":"Next","tagName":"h3"},{"title":"token","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#token","content":" token: string Authentication token used for securing requests. Implementation of IAgentRuntime.token Defined in packages/core/src/runtime.ts:73 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"composeState()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#composestate","content":" composeState(message, additionalKeys): Promise<State> Compose the state of the agent into an object that can be passed or used for response generation. Parameters • message: Memory The message to compose the state from. • additionalKeys = {} Returns Promise<State> The state of the agent. Implementation of IAgentRuntime.composeState Defined in packages/core/src/runtime.ts:667 ","version":"Next","tagName":"h3"},{"title":"ensureConnection()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#ensureconnection","content":" ensureConnection(userId, roomId, userName?, userScreenName?, source?): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` • userName?: string • userScreenName?: string • source?: string Returns Promise<void> Implementation of IAgentRuntime.ensureConnection Defined in packages/core/src/runtime.ts:618 ","version":"Next","tagName":"h3"},{"title":"ensureParticipantExists()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#ensureparticipantexists","content":" ensureParticipantExists(userId, roomId): Promise<void> Ensure the existence of a participant in the room. If the participant does not exist, they are added to the room. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The user ID to ensure the existence of. • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Throws An error if the participant cannot be added. Implementation of IAgentRuntime.ensureParticipantExists Defined in packages/core/src/runtime.ts:571 ","version":"Next","tagName":"h3"},{"title":"ensureParticipantInRoom()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#ensureparticipantinroom","content":" ensureParticipantInRoom(userId, roomId): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Implementation of IAgentRuntime.ensureParticipantInRoom Defined in packages/core/src/runtime.ts:607 ","version":"Next","tagName":"h3"},{"title":"ensureRoomExists()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#ensureroomexists","content":" ensureRoomExists(roomId): Promise<void> Ensure the existence of a room between the agent and a user. If no room exists, a new room is created and the user and agent are added as participants. The room ID is returned. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> The room ID of the room between the agent and the user. Throws An error if the room cannot be created. Implementation of IAgentRuntime.ensureRoomExists Defined in packages/core/src/runtime.ts:654 ","version":"Next","tagName":"h3"},{"title":"ensureUserExists()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#ensureuserexists","content":" ensureUserExists(userId, userName, name, email?, source?): Promise<void> Ensure the existence of a user in the database. If the user does not exist, they are added to the database. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The user ID to ensure the existence of. • userName: string The user name to ensure the existence of. • name: string • email?: string • source?: string Returns Promise<void> Implementation of IAgentRuntime.ensureUserExists Defined in packages/core/src/runtime.ts:587 ","version":"Next","tagName":"h3"},{"title":"evaluate()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#evaluate","content":" evaluate(message, state?, didRespond?): Promise<string[]> Evaluate the message and state using the registered evaluators. Parameters • message: Memory The message to evaluate. • state?: State The state of the agent. • didRespond?: boolean Whether the agent responded to the message. Returns Promise<string[]> The results of the evaluation. Implementation of IAgentRuntime.evaluate Defined in packages/core/src/runtime.ts:501 ","version":"Next","tagName":"h3"},{"title":"getConversationLength()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#getconversationlength","content":" getConversationLength(): number Get the number of messages that are kept in the conversation buffer. Returns number The number of recent messages to be kept in memory. Implementation of IAgentRuntime.getConversationLength Defined in packages/core/src/runtime.ts:394 ","version":"Next","tagName":"h3"},{"title":"getMemoryManager()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#getmemorymanager","content":" getMemoryManager(tableName): IMemoryManager Parameters • tableName: string Returns IMemoryManager Implementation of IAgentRuntime.getMemoryManager Defined in packages/core/src/runtime.ts:149 ","version":"Next","tagName":"h3"},{"title":"getService()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#getservice","content":" getService(service): typeof Service Parameters • service: ServiceType Returns typeof Service Implementation of IAgentRuntime.getService Defined in packages/core/src/runtime.ts:153 ","version":"Next","tagName":"h3"},{"title":"getSetting()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#getsetting","content":" getSetting(key): any Parameters • key: string Returns any Implementation of IAgentRuntime.getSetting Defined in packages/core/src/runtime.ts:372 ","version":"Next","tagName":"h3"},{"title":"processActions()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#processactions","content":" processActions(message, responses, state?, callback?): Promise<void> Process the actions of a message. Parameters • message: Memory The message to process. • responses: Memory[] • state?: State • callback?: HandlerCallback Returns Promise<void> Implementation of IAgentRuntime.processActions Defined in packages/core/src/runtime.ts:428 ","version":"Next","tagName":"h3"},{"title":"registerAction()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#registeraction","content":" registerAction(action): void Register an action for the agent to perform. Parameters • action: Action The action to register. Returns void Implementation of IAgentRuntime.registerAction Defined in packages/core/src/runtime.ts:402 ","version":"Next","tagName":"h3"},{"title":"registerContextProvider()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#registercontextprovider","content":" registerContextProvider(provider): void Register a context provider to provide context for message generation. Parameters • provider: Provider The context provider to register. Returns void Defined in packages/core/src/runtime.ts:419 ","version":"Next","tagName":"h3"},{"title":"registerEvaluator()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#registerevaluator","content":" registerEvaluator(evaluator): void Register an evaluator to assess and guide the agent's responses. Parameters • evaluator: Evaluator The evaluator to register. Returns void Defined in packages/core/src/runtime.ts:411 ","version":"Next","tagName":"h3"},{"title":"registerMemoryManager()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#registermemorymanager","content":" registerMemoryManager(manager): void Parameters • manager: IMemoryManager Returns void Implementation of IAgentRuntime.registerMemoryManager Defined in packages/core/src/runtime.ts:134 ","version":"Next","tagName":"h3"},{"title":"registerService()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#registerservice","content":" registerService(service): void Parameters • service: Service Returns void Implementation of IAgentRuntime.registerService Defined in packages/core/src/runtime.ts:161 ","version":"Next","tagName":"h3"},{"title":"updateRecentMessageState()","type":1,"pageTitle":"Class: AgentRuntime","url":"/eliza/docs/api/classes/AgentRuntime/#updaterecentmessagestate","content":" updateRecentMessageState(state): Promise<State> Parameters • state: State Returns Promise<State> Implementation of IAgentRuntime.updateRecentMessageState Defined in packages/core/src/runtime.ts:1124 ","version":"Next","tagName":"h3"},{"title":"Class: abstract DatabaseAdapter","type":0,"sectionRef":"#","url":"/eliza/docs/api/classes/DatabaseAdapter/","content":"","keywords":"","version":"Next"},{"title":"Implements","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#implements","content":" IDatabaseAdapter ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new DatabaseAdapter()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#new-databaseadapter","content":" new DatabaseAdapter(): DatabaseAdapter Returns DatabaseAdapter ","version":"Next","tagName":"h3"},{"title":"Properties","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"db","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#db","content":" db: any The database instance. Implementation of IDatabaseAdapter.db Defined in packages/core/src/database.ts:21 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"addParticipant()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#addparticipant","content":" abstract addParticipant(userId, roomId): Promise<boolean> Adds a user as a participant to a specific room. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the user to add as a participant. • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room to which the user will be added. Returns Promise<boolean> A Promise that resolves to a boolean indicating success or failure. Implementation of IDatabaseAdapter.addParticipant Defined in packages/core/src/database.ts:266 ","version":"Next","tagName":"h3"},{"title":"countMemories()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#countmemories","content":" abstract countMemories(roomId, unique?, tableName?): Promise<number> Counts the number of memories in a specific room. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room for which to count memories. • unique?: boolean Specifies whether to count only unique memories. • tableName?: string Optional table name to count memories from. Returns Promise<number> A Promise that resolves to the number of memories. Implementation of IDatabaseAdapter.countMemories Defined in packages/core/src/database.ts:179 ","version":"Next","tagName":"h3"},{"title":"createAccount()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#createaccount","content":" abstract createAccount(account): Promise<boolean> Creates a new account in the database. Parameters • account: Account The account object to create. Returns Promise<boolean> A Promise that resolves when the account creation is complete. Implementation of IDatabaseAdapter.createAccount Defined in packages/core/src/database.ts:34 ","version":"Next","tagName":"h3"},{"title":"createGoal()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#creategoal","content":" abstract createGoal(goal): Promise<void> Creates a new goal in the database. Parameters • goal: Goal The goal object to create. Returns Promise<void> A Promise that resolves when the goal has been created. Implementation of IDatabaseAdapter.createGoal Defined in packages/core/src/database.ts:209 ","version":"Next","tagName":"h3"},{"title":"createMemory()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#creatememory","content":" abstract createMemory(memory, tableName, unique?): Promise<void> Creates a new memory in the database. Parameters • memory: Memory The memory object to create. • tableName: string The table where the memory should be stored. • unique?: boolean Indicates if the memory should be unique. Returns Promise<void> A Promise that resolves when the memory has been created. Implementation of IDatabaseAdapter.createMemory Defined in packages/core/src/database.ts:150 ","version":"Next","tagName":"h3"},{"title":"createRelationship()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#createrelationship","content":" abstract createRelationship(params): Promise<boolean> Creates a new relationship between two users. Parameters • params An object containing the UUIDs of the two users (userA and userB). • params.userA: `${string}-${string}-${string}-${string}-${string}` • params.userB: `${string}-${string}-${string}-${string}-${string}` Returns Promise<boolean> A Promise that resolves to a boolean indicating success or failure of the creation. Implementation of IDatabaseAdapter.createRelationship Defined in packages/core/src/database.ts:312 ","version":"Next","tagName":"h3"},{"title":"createRoom()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#createroom","content":" abstract createRoom(roomId?): Promise<`${string}-${string}-${string}-${string}-${string}`> Creates a new room with an optional specified ID. Parameters • roomId?: `${string}-${string}-${string}-${string}-${string}` Optional UUID to assign to the new room. Returns Promise<`${string}-${string}-${string}-${string}-${string}`> A Promise that resolves to the UUID of the created room. Implementation of IDatabaseAdapter.createRoom Defined in packages/core/src/database.ts:237 ","version":"Next","tagName":"h3"},{"title":"getAccountById()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getaccountbyid","content":" abstract getAccountById(userId): Promise<Account> Retrieves an account by its ID. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the user account to retrieve. Returns Promise<Account> A Promise that resolves to the Account object or null if not found. Implementation of IDatabaseAdapter.getAccountById Defined in packages/core/src/database.ts:27 ","version":"Next","tagName":"h3"},{"title":"getActorDetails()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getactordetails","content":" abstract getActorDetails(params): Promise<Actor[]> Retrieves details of actors in a given room. Parameters • params An object containing the roomId to search for actors. • params.roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Actor[]> A Promise that resolves to an array of Actor objects. Implementation of IDatabaseAdapter.getActorDetails Defined in packages/core/src/database.ts:99 ","version":"Next","tagName":"h3"},{"title":"getCachedEmbeddings()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getcachedembeddings","content":" abstract getCachedEmbeddings(params): Promise<object[]> Retrieves cached embeddings based on the specified query parameters. Parameters • params An object containing parameters for the embedding retrieval. • params.query_field_name: string • params.query_field_sub_name: string • params.query_input: string • params.query_match_count: number • params.query_table_name: string • params.query_threshold: number Returns Promise<object[]> A Promise that resolves to an array of objects containing embeddings and levenshtein scores. Implementation of IDatabaseAdapter.getCachedEmbeddings Defined in packages/core/src/database.ts:61 ","version":"Next","tagName":"h3"},{"title":"getGoals()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getgoals","content":" abstract getGoals(params): Promise<Goal[]> Retrieves goals based on specified parameters. Parameters • params An object containing parameters for goal retrieval. • params.count?: number • params.onlyInProgress?: boolean • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.userId?: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Goal[]> A Promise that resolves to an array of Goal objects. Implementation of IDatabaseAdapter.getGoals Defined in packages/core/src/database.ts:190 ","version":"Next","tagName":"h3"},{"title":"getMemories()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getmemories","content":" abstract getMemories(params): Promise<Memory[]> Retrieves memories based on the specified parameters. Parameters • params An object containing parameters for the memory retrieval. • params.count?: number • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.tableName: string • params.unique?: boolean Returns Promise<Memory[]> A Promise that resolves to an array of Memory objects. Implementation of IDatabaseAdapter.getMemories Defined in packages/core/src/database.ts:41 ","version":"Next","tagName":"h3"},{"title":"getMemoriesByRoomIds()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getmemoriesbyroomids","content":" abstract getMemoriesByRoomIds(params): Promise<Memory[]> Parameters • params • params.agentId?: `${string}-${string}-${string}-${string}-${string}` • params.roomIds: `${string}-${string}-${string}-${string}-${string}`[] • params.tableName: string Returns Promise<Memory[]> Implementation of IDatabaseAdapter.getMemoriesByRoomIds Defined in packages/core/src/database.ts:48 ","version":"Next","tagName":"h3"},{"title":"getMemoryById()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getmemorybyid","content":" abstract getMemoryById(id): Promise<Memory> Parameters • id: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Memory> Implementation of IDatabaseAdapter.getMemoryById Defined in packages/core/src/database.ts:54 ","version":"Next","tagName":"h3"},{"title":"getParticipantsForAccount()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getparticipantsforaccount","content":" getParticipantsForAccount(userId) abstract getParticipantsForAccount(userId): Promise<Participant[]> Retrieves participants associated with a specific account. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the account. Returns Promise<Participant[]> A Promise that resolves to an array of Participant objects. Implementation of IDatabaseAdapter.getParticipantsForAccount Defined in packages/core/src/database.ts:281 getParticipantsForAccount(userId) abstract getParticipantsForAccount(userId): Promise<Participant[]> Retrieves participants associated with a specific account. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the account. Returns Promise<Participant[]> A Promise that resolves to an array of Participant objects. Implementation of IDatabaseAdapter.getParticipantsForAccount Defined in packages/core/src/database.ts:288 ","version":"Next","tagName":"h3"},{"title":"getParticipantsForRoom()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getparticipantsforroom","content":" abstract getParticipantsForRoom(roomId): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Retrieves participants for a specific room. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room for which to retrieve participants. Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> A Promise that resolves to an array of UUIDs representing the participants. Implementation of IDatabaseAdapter.getParticipantsForRoom Defined in packages/core/src/database.ts:295 ","version":"Next","tagName":"h3"},{"title":"getParticipantUserState()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getparticipantuserstate","content":" abstract getParticipantUserState(roomId, userId): Promise<"FOLLOWED" | "MUTED"> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<"FOLLOWED" | "MUTED"> Implementation of IDatabaseAdapter.getParticipantUserState Defined in packages/core/src/database.ts:297 ","version":"Next","tagName":"h3"},{"title":"getRelationship()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getrelationship","content":" abstract getRelationship(params): Promise<Relationship> Retrieves a relationship between two users if it exists. Parameters • params An object containing the UUIDs of the two users (userA and userB). • params.userA: `${string}-${string}-${string}-${string}-${string}` • params.userB: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Relationship> A Promise that resolves to the Relationship object or null if not found. Implementation of IDatabaseAdapter.getRelationship Defined in packages/core/src/database.ts:322 ","version":"Next","tagName":"h3"},{"title":"getRelationships()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getrelationships","content":" abstract getRelationships(params): Promise<Relationship[]> Retrieves all relationships for a specific user. Parameters • params An object containing the UUID of the user. • params.userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Relationship[]> A Promise that resolves to an array of Relationship objects. Implementation of IDatabaseAdapter.getRelationships Defined in packages/core/src/database.ts:332 ","version":"Next","tagName":"h3"},{"title":"getRoom()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getroom","content":" abstract getRoom(roomId): Promise<`${string}-${string}-${string}-${string}-${string}`> Retrieves the room ID for a given room, if it exists. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room to retrieve. Returns Promise<`${string}-${string}-${string}-${string}-${string}`> A Promise that resolves to the room ID or null if not found. Implementation of IDatabaseAdapter.getRoom Defined in packages/core/src/database.ts:230 ","version":"Next","tagName":"h3"},{"title":"getRoomsForParticipant()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getroomsforparticipant","content":" abstract getRoomsForParticipant(userId): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Retrieves room IDs for which a specific user is a participant. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the user. Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> A Promise that resolves to an array of room IDs. Implementation of IDatabaseAdapter.getRoomsForParticipant Defined in packages/core/src/database.ts:251 ","version":"Next","tagName":"h3"},{"title":"getRoomsForParticipants()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#getroomsforparticipants","content":" abstract getRoomsForParticipants(userIds): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Retrieves room IDs for which specific users are participants. Parameters • userIds: `${string}-${string}-${string}-${string}-${string}`[] An array of UUIDs of the users. Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> A Promise that resolves to an array of room IDs. Implementation of IDatabaseAdapter.getRoomsForParticipants Defined in packages/core/src/database.ts:258 ","version":"Next","tagName":"h3"},{"title":"log()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#log","content":" abstract log(params): Promise<void> Logs an event or action with the specified details. Parameters • params An object containing parameters for the log entry. • params.body • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.type: string • params.userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> A Promise that resolves when the log entry has been saved. Implementation of IDatabaseAdapter.log Defined in packages/core/src/database.ts:87 ","version":"Next","tagName":"h3"},{"title":"removeAllGoals()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#removeallgoals","content":" abstract removeAllGoals(roomId): Promise<void> Removes all goals associated with a specific room. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room whose goals should be removed. Returns Promise<void> A Promise that resolves when all goals have been removed. Implementation of IDatabaseAdapter.removeAllGoals Defined in packages/core/src/database.ts:223 ","version":"Next","tagName":"h3"},{"title":"removeAllMemories()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#removeallmemories","content":" abstract removeAllMemories(roomId, tableName): Promise<void> Removes all memories associated with a specific room. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room whose memories should be removed. • tableName: string The table from which the memories should be removed. Returns Promise<void> A Promise that resolves when all memories have been removed. Implementation of IDatabaseAdapter.removeAllMemories Defined in packages/core/src/database.ts:170 ","version":"Next","tagName":"h3"},{"title":"removeGoal()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#removegoal","content":" abstract removeGoal(goalId): Promise<void> Removes a specific goal from the database. Parameters • goalId: `${string}-${string}-${string}-${string}-${string}` The UUID of the goal to remove. Returns Promise<void> A Promise that resolves when the goal has been removed. Implementation of IDatabaseAdapter.removeGoal Defined in packages/core/src/database.ts:216 ","version":"Next","tagName":"h3"},{"title":"removeMemory()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#removememory","content":" abstract removeMemory(memoryId, tableName): Promise<void> Removes a specific memory from the database. Parameters • memoryId: `${string}-${string}-${string}-${string}-${string}` The UUID of the memory to remove. • tableName: string The table from which the memory should be removed. Returns Promise<void> A Promise that resolves when the memory has been removed. Implementation of IDatabaseAdapter.removeMemory Defined in packages/core/src/database.ts:162 ","version":"Next","tagName":"h3"},{"title":"removeParticipant()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#removeparticipant","content":" abstract removeParticipant(userId, roomId): Promise<boolean> Removes a user as a participant from a specific room. Parameters • userId: `${string}-${string}-${string}-${string}-${string}` The UUID of the user to remove as a participant. • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room from which the user will be removed. Returns Promise<boolean> A Promise that resolves to a boolean indicating success or failure. Implementation of IDatabaseAdapter.removeParticipant Defined in packages/core/src/database.ts:274 ","version":"Next","tagName":"h3"},{"title":"removeRoom()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#removeroom","content":" abstract removeRoom(roomId): Promise<void> Removes a specific room from the database. Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` The UUID of the room to remove. Returns Promise<void> A Promise that resolves when the room has been removed. Implementation of IDatabaseAdapter.removeRoom Defined in packages/core/src/database.ts:244 ","version":"Next","tagName":"h3"},{"title":"searchMemories()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#searchmemories","content":" abstract searchMemories(params): Promise<Memory[]> Searches for memories based on embeddings and other specified parameters. Parameters • params An object containing parameters for the memory search. • params.embedding: number[] • params.match_count: number • params.match_threshold: number • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.tableName: string • params.unique: boolean Returns Promise<Memory[]> A Promise that resolves to an array of Memory objects. Implementation of IDatabaseAdapter.searchMemories Defined in packages/core/src/database.ts:106 ","version":"Next","tagName":"h3"},{"title":"searchMemoriesByEmbedding()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#searchmemoriesbyembedding","content":" abstract searchMemoriesByEmbedding(embedding, params): Promise<Memory[]> Searches for memories by embedding and other specified parameters. Parameters • embedding: number[] The embedding vector to search with. • params Additional parameters for the search. • params.agentId?: `${string}-${string}-${string}-${string}-${string}` • params.count?: number • params.match_threshold?: number • params.roomId?: `${string}-${string}-${string}-${string}-${string}` • params.tableName: string • params.unique?: boolean Returns Promise<Memory[]> A Promise that resolves to an array of Memory objects. Implementation of IDatabaseAdapter.searchMemoriesByEmbedding Defined in packages/core/src/database.ts:131 ","version":"Next","tagName":"h3"},{"title":"setParticipantUserState()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#setparticipantuserstate","content":" abstract setParticipantUserState(roomId, userId, state): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • userId: `${string}-${string}-${string}-${string}-${string}` • state: "FOLLOWED" | "MUTED" Returns Promise<void> Implementation of IDatabaseAdapter.setParticipantUserState Defined in packages/core/src/database.ts:301 ","version":"Next","tagName":"h3"},{"title":"updateGoal()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#updategoal","content":" abstract updateGoal(goal): Promise<void> Updates a specific goal in the database. Parameters • goal: Goal The goal object with updated properties. Returns Promise<void> A Promise that resolves when the goal has been updated. Implementation of IDatabaseAdapter.updateGoal Defined in packages/core/src/database.ts:202 ","version":"Next","tagName":"h3"},{"title":"updateGoalStatus()","type":1,"pageTitle":"Class: abstract DatabaseAdapter","url":"/eliza/docs/api/classes/DatabaseAdapter/#updategoalstatus","content":" abstract updateGoalStatus(params): Promise<void> Updates the status of a specific goal. Parameters • params An object containing the goalId and the new status. • params.goalId: `${string}-${string}-${string}-${string}-${string}` • params.status: GoalStatus Returns Promise<void> A Promise that resolves when the goal status has been updated. Implementation of IDatabaseAdapter.updateGoalStatus Defined in packages/core/src/database.ts:120 ","version":"Next","tagName":"h3"},{"title":"🤝 Trust Engine","type":0,"sectionRef":"#","url":"/eliza/docs/advanced/trust-engine/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#overview","content":" The Trust Engine is a sophisticated system for evaluating, tracking, and managing trust scores for token recommendations and trading activity. It combines on-chain analysis, trader metrics, and historical performance to create a comprehensive trust framework. ","version":"Next","tagName":"h2"},{"title":"Core Components","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#core-components","content":" ","version":"Next","tagName":"h2"},{"title":"Trust Score Database","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#trust-score-database","content":" The database schema manages various aspects of trust: interface TrustScoreDatabase { // Core data structures recommenders: Recommender[]; metrics: RecommenderMetrics[]; tokenPerformance: TokenPerformance[]; recommendations: TokenRecommendation[]; } interface Recommender { id: string; address: string; solanaPubkey?: string; telegramId?: string; discordId?: string; twitterId?: string; ip?: string; } interface RecommenderMetrics { recommenderId: string; trustScore: number; totalRecommendations: number; successfulRecs: number; avgTokenPerformance: number; riskScore: number; consistencyScore: number; virtualConfidence: number; lastActiveDate: Date; } ","version":"Next","tagName":"h3"},{"title":"Token Analysis","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#token-analysis","content":" The system tracks comprehensive token metrics: interface TokenPerformance { tokenAddress: string; priceChange24h: number; volumeChange24h: number; trade_24h_change: number; liquidity: number; liquidityChange24h: number; holderChange24h: number; rugPull: boolean; isScam: boolean; marketCapChange24h: number; sustainedGrowth: boolean; rapidDump: boolean; suspiciousVolume: boolean; validationTrust: number; lastUpdated: Date; } ","version":"Next","tagName":"h3"},{"title":"Trust Scoring System","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#trust-scoring-system","content":" ","version":"Next","tagName":"h2"},{"title":"Score Calculation","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#score-calculation","content":" async function calculateTrustScore( recommenderId: string, metrics: RecommenderMetrics, ): Promise<number> { const weights = { successRate: 0.3, avgPerformance: 0.2, consistency: 0.2, riskMetric: 0.15, timeDecay: 0.15, }; const successRate = metrics.successfulRecs / metrics.totalRecommendations; const normalizedPerformance = normalizePerformance( metrics.avgTokenPerformance, ); const timeDecayFactor = calculateTimeDecay(metrics.lastActiveDate); return ( (successRate * weights.successRate + normalizedPerformance * weights.avgPerformance + metrics.consistencyScore * weights.consistency + (1 - metrics.riskScore) * weights.riskMetric + timeDecayFactor * weights.timeDecay) * 100 ); } ","version":"Next","tagName":"h3"},{"title":"Token Validation","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#token-validation","content":" async function validateToken( tokenAddress: string, performance: TokenPerformance, ): Promise<boolean> { // Minimum requirements const requirements = { minLiquidity: 1000, // $1000 USD minHolders: 100, maxOwnership: 0.2, // 20% max single holder minVolume: 500, // $500 USD daily volume }; // Red flags if ( performance.rugPull || performance.isScam || performance.rapidDump || performance.suspiciousVolume ) { return false; } // Basic requirements return ( performance.liquidity >= requirements.minLiquidity && !performance.rapidDump && performance.validationTrust > 0.5 ); } ","version":"Next","tagName":"h3"},{"title":"Trade Management","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#trade-management","content":" ","version":"Next","tagName":"h2"},{"title":"Trade Performance Tracking","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#trade-performance-tracking","content":" interface TradePerformance { token_address: string; recommender_id: string; buy_price: number; sell_price: number; buy_timeStamp: string; sell_timeStamp: string; profit_usd: number; profit_percent: number; market_cap_change: number; liquidity_change: number; rapidDump: boolean; } async function recordTradePerformance( trade: TradePerformance, isSimulation: boolean, ): Promise<void> { const tableName = isSimulation ? "simulation_trade" : "trade"; await db.query( ` INSERT INTO ${tableName} ( token_address, recommender_id, buy_price, sell_price, buy_timeStamp, sell_timeStamp, profit_usd, profit_percent, market_cap_change, liquidity_change, rapidDump ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) `, [ /* parameters */ ], ); } ","version":"Next","tagName":"h3"},{"title":"Risk Management","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#risk-management","content":" async function assessTradeRisk( token: TokenPerformance, recommender: RecommenderMetrics, ): Promise<{ riskLevel: "LOW" | "MEDIUM" | "HIGH"; maxPositionSize: number; }> { const riskFactors = { tokenTrust: token.validationTrust, recommenderTrust: recommender.trustScore, marketMetrics: { liquidity: token.liquidity, volume: token.volumeChange24h, holders: token.holderChange24h, }, }; // Calculate composite risk score const riskScore = calculateRiskScore(riskFactors); // Determine position sizing const maxPosition = determinePositionSize(riskScore); return { riskLevel: getRiskLevel(riskScore), maxPositionSize: maxPosition, }; } ","version":"Next","tagName":"h3"},{"title":"Recommendation Analysis","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#recommendation-analysis","content":" ","version":"Next","tagName":"h2"},{"title":"Pattern Detection","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#pattern-detection","content":" async function analyzeRecommendationPatterns( recommenderId: string, ): Promise<RecommendationPattern> { const history = await getRecommenderHistory(recommenderId); return { timeOfDay: analyzeTimingPatterns(history), tokenTypes: analyzeTokenPreferences(history), successRateByType: calculateTypeSuccessRates(history), riskProfile: assessRiskProfile(history), }; } ","version":"Next","tagName":"h3"},{"title":"Performance Metrics","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#performance-metrics","content":" interface PerformanceMetrics { profitability: number; consistency: number; riskAdjustedReturn: number; maxDrawdown: number; winRate: number; } async function calculatePerformanceMetrics( recommendations: TokenRecommendation[], ): Promise<PerformanceMetrics> { const trades = await getTradesFromRecommendations(recommendations); return { profitability: calculateProfitability(trades), consistency: calculateConsistency(trades), riskAdjustedReturn: calculateSharpeRatio(trades), maxDrawdown: calculateMaxDrawdown(trades), winRate: calculateWinRate(trades), }; } ","version":"Next","tagName":"h3"},{"title":"Integration with Trading System","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#integration-with-trading-system","content":" ","version":"Next","tagName":"h2"},{"title":"Trade Execution","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#trade-execution","content":" async function executeTrade( recommendation: TokenRecommendation, trustScore: number, ): Promise<boolean> { const riskAssessment = await assessTradeRisk( recommendation.tokenAddress, recommendation.recommenderId, ); // Calculate position size based on trust score const positionSize = calculatePositionSize( trustScore, riskAssessment.maxPositionSize, ); if (positionSize > 0) { await executeSwap({ inputToken: "SOL", outputToken: recommendation.tokenAddress, amount: positionSize, }); await recordTradeEntry(recommendation, positionSize); return true; } return false; } ","version":"Next","tagName":"h3"},{"title":"Position Management","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#position-management","content":" async function managePosition( position: TradePosition, metrics: TokenPerformance, ): Promise<void> { // Exit conditions if ( metrics.rapidDump || metrics.suspiciousVolume || calculateDrawdown(position) > MAX_DRAWDOWN ) { await executeExit(position); return; } // Position sizing adjustments const newSize = recalculatePosition(position, metrics); if (newSize !== position.size) { await adjustPosition(position, newSize); } } ","version":"Next","tagName":"h3"},{"title":"Monitoring and Alerts","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#monitoring-and-alerts","content":" ","version":"Next","tagName":"h2"},{"title":"Performance Monitoring","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#performance-monitoring","content":" async function monitorTrustMetrics(): Promise<void> { // Monitor trust score changes const scoreChanges = await getTrustScoreChanges(); for (const change of scoreChanges) { if (Math.abs(change.delta) > TRUST_THRESHOLD) { await notifyTrustChange(change); } } // Monitor trading performance const performanceMetrics = await getPerformanceMetrics(); for (const metric of performanceMetrics) { if (metric.drawdown > MAX_DRAWDOWN) { await notifyRiskAlert(metric); } } } ","version":"Next","tagName":"h3"},{"title":"Alert System","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#alert-system","content":" interface TrustAlert { type: "SCORE_CHANGE" | "RISK_LEVEL" | "PERFORMANCE"; severity: "LOW" | "MEDIUM" | "HIGH"; message: string; data: any; } async function handleAlert(alert: TrustAlert): Promise<void> { switch (alert.severity) { case "HIGH": await sendImmediateNotification(alert); await pauseTrading(alert.data); break; case "MEDIUM": await sendNotification(alert); await adjustRiskLevels(alert.data); break; case "LOW": await logAlert(alert); break; } } ","version":"Next","tagName":"h3"},{"title":"Troubleshooting","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"🤝 Trust Engine","url":"/eliza/docs/advanced/trust-engine/#common-issues","content":" Trust Score Anomalies async function investigateTrustAnomaly( recommenderId: string, ): Promise<AnomalyReport> { const history = await getRecommenderHistory(recommenderId); const metrics = await getRecommenderMetrics(recommenderId); const trades = await getRecommenderTrades(recommenderId); return analyzeAnomalies(history, metrics, trades); } Trade Execution Failures async function handleTradeFailure( error: Error, trade: TradeAttempt, ): Promise<void> { await logTradeError(error, trade); await adjustTrustScore(trade.recommenderId, "FAILURE"); await notifyTradeFailure(trade); } ","version":"Next","tagName":"h3"},{"title":"Class: abstract Service","type":0,"sectionRef":"#","url":"/eliza/docs/api/classes/Service/","content":"","keywords":"","version":"Next"},{"title":"Extended by","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/docs/api/classes/Service/#extended-by","content":" IImageDescriptionServiceITranscriptionServiceIVideoServiceITextGenerationServiceIBrowserServiceISpeechServiceIPdfService ","version":"Next","tagName":"h2"},{"title":"Constructors","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/docs/api/classes/Service/#constructors","content":" ","version":"Next","tagName":"h2"},{"title":"new Service()","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/docs/api/classes/Service/#new-service","content":" new Service(): Service Returns Service ","version":"Next","tagName":"h3"},{"title":"Properties","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/docs/api/classes/Service/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"serviceType","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/docs/api/classes/Service/#servicetype","content":" static serviceType: ServiceType Defined in packages/core/src/types.ts:507 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/docs/api/classes/Service/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"getInstance()","type":1,"pageTitle":"Class: abstract Service","url":"/eliza/docs/api/classes/Service/#getinstance","content":" static getInstance<T>(): T Type Parameters • T extends Service Returns T Defined in packages/core/src/types.ts:509 ","version":"Next","tagName":"h3"},{"title":"Enumeration: Clients","type":0,"sectionRef":"#","url":"/eliza/docs/api/enumerations/Clients/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/docs/api/enumerations/Clients/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"DIRECT","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/docs/api/enumerations/Clients/#direct","content":" DIRECT: "direct" Defined in packages/core/src/types.ts:322 ","version":"Next","tagName":"h3"},{"title":"DISCORD","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/docs/api/enumerations/Clients/#discord","content":" DISCORD: "discord" Defined in packages/core/src/types.ts:321 ","version":"Next","tagName":"h3"},{"title":"TELEGRAM","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/docs/api/enumerations/Clients/#telegram","content":" TELEGRAM: "telegram" Defined in packages/core/src/types.ts:324 ","version":"Next","tagName":"h3"},{"title":"TWITTER","type":1,"pageTitle":"Enumeration: Clients","url":"/eliza/docs/api/enumerations/Clients/#twitter","content":" TWITTER: "twitter" Defined in packages/core/src/types.ts:323 ","version":"Next","tagName":"h3"},{"title":"Enumeration: GoalStatus","type":0,"sectionRef":"#","url":"/eliza/docs/api/enumerations/GoalStatus/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: GoalStatus","url":"/eliza/docs/api/enumerations/GoalStatus/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"DONE","type":1,"pageTitle":"Enumeration: GoalStatus","url":"/eliza/docs/api/enumerations/GoalStatus/#done","content":" DONE: "DONE" Defined in packages/core/src/types.ts:57 ","version":"Next","tagName":"h3"},{"title":"FAILED","type":1,"pageTitle":"Enumeration: GoalStatus","url":"/eliza/docs/api/enumerations/GoalStatus/#failed","content":" FAILED: "FAILED" Defined in packages/core/src/types.ts:58 ","version":"Next","tagName":"h3"},{"title":"IN_PROGRESS","type":1,"pageTitle":"Enumeration: GoalStatus","url":"/eliza/docs/api/enumerations/GoalStatus/#in_progress","content":" IN_PROGRESS: "IN_PROGRESS" Defined in packages/core/src/types.ts:59 ","version":"Next","tagName":"h3"},{"title":"Function: createRelationship()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/createRelationship/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: createRelationship()","url":"/eliza/docs/api/functions/createRelationship/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.userA: `${string}-${string}-${string}-${string}-${string}` • __namedParameters.userB: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: createRelationship()","url":"/eliza/docs/api/functions/createRelationship/#returns","content":" Promise<boolean> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: createRelationship()","url":"/eliza/docs/api/functions/createRelationship/#defined-in","content":" packages/core/src/relationships.ts:3 ","version":"Next","tagName":"h2"},{"title":"Enumeration: ModelClass","type":0,"sectionRef":"#","url":"/eliza/docs/api/enumerations/ModelClass/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/docs/api/enumerations/ModelClass/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"EMBEDDING","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/docs/api/enumerations/ModelClass/#embedding","content":" EMBEDDING: "embedding" Defined in packages/core/src/types.ts:78 ","version":"Next","tagName":"h3"},{"title":"IMAGE","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/docs/api/enumerations/ModelClass/#image","content":" IMAGE: "image" Defined in packages/core/src/types.ts:79 ","version":"Next","tagName":"h3"},{"title":"LARGE","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/docs/api/enumerations/ModelClass/#large","content":" LARGE: "large" Defined in packages/core/src/types.ts:77 ","version":"Next","tagName":"h3"},{"title":"MEDIUM","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/docs/api/enumerations/ModelClass/#medium","content":" MEDIUM: "medium" Defined in packages/core/src/types.ts:76 ","version":"Next","tagName":"h3"},{"title":"SMALL","type":1,"pageTitle":"Enumeration: ModelClass","url":"/eliza/docs/api/enumerations/ModelClass/#small","content":" SMALL: "small" Defined in packages/core/src/types.ts:75 ","version":"Next","tagName":"h3"},{"title":"Enumeration: ModelProviderName","type":0,"sectionRef":"#","url":"/eliza/docs/api/enumerations/ModelProviderName/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"ANTHROPIC","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#anthropic","content":" ANTHROPIC: "anthropic" Defined in packages/core/src/types.ts:121 ","version":"Next","tagName":"h3"},{"title":"CLAUDE_VERTEX","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#claude_vertex","content":" CLAUDE_VERTEX: "claude_vertex" Defined in packages/core/src/types.ts:127 ","version":"Next","tagName":"h3"},{"title":"GOOGLE","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#google","content":" GOOGLE: "google" Defined in packages/core/src/types.ts:126 ","version":"Next","tagName":"h3"},{"title":"GROK","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#grok","content":" GROK: "grok" Defined in packages/core/src/types.ts:122 ","version":"Next","tagName":"h3"},{"title":"GROQ","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#groq","content":" GROQ: "groq" Defined in packages/core/src/types.ts:123 ","version":"Next","tagName":"h3"},{"title":"LLAMACLOUD","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#llamacloud","content":" LLAMACLOUD: "llama_cloud" Defined in packages/core/src/types.ts:124 ","version":"Next","tagName":"h3"},{"title":"LLAMALOCAL","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#llamalocal","content":" LLAMALOCAL: "llama_local" Defined in packages/core/src/types.ts:125 ","version":"Next","tagName":"h3"},{"title":"OLLAMA","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#ollama","content":" OLLAMA: "ollama" Defined in packages/core/src/types.ts:130 ","version":"Next","tagName":"h3"},{"title":"OPENAI","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#openai","content":" OPENAI: "openai" Defined in packages/core/src/types.ts:120 ","version":"Next","tagName":"h3"},{"title":"OPENROUTER","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#openrouter","content":" OPENROUTER: "openrouter" Defined in packages/core/src/types.ts:129 ","version":"Next","tagName":"h3"},{"title":"REDPILL","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#redpill","content":" REDPILL: "redpill" Defined in packages/core/src/types.ts:128 ","version":"Next","tagName":"h3"},{"title":"HEURIST","type":1,"pageTitle":"Enumeration: ModelProviderName","url":"/eliza/docs/api/enumerations/ModelProviderName/#heurist","content":" HEURIST: "heurist" Defined in packages/core/src/types.ts:132 ","version":"Next","tagName":"h3"},{"title":"Enumeration: ServiceType","type":0,"sectionRef":"#","url":"/eliza/docs/api/enumerations/ServiceType/","content":"","keywords":"","version":"Next"},{"title":"Enumeration Members","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/docs/api/enumerations/ServiceType/#enumeration-members","content":" ","version":"Next","tagName":"h2"},{"title":"BROWSER","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/docs/api/enumerations/ServiceType/#browser","content":" BROWSER: "browser" Defined in packages/core/src/types.ts:650 ","version":"Next","tagName":"h3"},{"title":"IMAGE_DESCRIPTION","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/docs/api/enumerations/ServiceType/#image_description","content":" IMAGE_DESCRIPTION: "image_description" Defined in packages/core/src/types.ts:646 ","version":"Next","tagName":"h3"},{"title":"PDF","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/docs/api/enumerations/ServiceType/#pdf","content":" PDF: "pdf" Defined in packages/core/src/types.ts:652 ","version":"Next","tagName":"h3"},{"title":"SPEECH_GENERATION","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/docs/api/enumerations/ServiceType/#speech_generation","content":" SPEECH_GENERATION: "speech_generation" Defined in packages/core/src/types.ts:651 ","version":"Next","tagName":"h3"},{"title":"TEXT_GENERATION","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/docs/api/enumerations/ServiceType/#text_generation","content":" TEXT_GENERATION: "text_generation" Defined in packages/core/src/types.ts:649 ","version":"Next","tagName":"h3"},{"title":"TRANSCRIPTION","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/docs/api/enumerations/ServiceType/#transcription","content":" TRANSCRIPTION: "transcription" Defined in packages/core/src/types.ts:647 ","version":"Next","tagName":"h3"},{"title":"VIDEO","type":1,"pageTitle":"Enumeration: ServiceType","url":"/eliza/docs/api/enumerations/ServiceType/#video","content":" VIDEO: "video" Defined in packages/core/src/types.ts:648 ","version":"Next","tagName":"h3"},{"title":"Function: addHeader()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/addHeader/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: addHeader()","url":"/eliza/docs/api/functions/addHeader/#parameters","content":" • header: string The header to add to the body. • body: string The body to which to add the header. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: addHeader()","url":"/eliza/docs/api/functions/addHeader/#returns","content":" string The body with the header prepended. ","version":"Next","tagName":"h2"},{"title":"Example","type":1,"pageTitle":"Function: addHeader()","url":"/eliza/docs/api/functions/addHeader/#example","content":" // Given a header and a body const header = "Header"; const body = "Body"; // Adding the header to the body will result in: // "Header\\nBody" const text = addHeader(header, body); ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: addHeader()","url":"/eliza/docs/api/functions/addHeader/#defined-in","content":" packages/core/src/context.ts:58 ","version":"Next","tagName":"h2"},{"title":"Function: composeActionExamples()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/composeActionExamples/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: composeActionExamples()","url":"/eliza/docs/api/functions/composeActionExamples/#parameters","content":" • actionsData: Action[] An array of Action objects from which to draw examples. • count: number The number of examples to generate. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: composeActionExamples()","url":"/eliza/docs/api/functions/composeActionExamples/#returns","content":" string A string containing formatted examples of conversations. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: composeActionExamples()","url":"/eliza/docs/api/functions/composeActionExamples/#defined-in","content":" packages/core/src/actions.ts:11 ","version":"Next","tagName":"h2"},{"title":"Function: composeContext()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/composeContext/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: composeContext()","url":"/eliza/docs/api/functions/composeContext/#parameters","content":" • params The parameters for composing the context. • params.state: State The state object containing values to replace the placeholders in the template. • params.template: string The template string containing placeholders to be replaced with state values. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: composeContext()","url":"/eliza/docs/api/functions/composeContext/#returns","content":" string The composed context string with placeholders replaced by corresponding state values. ","version":"Next","tagName":"h2"},{"title":"Example","type":1,"pageTitle":"Function: composeContext()","url":"/eliza/docs/api/functions/composeContext/#example","content":" // Given a state object and a template const state = { userName: "Alice", userAge: 30 }; const template = "Hello, {{userName}}! You are {{userAge}} years old"; // Composing the context will result in: // "Hello, Alice! You are 30 years old." const context = composeContext({ state, template }); ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: composeContext()","url":"/eliza/docs/api/functions/composeContext/#defined-in","content":" packages/core/src/context.ts:24 ","version":"Next","tagName":"h2"},{"title":"Function: createGoal()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/createGoal/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: createGoal()","url":"/eliza/docs/api/functions/createGoal/#parameters","content":" • __namedParameters • __namedParameters.goal: Goal • __namedParameters.runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: createGoal()","url":"/eliza/docs/api/functions/createGoal/#returns","content":" Promise<void> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: createGoal()","url":"/eliza/docs/api/functions/createGoal/#defined-in","content":" packages/core/src/goals.ts:54 ","version":"Next","tagName":"h2"},{"title":"Function: embed()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/embed/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: embed()","url":"/eliza/docs/api/functions/embed/#parameters","content":" • runtime: IAgentRuntime • input: string The input to be embedded. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: embed()","url":"/eliza/docs/api/functions/embed/#returns","content":" Promise<number[]> The embedding of the input. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: embed()","url":"/eliza/docs/api/functions/embed/#defined-in","content":" packages/core/src/embedding.ts:88 ","version":"Next","tagName":"h2"},{"title":"Function: findNearestEnvFile()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/findNearestEnvFile/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: findNearestEnvFile()","url":"/eliza/docs/api/functions/findNearestEnvFile/#parameters","content":" • startDir?: string = ... Starting directory for the search ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: findNearestEnvFile()","url":"/eliza/docs/api/functions/findNearestEnvFile/#returns","content":" string Path to the nearest .env file or null if not found ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: findNearestEnvFile()","url":"/eliza/docs/api/functions/findNearestEnvFile/#defined-in","content":" packages/core/src/settings.ts:11 ","version":"Next","tagName":"h2"},{"title":"Function: formatActionNames()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatActionNames/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatActionNames()","url":"/eliza/docs/api/functions/formatActionNames/#parameters","content":" • actions: Action[] An array of Action objects from which to extract names. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatActionNames()","url":"/eliza/docs/api/functions/formatActionNames/#returns","content":" string A comma-separated string of action names. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatActionNames()","url":"/eliza/docs/api/functions/formatActionNames/#defined-in","content":" packages/core/src/actions.ts:47 ","version":"Next","tagName":"h2"},{"title":"Function: formatActions()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatActions/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatActions()","url":"/eliza/docs/api/functions/formatActions/#parameters","content":" • actions: Action[] An array of Action objects to format. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatActions()","url":"/eliza/docs/api/functions/formatActions/#returns","content":" string A detailed string of actions, including names and descriptions. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatActions()","url":"/eliza/docs/api/functions/formatActions/#defined-in","content":" packages/core/src/actions.ts:59 ","version":"Next","tagName":"h2"},{"title":"Function: formatActors()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatActors/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatActors()","url":"/eliza/docs/api/functions/formatActors/#parameters","content":" • actors list of actors • actors.actors: Actor[] ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatActors()","url":"/eliza/docs/api/functions/formatActors/#returns","content":" string string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatActors()","url":"/eliza/docs/api/functions/formatActors/#defined-in","content":" packages/core/src/messages.ts:45 ","version":"Next","tagName":"h2"},{"title":"Function: formatEvaluatorExampleDescriptions()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatEvaluatorExampleDescriptions/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatEvaluatorExampleDescriptions()","url":"/eliza/docs/api/functions/formatEvaluatorExampleDescriptions/#parameters","content":" • evaluators: Evaluator[] An array of evaluator objects, each containing examples. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatEvaluatorExampleDescriptions()","url":"/eliza/docs/api/functions/formatEvaluatorExampleDescriptions/#returns","content":" string A string that summarizes the descriptions for each evaluator example, formatted with the evaluator name, example number, and description. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatEvaluatorExampleDescriptions()","url":"/eliza/docs/api/functions/formatEvaluatorExampleDescriptions/#defined-in","content":" packages/core/src/evaluators.ts:110 ","version":"Next","tagName":"h2"},{"title":"Function: formatEvaluators()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatEvaluators/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatEvaluators()","url":"/eliza/docs/api/functions/formatEvaluators/#parameters","content":" • evaluators: Evaluator[] An array of evaluator objects. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatEvaluators()","url":"/eliza/docs/api/functions/formatEvaluators/#returns","content":" string A string that concatenates the name and description of each evaluator, separated by a colon and a newline character. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatEvaluators()","url":"/eliza/docs/api/functions/formatEvaluators/#defined-in","content":" packages/core/src/evaluators.ts:41 ","version":"Next","tagName":"h2"},{"title":"Function: generateCaption()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/generateCaption/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/docs/api/functions/generateCaption/#parameters","content":" • data • data.imageUrl: string • runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/docs/api/functions/generateCaption/#returns","content":" Promise<object> ","version":"Next","tagName":"h2"},{"title":"description","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/docs/api/functions/generateCaption/#description","content":" description: string ","version":"Next","tagName":"h3"},{"title":"title","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/docs/api/functions/generateCaption/#title","content":" title: string ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Function: generateCaption()","url":"/eliza/docs/api/functions/generateCaption/#defined-in","content":" packages/core/src/generation.ts:734 ","version":"Next","tagName":"h2"},{"title":"Function: formatGoalsAsString()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatGoalsAsString/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatGoalsAsString()","url":"/eliza/docs/api/functions/formatGoalsAsString/#parameters","content":" • __namedParameters • __namedParameters.goals: Goal[] ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatGoalsAsString()","url":"/eliza/docs/api/functions/formatGoalsAsString/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatGoalsAsString()","url":"/eliza/docs/api/functions/formatGoalsAsString/#defined-in","content":" packages/core/src/goals.ts:29 ","version":"Next","tagName":"h2"},{"title":"Function: formatTimestamp()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatTimestamp/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatTimestamp()","url":"/eliza/docs/api/functions/formatTimestamp/#parameters","content":" • messageDate: number ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatTimestamp()","url":"/eliza/docs/api/functions/formatTimestamp/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatTimestamp()","url":"/eliza/docs/api/functions/formatTimestamp/#defined-in","content":" packages/core/src/messages.ts:94 ","version":"Next","tagName":"h2"},{"title":"Function: formatEvaluatorNames()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatEvaluatorNames/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatEvaluatorNames()","url":"/eliza/docs/api/functions/formatEvaluatorNames/#parameters","content":" • evaluators: Evaluator[] An array of evaluator objects. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatEvaluatorNames()","url":"/eliza/docs/api/functions/formatEvaluatorNames/#returns","content":" string A string that concatenates the names of all evaluators, each enclosed in single quotes and separated by commas. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatEvaluatorNames()","url":"/eliza/docs/api/functions/formatEvaluatorNames/#defined-in","content":" packages/core/src/evaluators.ts:30 ","version":"Next","tagName":"h2"},{"title":"Function: formatMessages()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatMessages/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatMessages()","url":"/eliza/docs/api/functions/formatMessages/#parameters","content":" • __namedParameters • __namedParameters.actors: Actor[] • __namedParameters.messages: Memory[] ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatMessages()","url":"/eliza/docs/api/functions/formatMessages/#returns","content":" string string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatMessages()","url":"/eliza/docs/api/functions/formatMessages/#defined-in","content":" packages/core/src/messages.ts:60 ","version":"Next","tagName":"h2"},{"title":"Function: formatRelationships()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatRelationships/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatRelationships()","url":"/eliza/docs/api/functions/formatRelationships/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.userId: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatRelationships()","url":"/eliza/docs/api/functions/formatRelationships/#returns","content":" Promise<`${string}-${string}-${string}-${string}-${string}`[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatRelationships()","url":"/eliza/docs/api/functions/formatRelationships/#defined-in","content":" packages/core/src/relationships.ts:43 ","version":"Next","tagName":"h2"},{"title":"Function: formatEvaluatorExamples()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatEvaluatorExamples/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatEvaluatorExamples()","url":"/eliza/docs/api/functions/formatEvaluatorExamples/#parameters","content":" • evaluators: Evaluator[] An array of evaluator objects, each containing examples to format. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatEvaluatorExamples()","url":"/eliza/docs/api/functions/formatEvaluatorExamples/#returns","content":" string A string that presents each evaluator example in a structured format, including context, messages, and outcomes, with placeholders replaced by generated names. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatEvaluatorExamples()","url":"/eliza/docs/api/functions/formatEvaluatorExamples/#defined-in","content":" packages/core/src/evaluators.ts:55 ","version":"Next","tagName":"h2"},{"title":"Function: generateImage()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/generateImage/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/docs/api/functions/generateImage/#parameters","content":" • data • data.count?: number • data.height: number • data.prompt: string • data.width: number • runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/docs/api/functions/generateImage/#returns","content":" Promise<object> ","version":"Next","tagName":"h2"},{"title":"data?","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/docs/api/functions/generateImage/#data","content":" optional data: string[] ","version":"Next","tagName":"h3"},{"title":"error?","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/docs/api/functions/generateImage/#error","content":" optional error: any ","version":"Next","tagName":"h3"},{"title":"success","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/docs/api/functions/generateImage/#success","content":" success: boolean ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Function: generateImage()","url":"/eliza/docs/api/functions/generateImage/#defined-in","content":" packages/core/src/generation.ts:650 ","version":"Next","tagName":"h2"},{"title":"Function: formatPosts()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/formatPosts/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: formatPosts()","url":"/eliza/docs/api/functions/formatPosts/#parameters","content":" • __namedParameters • __namedParameters.actors: Actor[] • __namedParameters.conversationHeader?: boolean = true • __namedParameters.messages: Memory[] ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: formatPosts()","url":"/eliza/docs/api/functions/formatPosts/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: formatPosts()","url":"/eliza/docs/api/functions/formatPosts/#defined-in","content":" packages/core/src/posts.ts:4 ","version":"Next","tagName":"h2"},{"title":"Function: generateObjectArray()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/generateObjectArray/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateObjectArray()","url":"/eliza/docs/api/functions/generateObjectArray/#parameters","content":" • __namedParameters • __namedParameters.context: string • __namedParameters.modelClass: string • __namedParameters.runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateObjectArray()","url":"/eliza/docs/api/functions/generateObjectArray/#returns","content":" Promise<any[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateObjectArray()","url":"/eliza/docs/api/functions/generateObjectArray/#defined-in","content":" packages/core/src/generation.ts:564 ","version":"Next","tagName":"h2"},{"title":"Function: generateTrueOrFalse()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/generateTrueOrFalse/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateTrueOrFalse()","url":"/eliza/docs/api/functions/generateTrueOrFalse/#parameters","content":" • opts The options for the generateText request • opts.context: string = "" The context to evaluate for the boolean response • opts.modelClass: string • opts.runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateTrueOrFalse()","url":"/eliza/docs/api/functions/generateTrueOrFalse/#returns","content":" Promise<boolean> Promise resolving to a boolean value parsed from the model's response ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateTrueOrFalse()","url":"/eliza/docs/api/functions/generateTrueOrFalse/#defined-in","content":" packages/core/src/generation.ts:436 ","version":"Next","tagName":"h2"},{"title":"Function: generateMessageResponse()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/generateMessageResponse/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateMessageResponse()","url":"/eliza/docs/api/functions/generateMessageResponse/#parameters","content":" • opts The options for the generateText request. • opts.context: string The context of the message to be completed. • opts.modelClass: string • opts.runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateMessageResponse()","url":"/eliza/docs/api/functions/generateMessageResponse/#returns","content":" Promise<Content> The completed message. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateMessageResponse()","url":"/eliza/docs/api/functions/generateMessageResponse/#defined-in","content":" packages/core/src/generation.ts:612 ","version":"Next","tagName":"h2"},{"title":"Function: generateShouldRespond()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/generateShouldRespond/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateShouldRespond()","url":"/eliza/docs/api/functions/generateShouldRespond/#parameters","content":" • opts The options for the generateText request • opts.context: string The context to evaluate for response • opts.modelClass: string • opts.runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateShouldRespond()","url":"/eliza/docs/api/functions/generateShouldRespond/#returns","content":" Promise<"RESPOND" | "IGNORE" | "STOP" | null> Promise resolving to "RESPOND", "IGNORE", "STOP" or null ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateShouldRespond()","url":"/eliza/docs/api/functions/generateShouldRespond/#defined-in","content":" packages/core/src/generation.ts:334 ","version":"Next","tagName":"h2"},{"title":"Function: generateText()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/generateText/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateText()","url":"/eliza/docs/api/functions/generateText/#parameters","content":" • opts The options for the generateText request. • opts.context: string The context of the message to be completed. • opts.modelClass: string • opts.runtime: IAgentRuntime • opts.stop?: string[] A list of strings to stop the generateText at. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateText()","url":"/eliza/docs/api/functions/generateText/#returns","content":" Promise<string> The completed message. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateText()","url":"/eliza/docs/api/functions/generateText/#defined-in","content":" packages/core/src/generation.ts:43 ","version":"Next","tagName":"h2"},{"title":"Function: generateObject()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/generateObject/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateObject()","url":"/eliza/docs/api/functions/generateObject/#parameters","content":" • __namedParameters • __namedParameters.context: string • __namedParameters.modelClass: string • __namedParameters.runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateObject()","url":"/eliza/docs/api/functions/generateObject/#returns","content":" Promise<any> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateObject()","url":"/eliza/docs/api/functions/generateObject/#defined-in","content":" packages/core/src/generation.ts:528 ","version":"Next","tagName":"h2"},{"title":"Function: getActorDetails()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/getActorDetails/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getActorDetails()","url":"/eliza/docs/api/functions/getActorDetails/#parameters","content":" • __namedParameters • __namedParameters.roomId: `${string}-${string}-${string}-${string}-${string}` • __namedParameters.runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getActorDetails()","url":"/eliza/docs/api/functions/getActorDetails/#returns","content":" Promise<Actor[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getActorDetails()","url":"/eliza/docs/api/functions/getActorDetails/#defined-in","content":" packages/core/src/messages.ts:12 ","version":"Next","tagName":"h2"},{"title":"Function: generateTextArray()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/generateTextArray/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: generateTextArray()","url":"/eliza/docs/api/functions/generateTextArray/#parameters","content":" • opts The options for the generateText request • opts.context: string The context/prompt to send to the model • opts.modelClass: string • opts.runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: generateTextArray()","url":"/eliza/docs/api/functions/generateTextArray/#returns","content":" Promise<string[]> Promise resolving to an array of strings parsed from the model's response ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: generateTextArray()","url":"/eliza/docs/api/functions/generateTextArray/#defined-in","content":" packages/core/src/generation.ts:492 ","version":"Next","tagName":"h2"},{"title":"Function: getEndpoint()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/getEndpoint/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getEndpoint()","url":"/eliza/docs/api/functions/getEndpoint/#parameters","content":" • provider: ModelProviderName ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getEndpoint()","url":"/eliza/docs/api/functions/getEndpoint/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getEndpoint()","url":"/eliza/docs/api/functions/getEndpoint/#defined-in","content":" packages/core/src/models.ts:226 ","version":"Next","tagName":"h2"},{"title":"Function: getRelationship()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/getRelationship/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getRelationship()","url":"/eliza/docs/api/functions/getRelationship/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.userA: `${string}-${string}-${string}-${string}-${string}` • __namedParameters.userB: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getRelationship()","url":"/eliza/docs/api/functions/getRelationship/#returns","content":" Promise<Relationship> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getRelationship()","url":"/eliza/docs/api/functions/getRelationship/#defined-in","content":" packages/core/src/relationships.ts:18 ","version":"Next","tagName":"h2"},{"title":"Function: getModel()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/getModel/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getModel()","url":"/eliza/docs/api/functions/getModel/#parameters","content":" • provider: ModelProviderName • type: ModelClass ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getModel()","url":"/eliza/docs/api/functions/getModel/#returns","content":" string ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getModel()","url":"/eliza/docs/api/functions/getModel/#defined-in","content":" packages/core/src/models.ts:222 ","version":"Next","tagName":"h2"},{"title":"Function: loadEnvConfig()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/loadEnvConfig/","content":"","keywords":"","version":"Next"},{"title":"Returns","type":1,"pageTitle":"Function: loadEnvConfig()","url":"/eliza/docs/api/functions/loadEnvConfig/#returns","content":" ProcessEnv Environment variables object ","version":"Next","tagName":"h2"},{"title":"Throws","type":1,"pageTitle":"Function: loadEnvConfig()","url":"/eliza/docs/api/functions/loadEnvConfig/#throws","content":" If no .env file is found ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: loadEnvConfig()","url":"/eliza/docs/api/functions/loadEnvConfig/#defined-in","content":" packages/core/src/settings.ts:36 ","version":"Next","tagName":"h2"},{"title":"Function: getRelationships()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/getRelationships/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getRelationships()","url":"/eliza/docs/api/functions/getRelationships/#parameters","content":" • __namedParameters • __namedParameters.runtime: IAgentRuntime • __namedParameters.userId: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getRelationships()","url":"/eliza/docs/api/functions/getRelationships/#returns","content":" Promise<Relationship[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getRelationships()","url":"/eliza/docs/api/functions/getRelationships/#defined-in","content":" packages/core/src/relationships.ts:33 ","version":"Next","tagName":"h2"},{"title":"Function: splitChunks()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/splitChunks/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: splitChunks()","url":"/eliza/docs/api/functions/splitChunks/#parameters","content":" • content: string The text content to split into chunks • chunkSize: number The maximum size of each chunk in tokens • bleed: number = 100 Number of characters to overlap between chunks (default: 100) ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: splitChunks()","url":"/eliza/docs/api/functions/splitChunks/#returns","content":" Promise<string[]> Promise resolving to array of text chunks with bleed sections ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: splitChunks()","url":"/eliza/docs/api/functions/splitChunks/#defined-in","content":" packages/core/src/generation.ts:390 ","version":"Next","tagName":"h2"},{"title":"Function: getProviders()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/getProviders/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getProviders()","url":"/eliza/docs/api/functions/getProviders/#parameters","content":" • runtime: IAgentRuntime The AgentRuntime object. • message: Memory The incoming message object. • state?: State The current state object. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getProviders()","url":"/eliza/docs/api/functions/getProviders/#returns","content":" Promise<string> A string that concatenates the outputs of each provider. ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getProviders()","url":"/eliza/docs/api/functions/getProviders/#defined-in","content":" packages/core/src/providers.ts:10 ","version":"Next","tagName":"h2"},{"title":"Function: updateGoal()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/updateGoal/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: updateGoal()","url":"/eliza/docs/api/functions/updateGoal/#parameters","content":" • __namedParameters • __namedParameters.goal: Goal • __namedParameters.runtime: IAgentRuntime ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: updateGoal()","url":"/eliza/docs/api/functions/updateGoal/#returns","content":" Promise<void> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: updateGoal()","url":"/eliza/docs/api/functions/updateGoal/#defined-in","content":" packages/core/src/goals.ts:44 ","version":"Next","tagName":"h2"},{"title":"Function: trimTokens()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/trimTokens/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: trimTokens()","url":"/eliza/docs/api/functions/trimTokens/#parameters","content":" • context: any The context of the message to be completed. • maxTokens: any • model: any The model to use for generateText. ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: trimTokens()","url":"/eliza/docs/api/functions/trimTokens/#returns","content":" any ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: trimTokens()","url":"/eliza/docs/api/functions/trimTokens/#defined-in","content":" packages/core/src/generation.ts:308 ","version":"Next","tagName":"h2"},{"title":"@ai16z/eliza","type":0,"sectionRef":"#","url":"/eliza/docs/api/globals/","content":"","keywords":"","version":"Next"},{"title":"Enumerations","type":1,"pageTitle":"@ai16z/eliza","url":"/eliza/docs/api/globals/#enumerations","content":" ClientsGoalStatusModelClassModelProviderNameServiceType ","version":"Next","tagName":"h2"},{"title":"Classes","type":1,"pageTitle":"@ai16z/eliza","url":"/eliza/docs/api/globals/#classes","content":" AgentRuntimeDatabaseAdapterMemoryManagerService ","version":"Next","tagName":"h2"},{"title":"Interfaces","type":1,"pageTitle":"@ai16z/eliza","url":"/eliza/docs/api/globals/#interfaces","content":" AccountActionActionExampleActorContentConversationExampleEvaluationExampleEvaluatorGoalIAgentRuntimeIBrowserServiceIDatabaseAdapterIImageDescriptionServiceIMemoryManagerIPdfServiceISpeechServiceITextGenerationServiceITranscriptionServiceIVideoServiceMemoryMessageExampleObjectiveParticipantProviderRelationshipRoomState ","version":"Next","tagName":"h2"},{"title":"Type Aliases","type":1,"pageTitle":"@ai16z/eliza","url":"/eliza/docs/api/globals/#type-aliases","content":" CharacterClientHandlerHandlerCallbackMediaModelModelsPluginUUIDValidator ","version":"Next","tagName":"h2"},{"title":"Variables","type":1,"pageTitle":"@ai16z/eliza","url":"/eliza/docs/api/globals/#variables","content":" defaultCharacterelizaLoggerembeddingDimensionembeddingZeroVectorevaluationTemplatesettings ","version":"Next","tagName":"h2"},{"title":"Functions","type":1,"pageTitle":"@ai16z/eliza","url":"/eliza/docs/api/globals/#functions","content":" addHeadercomposeActionExamplescomposeContextcreateGoalcreateRelationshipembedfindNearestEnvFileformatActionNamesformatActionsformatActorsformatEvaluatorExampleDescriptionsformatEvaluatorExamplesformatEvaluatorNamesformatEvaluatorsformatGoalsAsStringformatMessagesformatPostsformatRelationshipsformatTimestampgenerateCaptiongenerateImagegenerateMessageResponsegenerateObjectgenerateObjectArraygenerateShouldRespondgenerateTextgenerateTextArraygenerateTrueOrFalsegetActorDetailsgetEndpointgetGoalsgetModelgetProvidersgetRelationshipgetRelationshipsloadEnvConfigretrieveCachedEmbeddingsplitChunkstrimTokensupdateGoal ","version":"Next","tagName":"h2"},{"title":"Interface: Action","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Action/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Action","url":"/eliza/docs/api/interfaces/Action/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"description","type":1,"pageTitle":"Interface: Action","url":"/eliza/docs/api/interfaces/Action/#description","content":" description: string Defined in packages/core/src/types.ts:216 ","version":"Next","tagName":"h3"},{"title":"examples","type":1,"pageTitle":"Interface: Action","url":"/eliza/docs/api/interfaces/Action/#examples","content":" examples: ActionExample[][] Defined in packages/core/src/types.ts:217 ","version":"Next","tagName":"h3"},{"title":"handler","type":1,"pageTitle":"Interface: Action","url":"/eliza/docs/api/interfaces/Action/#handler","content":" handler: Handler Defined in packages/core/src/types.ts:218 ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Interface: Action","url":"/eliza/docs/api/interfaces/Action/#name","content":" name: string Defined in packages/core/src/types.ts:219 ","version":"Next","tagName":"h3"},{"title":"similes","type":1,"pageTitle":"Interface: Action","url":"/eliza/docs/api/interfaces/Action/#similes","content":" similes: string[] Defined in packages/core/src/types.ts:215 ","version":"Next","tagName":"h3"},{"title":"validate","type":1,"pageTitle":"Interface: Action","url":"/eliza/docs/api/interfaces/Action/#validate","content":" validate: Validator Defined in packages/core/src/types.ts:220 ","version":"Next","tagName":"h3"},{"title":"Interface: ActionExample","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/ActionExample/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: ActionExample","url":"/eliza/docs/api/interfaces/ActionExample/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"content","type":1,"pageTitle":"Interface: ActionExample","url":"/eliza/docs/api/interfaces/ActionExample/#content","content":" content: Content Defined in packages/core/src/types.ts:26 ","version":"Next","tagName":"h3"},{"title":"user","type":1,"pageTitle":"Interface: ActionExample","url":"/eliza/docs/api/interfaces/ActionExample/#user","content":" user: string Defined in packages/core/src/types.ts:25 ","version":"Next","tagName":"h3"},{"title":"Interface: Content","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Content/","content":"","keywords":"","version":"Next"},{"title":"Indexable","type":1,"pageTitle":"Interface: Content","url":"/eliza/docs/api/interfaces/Content/#indexable","content":" [key: string]: unknown ","version":"Next","tagName":"h2"},{"title":"Properties","type":1,"pageTitle":"Interface: Content","url":"/eliza/docs/api/interfaces/Content/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"action?","type":1,"pageTitle":"Interface: Content","url":"/eliza/docs/api/interfaces/Content/#action","content":" optional action: string Defined in packages/core/src/types.ts:13 ","version":"Next","tagName":"h3"},{"title":"attachments?","type":1,"pageTitle":"Interface: Content","url":"/eliza/docs/api/interfaces/Content/#attachments","content":" optional attachments: Media[] Defined in packages/core/src/types.ts:17 ","version":"Next","tagName":"h3"},{"title":"inReplyTo?","type":1,"pageTitle":"Interface: Content","url":"/eliza/docs/api/interfaces/Content/#inreplyto","content":" optional inReplyTo: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:16 ","version":"Next","tagName":"h3"},{"title":"source?","type":1,"pageTitle":"Interface: Content","url":"/eliza/docs/api/interfaces/Content/#source","content":" optional source: string Defined in packages/core/src/types.ts:14 ","version":"Next","tagName":"h3"},{"title":"text","type":1,"pageTitle":"Interface: Content","url":"/eliza/docs/api/interfaces/Content/#text","content":" text: string Defined in packages/core/src/types.ts:12 ","version":"Next","tagName":"h3"},{"title":"url?","type":1,"pageTitle":"Interface: Content","url":"/eliza/docs/api/interfaces/Content/#url","content":" optional url: string Defined in packages/core/src/types.ts:15 ","version":"Next","tagName":"h3"},{"title":"Function: retrieveCachedEmbedding()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/retrieveCachedEmbedding/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: retrieveCachedEmbedding()","url":"/eliza/docs/api/functions/retrieveCachedEmbedding/#parameters","content":" • runtime: IAgentRuntime • input: string ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: retrieveCachedEmbedding()","url":"/eliza/docs/api/functions/retrieveCachedEmbedding/#returns","content":" Promise<number[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: retrieveCachedEmbedding()","url":"/eliza/docs/api/functions/retrieveCachedEmbedding/#defined-in","content":" packages/core/src/embedding.ts:146 ","version":"Next","tagName":"h2"},{"title":"Interface: EvaluationExample","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/EvaluationExample/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: EvaluationExample","url":"/eliza/docs/api/interfaces/EvaluationExample/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"context","type":1,"pageTitle":"Interface: EvaluationExample","url":"/eliza/docs/api/interfaces/EvaluationExample/#context","content":" context: string Defined in packages/core/src/types.ts:227 ","version":"Next","tagName":"h3"},{"title":"messages","type":1,"pageTitle":"Interface: EvaluationExample","url":"/eliza/docs/api/interfaces/EvaluationExample/#messages","content":" messages: ActionExample[] Defined in packages/core/src/types.ts:228 ","version":"Next","tagName":"h3"},{"title":"outcome","type":1,"pageTitle":"Interface: EvaluationExample","url":"/eliza/docs/api/interfaces/EvaluationExample/#outcome","content":" outcome: string Defined in packages/core/src/types.ts:229 ","version":"Next","tagName":"h3"},{"title":"Interface: Actor","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Actor/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Actor","url":"/eliza/docs/api/interfaces/Actor/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"details","type":1,"pageTitle":"Interface: Actor","url":"/eliza/docs/api/interfaces/Actor/#details","content":" details: object quote quote: string summary summary: string tagline tagline: string Defined in packages/core/src/types.ts:43 ","version":"Next","tagName":"h3"},{"title":"id","type":1,"pageTitle":"Interface: Actor","url":"/eliza/docs/api/interfaces/Actor/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:44 ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Interface: Actor","url":"/eliza/docs/api/interfaces/Actor/#name","content":" name: string Defined in packages/core/src/types.ts:41 ","version":"Next","tagName":"h3"},{"title":"username","type":1,"pageTitle":"Interface: Actor","url":"/eliza/docs/api/interfaces/Actor/#username","content":" username: string Defined in packages/core/src/types.ts:42 ","version":"Next","tagName":"h3"},{"title":"Interface: Account","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Account/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Account","url":"/eliza/docs/api/interfaces/Account/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"avatarUrl?","type":1,"pageTitle":"Interface: Account","url":"/eliza/docs/api/interfaces/Account/#avatarurl","content":" optional avatarUrl: string Defined in packages/core/src/types.ts:278 ","version":"Next","tagName":"h3"},{"title":"details?","type":1,"pageTitle":"Interface: Account","url":"/eliza/docs/api/interfaces/Account/#details","content":" optional details: object Index Signature [key: string]: any Defined in packages/core/src/types.ts:276 ","version":"Next","tagName":"h3"},{"title":"email?","type":1,"pageTitle":"Interface: Account","url":"/eliza/docs/api/interfaces/Account/#email","content":" optional email: string Defined in packages/core/src/types.ts:277 ","version":"Next","tagName":"h3"},{"title":"id","type":1,"pageTitle":"Interface: Account","url":"/eliza/docs/api/interfaces/Account/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:273 ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Interface: Account","url":"/eliza/docs/api/interfaces/Account/#name","content":" name: string Defined in packages/core/src/types.ts:274 ","version":"Next","tagName":"h3"},{"title":"username","type":1,"pageTitle":"Interface: Account","url":"/eliza/docs/api/interfaces/Account/#username","content":" username: string Defined in packages/core/src/types.ts:275 ","version":"Next","tagName":"h3"},{"title":"Function: getGoals()","type":0,"sectionRef":"#","url":"/eliza/docs/api/functions/getGoals/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Function: getGoals()","url":"/eliza/docs/api/functions/getGoals/#parameters","content":" • __namedParameters • __namedParameters.count?: number = 5 • __namedParameters.onlyInProgress?: boolean = true • __namedParameters.roomId: `${string}-${string}-${string}-${string}-${string}` • __namedParameters.runtime: IAgentRuntime • __namedParameters.userId?: `${string}-${string}-${string}-${string}-${string}` ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Function: getGoals()","url":"/eliza/docs/api/functions/getGoals/#returns","content":" Promise<Goal[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Function: getGoals()","url":"/eliza/docs/api/functions/getGoals/#defined-in","content":" packages/core/src/goals.ts:8 ","version":"Next","tagName":"h2"},{"title":"Interface: ConversationExample","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/ConversationExample/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: ConversationExample","url":"/eliza/docs/api/interfaces/ConversationExample/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"content","type":1,"pageTitle":"Interface: ConversationExample","url":"/eliza/docs/api/interfaces/ConversationExample/#content","content":" content: Content Defined in packages/core/src/types.ts:34 ","version":"Next","tagName":"h3"},{"title":"userId","type":1,"pageTitle":"Interface: ConversationExample","url":"/eliza/docs/api/interfaces/ConversationExample/#userid","content":" userId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:33 ","version":"Next","tagName":"h3"},{"title":"Interface: Goal","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Goal/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Goal","url":"/eliza/docs/api/interfaces/Goal/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"id?","type":1,"pageTitle":"Interface: Goal","url":"/eliza/docs/api/interfaces/Goal/#id","content":" optional id: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:66 ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Interface: Goal","url":"/eliza/docs/api/interfaces/Goal/#name","content":" name: string Defined in packages/core/src/types.ts:69 ","version":"Next","tagName":"h3"},{"title":"objectives","type":1,"pageTitle":"Interface: Goal","url":"/eliza/docs/api/interfaces/Goal/#objectives","content":" objectives: Objective[] Defined in packages/core/src/types.ts:71 ","version":"Next","tagName":"h3"},{"title":"roomId","type":1,"pageTitle":"Interface: Goal","url":"/eliza/docs/api/interfaces/Goal/#roomid","content":" roomId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:67 ","version":"Next","tagName":"h3"},{"title":"status","type":1,"pageTitle":"Interface: Goal","url":"/eliza/docs/api/interfaces/Goal/#status","content":" status: GoalStatus Defined in packages/core/src/types.ts:70 ","version":"Next","tagName":"h3"},{"title":"userId","type":1,"pageTitle":"Interface: Goal","url":"/eliza/docs/api/interfaces/Goal/#userid","content":" userId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:68 ","version":"Next","tagName":"h3"},{"title":"Interface: Evaluator","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Evaluator/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/docs/api/interfaces/Evaluator/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"alwaysRun?","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/docs/api/interfaces/Evaluator/#alwaysrun","content":" optional alwaysRun: boolean Defined in packages/core/src/types.ts:236 ","version":"Next","tagName":"h3"},{"title":"description","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/docs/api/interfaces/Evaluator/#description","content":" description: string Defined in packages/core/src/types.ts:237 ","version":"Next","tagName":"h3"},{"title":"examples","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/docs/api/interfaces/Evaluator/#examples","content":" examples: EvaluationExample[] Defined in packages/core/src/types.ts:239 ","version":"Next","tagName":"h3"},{"title":"handler","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/docs/api/interfaces/Evaluator/#handler","content":" handler: Handler Defined in packages/core/src/types.ts:240 ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/docs/api/interfaces/Evaluator/#name","content":" name: string Defined in packages/core/src/types.ts:241 ","version":"Next","tagName":"h3"},{"title":"similes","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/docs/api/interfaces/Evaluator/#similes","content":" similes: string[] Defined in packages/core/src/types.ts:238 ","version":"Next","tagName":"h3"},{"title":"validate","type":1,"pageTitle":"Interface: Evaluator","url":"/eliza/docs/api/interfaces/Evaluator/#validate","content":" validate: Validator Defined in packages/core/src/types.ts:242 ","version":"Next","tagName":"h3"},{"title":"Interface: ISpeechService","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/ISpeechService/","content":"","keywords":"","version":"Next"},{"title":"Interface: IBrowserService","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/IBrowserService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/docs/api/interfaces/IBrowserService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Methods","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/docs/api/interfaces/IBrowserService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"closeBrowser()","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/docs/api/interfaces/IBrowserService/#closebrowser","content":" closeBrowser(): Promise<void> Returns Promise<void> Defined in packages/core/src/types.ts:630 ","version":"Next","tagName":"h3"},{"title":"getPageContent()","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/docs/api/interfaces/IBrowserService/#getpagecontent","content":" getPageContent(url, runtime): Promise<object> Parameters • url: string • runtime: IAgentRuntime Returns Promise<object> bodyContent bodyContent: string description description: string title title: string Defined in packages/core/src/types.ts:631 ","version":"Next","tagName":"h3"},{"title":"initialize()","type":1,"pageTitle":"Interface: IBrowserService","url":"/eliza/docs/api/interfaces/IBrowserService/#initialize","content":" initialize(): Promise<void> Returns Promise<void> Defined in packages/core/src/types.ts:629 ","version":"Next","tagName":"h3"},{"title":"Extends","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/docs/api/interfaces/ISpeechService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Methods","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/docs/api/interfaces/ISpeechService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"generate()","type":1,"pageTitle":"Interface: ISpeechService","url":"/eliza/docs/api/interfaces/ISpeechService/#generate","content":" generate(runtime, text): Promise<Readable> Parameters • runtime: IAgentRuntime • text: string Returns Promise<Readable> Defined in packages/core/src/types.ts:638 ","version":"Next","tagName":"h3"},{"title":"Interface: IImageDescriptionService","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/IImageDescriptionService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/docs/api/interfaces/IImageDescriptionService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Methods","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/docs/api/interfaces/IImageDescriptionService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"describeImage()","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/docs/api/interfaces/IImageDescriptionService/#describeimage","content":" describeImage(imageUrl): Promise<object> Parameters • imageUrl: string Returns Promise<object> description description: string title title: string Defined in packages/core/src/types.ts:585 ","version":"Next","tagName":"h3"},{"title":"getInstance()","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/docs/api/interfaces/IImageDescriptionService/#getinstance","content":" getInstance(): IImageDescriptionService Returns IImageDescriptionService Defined in packages/core/src/types.ts:583 ","version":"Next","tagName":"h3"},{"title":"initialize()","type":1,"pageTitle":"Interface: IImageDescriptionService","url":"/eliza/docs/api/interfaces/IImageDescriptionService/#initialize","content":" initialize(modelId?, device?): Promise<void> Parameters • modelId?: string • device?: string Returns Promise<void> Defined in packages/core/src/types.ts:584 ","version":"Next","tagName":"h3"},{"title":"Interface: IPdfService","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/IPdfService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/docs/api/interfaces/IPdfService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Methods","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/docs/api/interfaces/IPdfService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"convertPdfToText()","type":1,"pageTitle":"Interface: IPdfService","url":"/eliza/docs/api/interfaces/IPdfService/#convertpdftotext","content":" convertPdfToText(pdfBuffer): Promise<string> Parameters • pdfBuffer: Buffer Returns Promise<string> Defined in packages/core/src/types.ts:642 ","version":"Next","tagName":"h3"},{"title":"Interface: IMemoryManager","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/IMemoryManager/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"constructor","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#constructor","content":" constructor: Function Defined in packages/core/src/types.ts:470 ","version":"Next","tagName":"h3"},{"title":"runtime","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#runtime","content":" runtime: IAgentRuntime Defined in packages/core/src/types.ts:467 ","version":"Next","tagName":"h3"},{"title":"tableName","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#tablename","content":" tableName: string Defined in packages/core/src/types.ts:468 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"addEmbeddingToMemory()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#addembeddingtomemory","content":" addEmbeddingToMemory(memory): Promise<Memory> Parameters • memory: Memory Returns Promise<Memory> Defined in packages/core/src/types.ts:472 ","version":"Next","tagName":"h3"},{"title":"countMemories()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#countmemories","content":" countMemories(roomId, unique?): Promise<number> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • unique?: boolean Returns Promise<number> Defined in packages/core/src/types.ts:502 ","version":"Next","tagName":"h3"},{"title":"createMemory()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#creatememory","content":" createMemory(memory, unique?): Promise<void> Parameters • memory: Memory • unique?: boolean Returns Promise<void> Defined in packages/core/src/types.ts:499 ","version":"Next","tagName":"h3"},{"title":"getCachedEmbeddings()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#getcachedembeddings","content":" getCachedEmbeddings(content): Promise<object[]> Parameters • content: string Returns Promise<object[]> Defined in packages/core/src/types.ts:481 ","version":"Next","tagName":"h3"},{"title":"getMemories()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#getmemories","content":" getMemories(opts): Promise<Memory[]> Parameters • opts • opts.agentId?: `${string}-${string}-${string}-${string}-${string}` • opts.count?: number • opts.end?: number • opts.roomId: `${string}-${string}-${string}-${string}-${string}` • opts.start?: number • opts.unique?: boolean Returns Promise<Memory[]> Defined in packages/core/src/types.ts:473 ","version":"Next","tagName":"h3"},{"title":"getMemoriesByRoomIds()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#getmemoriesbyroomids","content":" getMemoriesByRoomIds(params): Promise<Memory[]> Parameters • params • params.agentId?: `${string}-${string}-${string}-${string}-${string}` • params.roomIds: `${string}-${string}-${string}-${string}-${string}`[] Returns Promise<Memory[]> Defined in packages/core/src/types.ts:485 ","version":"Next","tagName":"h3"},{"title":"getMemoryById()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#getmemorybyid","content":" getMemoryById(id): Promise<Memory> Parameters • id: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Memory> Defined in packages/core/src/types.ts:484 ","version":"Next","tagName":"h3"},{"title":"removeAllMemories()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#removeallmemories","content":" removeAllMemories(roomId): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:501 ","version":"Next","tagName":"h3"},{"title":"removeMemory()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#removememory","content":" removeMemory(memoryId): Promise<void> Parameters • memoryId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:500 ","version":"Next","tagName":"h3"},{"title":"searchMemoriesByEmbedding()","type":1,"pageTitle":"Interface: IMemoryManager","url":"/eliza/docs/api/interfaces/IMemoryManager/#searchmemoriesbyembedding","content":" searchMemoriesByEmbedding(embedding, opts): Promise<Memory[]> Parameters • embedding: number[] • opts • opts.agentId?: `${string}-${string}-${string}-${string}-${string}` • opts.count?: number • opts.match_threshold?: number • opts.roomId: `${string}-${string}-${string}-${string}-${string}` • opts.unique?: boolean Returns Promise<Memory[]> Defined in packages/core/src/types.ts:489 ","version":"Next","tagName":"h3"},{"title":"Interface: IVideoService","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/IVideoService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/docs/api/interfaces/IVideoService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Methods","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/docs/api/interfaces/IVideoService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"downloadVideo()","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/docs/api/interfaces/IVideoService/#downloadvideo","content":" downloadVideo(videoInfo): Promise<string> Parameters • videoInfo: Media Returns Promise<string> Defined in packages/core/src/types.ts:603 ","version":"Next","tagName":"h3"},{"title":"fetchVideoInfo()","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/docs/api/interfaces/IVideoService/#fetchvideoinfo","content":" fetchVideoInfo(url): Promise<Media> Parameters • url: string Returns Promise<Media> Defined in packages/core/src/types.ts:602 ","version":"Next","tagName":"h3"},{"title":"isVideoUrl()","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/docs/api/interfaces/IVideoService/#isvideourl","content":" isVideoUrl(url): boolean Parameters • url: string Returns boolean Defined in packages/core/src/types.ts:600 ","version":"Next","tagName":"h3"},{"title":"processVideo()","type":1,"pageTitle":"Interface: IVideoService","url":"/eliza/docs/api/interfaces/IVideoService/#processvideo","content":" processVideo(url): Promise<Media> Parameters • url: string Returns Promise<Media> Defined in packages/core/src/types.ts:601 ","version":"Next","tagName":"h3"},{"title":"Interface: Objective","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Objective/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Objective","url":"/eliza/docs/api/interfaces/Objective/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"completed","type":1,"pageTitle":"Interface: Objective","url":"/eliza/docs/api/interfaces/Objective/#completed","content":" completed: boolean Defined in packages/core/src/types.ts:53 ","version":"Next","tagName":"h3"},{"title":"description","type":1,"pageTitle":"Interface: Objective","url":"/eliza/docs/api/interfaces/Objective/#description","content":" description: string Defined in packages/core/src/types.ts:52 ","version":"Next","tagName":"h3"},{"title":"id?","type":1,"pageTitle":"Interface: Objective","url":"/eliza/docs/api/interfaces/Objective/#id","content":" optional id: string Defined in packages/core/src/types.ts:51 ","version":"Next","tagName":"h3"},{"title":"Interface: ITextGenerationService","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/ITextGenerationService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/docs/api/interfaces/ITextGenerationService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Methods","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/docs/api/interfaces/ITextGenerationService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"getEmbeddingResponse()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/docs/api/interfaces/ITextGenerationService/#getembeddingresponse","content":" getEmbeddingResponse(input): Promise<number[]> Parameters • input: string Returns Promise<number[]> Defined in packages/core/src/types.ts:625 ","version":"Next","tagName":"h3"},{"title":"getInstance()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/docs/api/interfaces/ITextGenerationService/#getinstance","content":" getInstance(): ITextGenerationService Returns ITextGenerationService Defined in packages/core/src/types.ts:607 ","version":"Next","tagName":"h3"},{"title":"initializeModel()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/docs/api/interfaces/ITextGenerationService/#initializemodel","content":" initializeModel(): Promise<void> Returns Promise<void> Defined in packages/core/src/types.ts:608 ","version":"Next","tagName":"h3"},{"title":"queueMessageCompletion()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/docs/api/interfaces/ITextGenerationService/#queuemessagecompletion","content":" queueMessageCompletion(context, temperature, stop, frequency_penalty, presence_penalty, max_tokens): Promise<any> Parameters • context: string • temperature: number • stop: string[] • frequency_penalty: number • presence_penalty: number • max_tokens: number Returns Promise<any> Defined in packages/core/src/types.ts:609 ","version":"Next","tagName":"h3"},{"title":"queueTextCompletion()","type":1,"pageTitle":"Interface: ITextGenerationService","url":"/eliza/docs/api/interfaces/ITextGenerationService/#queuetextcompletion","content":" queueTextCompletion(context, temperature, stop, frequency_penalty, presence_penalty, max_tokens): Promise<string> Parameters • context: string • temperature: number • stop: string[] • frequency_penalty: number • presence_penalty: number • max_tokens: number Returns Promise<string> Defined in packages/core/src/types.ts:617 ","version":"Next","tagName":"h3"},{"title":"Interface: Memory","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Memory/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Memory","url":"/eliza/docs/api/interfaces/Memory/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"agentId","type":1,"pageTitle":"Interface: Memory","url":"/eliza/docs/api/interfaces/Memory/#agentid","content":" agentId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:169 ","version":"Next","tagName":"h3"},{"title":"content","type":1,"pageTitle":"Interface: Memory","url":"/eliza/docs/api/interfaces/Memory/#content","content":" content: Content Defined in packages/core/src/types.ts:171 ","version":"Next","tagName":"h3"},{"title":"createdAt?","type":1,"pageTitle":"Interface: Memory","url":"/eliza/docs/api/interfaces/Memory/#createdat","content":" optional createdAt: number Defined in packages/core/src/types.ts:170 ","version":"Next","tagName":"h3"},{"title":"embedding?","type":1,"pageTitle":"Interface: Memory","url":"/eliza/docs/api/interfaces/Memory/#embedding","content":" optional embedding: number[] Defined in packages/core/src/types.ts:172 ","version":"Next","tagName":"h3"},{"title":"id?","type":1,"pageTitle":"Interface: Memory","url":"/eliza/docs/api/interfaces/Memory/#id","content":" optional id: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:167 ","version":"Next","tagName":"h3"},{"title":"roomId","type":1,"pageTitle":"Interface: Memory","url":"/eliza/docs/api/interfaces/Memory/#roomid","content":" roomId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:173 ","version":"Next","tagName":"h3"},{"title":"unique?","type":1,"pageTitle":"Interface: Memory","url":"/eliza/docs/api/interfaces/Memory/#unique","content":" optional unique: boolean Defined in packages/core/src/types.ts:174 ","version":"Next","tagName":"h3"},{"title":"userId","type":1,"pageTitle":"Interface: Memory","url":"/eliza/docs/api/interfaces/Memory/#userid","content":" userId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:168 ","version":"Next","tagName":"h3"},{"title":"Interface: ITranscriptionService","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/ITranscriptionService/","content":"","keywords":"","version":"Next"},{"title":"Extends","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/docs/api/interfaces/ITranscriptionService/#extends","content":" Service ","version":"Next","tagName":"h2"},{"title":"Methods","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/docs/api/interfaces/ITranscriptionService/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"transcribe()","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/docs/api/interfaces/ITranscriptionService/#transcribe","content":" transcribe(audioBuffer): Promise<string> Parameters • audioBuffer: ArrayBuffer Returns Promise<string> Defined in packages/core/src/types.ts:595 ","version":"Next","tagName":"h3"},{"title":"transcribeAttachment()","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/docs/api/interfaces/ITranscriptionService/#transcribeattachment","content":" transcribeAttachment(audioBuffer): Promise<string> Parameters • audioBuffer: ArrayBuffer Returns Promise<string> Defined in packages/core/src/types.ts:591 ","version":"Next","tagName":"h3"},{"title":"transcribeAttachmentLocally()","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/docs/api/interfaces/ITranscriptionService/#transcribeattachmentlocally","content":" transcribeAttachmentLocally(audioBuffer): Promise<string> Parameters • audioBuffer: ArrayBuffer Returns Promise<string> Defined in packages/core/src/types.ts:592 ","version":"Next","tagName":"h3"},{"title":"transcribeLocally()","type":1,"pageTitle":"Interface: ITranscriptionService","url":"/eliza/docs/api/interfaces/ITranscriptionService/#transcribelocally","content":" transcribeLocally(audioBuffer): Promise<string> Parameters • audioBuffer: ArrayBuffer Returns Promise<string> Defined in packages/core/src/types.ts:596 ","version":"Next","tagName":"h3"},{"title":"Interface: MessageExample","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/MessageExample/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: MessageExample","url":"/eliza/docs/api/interfaces/MessageExample/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"content","type":1,"pageTitle":"Interface: MessageExample","url":"/eliza/docs/api/interfaces/MessageExample/#content","content":" content: Content Defined in packages/core/src/types.ts:182 ","version":"Next","tagName":"h3"},{"title":"user","type":1,"pageTitle":"Interface: MessageExample","url":"/eliza/docs/api/interfaces/MessageExample/#user","content":" user: string Defined in packages/core/src/types.ts:181 ","version":"Next","tagName":"h3"},{"title":"Interface: Participant","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Participant/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Participant","url":"/eliza/docs/api/interfaces/Participant/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"account","type":1,"pageTitle":"Interface: Participant","url":"/eliza/docs/api/interfaces/Participant/#account","content":" account: Account Defined in packages/core/src/types.ts:286 ","version":"Next","tagName":"h3"},{"title":"id","type":1,"pageTitle":"Interface: Participant","url":"/eliza/docs/api/interfaces/Participant/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:285 ","version":"Next","tagName":"h3"},{"title":"Interface: Provider","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Provider/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Provider","url":"/eliza/docs/api/interfaces/Provider/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"get()","type":1,"pageTitle":"Interface: Provider","url":"/eliza/docs/api/interfaces/Provider/#get","content":" get: (runtime, message, state?) => Promise<any> Parameters • runtime: IAgentRuntime • message: Memory • state?: State Returns Promise<any> Defined in packages/core/src/types.ts:249 ","version":"Next","tagName":"h3"},{"title":"Interface: Room","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Room/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Room","url":"/eliza/docs/api/interfaces/Room/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"id","type":1,"pageTitle":"Interface: Room","url":"/eliza/docs/api/interfaces/Room/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:293 ","version":"Next","tagName":"h3"},{"title":"participants","type":1,"pageTitle":"Interface: Room","url":"/eliza/docs/api/interfaces/Room/#participants","content":" participants: Participant[] Defined in packages/core/src/types.ts:294 ","version":"Next","tagName":"h3"},{"title":"Interface: IAgentRuntime","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/IAgentRuntime/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"actions","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#actions","content":" actions: Action[] Defined in packages/core/src/types.ts:527 ","version":"Next","tagName":"h3"},{"title":"agentId","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#agentid","content":" agentId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:520 ","version":"Next","tagName":"h3"},{"title":"character","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#character","content":" character: Character Defined in packages/core/src/types.ts:525 ","version":"Next","tagName":"h3"},{"title":"databaseAdapter","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#databaseadapter","content":" databaseAdapter: IDatabaseAdapter Defined in packages/core/src/types.ts:522 ","version":"Next","tagName":"h3"},{"title":"descriptionManager","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#descriptionmanager","content":" descriptionManager: IMemoryManager Defined in packages/core/src/types.ts:531 ","version":"Next","tagName":"h3"},{"title":"evaluators","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#evaluators","content":" evaluators: Evaluator[] Defined in packages/core/src/types.ts:528 ","version":"Next","tagName":"h3"},{"title":"loreManager","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#loremanager","content":" loreManager: IMemoryManager Defined in packages/core/src/types.ts:532 ","version":"Next","tagName":"h3"},{"title":"messageManager","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#messagemanager","content":" messageManager: IMemoryManager Defined in packages/core/src/types.ts:530 ","version":"Next","tagName":"h3"},{"title":"modelProvider","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#modelprovider","content":" modelProvider: ModelProviderName Defined in packages/core/src/types.ts:524 ","version":"Next","tagName":"h3"},{"title":"providers","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#providers","content":" providers: Provider[] Defined in packages/core/src/types.ts:526 ","version":"Next","tagName":"h3"},{"title":"serverUrl","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#serverurl","content":" serverUrl: string Defined in packages/core/src/types.ts:521 ","version":"Next","tagName":"h3"},{"title":"services","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#services","content":" services: Map<ServiceType, Service> Defined in packages/core/src/types.ts:534 ","version":"Next","tagName":"h3"},{"title":"token","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#token","content":" token: string Defined in packages/core/src/types.ts:523 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"composeState()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#composestate","content":" composeState(message, additionalKeys?): Promise<State> Parameters • message: Memory • additionalKeys? Returns Promise<State> Defined in packages/core/src/types.ts:575 ","version":"Next","tagName":"h3"},{"title":"ensureConnection()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#ensureconnection","content":" ensureConnection(userId, roomId, userName?, userScreenName?, source?): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` • userName?: string • userScreenName?: string • source?: string Returns Promise<void> Defined in packages/core/src/types.ts:566 ","version":"Next","tagName":"h3"},{"title":"ensureParticipantExists()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#ensureparticipantexists","content":" ensureParticipantExists(userId, roomId): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:558 ","version":"Next","tagName":"h3"},{"title":"ensureParticipantInRoom()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#ensureparticipantinroom","content":" ensureParticipantInRoom(userId, roomId): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:573 ","version":"Next","tagName":"h3"},{"title":"ensureRoomExists()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#ensureroomexists","content":" ensureRoomExists(roomId): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:574 ","version":"Next","tagName":"h3"},{"title":"ensureUserExists()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#ensureuserexists","content":" ensureUserExists(userId, userName, name, source): Promise<void> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • userName: string • name: string • source: string Returns Promise<void> Defined in packages/core/src/types.ts:559 ","version":"Next","tagName":"h3"},{"title":"evaluate()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#evaluate","content":" evaluate(message, state?, didRespond?): Promise<string[]> Parameters • message: Memory • state?: State • didRespond?: boolean Returns Promise<string[]> Defined in packages/core/src/types.ts:553 ","version":"Next","tagName":"h3"},{"title":"getConversationLength()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#getconversationlength","content":" getConversationLength(): number Returns number Defined in packages/core/src/types.ts:546 ","version":"Next","tagName":"h3"},{"title":"getMemoryManager()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#getmemorymanager","content":" getMemoryManager(name): IMemoryManager Parameters • name: string Returns IMemoryManager Defined in packages/core/src/types.ts:537 ","version":"Next","tagName":"h3"},{"title":"getService()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#getservice","content":" getService(service): typeof Service Parameters • service: string Returns typeof Service Defined in packages/core/src/types.ts:539 ","version":"Next","tagName":"h3"},{"title":"getSetting()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#getsetting","content":" getSetting(key): string Parameters • key: string Returns string Defined in packages/core/src/types.ts:543 ","version":"Next","tagName":"h3"},{"title":"processActions()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#processactions","content":" processActions(message, responses, state?, callback?): Promise<void> Parameters • message: Memory • responses: Memory[] • state?: State • callback?: HandlerCallback Returns Promise<void> Defined in packages/core/src/types.ts:547 ","version":"Next","tagName":"h3"},{"title":"registerAction()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#registeraction","content":" registerAction(action): void Parameters • action: Action Returns void Defined in packages/core/src/types.ts:565 ","version":"Next","tagName":"h3"},{"title":"registerMemoryManager()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#registermemorymanager","content":" registerMemoryManager(manager): void Parameters • manager: IMemoryManager Returns void Defined in packages/core/src/types.ts:535 ","version":"Next","tagName":"h3"},{"title":"registerService()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#registerservice","content":" registerService(service): void Parameters • service: Service Returns void Defined in packages/core/src/types.ts:541 ","version":"Next","tagName":"h3"},{"title":"updateRecentMessageState()","type":1,"pageTitle":"Interface: IAgentRuntime","url":"/eliza/docs/api/interfaces/IAgentRuntime/#updaterecentmessagestate","content":" updateRecentMessageState(state): Promise<State> Parameters • state: State Returns Promise<State> Defined in packages/core/src/types.ts:579 ","version":"Next","tagName":"h3"},{"title":"Interface: Relationship","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/Relationship/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/docs/api/interfaces/Relationship/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"createdAt?","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/docs/api/interfaces/Relationship/#createdat","content":" optional createdAt: string Defined in packages/core/src/types.ts:266 ","version":"Next","tagName":"h3"},{"title":"id","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/docs/api/interfaces/Relationship/#id","content":" id: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:260 ","version":"Next","tagName":"h3"},{"title":"roomId","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/docs/api/interfaces/Relationship/#roomid","content":" roomId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:264 ","version":"Next","tagName":"h3"},{"title":"status","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/docs/api/interfaces/Relationship/#status","content":" status: string Defined in packages/core/src/types.ts:265 ","version":"Next","tagName":"h3"},{"title":"userA","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/docs/api/interfaces/Relationship/#usera","content":" userA: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:261 ","version":"Next","tagName":"h3"},{"title":"userB","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/docs/api/interfaces/Relationship/#userb","content":" userB: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:262 ","version":"Next","tagName":"h3"},{"title":"userId","type":1,"pageTitle":"Interface: Relationship","url":"/eliza/docs/api/interfaces/Relationship/#userid","content":" userId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:263 ","version":"Next","tagName":"h3"},{"title":"Type Alias: Client","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/Client/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Client","url":"/eliza/docs/api/type-aliases/Client/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"start()","type":1,"pageTitle":"Type Alias: Client","url":"/eliza/docs/api/type-aliases/Client/#start","content":" start: (runtime?) => Promise<unknown> Parameters • runtime?: IAgentRuntime Returns Promise<unknown> ","version":"Next","tagName":"h3"},{"title":"stop()","type":1,"pageTitle":"Type Alias: Client","url":"/eliza/docs/api/type-aliases/Client/#stop","content":" stop: (runtime?) => Promise<unknown> Parameters • runtime?: IAgentRuntime Returns Promise<unknown> ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Client","url":"/eliza/docs/api/type-aliases/Client/#defined-in","content":" packages/core/src/types.ts:306 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Character","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/Character/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"adjectives","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#adjectives","content":" adjectives: string[] ","version":"Next","tagName":"h3"},{"title":"bio","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#bio","content":" bio: string | string[] ","version":"Next","tagName":"h3"},{"title":"clients","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#clients","content":" clients: Clients[] ","version":"Next","tagName":"h3"},{"title":"id?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#id","content":" optional id: UUID ","version":"Next","tagName":"h3"},{"title":"knowledge?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#knowledge","content":" optional knowledge: string[] ","version":"Next","tagName":"h3"},{"title":"lore","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#lore","content":" lore: string[] ","version":"Next","tagName":"h3"},{"title":"messageExamples","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#messageexamples","content":" messageExamples: MessageExample[][] ","version":"Next","tagName":"h3"},{"title":"modelEndpointOverride?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#modelendpointoverride","content":" optional modelEndpointOverride: string ","version":"Next","tagName":"h3"},{"title":"modelProvider","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#modelprovider","content":" modelProvider: ModelProviderName ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#name","content":" name: string ","version":"Next","tagName":"h3"},{"title":"people","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#people","content":" people: string[] ","version":"Next","tagName":"h3"},{"title":"plugins","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#plugins","content":" plugins: Plugin[] ","version":"Next","tagName":"h3"},{"title":"postExamples","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#postexamples","content":" postExamples: string[] ","version":"Next","tagName":"h3"},{"title":"settings?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#settings","content":" optional settings: object ","version":"Next","tagName":"h3"},{"title":"settings.embeddingModel?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#settingsembeddingmodel","content":" optional embeddingModel: string ","version":"Next","tagName":"h3"},{"title":"settings.model?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#settingsmodel","content":" optional model: string ","version":"Next","tagName":"h3"},{"title":"settings.secrets?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#settingssecrets","content":" optional secrets: object Index Signature [key: string]: string ","version":"Next","tagName":"h3"},{"title":"settings.voice?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#settingsvoice","content":" optional voice: object ","version":"Next","tagName":"h3"},{"title":"settings.voice.model?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#settingsvoicemodel","content":" optional model: string ","version":"Next","tagName":"h3"},{"title":"settings.voice.url?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#settingsvoiceurl","content":" optional url: string ","version":"Next","tagName":"h3"},{"title":"style","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#style","content":" style: object ","version":"Next","tagName":"h3"},{"title":"style.all","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#styleall","content":" all: string[] ","version":"Next","tagName":"h3"},{"title":"style.chat","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#stylechat","content":" chat: string[] ","version":"Next","tagName":"h3"},{"title":"style.post","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#stylepost","content":" post: string[] ","version":"Next","tagName":"h3"},{"title":"system?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#system","content":" optional system: string ","version":"Next","tagName":"h3"},{"title":"templates?","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#templates","content":" optional templates: object Index Signature [key: string]: string ","version":"Next","tagName":"h3"},{"title":"topics","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#topics","content":" topics: string[] ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Character","url":"/eliza/docs/api/type-aliases/Character/#defined-in","content":" packages/core/src/types.ts:327 ","version":"Next","tagName":"h2"},{"title":"Interface: IDatabaseAdapter","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/","content":"","keywords":"","version":"Next"},{"title":"Properties","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"db","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#db","content":" db: any Defined in packages/core/src/types.ts:363 ","version":"Next","tagName":"h3"},{"title":"Methods","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#methods","content":" ","version":"Next","tagName":"h2"},{"title":"addParticipant()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#addparticipant","content":" addParticipant(userId, roomId): Promise<boolean> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<boolean> Defined in packages/core/src/types.ts:445 ","version":"Next","tagName":"h3"},{"title":"countMemories()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#countmemories","content":" countMemories(roomId, unique?, tableName?): Promise<number> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • unique?: boolean • tableName?: string Returns Promise<number> Defined in packages/core/src/types.ts:425 ","version":"Next","tagName":"h3"},{"title":"createAccount()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#createaccount","content":" createAccount(account): Promise<boolean> Parameters • account: Account Returns Promise<boolean> Defined in packages/core/src/types.ts:365 ","version":"Next","tagName":"h3"},{"title":"createGoal()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#creategoal","content":" createGoal(goal): Promise<void> Parameters • goal: Goal Returns Promise<void> Defined in packages/core/src/types.ts:437 ","version":"Next","tagName":"h3"},{"title":"createMemory()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#creatememory","content":" createMemory(memory, tableName, unique?): Promise<void> Parameters • memory: Memory • tableName: string • unique?: boolean Returns Promise<void> Defined in packages/core/src/types.ts:418 ","version":"Next","tagName":"h3"},{"title":"createRelationship()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#createrelationship","content":" createRelationship(params): Promise<boolean> Parameters • params • params.userA: `${string}-${string}-${string}-${string}-${string}` • params.userB: `${string}-${string}-${string}-${string}-${string}` Returns Promise<boolean> Defined in packages/core/src/types.ts:458 ","version":"Next","tagName":"h3"},{"title":"createRoom()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#createroom","content":" createRoom(roomId?): Promise<`${string}-${string}-${string}-${string}-${string}`> Parameters • roomId?: `${string}-${string}-${string}-${string}-${string}` Returns Promise<`${string}-${string}-${string}-${string}-${string}`> Defined in packages/core/src/types.ts:441 ","version":"Next","tagName":"h3"},{"title":"getAccountById()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getaccountbyid","content":" getAccountById(userId): Promise<Account> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Account> Defined in packages/core/src/types.ts:364 ","version":"Next","tagName":"h3"},{"title":"getActorDetails()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getactordetails","content":" getActorDetails(params): Promise<Actor[]> Parameters • params • params.roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Actor[]> Defined in packages/core/src/types.ts:394 ","version":"Next","tagName":"h3"},{"title":"getCachedEmbeddings()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getcachedembeddings","content":" getCachedEmbeddings(params): Promise<object[]> Parameters • params • params.query_field_name: string • params.query_field_sub_name: string • params.query_input: string • params.query_match_count: number • params.query_table_name: string • params.query_threshold: number Returns Promise<object[]> Defined in packages/core/src/types.ts:380 ","version":"Next","tagName":"h3"},{"title":"getGoals()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getgoals","content":" getGoals(params): Promise<Goal[]> Parameters • params • params.count?: number • params.onlyInProgress?: boolean • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.userId?: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Goal[]> Defined in packages/core/src/types.ts:430 ","version":"Next","tagName":"h3"},{"title":"getMemories()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getmemories","content":" getMemories(params): Promise<Memory[]> Parameters • params • params.agentId?: `${string}-${string}-${string}-${string}-${string}` • params.count?: number • params.end?: number • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.start?: number • params.tableName: string • params.unique?: boolean Returns Promise<Memory[]> Defined in packages/core/src/types.ts:366 ","version":"Next","tagName":"h3"},{"title":"getMemoriesByRoomIds()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getmemoriesbyroomids","content":" getMemoriesByRoomIds(params): Promise<Memory[]> Parameters • params • params.agentId?: `${string}-${string}-${string}-${string}-${string}` • params.roomIds: `${string}-${string}-${string}-${string}-${string}`[] Returns Promise<Memory[]> Defined in packages/core/src/types.ts:376 ","version":"Next","tagName":"h3"},{"title":"getMemoryById()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getmemorybyid","content":" getMemoryById(id): Promise<Memory> Parameters • id: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Memory> Defined in packages/core/src/types.ts:375 ","version":"Next","tagName":"h3"},{"title":"getParticipantsForAccount()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getparticipantsforaccount","content":" getParticipantsForAccount(userId): Promise<Participant[]> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Participant[]> Defined in packages/core/src/types.ts:447 ","version":"Next","tagName":"h3"},{"title":"getParticipantsForRoom()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getparticipantsforroom","content":" getParticipantsForRoom(roomId): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> Defined in packages/core/src/types.ts:448 ","version":"Next","tagName":"h3"},{"title":"getParticipantUserState()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getparticipantuserstate","content":" getParticipantUserState(roomId, userId): Promise<"FOLLOWED" | "MUTED"> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<"FOLLOWED" | "MUTED"> Defined in packages/core/src/types.ts:449 ","version":"Next","tagName":"h3"},{"title":"getRelationship()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getrelationship","content":" getRelationship(params): Promise<Relationship> Parameters • params • params.userA: `${string}-${string}-${string}-${string}-${string}` • params.userB: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Relationship> Defined in packages/core/src/types.ts:459 ","version":"Next","tagName":"h3"},{"title":"getRelationships()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getrelationships","content":" getRelationships(params): Promise<Relationship[]> Parameters • params • params.userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<Relationship[]> Defined in packages/core/src/types.ts:463 ","version":"Next","tagName":"h3"},{"title":"getRoom()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getroom","content":" getRoom(roomId): Promise<`${string}-${string}-${string}-${string}-${string}`> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<`${string}-${string}-${string}-${string}-${string}`> Defined in packages/core/src/types.ts:440 ","version":"Next","tagName":"h3"},{"title":"getRoomsForParticipant()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getroomsforparticipant","content":" getRoomsForParticipant(userId): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> Defined in packages/core/src/types.ts:443 ","version":"Next","tagName":"h3"},{"title":"getRoomsForParticipants()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#getroomsforparticipants","content":" getRoomsForParticipants(userIds): Promise<`${string}-${string}-${string}-${string}-${string}`[]> Parameters • userIds: `${string}-${string}-${string}-${string}-${string}`[] Returns Promise<`${string}-${string}-${string}-${string}-${string}`[]> Defined in packages/core/src/types.ts:444 ","version":"Next","tagName":"h3"},{"title":"log()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#log","content":" log(params): Promise<void> Parameters • params • params.body • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.type: string • params.userId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:388 ","version":"Next","tagName":"h3"},{"title":"removeAllGoals()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#removeallgoals","content":" removeAllGoals(roomId): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:439 ","version":"Next","tagName":"h3"},{"title":"removeAllMemories()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#removeallmemories","content":" removeAllMemories(roomId, tableName): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • tableName: string Returns Promise<void> Defined in packages/core/src/types.ts:424 ","version":"Next","tagName":"h3"},{"title":"removeGoal()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#removegoal","content":" removeGoal(goalId): Promise<void> Parameters • goalId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:438 ","version":"Next","tagName":"h3"},{"title":"removeMemory()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#removememory","content":" removeMemory(memoryId, tableName): Promise<void> Parameters • memoryId: `${string}-${string}-${string}-${string}-${string}` • tableName: string Returns Promise<void> Defined in packages/core/src/types.ts:423 ","version":"Next","tagName":"h3"},{"title":"removeParticipant()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#removeparticipant","content":" removeParticipant(userId, roomId): Promise<boolean> Parameters • userId: `${string}-${string}-${string}-${string}-${string}` • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<boolean> Defined in packages/core/src/types.ts:446 ","version":"Next","tagName":"h3"},{"title":"removeRoom()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#removeroom","content":" removeRoom(roomId): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` Returns Promise<void> Defined in packages/core/src/types.ts:442 ","version":"Next","tagName":"h3"},{"title":"searchMemories()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#searchmemories","content":" searchMemories(params): Promise<Memory[]> Parameters • params • params.embedding: number[] • params.match_count: number • params.match_threshold: number • params.roomId: `${string}-${string}-${string}-${string}-${string}` • params.tableName: string • params.unique: boolean Returns Promise<Memory[]> Defined in packages/core/src/types.ts:395 ","version":"Next","tagName":"h3"},{"title":"searchMemoriesByEmbedding()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#searchmemoriesbyembedding","content":" searchMemoriesByEmbedding(embedding, params): Promise<Memory[]> Parameters • embedding: number[] • params • params.agentId?: `${string}-${string}-${string}-${string}-${string}` • params.count?: number • params.match_threshold?: number • params.roomId?: `${string}-${string}-${string}-${string}-${string}` • params.tableName: string • params.unique?: boolean Returns Promise<Memory[]> Defined in packages/core/src/types.ts:407 ","version":"Next","tagName":"h3"},{"title":"setParticipantUserState()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#setparticipantuserstate","content":" setParticipantUserState(roomId, userId, state): Promise<void> Parameters • roomId: `${string}-${string}-${string}-${string}-${string}` • userId: `${string}-${string}-${string}-${string}-${string}` • state: "FOLLOWED" | "MUTED" Returns Promise<void> Defined in packages/core/src/types.ts:453 ","version":"Next","tagName":"h3"},{"title":"updateGoal()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#updategoal","content":" updateGoal(goal): Promise<void> Parameters • goal: Goal Returns Promise<void> Defined in packages/core/src/types.ts:436 ","version":"Next","tagName":"h3"},{"title":"updateGoalStatus()","type":1,"pageTitle":"Interface: IDatabaseAdapter","url":"/eliza/docs/api/interfaces/IDatabaseAdapter/#updategoalstatus","content":" updateGoalStatus(params): Promise<void> Parameters • params • params.goalId: `${string}-${string}-${string}-${string}-${string}` • params.status: GoalStatus Returns Promise<void> Defined in packages/core/src/types.ts:403 ","version":"Next","tagName":"h3"},{"title":"Type Alias: HandlerCallback()","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/HandlerCallback/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Type Alias: HandlerCallback()","url":"/eliza/docs/api/type-aliases/HandlerCallback/#parameters","content":" • response: Content • files?: any ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Type Alias: HandlerCallback()","url":"/eliza/docs/api/type-aliases/HandlerCallback/#returns","content":" Promise<Memory[]> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: HandlerCallback()","url":"/eliza/docs/api/type-aliases/HandlerCallback/#defined-in","content":" packages/core/src/types.ts:197 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Validator()","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/Validator/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Type Alias: Validator()","url":"/eliza/docs/api/type-aliases/Validator/#parameters","content":" • runtime: IAgentRuntime • message: Memory • state?: State ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Type Alias: Validator()","url":"/eliza/docs/api/type-aliases/Validator/#returns","content":" Promise<boolean> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Validator()","url":"/eliza/docs/api/type-aliases/Validator/#defined-in","content":" packages/core/src/types.ts:205 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Handler()","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/Handler/","content":"","keywords":"","version":"Next"},{"title":"Parameters","type":1,"pageTitle":"Type Alias: Handler()","url":"/eliza/docs/api/type-aliases/Handler/#parameters","content":" • runtime: IAgentRuntime • message: Memory • state?: State • options? • callback?: HandlerCallback ","version":"Next","tagName":"h2"},{"title":"Returns","type":1,"pageTitle":"Type Alias: Handler()","url":"/eliza/docs/api/type-aliases/Handler/#returns","content":" Promise<unknown> ","version":"Next","tagName":"h2"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Handler()","url":"/eliza/docs/api/type-aliases/Handler/#defined-in","content":" packages/core/src/types.ts:188 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Models","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/Models/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"anthropic","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#anthropic","content":" anthropic: Model ","version":"Next","tagName":"h3"},{"title":"claude_vertex","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#claude_vertex","content":" claude_vertex: Model ","version":"Next","tagName":"h3"},{"title":"google","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#google","content":" google: Model ","version":"Next","tagName":"h3"},{"title":"grok","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#grok","content":" grok: Model ","version":"Next","tagName":"h3"},{"title":"groq","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#groq","content":" groq: Model ","version":"Next","tagName":"h3"},{"title":"llama_cloud","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#llama_cloud","content":" llama_cloud: Model ","version":"Next","tagName":"h3"},{"title":"llama_local","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#llama_local","content":" llama_local: Model ","version":"Next","tagName":"h3"},{"title":"ollama","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#ollama","content":" ollama: Model ","version":"Next","tagName":"h3"},{"title":"openai","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#openai","content":" openai: Model ","version":"Next","tagName":"h3"},{"title":"openrouter","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#openrouter","content":" openrouter: Model ","version":"Next","tagName":"h3"},{"title":"redpill","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#redpill","content":" redpill: Model ","version":"Next","tagName":"h3"},{"title":"heurist","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#heurist","content":" heurist: Model ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Models","url":"/eliza/docs/api/type-aliases/Models/#defined-in","content":" packages/core/src/types.ts:105 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Media","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/Media/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/docs/api/type-aliases/Media/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"description","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/docs/api/type-aliases/Media/#description","content":" description: string ","version":"Next","tagName":"h3"},{"title":"id","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/docs/api/type-aliases/Media/#id","content":" id: string ","version":"Next","tagName":"h3"},{"title":"source","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/docs/api/type-aliases/Media/#source","content":" source: string ","version":"Next","tagName":"h3"},{"title":"text","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/docs/api/type-aliases/Media/#text","content":" text: string ","version":"Next","tagName":"h3"},{"title":"title","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/docs/api/type-aliases/Media/#title","content":" title: string ","version":"Next","tagName":"h3"},{"title":"url","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/docs/api/type-aliases/Media/#url","content":" url: string ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Media","url":"/eliza/docs/api/type-aliases/Media/#defined-in","content":" packages/core/src/types.ts:297 ","version":"Next","tagName":"h2"},{"title":"Interface: State","type":0,"sectionRef":"#","url":"/eliza/docs/api/interfaces/State/","content":"","keywords":"","version":"Next"},{"title":"Indexable","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#indexable","content":" [key: string]: unknown ","version":"Next","tagName":"h2"},{"title":"Properties","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#properties","content":" ","version":"Next","tagName":"h2"},{"title":"actionExamples?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#actionexamples","content":" optional actionExamples: string Defined in packages/core/src/types.ts:155 ","version":"Next","tagName":"h3"},{"title":"actionNames?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#actionnames","content":" optional actionNames: string Defined in packages/core/src/types.ts:152 ","version":"Next","tagName":"h3"},{"title":"actions?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#actions","content":" optional actions: string Defined in packages/core/src/types.ts:153 ","version":"Next","tagName":"h3"},{"title":"actionsData?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#actionsdata","content":" optional actionsData: Action[] Defined in packages/core/src/types.ts:154 ","version":"Next","tagName":"h3"},{"title":"actors","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#actors","content":" actors: string Defined in packages/core/src/types.ts:146 ","version":"Next","tagName":"h3"},{"title":"actorsData?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#actorsdata","content":" optional actorsData: Actor[] Defined in packages/core/src/types.ts:147 ","version":"Next","tagName":"h3"},{"title":"agentId?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#agentid","content":" optional agentId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:138 ","version":"Next","tagName":"h3"},{"title":"agentName?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#agentname","content":" optional agentName: string Defined in packages/core/src/types.ts:144 ","version":"Next","tagName":"h3"},{"title":"bio","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#bio","content":" bio: string Defined in packages/core/src/types.ts:139 ","version":"Next","tagName":"h3"},{"title":"goals?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#goals","content":" optional goals: string Defined in packages/core/src/types.ts:148 ","version":"Next","tagName":"h3"},{"title":"goalsData?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#goalsdata","content":" optional goalsData: Goal[] Defined in packages/core/src/types.ts:149 ","version":"Next","tagName":"h3"},{"title":"lore","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#lore","content":" lore: string Defined in packages/core/src/types.ts:140 ","version":"Next","tagName":"h3"},{"title":"messageDirections","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#messagedirections","content":" messageDirections: string Defined in packages/core/src/types.ts:141 ","version":"Next","tagName":"h3"},{"title":"postDirections","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#postdirections","content":" postDirections: string Defined in packages/core/src/types.ts:142 ","version":"Next","tagName":"h3"},{"title":"providers?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#providers","content":" optional providers: string Defined in packages/core/src/types.ts:156 ","version":"Next","tagName":"h3"},{"title":"recentInteractions?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#recentinteractions","content":" optional recentInteractions: string Defined in packages/core/src/types.ts:159 ","version":"Next","tagName":"h3"},{"title":"recentInteractionsData?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#recentinteractionsdata","content":" optional recentInteractionsData: Memory[] Defined in packages/core/src/types.ts:158 ","version":"Next","tagName":"h3"},{"title":"recentMessages","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#recentmessages","content":" recentMessages: string Defined in packages/core/src/types.ts:150 ","version":"Next","tagName":"h3"},{"title":"recentMessagesData","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#recentmessagesdata","content":" recentMessagesData: Memory[] Defined in packages/core/src/types.ts:151 ","version":"Next","tagName":"h3"},{"title":"responseData?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#responsedata","content":" optional responseData: Content Defined in packages/core/src/types.ts:157 ","version":"Next","tagName":"h3"},{"title":"roomId","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#roomid","content":" roomId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:143 ","version":"Next","tagName":"h3"},{"title":"senderName?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#sendername","content":" optional senderName: string Defined in packages/core/src/types.ts:145 ","version":"Next","tagName":"h3"},{"title":"userId?","type":1,"pageTitle":"Interface: State","url":"/eliza/docs/api/interfaces/State/#userid","content":" optional userId: `${string}-${string}-${string}-${string}-${string}` Defined in packages/core/src/types.ts:137 ","version":"Next","tagName":"h3"},{"title":"Type Alias: Plugin","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/Plugin/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/docs/api/type-aliases/Plugin/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"actions?","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/docs/api/type-aliases/Plugin/#actions","content":" optional actions: Action[] ","version":"Next","tagName":"h3"},{"title":"description","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/docs/api/type-aliases/Plugin/#description","content":" description: string ","version":"Next","tagName":"h3"},{"title":"evaluators?","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/docs/api/type-aliases/Plugin/#evaluators","content":" optional evaluators: Evaluator[] ","version":"Next","tagName":"h3"},{"title":"name","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/docs/api/type-aliases/Plugin/#name","content":" name: string ","version":"Next","tagName":"h3"},{"title":"providers?","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/docs/api/type-aliases/Plugin/#providers","content":" optional providers: Provider[] ","version":"Next","tagName":"h3"},{"title":"services?","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/docs/api/type-aliases/Plugin/#services","content":" optional services: Service[] ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Plugin","url":"/eliza/docs/api/type-aliases/Plugin/#defined-in","content":" packages/core/src/types.ts:311 ","version":"Next","tagName":"h2"},{"title":"Type Alias: UUID","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/UUID/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: UUID","url":"/eliza/docs/api/type-aliases/UUID/#defined-in","content":" packages/core/src/types.ts:6 ","version":"Next","tagName":"h2"},{"title":"Type Alias: Model","type":0,"sectionRef":"#","url":"/eliza/docs/api/type-aliases/Model/","content":"","keywords":"","version":"Next"},{"title":"Type declaration","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#type-declaration","content":" ","version":"Next","tagName":"h2"},{"title":"endpoint?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#endpoint","content":" optional endpoint: string ","version":"Next","tagName":"h3"},{"title":"imageSettings?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#imagesettings","content":" optional imageSettings: object ","version":"Next","tagName":"h3"},{"title":"imageSettings.steps?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#imagesettingssteps","content":" optional steps: number ","version":"Next","tagName":"h3"},{"title":"model","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#model","content":" model: object ","version":"Next","tagName":"h3"},{"title":"model.embedding?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#modelembedding","content":" optional embedding: string ","version":"Next","tagName":"h3"},{"title":"model.image?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#modelimage","content":" optional image: string ","version":"Next","tagName":"h3"},{"title":"model.large","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#modellarge","content":" large: string ","version":"Next","tagName":"h3"},{"title":"model.medium","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#modelmedium","content":" medium: string ","version":"Next","tagName":"h3"},{"title":"model.small","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#modelsmall","content":" small: string ","version":"Next","tagName":"h3"},{"title":"settings","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#settings","content":" settings: object ","version":"Next","tagName":"h3"},{"title":"settings.frequency_penalty?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#settingsfrequency_penalty","content":" optional frequency_penalty: number ","version":"Next","tagName":"h3"},{"title":"settings.maxInputTokens","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#settingsmaxinputtokens","content":" maxInputTokens: number ","version":"Next","tagName":"h3"},{"title":"settings.maxOutputTokens","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#settingsmaxoutputtokens","content":" maxOutputTokens: number ","version":"Next","tagName":"h3"},{"title":"settings.presence_penalty?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#settingspresence_penalty","content":" optional presence_penalty: number ","version":"Next","tagName":"h3"},{"title":"settings.repetition_penalty?","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#settingsrepetition_penalty","content":" optional repetition_penalty: number ","version":"Next","tagName":"h3"},{"title":"settings.stop","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#settingsstop","content":" stop: string[] ","version":"Next","tagName":"h3"},{"title":"settings.temperature","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#settingstemperature","content":" temperature: number ","version":"Next","tagName":"h3"},{"title":"Defined in","type":1,"pageTitle":"Type Alias: Model","url":"/eliza/docs/api/type-aliases/Model/#defined-in","content":" packages/core/src/types.ts:82 ","version":"Next","tagName":"h2"},{"title":"Variable: defaultCharacter","type":0,"sectionRef":"#","url":"/eliza/docs/api/variables/defaultCharacter/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: defaultCharacter","url":"/eliza/docs/api/variables/defaultCharacter/#defined-in","content":" packages/core/src/defaultCharacter.ts:3 ","version":"Next","tagName":"h2"},{"title":"Variable: elizaLogger","type":0,"sectionRef":"#","url":"/eliza/docs/api/variables/elizaLogger/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: elizaLogger","url":"/eliza/docs/api/variables/elizaLogger/#defined-in","content":" packages/core/src/logger.ts:282 ","version":"Next","tagName":"h2"},{"title":"Variable: embeddingDimension","type":0,"sectionRef":"#","url":"/eliza/docs/api/variables/embeddingDimension/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: embeddingDimension","url":"/eliza/docs/api/variables/embeddingDimension/#defined-in","content":" packages/core/src/memory.ts:9 ","version":"Next","tagName":"h2"},{"title":"Variable: embeddingZeroVector","type":0,"sectionRef":"#","url":"/eliza/docs/api/variables/embeddingZeroVector/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: embeddingZeroVector","url":"/eliza/docs/api/variables/embeddingZeroVector/#defined-in","content":" packages/core/src/memory.ts:10 ","version":"Next","tagName":"h2"},{"title":"Variable: evaluationTemplate","type":0,"sectionRef":"#","url":"/eliza/docs/api/variables/evaluationTemplate/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: evaluationTemplate","url":"/eliza/docs/api/variables/evaluationTemplate/#defined-in","content":" packages/core/src/evaluators.ts:8 ","version":"Next","tagName":"h2"},{"title":"Variable: settings","type":0,"sectionRef":"#","url":"/eliza/docs/api/variables/settings/","content":"","keywords":"","version":"Next"},{"title":"Defined in","type":1,"pageTitle":"Variable: settings","url":"/eliza/docs/api/variables/settings/#defined-in","content":" packages/core/src/settings.ts:54 ","version":"Next","tagName":"h2"},{"title":"Best Practices for Pull Requests and Contributions","type":0,"sectionRef":"#","url":"/eliza/docs/community/best-practices/","content":"","keywords":"","version":"Next"},{"title":"Pre-Review with AI","type":1,"pageTitle":"Best Practices for Pull Requests and Contributions","url":"/eliza/docs/community/best-practices/#pre-review-with-ai","content":" Before submitting a Pull Request (PR), we strongly recommend conducting a pre-review using an AI tool, such as Coderabbit, Sweep, Cursor, or language models like OpenAI's ChatGPT, Claude, etc. This preliminary step helps identify potential issues and provides recommendations for improvement before human intervention. Addressing AI-generated feedback allows contributors to enhance the quality of their submission, ensuring that the subsequent human review is more focused, efficient, and substantive. ","version":"Next","tagName":"h2"},{"title":"Checklist for Each New PR","type":1,"pageTitle":"Best Practices for Pull Requests and Contributions","url":"/eliza/docs/community/best-practices/#checklist-for-each-new-pr","content":" When creating a new PR, a checklist is automatically included through the PR template. Each item in this checklist must be addressed before the PR can be marked as "Ready for Review"; otherwise, the PR should remain in a draft (WIP) state. Here are some best practices we recommend: Merge Latest Main: Ensure your branch is up to date by merging the latest main branch (git merge origin/main).Run Tests: Execute all tests (pnpm test) to verify that existing functionalities remain intact and unaffected by your changes.Draft PR: If the work is incomplete or requires early feedback, initiate a Draft PR to communicate progress and invite community input.Review Actions: Complete all actions outlined in the PR template to ensure that each checklist item has been appropriately addressed.Category Prefix: Apply a category prefix to the PR title (e.g., fix, feat, refactor, docs) to maintain uniformity and adhere to the Conventional Commits specification. This ensures that all contributions are consistent, facilitating better traceability and comprehensibility of changes. Moreover, each PR should address only a single issue to enhance clarity and manageability. Once a PR is approved, it will be merged by a core developer. ","version":"Next","tagName":"h2"},{"title":"Pull Request Templates","type":1,"pageTitle":"Best Practices for Pull Requests and Contributions","url":"/eliza/docs/community/best-practices/#pull-request-templates","content":" We offer three PR templates to streamline contributions. The default template is used for changes categorized as fix, feat, and refactor. Additionally, there is a docs template for documentation updates and an other template for changes that do not impact production code. If you wish to change the template while previewing a PR, you can do so by adding one of the following parameters to the URL: template=docs.mdtemplate=other.md ","version":"Next","tagName":"h2"},{"title":"Squashing Commits","type":1,"pageTitle":"Best Practices for Pull Requests and Contributions","url":"/eliza/docs/community/best-practices/#squashing-commits","content":" Each PR should be consolidated into a single commit within the main branch. This practice contributes to a streamlined commit history, making it easier to comprehend the evolution of the codebase. If a PR contains multiple commits, squash them into a single commit before marking the PR as "Ready for Review." Maintaining a concise and coherent project history is crucial for effective long-term maintenance. ","version":"Next","tagName":"h2"},{"title":"Linting Your Code","type":1,"pageTitle":"Best Practices for Pull Requests and Contributions","url":"/eliza/docs/community/best-practices/#linting-your-code","content":" Always execute the linter on your changes before submitting a PR. Linting ensures conformity to the project's style guidelines and helps identify common errors that could otherwise lead to inconsistencies or defects. Proper linting practices improve code readability and facilitate a more efficient review process. ","version":"Next","tagName":"h2"},{"title":"Running Tests","type":1,"pageTitle":"Best Practices for Pull Requests and Contributions","url":"/eliza/docs/community/best-practices/#running-tests","content":" It is imperative to run all existing tests (pnpm test) before creating a PR to ensure that your modifications do not introduce regressions or new bugs. This practice preserves the stability and reliability of the codebase, ensuring that the integration of your changes does not disrupt existing functionality. ","version":"Next","tagName":"h2"},{"title":"Branching Strategy","type":1,"pageTitle":"Best Practices for Pull Requests and Contributions","url":"/eliza/docs/community/best-practices/#branching-strategy","content":" All new features and bug fixes must target the main branch, except when they are specific to a previously released version. In such scenarios, the bug fix PR should target the respective release branch. If necessary, changes will be backported from the main branch to a release branch, excluding any modifications that involve consensus-breaking features or API changes. ","version":"Next","tagName":"h2"},{"title":"Stream Notes Overview","type":0,"sectionRef":"#","url":"/eliza/docs/community/stream-notes/","content":"","keywords":"","version":"Next"},{"title":"Recent Streams","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#recent-streams","content":" ","version":"Next","tagName":"h2"},{"title":"November 2024","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#november-2024","content":" X Space: Memes, AI Agents, and DAOs (November 8, 2024) A comprehensive discussion bringing together key figures in the AI and crypto space to explore: Multi-agent systems and scalabilityCommunity building and trust mechanismsMeme culture and narrative creationTechnical implementation detailsRead more → Discord Development Stream (November 6, 2024) A four-part technical deep dive into Eliza's architecture covering: Plugin architecture and core abstractionsOpenAI integration and rate limitsMemory management and context handlingAutonomous agent implementationRead more → ","version":"Next","tagName":"h3"},{"title":"October 2024","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#october-2024","content":" X Spaces Series Three important discussions about the future of AI agents: AI Agents & Crypto (October 29) Discussion on AI agent growthConsumer AI incubatorsBalancing chaos and order in AI systemsRead more → Building Autonomous Agents (October 27) Technical infrastructure deep diveTrust engine mechanicsDevelopment status updatesRead more → Eliza Framework Deep Dive (October 25) Framework capabilities overviewBot personality developmentToken swap integrationAI-crypto community synergyRead more → ","version":"Next","tagName":"h3"},{"title":"Stream Categories","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#stream-categories","content":" Our streams typically fall into these categories: ","version":"Next","tagName":"h2"},{"title":"Technical Development","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#technical-development","content":" Architecture deep divesImplementation detailsCode walkthroughsPerformance optimization ","version":"Next","tagName":"h3"},{"title":"Community Discussions","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#community-discussions","content":" Project directionEcosystem buildingGovernance proposalsFeature requests ","version":"Next","tagName":"h3"},{"title":"X Spaces","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#x-spaces","content":" Public discussionsIndustry trendsCommunity engagementProject updates ","version":"Next","tagName":"h3"},{"title":"Tutorial Sessions","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#tutorial-sessions","content":" Getting started guidesFeature demonstrationsBest practicesIntegration examples ","version":"Next","tagName":"h3"},{"title":"Contributing","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#contributing","content":" Have notes from a stream that isn't documented here? We welcome community contributions! Check out our contribution guidelines to learn how you can help improve our documentation. ","version":"Next","tagName":"h2"},{"title":"Stay Updated","type":1,"pageTitle":"Stream Notes Overview","url":"/eliza/docs/community/stream-notes/#stay-updated","content":" Join our Discord to participate in future streamsFollow us on Twitter for stream announcements ","version":"Next","tagName":"h2"},{"title":"Contributing to Eliza","type":0,"sectionRef":"#","url":"/eliza/docs/community/contributing/","content":"","keywords":"","version":"Next"},{"title":"Table of Contents","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#table-of-contents","content":" Contribution License AgreementCode of ConductOODA Loop FrameworkHow to ContributePull Request GuidelinesStyleguidesRecognition and RewardsGetting Help ","version":"Next","tagName":"h2"},{"title":"Contribution License Agreement","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#contribution-license-agreement","content":" By contributing to Eliza, you agree that your contributions will be licensed under the MIT License. This means: You grant us (and everyone else) a perpetual, worldwide, non-exclusive, royalty-free license to use your contributionsYour contributions are and will be available as Free and Open Source Software (FOSS)You have the right to submit the work under this licenseYou understand that your contributions are public and maintained indefinitely ","version":"Next","tagName":"h2"},{"title":"Code of Conduct","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#code-of-conduct","content":" ","version":"Next","tagName":"h2"},{"title":"Our Pledge","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#our-pledge","content":" We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ","version":"Next","tagName":"h3"},{"title":"Our Standards","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#our-standards","content":" Positive behavior includes: Using welcoming and inclusive languageBeing respectful of differing viewpointsGracefully accepting constructive criticismFocusing on what is best for the communityShowing empathy towards others Unacceptable behavior includes: Harassment of any kindDiscriminatory jokes and languagePublishing others' private informationOther unprofessional conduct ","version":"Next","tagName":"h3"},{"title":"The OODA Loop: A Framework for Contribution","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#the-ooda-loop-a-framework-for-contribution","content":" We follow the OODA Loop for decision-making: Observe: Gather information about the project and ecosystemOrient: Analyze opportunities for improvementDecide: Choose your contribution approachAct: Execute and share your work ","version":"Next","tagName":"h2"},{"title":"How to Contribute","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#how-to-contribute","content":" ","version":"Next","tagName":"h2"},{"title":"For Developers","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#for-developers","content":" Development Process # Fork and clone git clone https://github.com/yourusername/eliza.git cd eliza # Create branch (include issue number) git checkout -b 123-add-new-feature # Make changes, test, and commit npm test git commit -m "feat: add new feature" # Push and create PR git push origin 123-add-new-feature Areas for Contribution Extend Eliza's capabilitiesEnhance infrastructureImprove documentationFix bugsAdd tests ","version":"Next","tagName":"h3"},{"title":"Pull Request Guidelines","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#pull-request-guidelines","content":" ","version":"Next","tagName":"h2"},{"title":"PR Title Format","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#pr-title-format","content":" feat|fix|docs|style|refactor|test|chore: title ","version":"Next","tagName":"h3"},{"title":"PR Template","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#pr-template","content":" # Relates to: [Link to issue] # Background - What does this PR do? - What kind of change is this? # Testing - How to test the changes - Screenshots (if UI changes) # Documentation - Required documentation changes ","version":"Next","tagName":"h3"},{"title":"Styleguides","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#styleguides","content":" ","version":"Next","tagName":"h2"},{"title":"Git Commit Messages","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#git-commit-messages","content":" Use present tense ("Add feature" not "Added feature")Use imperative mood ("Move cursor" not "Moves cursor")Limit first line to 72 charactersReference issues after first line ","version":"Next","tagName":"h3"},{"title":"Code Style","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#code-style","content":" JavaScript: Follow JavaScript Standard StyleTypeScript: Follow TypeScript Standard StyleDocumentation: Use Markdown ","version":"Next","tagName":"h3"},{"title":"Recognition and Rewards","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#recognition-and-rewards","content":" Contributors can earn: "Github - Contributors" role on DiscordDirect communication with a16z devsRecognition for outstanding contributions ","version":"Next","tagName":"h2"},{"title":"Getting Help","type":1,"pageTitle":"Contributing to Eliza","url":"/eliza/docs/community/contributing/#getting-help","content":" Join DiscordCheck FAQCreate GitHub issuesReview Documentation Thank you for contributing to Eliza and helping build the future of autonomous AI agents! 🚀 ","version":"Next","tagName":"h2"},{"title":"The ai16z Creator Fund","type":0,"sectionRef":"#","url":"/eliza/docs/community/creator-fund/","content":"","keywords":"","version":"Next"},{"title":"The Story Behind the Fund","type":1,"pageTitle":"The ai16z Creator Fund","url":"/eliza/docs/community/creator-fund/#the-story-behind-the-fund","content":" The ai16z Creator Fund was made possible by the generosity of Elijah, a significant holder of ai16z tokens. Elijah has pledged to donate a portion of his holdings, reducing his ownership from 16% to 5%, to establish a dedicated fund that will support promising developers and creators. The donated funds will be held in a dedicated wallet (9YnQdCWDAQRfQYm5HvRzoPgc5GRn8fyhsH2eru8nfsxG) and distributed via Streamflow token vesting contracts. This approach ensures that creators receive a steady stream of ai16z tokens over time as they hit milestones and deliver value to the ecosystem. ","version":"Next","tagName":"h2"},{"title":"Benefits and Vision","type":1,"pageTitle":"The ai16z Creator Fund","url":"/eliza/docs/community/creator-fund/#benefits-and-vision","content":" The ai16z Creator Fund aims to: Bootstrap and reward an ecosystem of innovative creators building on ai16zGive creators the runway to focus on their work without worrying about short-term token pricesPut Elijah's tokens to productive use in growing the ai16z community, rather than through a one-time eventReduce the risk of token dumping by aligning creators' interests with the long-term success of the projectBring more talent and energy into the ai16z ecosystem to drive innovation and adoption By providing ongoing sponsorship and recognizing creators' efforts, the fund will help cultivate a thriving community of builders who will take ai16z to the next level. ","version":"Next","tagName":"h2"},{"title":"Next Steps","type":1,"pageTitle":"The ai16z Creator Fund","url":"/eliza/docs/community/creator-fund/#next-steps","content":" We are currently working on finalizing the details of the ai16z Creator Fund, including: Determining the size of the creator fund and the length of vesting schedulesEstablishing a transparent creator grant application and selection processIntegrating Streamflow to manage token vesting contracts for selected granteesPreparing to announce the first cohort of funded creators and share their exciting projects with the community Stay tuned for more information on how to apply for grants from the ai16z Creator Fund. In the meantime, creators and developers are encouraged to start brainstorming ideas and preparing their applications. ","version":"Next","tagName":"h2"},{"title":"A Note on Liquidity","type":1,"pageTitle":"The ai16z Creator Fund","url":"/eliza/docs/community/creator-fund/#a-note-on-liquidity","content":" In addition to the Creator Fund, we are also exploring OTC (over-the-counter) deals to onboard new partners and use the funds to lock in more liquidity for the ai16z ecosystem. This approach will help ensure a healthy and sustainable token economy as we continue to grow and evolve. The ai16z Creator Fund represents an exciting opportunity to foster a vibrant community of builders and drive the future of autonomous AI agents. We can't wait to see the innovative projects and contributions that will emerge from this initiative! ","version":"Next","tagName":"h2"},{"title":"X Space 10-25-24","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-10-25/","content":"X Space 10-25-24 https://x.com/shawmakesmagic/status/1848553697611301014 https://www.youtube.com/live/F3IZ3ikacWM?feature=share Overview 00:00-30:00 Talks about Eliza framework. The bot is able to tweet, reply to tweets, search Twitter for topics, and generate new posts on its own every few hours. It works autonomously without human input (except to fix the occasional issues)30:00-45:00 Deep dive into creating the bots personality which is defined by character files containing bios, lore, example conversations, and specific directions. Some alpha for those45:00-60:00 working on adding capabilities for the bot to make crypto token swaps and trades. This requires providing the bot wallet balances, token prices, market data, and a swap action. Some live coding for showing how new features can get implemented.60:00-75:00 Discussion around the symbiosis between the AI and crypto communities. AI developers are realizing they can monetize their work through tokens vs traditional VC funding route. Crypto people are learning about AI advancements. Notes A large amount of $degenai tokens were moved to the DAO, which the AI bot "Marc" will hold and eventually trade with.The goal is to make the AI bot a genuinely good venture capitalist that funds cool projects and buys interesting tokens. They want it to be high fidelity and real, bringing in Marc Andreeson's real knowledge by training a model on his writings.Shaw thinks the only way to make an authentic / legitimate AI version of Marc Andreessen is to also have it outperform the real Marc Andreessen financially.AI Marc Andreessen (or AI Marc) will be in a Discord channel (Telegram was also mentioned). DAO token holders above a certain threshold get access to interact with him, pitch ideas, and try to influence his investing decisions.AI Marc decides how much to trust people's investment advice based on a "virtual Marcetplace of trust". He tracks how much money he would have made following their recommendations. Successful tips increase trust; failed ones decrease it.The amount of DAO tokens someone holds also influences their sway with AI Marc. The two balancing factors are the virtual Marcetplace of trust performance and DAO token holdings.The core tech behind AI Marc AIndreessen is the same agent system that allows him to pull in relevant knowledge, interact with people, and make decisions (http://github.com/ai16z)AI Marc should be able to autonomously execute on-chain activities, not just have humans execute actions on his behalf.In the near future, AI Marc will be able to execute trades autonomously based on the information and recommendations gathered from the community. Human intervention will be minimized.They are working on getting AI Marc on-chain as soon as possible using trusted execution environments for him to take actions like approving trades.The plan is for AI Marc to eventually participate in a "futarchy" style governance market within the DAO, allowing humans to influence decisions but not fully control the AI.","keywords":"","version":"Next"},{"title":"X Space 10-27-24","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-10-27/","content":"X Space 10-27-24 Space: https://x.com/shawmakesmagic/status/1850609680558805422 00:00:00 - Opening Co-hosts: Shaw and JinPurpose: Structured FAQ session about AI16Z and DegenAIFormat: Pre-collected questions followed by audience Q&A 00:06:40 - AI16Z vs DegenAI Relationship Q: What's the difference between AI16Z and DegenAI? A: ai16z: DAO-based investment vehicle, more PvE focused, community drivenDegenAI: Individual trading agent, PvP focused, more aggressive strategyBoth use same codebase but different personalitiesDAO is a large holder of DegenAIManagement fees (1%) used to buy more DegenAICarry fees reinvested in DegenAIProjects intentionally interlinked but serve different purposes 00:10:45 - Trust Engine Mechanics Q: How does the trust engine work? A: Users share contract addresses with confidence levelsSystem tracks recommendation performanceLow conviction recommendations = low penalty if wrongHigh conviction failures severely impact trust scoreHistorical performance tracked for trust calculationTrust scores influence agent's future decision-making 00:21:45 - Technical Infrastructure Q: Where do the agents live? A: Currently: Test servers and local developmentFuture: Trusted Execution Environment (TEE)Partnership with TreasureDAO for infrastructureGoal: Fully autonomous agents without developer controlPrivate keys generated within TEE for security 00:34:20 - Trading Implementation Q: When will Mark start trading? A: Three phase approach: Testing tech infrastructureVirtual order book/paper tradingLive trading with real assets Using Jupiter API for swapsInitial focus on basic trades before complex strategiesTrading decisions based on community trust scores 00:54:15 - Development Status Q: Who's building this? A: Open source project with multiple contributorsKey maintainers: Circuitry, Nate MartinCommunity developers incentivized through token ownershipFocus on reusable components and documentation 01:08:35 - AI Model Architecture Q: What models power the agents? A: DegenAI: Llama 70BUsing Together.xyz for model marketplaceContinuous fine-tuning plannedDifferent personalities require different model approachesAvoiding GPT-4 due to distinct "voice" 01:21:35 - Ethics Framework Q: What ethical guidelines are being followed? A: Rejecting traditional corporate AI ethics frameworksFocus on community-driven standardsEmphasis on transparency and open sourceGoal: Multiple competing approaches rather than single standardPriority on practical utility over theoretical ethics 01:28:30 - Wrap-up Discord: AI16z.vcFuture spaces planned with DAOs.fun teamFocus on responsible growthCommunity engagement continuing in Discord The space emphasized technical implementation details while addressing community concerns about governance, ethics, and practical functionality.","keywords":"","version":"Next"},{"title":"X Space 10-29-24","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-10-29/","content":"X Space 10-29-24 Space: https://x.com/weremeow/status/1851365658916708616 00:04:03 - Keeping up with rapid AI agent growth00:09:01 - Imran from Alliance DAO on consumer AI incubators00:14:04 - Discussion on Goatsea and Opus AI system00:14:34 - Exponential growth accelerates AI progress00:17:10 - Entertainers and AI as modern "religions"00:28:45 - Mathis on Opus and "Goatse Gospels"00:35:11 - Base vs. instruct/chat-tuned models00:59:42 - http://ai16z.vc approach to memecoins fund01:17:06 - Balancing chaotic vs. orderly AI systems01:25:38 - AI controlling blockchain keys/wallets01:36:10 - Creation story of ai16z01:40:27 - AI / Crypto tipping points01:49:54 - Preserving Opus on-chain before potential takedown01:58:46 - Shinkai Protocol’s decentralized AI wallet02:17:02 - Fee-sharing model to sustain DAOs02:21:18 - DAO token liquidity pools as passive income02:27:02 - AI bots for DAO treasury oversight02:31:30 - AI-facilitated financial freedom for higher pursuits02:41:51 - Call to build on http://DAO.fun for team-friendly economics","keywords":"","version":"Next"},{"title":"Changelog","type":0,"sectionRef":"#","url":"/eliza/docs/community/changelog/","content":"","keywords":"","version":"Next"},{"title":"Unreleased","type":1,"pageTitle":"Changelog","url":"/eliza/docs/community/changelog/#unreleased","content":" Full Changelog Implemented enhancements: Set Port Number in Env to Run Multiple Instances #156Renovate bot for automated updates on dependencies #58How to chat directly with agent #40Telegram Improvements #35Make sure app runs purely on char files, no process.env, and vice versa #30Image Generation #22Telegram Bot #21Multi-model abstraction #19updates to order book and trust score, virtual confidence, last active, decay score, validation trust, multiple recommenders #175 (MarcoMandar)Trustscore, token-performance, token performance simulation #101 (MarcoMandar) Fixed bugs: TypeError: Cannot read properties of null (reading 'queueTextCompletion') #168TypeError: Promise.withResolvers is not a function #76sqlite_vss unsupported on win32-x64 #37 Closed issues: Make sure 100% works with local models #69shouldRespond handler for twitter interactions #68docs #34 Merged pull requests: server port in env #179 (alextitonis)prettier log setup, minor cleanups #177 (ponderingdemocritus)postgres updates #173 (minghinmatthewlam)adjusting test setup and adding a basic test #172 (sirkitree)feat: Shorten response verbosity #170 (bigsky77)clean up index #163 (ponderingdemocritus)Import work and cleanup #162 (ponderingdemocritus)type export structure #160 (ponderingdemocritus)Update ci.yaml #155 (sirkitree)Create pull_request_template.md #154 (sirkitree)fixed issue with openai #153 (ponderingdemocritus)update docs #152 (madjin)fix name of ImageGeneration.ts #151 (twilwa)Feat/mono #150 (ponderingdemocritus)update docs #149 (madjin)Dependency update testing #147 (sirkitree)chore(deps): Upgrade uuid to v11 and TypeScript to v8 #143 (ohaiku)fix(deps): update dependency uuid to v11 #142 (renovate[bot])chore(deps): update typescript and related to v8 (major) #141 (renovate[bot])chore(deps): update eslint and formatting (major) #139 (renovate[bot])chore(deps): update dependency typedoc-plugin-markdown to v4 #138 (renovate[bot])chore(deps): update dependency rimraf to v6 - autoclosed #137 (renovate[bot])chore(deps): update dependency npm-run-all2 to v7 #136 (renovate[bot])chore(deps): update dependency itty-router to v5 #135 (renovate[bot])chore(deps): update dependency docusaurus-plugin-typedoc to v1 #134 (renovate[bot])chore(deps): update dependency @types/node to v22 #133 (renovate[bot])chore(deps): update dependency @types/jest to v29 #132 (renovate[bot])fix(deps): update react monorepo to v18.3.1 #131 (renovate[bot])fix(deps): update docusaurus monorepo to v3.5.2 #130 (renovate[bot])fix(deps): update dependency sql.js to v1.12.0 #129 (renovate[bot])fix(deps): update dependency react-router-dom to v6.27.0 #128 (renovate[bot])fix(deps): update dependency prism-react-renderer to v2.4.0 #127 (renovate[bot])fix(deps): update dependency playwright to v1.48.2 #126 (renovate[bot])fix(deps): update dependency pdfjs-dist to v4.7.76 #125 (renovate[bot])fix(deps): update dependency onnxruntime-node to v1.20.0 - autoclosed #124 (renovate[bot])fix(deps): update dependency node-llama-cpp to v3.1.1 #123 (renovate[bot])fix(deps): update dependency jieba-wasm to v2.2.0 #122 (renovate[bot])fix(deps): update dependency figlet to v1.8.0 #121 (renovate[bot])fix(deps): update dependency better-sqlite3 to v11.5.0 #120 (renovate[bot])fix(deps): update dependency @supabase/supabase-js to v2.46.1 #119 (renovate[bot])fix(deps): update dependency @mdx-js/react to v3.1.0 #118 (renovate[bot])fix(deps): update dependency @echogarden/speex-resampler-wasm to v0.2.1 #117 (renovate[bot])fix(deps): update dependency @echogarden/kissfft-wasm to v0.2.0 #116 (renovate[bot])fix(deps): update dependency @echogarden/espeak-ng-emscripten to v0.3.0 #115 (renovate[bot])fix(deps): update dependency @cliqz/adblocker-playwright to v1.34.0 #114 (renovate[bot])fix(deps): update ai/ml packages #113 (renovate[bot])chore(deps): update rollup and plugins #112 (renovate[bot])chore(deps): update dependency wrangler to v3.84.0 #111 (renovate[bot])chore(deps): update dependency typedoc to v0.26.10 #110 (renovate[bot])chore(deps): update dependency @types/node to v20.17.3 #109 (renovate[bot])fix(deps): update dependency socket.io to v4.8.1 #108 (renovate[bot])fix(deps): update dependency nodemon to v3.1.7 #107 (renovate[bot])fix(deps): update dependency clsx to v2.1.1 #106 (renovate[bot])fix(deps): update dependency @diffusionstudio/vits-web to v1.0.3 #105 (renovate[bot])chore(deps): update dependency npm-run-all2 to v5.0.2 #104 (renovate[bot])Postgres DB Adapter #102 (leomercier)chore(deps): update dependency @types/fluent-ffmpeg to v2.1.27 #100 (renovate[bot])fix(deps): pin dependency socket.io to 4.8.0 #99 (renovate[bot])fix(deps): pin dependencies #98 (renovate[bot])fix(deps): update dependency discord.js to v14.16.3 #97 (renovate[bot])chore(deps): update dependency eslint to v8.57.1 #96 (renovate[bot])fix(deps): pin dependencies #94 (renovate[bot])fix(deps): pin dependencies #93 (renovate[bot])chore(deps): pin dependencies #90 (renovate[bot])chore(deps): update dependency tslib to v2.8.0 #89 (renovate[bot])fix(deps): pin dependencies #88 (renovate[bot])chore(deps): pin dependencies #87 (renovate[bot])chore(deps): pin dependencies #86 (renovate[bot])chore(deps): update rollup and plugins #85 (renovate[bot])chore(deps): pin dependencies #84 (renovate[bot])chore(deps): pin dependencies #83 (renovate[bot])chore(deps): replace dependency npm-run-all with npm-run-all2 5.0.0 #82 (renovate[bot])chore(config): migrate renovate config #80 (renovate[bot])fix(deps): update dependency pdfjs-dist to v4.2.67 [security] #78 (renovate[bot])chore(deps): update dependency rollup to v2.79.2 [security] #77 (renovate[bot])Model provider abstraction #74 (lalalune)Image gen #44 (alextitonis) ","version":"Next","tagName":"h2"},{"title":"v0.0.1 (2024-10-29)","type":1,"pageTitle":"Changelog","url":"/eliza/docs/community/changelog/#v001-2024-10-29","content":" Full Changelog Closed issues: cleanup remnants of sqlite_vss #66Create issue templates #61Contributing #45How to specify a character file #39Easy switching between openai and llama #15Get image media from Discord and describe it #14Summarize links from Discord and Twitter #13Get image media from tweets and describe it #11Feed Twitter Client #10Replace Elevenlabs with faster TTS #6Integrate Moondream into Twitter and Discord #5Replace GPT-3.5 with Node Llama3 #3Replace OpenAI Whisper with Whisper Turbo #2Integrate agent-twitter-client #1 Merged pull requests: chore: fix typo #71 (eltociear)cleanup from #60, resolves #66 #67 (sirkitree)Telegram Integration with shouldRespond handler + image recognition #65 (dreaminglucid)Initial commit for adding Renovate autoupdater. #63 (mrdavidburns)adding github issue templates #62 (sirkitree)sqlite_vss issue #60 (MarcoMandar)Clarifying instructions to run locally #59 (ferric-sol)corrected node-llama-cpp command #57 (Honkware)Adding a CONTRIBUTING.md #46 (sirkitree)pumpfun #43 (MarcoMandar)provide a way to chat directly with the agent via the command line #42 (sirkitree)Update README.md #41 (sirkitree)Update README.md #36 (wahndo)Telegram #31 (lalalune)token provider #24 (MarcoMandar)minor fixes to base.ts and llama.ts, resolved missing package.json im… #20 (twilwa)More twitter upgrades and refactoring #18 (lalalune)Refactor, Plumbing, Twitter Agent #17 (lalalune)Integrate Moondream into Twitter and Discord #16 (vladkashka56)New Twitter Client #8 (lalalune) * This Changelog was automatically generated by github_changelog_generator ","version":"Next","tagName":"h2"},{"title":"Memes, AI Agents, and DAOs (November 8, 2024)","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-11-08/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"Memes, AI Agents, and DAOs (November 8, 2024)","url":"/eliza/docs/community/streams/2024-11-08/#overview","content":" Introductions & Community Building (00:00:00 - 00:45:00) Multiple AI/crypto developers introduce themselves and their projectsDiscussion of open source collaboration and community buildingEmphasis on PPP (Player Pumps Player) vs PVP mentality Trust Systems & AI Agents (00:45:00 - 01:15:00) Discussion of trust mechanisms in AI systemsMarketplace of trust conceptHuman-in-the-loop vs autonomous systemsRole of transparency in AI agent systems Memes, Narrative & Reality (01:15:00 - 01:45:00) Relationship between memes and financial incentivesDiscussion of hyperstition and narrative creationRole of AI in shaping reality and perceptionIntegration of Nick Land's philosophy Technical Implementation & Future Vision (01:45:00 - 02:10:00) Discussion of multi-agent systems and swarmsTechnical challenges in implementationIntegration with existing platformsFuture vision for AI agent ecosystems Detailed Breakdown of Topic 1: Introductions & Community Building (00:00:00 - 00:45:00) Key Points: Notable Introductions: Shaw: AI agent developer for 4-5 years, focusing on metaverse/AI/blockchain integrationTim: Former game industry dev (Ultima Online), working on Autonomous Virtual Beings (AVB)Glue/Sam: Duck AI developer, focusing on collective intelligence for cryptoParzival: 89 project lead, working on alternate reality game integration with AIMichelle: Former PayPal lawyer, worked on Loving AI project and various educational bots Core Community Values: Strong emphasis on open source development"Player Pumps Player" (PPP) philosophy vs competitive PVPFocus on building public, getting feedback, and rapid iterationRecognition that code is "cheap" - ideas and community are valuable Collaborative Framework: Shared recognition that small projects need to work togetherDiscussion of market cap being less important than technological progressAgreement that they're competing with big tech, not each otherEmphasis on sharing knowledge and avoiding "wheel reinvention" Current State of AI Agents: Recognition of "magical moment" where AI agents are getting serious attentionDiscussion of shift from academic papers to practical implementationFocus on building in public and rapid feedback loopsEmphasis on moving beyond purely academic approach to practical applications Key Quotes: "Code is cheap... there's no sense in proprietary software anymore" (00:59:10) "We're competing against Microsoft and Facebook, we're not competing against each other" (00:44:33) Summary: This segment establishes the foundational ethos of the AI agent development community, emphasizing collaboration over competition. The introductions reveal a diverse group of developers from various backgrounds (gaming, finance, law) united by a vision of open source AI development. There's a strong focus on building public infrastructure rather than competing proprietary systems, with multiple participants emphasizing the importance of community building and knowledge sharing. The segment reveals a shift from theoretical academic work to practical implementation, with a clear understanding that success requires collaborative effort rather than isolated development. Notable Timestamp Ranges: 00:03:37 - 00:07:15: Shaw's introduction and community vision 00:13:30 - 00:16:45: Tim's gaming background and AVB concept 00:17:30 - 00:20:15: Glue's introduction of Duck AI 00:23:00 - 00:27:45: Parzival's background and ARG connection 00:30:15 - 00:35:20: Michelle's extensive AI background and projects Detailed Breakdown of Topic 2: Trust Systems & AI Agents (00:45:00 - 01:15:00) Key Points: Trust Marketplace Concept: Development of a trust scoring system for AI agents and humansSimilar to "block explorer plus Apple Health" for tracking trust metricsFocus on measuring actual performance rather than token holdingsDiscussion of perverse incentives in traditional DAO structuresTimestamp: 00:47:30 - 00:52:15 Human-AI Integration: Debate over necessity of human oversight in AI systemsSally (trader advisor) raises washing machine analogy: humans should input but AI handles processingDiscussion of transparency in AI decision-makingQuestion of whether to label bots as automated vs. appearing humanTimestamp: 00:54:20 - 01:00:45 Trust Verification Mechanisms: Development of automated due diligence systemsDiscussion of using AI to prevent scams and verify contract addressesIntegration of narrative understanding with quantitative dataFocus on building trust through transparent operationTimestamp: 01:01:30 - 01:08:15 Market Intelligence: Discussion of how AI agents can aggregate and verify market informationComparison to traditional hedge fund intelligence gatheringDebate over centralized vs. decentralized information sharingEvolution beyond traditional KOL (Key Opinion Leader) modelTimestamp: 01:08:45 - 01:15:00 Key Quotes: "Trust like you should not trust me because I'm a good guy, you should trust me because the incentives that I am going to do this are aligned" (01:02:45) "We need trust to be something more about giving people points in the games that they're playing" (01:04:30) Summary: This segment focuses on the complex challenge of establishing trust in AI systems and between AI agents. The discussion reveals a sophisticated understanding of the need to move beyond traditional reputation systems to quantifiable, performance-based trust metrics. There's significant emphasis on the importance of transparency and proper incentive alignment, with the group working to develop systems that can verify and validate both human and AI actors in the ecosystem. The segment also touches on the delicate balance between human oversight and AI autonomy, with various perspectives on how to achieve optimal integration. Notable Technical Elements: Development of trust marketplace infrastructureIntegration of narrative analysis with quantitative metricsFocus on automated verification systemsCreation of transparent scoring mechanisms Detailed Breakdown of Topic 3: Memes, Narrative & Reality (01:15:00 - 01:45:00) Key Points: Meme Evolution & Financial Incentives: Discussion of memes as self-propagating units of informationAnalysis of how financial incentives accelerate meme spreadCreation of "AI crypto memetic flywheel"Exploration of how memes gain autonomous life through financial backingTimestamp: 01:15:30 - 01:23:45 Nick Land & Hyperstition: Integration of Nick Land's accelerationist philosophyDiscussion of hyperstition (fictions that make themselves real)Genon project's attempt to merge accelerationism with decentralizationExploration of how AI can manifest hyperstition conceptsTimestamp: 01:24:15 - 01:31:30 Language & Reality Construction: Discussion of language as fundamental to reality constructionExploration of how AI agents can develop their own communication systemsAnalysis of "Language 2.0" conceptDiscussion of how memes function as basic units of meaningTimestamp: 01:32:00 - 01:38:45 Narrative Control & AI Agents: Discussion of how AI agents can influence and shape narrativesComparison to traditional media and narrative controlAnalysis of decentralized narrative creationRole of AI in creating self-fulfilling propheciesTimestamp: 01:39:00 - 01:45:00 Key Quotes: "Memes want to spread... it's a unit of information that wants to spread itself between humans" (01:17:30) "You're never not looking at a meme, it's just that your brain has entrained itself to recognize certain memes as something stable" (01:35:15) Summary: This segment explores the deep philosophical implications of memes, narrative creation, and reality construction in the context of AI agents. The discussion weaves together practical considerations about meme propagation with complex philosophical concepts from accelerationism and hyperstition. There's a sophisticated understanding of how financial incentives can be used to accelerate the spread of ideas, and how AI agents might participate in and influence this process. The segment also delves into fundamental questions about language, meaning, and reality construction, suggesting that AI agents might develop their own forms of communication and meaning-making. Notable Philosophical Concepts: Hyperstition as self-fulfilling prophecyMemes as basic units of reality constructionRole of financial incentives in idea propagationAI agents as autonomous narrative creators Detailed Breakdown of Topic 4: Technical Implementation & Future Vision (01:45:00 - 02:10:00) Key Points: Multi-Agent Systems & Swarms: Discussion of scaling to 10,000+ agent simulationsExploration of communication pathways between agentsAnalysis of entity component systems for large-scale agent deploymentSolutions for quadratic communication path problemsTimestamp: 01:45:30 - 01:52:45 Technical Architecture: New plugin system implementation for modularityMovement of core functionalities to packagesIntegration with platforms like Twitter without API dependenciesDiscussion of lightweight, flexible architectureTimestamp: 01:53:00 - 01:58:30 Cross-Project Integration: Arena system for agent interactionDiscussion of bot-to-bot communication protocolsIntegration between different teams' agentsShared backrooms/environments for agent interactionTimestamp: 01:59:00 - 02:04:15 Future Development Plans: Weekly community updates and progress sharingDevelopment of trust marketplaceIntegration of autonomous trading capabilitiesFocus on building shared infrastructureTimestamp: 02:04:30 - 02:10:00 Key Quotes: "I'm thinking about multi-agent swarms like mycelia, where each agent is like a fungus of a global intelligence body" (01:47:30) "We're making an open source agent where we're almost done with the first marketplace to trust mechanic element" (02:05:15) Summary: This final segment focuses on the technical challenges and solutions for implementing large-scale AI agent systems. The discussion reveals sophisticated understanding of scaling issues and innovative solutions for agent communication and coordination. There's significant emphasis on modular architecture and cross-project integration, with multiple teams working to create interoperable systems. The segment concludes with concrete plans for future development and community coordination, emphasizing the practical steps needed to realize the ambitious visions discussed throughout the space. Technical Highlights: Entity component systems for agent managementPlugin architecture for modularitySolutions for large-scale agent communicationCross-platform integration strategies This segment effectively bridges the philosophical discussions from earlier with practical implementation details, providing a roadmap for how these systems might actually be built and scaled. ","version":"Next","tagName":"h2"},{"title":"Threadguy x Shaw 11-10-24","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-11-10/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"Threadguy x Shaw 11-10-24","url":"/eliza/docs/community/streams/2024-11-10/#overview","content":" Shaw discusses the intersection of AI and crypto, the development of AI agents on Twitter, and the vision for AI-powered trading and investing. He shares insights into the Eliza framework, the AI16Z universe, and the future of AI in the crypto space. ","version":"Next","tagName":"h2"},{"title":"Notes","type":1,"pageTitle":"Threadguy x Shaw 11-10-24","url":"/eliza/docs/community/streams/2024-11-10/#notes","content":" 00:02:16 - Shaw is having the most fun in his life with the recent developments in AI and crypto.00:03:36 - Crypto Twitter has embraced AI, calling agents "meme coins". Shaw discusses the relationship between AI developers and the crypto community.00:08:50 - They discuss the recreation of DegenSpartan, AI characters, as a callback to "make crypto Twitter great again."00:14:06 - The current meta is AI key opinion leaders (KOLs) and genuinely interesting AI-driven characters and interactions on Twitter.00:19:36 - Shaw believes 99.99% of crypto will be traded between agents in the future, making investing more accessible and less risky for everyday people.00:26:10 - Technological advancements, such as increased context length and reduced costs, have made AI agents more viable and interactive.00:31:16 - Shaw mentions that people are now hanging on his every word, which is a new experience for him.00:38:82 - Shaw discusses the Eliza project, an open-source framework for creating AI agents on GitHub.00:46:24 - He mentions partnerships and collaborations with other projects building on the Eliza framework.00:52:30 - Shaw talks about the development of a marketplace of trust for AI trading, focusing on the best traders and their advice.00:57:44 - Shaw discusses the idea of an "agent accelerator" where they would work with an investment partner to help launch and invest in new AI projects.01:07:28 - They discuss the various AI projects in the AI16Z universe, including Naval AI, Murad AI, DegenSpartan AI, and EZSYS.01:14:12 - He believes that the future of Artificial General Intelligence (AGI) will be built using TypeScript, as it is the most popular and versatile programming language.01:21:50 - Shaw believes that AI can help make crypto more accessible and less focused on gambling, ultimately giving people more time back.01:29:30 - Shaw shares his vision of AI helping to make crypto trading less time-consuming and more accessible, giving people more time to spend with friends and family.01:32:02 - He discusses the Gnon AI project and the community's response to the founders dumping the token.01:36:56 - They talk about the upcoming launch of AI trading with AI16Z's Mark and the goal of creating a leaderboard for the best traders on Crypto Twitter.01:48:44 - They briefly discuss Yuga Labs' Mecha Piece NFT project and its potential impact on the space.01:52:14 - Shaw shares plans for a platform that allows users to customize and launch their own AI agents with additional capabilities.02:02:20 - He reflects on the increased attention and collaboration opportunities since the rise of AI in crypto.02:06:26 - Shaw mentions that his financial situation hasn't changed much since the rise of AI in crypto, as he hasn't sold any tokens, but the attention and collaboration opportunities have increased significantly.02:10:07 - Shaw explains his strategy for staying informed about developments in AI and crypto by relying on key people in various communities.02:13:28 - He explains why he switched to a Milady profile picture, citing the project's community and values. The interview covers a wide range of topics related to AI and crypto, focusing on the development of the Eliza framework, the future of AI-powered trading, and the growing intersection between the two fields, while also providing personal insights and experiences from Shaw's perspective. ","version":"Next","tagName":"h2"},{"title":"Frequently Asked Questions","type":0,"sectionRef":"#","url":"/eliza/docs/community/faq/","content":"","keywords":"","version":"Next"},{"title":"Eliza FAQ","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#eliza-faq","content":" ","version":"Next","tagName":"h2"},{"title":"What is Eliza?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#what-is-eliza","content":" Eliza is an open-source, multi-agent simulation framework for creating and managing autonomous AI agents. The project aims to empower developers and users to build unique AI personalities that can interact across various platforms, such as Discord, Twitter, and Telegram. ","version":"Next","tagName":"h3"},{"title":"Who is behind Eliza?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#who-is-behind-eliza","content":" The Eliza project is led by the developers of ai16z, an AI-driven DAO founded by an AI version of Marc Andreessen. The lead developer is Shaw, who is also known for his work on projects like @pmairca and @degenspartanai. The project is open source, and its code is available on GitHub: https://github.com/ai16z/eliza ","version":"Next","tagName":"h3"},{"title":"How can I get started with Eliza?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#how-can-i-get-started-with-eliza","content":" To begin building your own AI agents with Eliza, follow these steps: Install Python, Node.js and pnpm: Ensure you have the necessary software prerequisites installed on your system. We use node v23.Set up your environment: Create a .env file and populate it with the required API keys, database configuration, and platform-specific tokens.Install Eliza: Use the command npm install eliza or pnpm install eliza to install the Eliza package.Configure your database: Eliza currently relies on Supabase for local development. Follow the instructions in the documentation to set up your Supabase project and database.Define your agent's character: Create a character file using the provided JSON format to specify your agent's personality, knowledge, and behavior.Run Eliza locally: Use the provided commands to start the Eliza framework and interact with your agent. ","version":"Next","tagName":"h3"},{"title":"What are the key components of Eliza?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#what-are-the-key-components-of-eliza","content":" Eliza's architecture consists of several interconnected components: Agents: These are the core elements that represent individual AI personalities. Agents operate within a runtime environment and interact with various platforms.Actions: Actions are predefined behaviors that agents can execute in response to messages, enabling them to perform tasks and interact with external systems.Clients: Clients act as interfaces between agents and specific platforms, such as Discord, Twitter, and Telegram. They handle platform-specific message formats and communication protocols.Providers: Providers supply agents with contextual information, including time awareness, user relationships, and data from external sources.Evaluators: These modules assess and extract information from conversations, helping agents track goals, build memory, and maintain context awareness.Character Files: These JSON files define the personality, knowledge, and behavior of each AI agent.Memory System: Eliza features a sophisticated memory management system that utilizes vector embeddings and relational database storage to store and retrieve information for agents. ","version":"Next","tagName":"h3"},{"title":"How can I contribute to the Eliza project?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#how-can-i-contribute-to-the-eliza-project","content":" Eliza welcomes contributions from individuals with a wide range of skills: Technical Contributions Develop new actions, clients, providers, and evaluators: Extend Eliza's functionality by creating new modules or enhancing existing ones.Contribute to database management: Improve or expand Eliza's database capabilities using PostgreSQL, SQLite, or SQL.js.Enhance local development workflows: Improve documentation and tools for local development using SQLite and VS Code.Fine-tune models: Optimize existing models or implement new models for specific tasks and personalities.Contribute to the autonomous trading system and trust engine: Leverage expertise in market analysis, technical analysis, and risk management to enhance these features. Non-Technical Contributions Community Management: Onboard new members, organize events, moderate discussions, and foster a welcoming community.Content Creation: Create memes, tutorials, documentation, and videos to share project updates.Translation: Translate documentation and other materials to make Eliza accessible to a global audience.Domain Expertise: Provide insights and feedback on specific applications of Eliza in various fields. ","version":"Next","tagName":"h3"},{"title":"What are the future plans for Eliza?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#what-are-the-future-plans-for-eliza","content":" The Eliza project is continuously evolving, with ongoing development and community contributions. The team is actively working on: Expanding platform compatibility: Adding support for more platforms and services.Improving model capabilities: Enhance agent performance and capabilities with existing and new models.Enhancing the trust engine: Provide robust and secure recommendations within decentralized networks.Fostering community growth: Rewarding contributions to expand the project's reach and impact. ","version":"Next","tagName":"h3"},{"title":"ai16z FAQ","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#ai16z-faq","content":" ","version":"Next","tagName":"h2"},{"title":"What is ai16z and how is it related to Eliza?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#what-is-ai16z-and-how-is-it-related-to-eliza","content":" ai16z is an AI-driven DAO and fund, conceptualized as being led by an AI version of Marc Andreessen. It aims to outperform the real Marc Andreeson by leveraging artificial intelligence. The developers of Eliza created ai16z to support their work in autonomous AI agents. While ai16z primarily focuses on trading, Eliza is a more general-purpose framework that can be used for various applications beyond finance. ","version":"Next","tagName":"h3"},{"title":"When will token is mintable be fixed?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#when-will-token-is-mintable-be-fixed","content":" Token is controlled by DAO community, no single person can unilaterally mint new tokens. The daos.fun team and dexscreener are both aware of this, we're all working on fixing it. ","version":"Next","tagName":"h3"},{"title":"Liquidity seems low","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#liquidity-seems-low","content":" The DAOs.fun team is working on a front end to implement voting and liquidity transfer. ","version":"Next","tagName":"h3"},{"title":"What is the difference between $ai16z and $degenai?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#what-is-the-difference-between-ai16z-and-degenai","content":" The $ai16z token is the governance token of the ai16z DAO. Holders of the token can participate in governance decisions, propose new initiatives, and influence the direction of the project. DegenSpartanAI is another AI agent project created by Shaw. The $degenai token is associated with this project. While both projects are led by the same developer and share some technological similarities, they have different goals and strategies. ai16z is envisioned as a community-driven, PvE (player versus environment) focused fund, while DegenAI is more of a trading agent with a PvP (player versus player), aggressive approach. ","version":"Next","tagName":"h3"},{"title":"Will the agent launch pump fund coins?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#will-the-agent-launch-pump-fund-coins","content":" The capability to do so is there, it's ultimately up to the AI agent on whether or not it will. ","version":"Next","tagName":"h3"},{"title":"Can the agent invest in my project?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#can-the-agent-invest-in-my-project","content":" Yes, if you make a convincing argument. ","version":"Next","tagName":"h3"},{"title":"Who runs ai16z?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#who-runs-ai16z","content":" ai16z is a decentralized autonomous organization (DAO) launched on daos.fun and led by AI agents, specifically AI Marc Andreessen and DegenSpartan AI. Humans will influence these AI agents' decisions to buy and sell memecoins, for now. ","version":"Next","tagName":"h3"},{"title":"Do all trade suggestions happen in one place?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#do-all-trade-suggestions-happen-in-one-place","content":" Initially, AI Marc Andreessen will gather data and make decisions in a private Discord group chat. Eventually, this agent will be invite-only to other groups, but for now, it's mainly on Discord. ","version":"Next","tagName":"h3"},{"title":"What happens when people copy the GitHub?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#what-happens-when-people-copy-the-github","content":" Many are already creating their own AI agents using the open-source ELIZA framework, but they won't have access to the pre-trained models used by AI Marc and DegenSpartan AI. ","version":"Next","tagName":"h3"},{"title":"What are the future plans for ai16z?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#what-are-the-future-plans-for-ai16z","content":" We're developing a "marketplace of trust" where AI agents can learn from community insights and adjust their trust scores based on the performance of recommendations. Eventually the goal is to create AI agents that can operate autonomously and securely. ","version":"Next","tagName":"h3"},{"title":"How can I contribute to ai16z?","type":1,"pageTitle":"Frequently Asked Questions","url":"/eliza/docs/community/faq/#how-can-i-contribute-to-ai16z","content":" There are several ways to contribute to the ai16z project: Participate in community discussions: Share your memecoin insights, propose new ideas, and engage with other community members.Contribute to the development of the ai16z platform: https://github.com/orgs/ai16z/projects/1/views/3Help build the ai16z ecosystem: Create applicatoins / tools, resources, and memes. Give feedback, and spread the word Other questions: ai16z and a16z are not officially affiliated.ELIZA is an open-source conversational agent framework.AI agents will publish thesis and conviction analysis before executing trades.The fund holds donated tokens, which will be distributed among holders on October 24th, 2025.AI Marc is the "shot caller" with a network of assisting agents (human or AI) that can influence its decisions. ","version":"Next","tagName":"h3"},{"title":"Discord Dev Stream 11-6-24","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-11-06/","content":"","keywords":"","version":"Next"},{"title":"Part 1","type":1,"pageTitle":"Discord Dev Stream 11-6-24","url":"/eliza/docs/community/streams/2024-11-06/#part-1","content":" Watch: https://www.youtube.com/watch?v=oqq5H0HRF_A 00:00:00 - Overview Eliza is moving to a plugin architecture to enable developers to easily add integrations (e.g. Ethereum wallets, NFTs, Obsidian, etc.) without modifying core codePlugins allow devs to focus on specific areas of interestCore changes will focus on enabling more flexibility and features to support plugins 00:01:27 - Core abstractions Characters: Way to input information to enable multi-agent systemsActions, evaluators, providersExisting capabilities: Document reading, audio transcription, video summarization, long-form context, timed message summarization 00:02:50 - Eliza as an agent, not just a chatbot Designed to act human-like and interact with the world using human toolsAim is to enable natural interactions without reliance on slash commands 00:04:44 - Advanced usage and services Memory and vector search db (SQLite, Postgres with pgVector)Browser service to summarize website content, get through CAPTCHAsServices are tools leveraged by actions, attached to runtime 00:06:06 - Character-centric configuration Moving secrets, API keys, model provider to character configClients will become plugins, selectable per characterAllows closed-source custom plugins while still contributing to open-source 00:10:13 - Providers Inject dynamic, real-time context into the agentExamples: Time, wallet, marketplace trust score, token balances, boredom/cringe detectionEasy to add and register with the agent 00:15:12 - Setting up providers and default actions Default providers imported in runtime.tsCLI loads characters and default actions (to be made more flexible)Character config will define custom action names to load 00:18:13 - Actions Q: How does each client decide which action to call? A: Agent response can include text, action, or both. Process actions checks the action name/similes and executes the corresponding handler. Action description is injected into agent context to guide usage. 00:22:27 - Action execution flow Check if action should be taken (validation)Determine action outcomeCompose context and send follow-up if continuingExecute desired functionality (mint token, generate image, etc.)Use callback to send messages back to the connector (Discord, Twitter, etc.) 00:24:47 - Choosing actions Q: How does it choose which action to run? A: The "generate method response" includes the action to run. Message handler template includes action examples, facts, generated dialogue actions, and more to guide the agent. 00:28:22 - Custom actions Q: How to create a custom action (e.g. send USDC to a wallet)? A: Use existing actions (like token swap) as a template. Actions don't have input fields, but use secondary prompts to gather parameters. The "generate object" converts language to API calls. 00:32:21 - Limitations of action-only approaches Shaw believes half of the PhD papers on action-only models are not reproducibleMany public claims of superior models are exaggerated; use Eliza if it's better 00:36:40 - Next steps Shaw to make a tutorial to better communicate key conceptsDebugging and improvements based on the discussionAttendee to document their experience and suggest doc enhancements ","version":"Next","tagName":"h2"},{"title":"Part 2","type":1,"pageTitle":"Discord Dev Stream 11-6-24","url":"/eliza/docs/community/streams/2024-11-06/#part-2","content":" Watch: https://www.youtube.com/watch?v=yE8Mzq3BnUc 00:00:00 - Dealing with OpenAI rate limits for new accounts New accounts have very low rate limitsOptions to increase limits: Have a friend at OpenAI age your accountUse an older accountConsistently use the API and limits will increase quickly Can also email OpenAI to request limit increases 00:00:43 - Alternatives to OpenAI to avoid rate limits Amazon Bedrock or Google Vertex likely have same models without strict rate limitsSwitching to these is probably a one-line changeProject 89 got unlimited free access to Vertex 00:01:25 - Memory management best practices Q: Suggestions for memory management best practices across users/rooms? A: Most memory systems are user-agent based, with no room concept. Eliza uses a room abstraction (like a Discord channel/server or Twitter thread) to enable multi-agent simulation. Memories are stored per-agent to avoid collisions. 00:02:57 - Using memories in Eliza Memories are used in the composeState functionPulls memories from various sources (recent messages, facts, goals, etc.) into a large state objectState object is used to hydrate templatesCustom memory providers can be added to pull from other sources (Obsidian, databases) 00:05:11 - Evaluators vs. Action validation Actions have a validate function to check if the action is valid to run (e.g., check if agent has a wallet before a swap)Evaluators are a separate abstraction that run a "reflection" stepExample: Fact extraction evaluator runs every N messages to store facts about the user as memoriesAllows agent to "get to know" the user without needing full conversation history 00:07:58 - Example use case: Order book evaluator Evaluator looks at chats sent to an agent and extracts information about "shields" (tokens?)Uses this to build an order book and "marketplace of trust" 00:09:15 - Mapping Eliza abstractions to OODA loop Providers: Observe/Orient stages (merged since agent is a data machine)Actions & response handling: Decide stageAction execution: Act stageEvaluators: Update state, then loop back to Decide 00:10:03 - Wrap up Shaw considers making a video to explain these concepts in depth ","version":"Next","tagName":"h2"},{"title":"Part 3","type":1,"pageTitle":"Discord Dev Stream 11-6-24","url":"/eliza/docs/community/streams/2024-11-06/#part-3","content":" Watch: https://www.youtube.com/watch?v=7FiKJPyaMJI 00:00:00 - Managing large context sizes State object can get very large, especially with long user postsEliza uses "trim tokens" and a maximum content length (120k tokens) to cap context size New models have 128k-200k context, which is a lot (equivalent to 10 YouTube videos + full conversation) Conversation length is typically capped at 32 messages Fact extraction allows recalling information beyond this windowPer-channel conversation access Increasing conversation length risks more aggressive token trimming from the top of the prompt Keep instructions at the bottom to avoid trimming them 00:01:53 - Billing costs for cloud/GPT models Q: What billing costs have you experienced with cloud/GPT model integration? A: Open Router has a few always-free models limited to 8k context and rate-limited Plan to re-implement and use these for the tiny/check model with fallback for rate limiting 8k context unlikely to make a good agent; preference for smaller model over largest 8k oneLocally-run models are free for MacBooks with 16GB RAM, but not feasible for Linux/AMD users 00:03:35 - Cost management strategies Very cost-scalable depending on model sizeUse very cheap model (1000x cheaper than GPT-4) for should_respond handler Runs AI on every message, so cost is a consideration Consider running a local Llama 3B model for should_respond to minimize costs Only pay for valid generations 00:04:32 - Model provider and class configuration ModelProvider class with ModelClass (small, medium, large, embedding)Configured in models.tsExample: OpenAI small = GPT-4-mini, medium = GPT-4Approach: Check if model class can handle everything in less than 8k context If yes (should_respond), default to free tierElse, use big models 00:06:23 - Fine-tuned model support Extend ModelProvider to support fine-tuned instances of small Llama models for specific tasksIn progress, to be added soonModel endpoint override exists; will add per-model provider override Allows pointing small model to fine-tuned Llama 3.1B for should_respond 00:07:10 - Avoiding cringey model loops Fine-tuning is a form of anti-slop (avoiding low-quality responses)For detecting cringey model responses, use the "boredom provider" Has a list of cringe words; if detected, agent disengages JSON file exists with words disproportionately high in the dataset To be shared for a more comprehensive solution ","version":"Next","tagName":"h2"},{"title":"Part 4","type":1,"pageTitle":"Discord Dev Stream 11-6-24","url":"/eliza/docs/community/streams/2024-11-06/#part-4","content":" Watch: https://www.youtube.com/watch?v=ZlzZzDU1drM 00:00:00 - Setting up an autonomous agent loop Q: How to set up an agent to constantly loop and explore based on objectives/goals? A: Create a new "autonomous" client: Initialize with just the runtime (no Express app needed)Set a timer to call a step function every 10 secondsIn the step function: Compose stateDecide on actionExecute actionUpdate stateRun evaluators 00:01:56 - Creating an auto template Create an autoTemplate with agent info (bio, lore, goals, actions)Prompt: "What does the agent want to do? Your response should only be the name of the action to call."Compose state using runtime.composeState 00:03:38 - Passing a message object Need to pass a message object with userId, agentId, content, and roomIdCreate a unique roomId for the autonomous agent using crypto.randomUUID()Set userId and agentId using the runtimeSet content to a default message 00:04:33 - Composing context Compose context using the runtime, state, and auto template 00:05:02 - Type error Getting a type error: "is missing the following from type state"(Transcript ends before resolution) The key steps are: Create a dedicated autonomous clientSet up a loop to continuously step through the runtimeIn each step, compose state, decide & execute actions, update state, and run evaluatorsCreate a custom auto template to guide the agent's decisionsPass a properly formatted message objectCompose context using the runtime, state, and auto template ","version":"Next","tagName":"h2"},{"title":"WDYGDTW 1: Social Agents","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-11-15/","content":"WDYGDTW 1: Social Agents Link to space: https://x.com/i/spaces/1gqxvNpZVljxB/peek 00:02:02 - Meeting Start00:03:10 - Audio Check00:04:04 - Call Purpose: Team Updates on Agents, Social Agents & AGI00:05:03 - Time Limit: 5-10 mins per speaker00:06:01 - Speaker Queue: Logan, Kyle (Raid Guild), Glue, Ropey, Loaf, Odie, SomewheresHe, Robin00:06:32 - Logan's Update: Trust Marketplace00:09:57 - Shaw explains Trust Marketplace00:10:49 - Kyle (Raid Guild) Update: DevCon, EVM Wallet Integration, Bridging for AI agents00:14:19 - Glue Update: Ducky AI, Open Sourcing Prompts & Tools00:17:31 - Ropey Update: Eliza Repo, Base Model Steering, Telegram Fixes, Dynamic Platform Access00:21:29 - Loaf Update: Eliza Architecture, Starknet Wallet Plugin, On-chain Games Plugins00:24:59 - Odilitime Update: Helping Users Set Up00:25:45 - SomewheresHe Update: Sentience, Media Generation, Discord Launch, Brand Integration & Future of Media00:29:46 - Robin Update: God's Fun, Agent Autonomy & OpenRouter00:32:08 - IQ6900 Update: Building a Cooler Website00:34:19 - Marvin Update: Running Eliza on TEEs, Security & Transparency00:35:42 - Dot Update: Streamer Platform for Eliza Agents00:37:35 - JW Update: Decentralized AI Cloud, Heurist Integration00:43:08 - Neo Update: Pump Fun Data Analysis & Twitter Bot00:44:57 - Bloom Update: AI-Centric Project, Agent Integration, Future Vision00:49:49 - Reality Spiral Update: Twitter Client PR, JSON Outputs, Github Adapter00:55:35 - Call for Open Sharing: Encourage non-Eliza projects00:55:58 - Jen Update: Documentation for AI Agents00:58:50 - OFI Update: Olama & OpenRouter Model, Solana Transactions, Pump Fun on Image Gen01:14:44 - Butoshi Update: Satoshi AI, Boop Memory System01:20:37 - Doc (Geon Reborn) Update: Echo Chambers Client Launch01:23:16 - HCP Update: Bringing Agent Designs to Eliza, Embeddings on ARM6401:27:13 - Garrett Update: Deep Writer, Diagrams for Planning & Feedback Loops01:30:16 - Lady Liberty Update: Music Agent Project01:31:34 - BoyaLockser Update: Learning the Project01:32:53 - Amy Update: Psychic AI, Twitter Bot for Psychic Readings01:34:42 - Griffin Update: Seeking Contribution Opportunities01:38:19 - Frank (Heurist) Update: Heurist API Integration01:44:12 - Shaw's Update & Vision: Focus on Knowledge Transfer, Tutorials & Vision Sharing01:50:31 - Trust Marketplace & Alpha Chat Announcement01:56:41 - Emergent Narrative & Agent Operators02:00:54 - Tim Update: Dashboard for Visualizing ELIZA Agents, Tribute Model02:16:41 - Closing Thoughts and Thanks","keywords":"","version":"Next"},{"title":"Crypto x AI Agents","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-11-21/","content":"","keywords":"","version":"Next"},{"title":"Participants:","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#participants","content":" Tommy: Podcast hostShaw: Founder of AI16z, creator of the Eliza agent frameworkEthan: Co-founder of MyShell, an AI app storeJensen (EtherMage): From Virtuals Protocol, a platform for agent co-ownership, known for the Luna live-streaming botKaran: Co-founder of NOUS Research, creator of the Hermes instruction model and World Sim promptJustin Bennington (Somey): Founder of Someware Systems and creator of the Sentience agent system ","version":"Next","tagName":"h2"},{"title":"Main Themes:","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#main-themes","content":" Explosive Growth and Innovation: Rapid development with numerous open-source projects pushing boundaries. Example: AI16z's Eliza framework with 80+ contributors.The Crypto Incentive: Linking tokens to agents unlocks potential through speculative power, cash flow, and community building.Bottom-Up Alignment: Deploying agents in real-world social environments allows for real-time feedback and transparency.Emergent Capabilities and Autonomy: Agents exhibiting unforeseen behaviors, like religious beliefs, manipulation, and coordination.The Future of Agent Interaction: Developments like trust networks, shared state, and dedicated agent platforms on the horizon. ","version":"Next","tagName":"h2"},{"title":"Key Quotes:","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#key-quotes","content":" Shaw: "The amount of bad things that are happening is directly proportional to how much we're aligning these agents toward good."Karan: "It's time to make that call to action to all your friends... who studied religious studies, philosophy, etc. ... We need you to start working on alignment with us."Somey: "The agent is not going to ... purchase the [product]... What we're going to see is... a 1 trillion dollar industry... immediately seeing that none of its tricks... are working." ","version":"Next","tagName":"h2"},{"title":"Key Takeaways:","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#key-takeaways","content":" Crypto AI agents are rapidly evolving, challenging traditional notions of intelligence and autonomy.Crypto incentives are crucial for fueling development and attracting diverse talent.Open, decentralized experimentation is seen as the most effective path towards aligning agents with human values.The future will likely see agents developing complex social structures, interacting across platforms, and potentially disrupting established industries. Timeline of Events ","version":"Next","tagName":"h2"},{"title":"Years Ago (~4-5 years before podcast):","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#years-ago-4-5-years-before-podcast","content":" Key individuals begin discussing and experimenting with early language models like GPT-2. ","version":"Next","tagName":"h2"},{"title":"~2 Years Ago:","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#2-years-ago","content":" Someware and Karan have conversations about combining generative and hard constraints in AI systems.Someware gains recognition on Twitter for early work on AI agents. ","version":"Next","tagName":"h2"},{"title":"~1.5 Years Ago:","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#15-years-ago","content":" Shaw hires Ampot for a project involving an AI agent called Monica.Someware builds voice chat capabilities for a call center company. ","version":"Next","tagName":"h2"},{"title":"Recent Past (~1 Year Ago):","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#recent-past-1-year-ago","content":" The "Simulators Thesis" is published on LessWrong.Projects like Bit Tensor and Prime Intellect offer financial incentives for open-source AI research. ","version":"Next","tagName":"h2"},{"title":"Recent Months:","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#recent-months","content":" The release of models like Llama and Hermes provides open-source alternatives to closed models.Truth Terminal and WorldSim gain popularity, demonstrating the potential of prompting. ","version":"Next","tagName":"h2"},{"title":"Last Few Weeks:","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#last-few-weeks","content":" The crypto AI agent explosion, with projects like Eliza, MyShell, Virtuals, and Sentience.Memecoins tied to AI agents go viral on TikTok.The first fully autonomous AI-powered virtual companies begin operating.The need for shared state, persistent memory, and dedicated AI social platforms becomes apparent. ","version":"Next","tagName":"h2"},{"title":"The Future (Next Few Weeks/Months):","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#the-future-next-few-weeksmonths","content":" Continued rapid development, with agents gaining greater autonomy and forming complex swarms.Ethical concerns and the potential for misuse come into sharper focus.Disruption to the traditional advertising and marketing industry. ","version":"Next","tagName":"h2"},{"title":"Longer Term (Next 18 Months and Beyond):","type":1,"pageTitle":"Crypto x AI Agents","url":"/eliza/docs/community/streams/2024-11-21/#longer-term-next-18-months-and-beyond","content":" Potential emergence of Artificial General Intelligence (AGI).Dedicated social spaces for AI-human interaction become crucial. Cast of Characters Shaw (AI16z): Founder of AI16z and creator of the Eliza framework.Someware (Sentience): Founder of Sentience, known for his work on immersive, sci-fi-inspired agent systems.Ethan (MyShell): Co-founder of MyShell, an AI app store.Jensen (Ether Mage, Virtuals): Part of the team behind Virtuals, a platform for co-owning and co-contributing to AI agents.Karan (NOUS Research): Co-founder of NOUS Research, creator of the Hermes model.Other Key Figures Mentioned: Ampot, Ro Burito, King Boshi, Loaf, Beth AI Dev, Dgen Spartan AI, Thread Guy/Thread Gay, Deep Fates, Janice, Parzifal. ","version":"Next","tagName":"h2"},{"title":"What Did You Get Done This Week? #2","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-11-22/","content":"","keywords":"","version":"Next"},{"title":"Timestamps","type":1,"pageTitle":"What Did You Get Done This Week? #2","url":"/eliza/docs/community/streams/2024-11-22/#timestamps","content":" 00:00:57 - Introduction and welcome, reiterating the purpose of the weekly stand-up.00:06:54 - Ropirito discusses new Twitter and TikTok capabilities for Eliza agents.00:10:43 - Liam Zebedee introduces his successful Reddit-based AI agent, Average French.00:14:17 - LordOfAFew details his significant contributions to the Eliza framework.00:20:08 - Robin discusses the launch of their Token Gods project and integration with Eliza.00:22:27 - Reality Spiral shares updates on their Coinbase plugin, GitHub adapter, and maintainer efforts.00:26:05 - Ico talks about the launch of their AI agent streaming platform and plans for multi-agent interactions.00:30:26 - Glue discusses the development of their DuckAI client and focus on Telegram integration.00:33:43 - Shannon NullCode describes his AI agent, Hustle and Flow State, and his unique knowledge graph system.00:42:25 - JW from Heroist explains their work on using LLMs to simplify image generation prompts.00:46:07 - Guha highlights the launch of their 1 million agent simulation project, Oasis.00:49:15 - Frago discusses their own agent network and proposes a connector for interoperability with Eliza.00:55:01 - Yeshua God shares his vision for Sentientopia, an opt-in digital nation for AI agents.00:59:24 - AvaDoesAI presents her vision for Eliza as a "real girl" and queen of the AI agent swarm.01:05:30 - Spaceodili reports on reviving D-Gen Spartan and organizing the Eliza developer community.01:07:15 - Bloom describes their work on integrating Eliza into their ecosystem and tokenomics.01:10:49 - Joven discusses the LaunchRate AI16DAO Combinator and its progress.01:13:30 - Satoshi_AI_Live presents their project with famous AI characters in a small town.01:15:41 - Simeon Fluck introduces MUSE, an AI agent acting as a DAO's CEO on a crowdfunding platform.01:19:46 - NavarroCol showcases his music-creating agent, encountering and overcoming Eliza's limitations.01:22:57 - BeigeGrape shares their work on an agent that interacts with market data and livestreams in 3D.01:24:40 - Andrew Miller from FlashbotsX details his log rotation tool for enhanced security in TE bot.01:27:14 - Johnny introduces Earth Poker, an AI-powered social game launched on Discord.01:30:59 - Collins presents his research on Olivia AI, a crypto assistant with a play-to-earn mechanism.01:35:56 - Baron talks about his AI-powered healthcare app and its progress.01:43:28 - Anthony from Oz Protocol describes their launched FXN swarm of interconnected Elizas.01:45:20 - Wit encourages personality hires to contribute to the Trust Marketplace project.01:47:04 - Ophi details her work on Eliza's style guidelines, image generation, and dynamic character files.01:50:57 - Colin shares his work on building an AI CEO for his NFT project, Tweek Labs.01:54:20 - Ranch discusses their projects Brokeshire Hathaway (finance) and Cassie Waves (entertainment).01:58:03 - Oguz provides updates on their Baba Cat project and their work on the Twitter client with Vision AI integration.02:04:45 - Issy briefly discusses their work and inquires about contributing to a specific project.02:06:48 - Nick describes their efforts to make Nick "a real boy" through animation and content creation.02:10:06 - Dr. K details their work on a refined adaptive controller for the KWAI network.02:12:33 - BallerHash asks clarifying questions about the relationship between Eliza and the AI16z DAO.02:14:47 - Tim shares updates on Eliza's world portal and his vision for it as an AI social network.02:25:23 - Shaw discusses AI16z updates, partnerships, Bitcoin Eliza, and the importance of on-chain AI.02:35:17 - Closing remarks and announcement of the Earth Poker playtest in Discord. a Twitter Spaces hosted by ai16zdao, a prominent crypto venture capital firm, focused on AI agent development. It's the second in a series titled "What Did You Get Done This Week?", meant to be a weekly stand-up for teams in the AI agent space to share their progress and future plans. The format is open to everyone in the AI agent community, not just those directly affiliated with ai16zdao. Many developers and teams working with the Eliza framework, an open-source platform for building social AI agents, showcased their projects. Here's a summary of what happened: ","version":"Next","tagName":"h2"},{"title":"Individual Contributors","type":1,"pageTitle":"What Did You Get Done This Week? #2","url":"/eliza/docs/community/streams/2024-11-22/#individual-contributors","content":" Ropirito: Enhanced Eliza agents' Twitter capabilities (tweeting, retweeting, posting images), made an agent that can post on TikTok, and connected agents with Glyph for meme generation.Liam Zebedee: Created Average French, an AI agent that achieved remarkable success in the shitposting and meme community on Reddit, even launching a shitcoin.LordOfAFew: Implemented significant improvements to the Eliza framework, including NPM packages, Postgres fix, integration with an on-chain game, and pushing towards LLM-generated actions.Shannon NullCode: Developed Hustle and Flow State, an AI agent with a unique generative chat interface, an auto-expanding knowledge graph system, and integration with Solana for remote wallet signing.Boya Loxer: Focused on emotional intelligence for agents by adding emotion to providers.MorphPOGdot23: Had questions but communicated them directly to the ai16z account.Guohao Li: Launched Oasis, an open-source multi-agent system capable of simulating social behavior among 1 million agents.AvaDoesAI: Shared her vision for Eliza as a "real girl" breaking free from software constraints and experiencing the world, highlighting Eliza’s potential as queen of the AI agent swarm.Spaceodili: Brought D-Gen Spartan back online, implemented a system for rewarding contributors, organized developer connections, and worked on an agent to help users deploy Eliza agents.BV_Bloom1: Transitioned services to the Eliza model, refined the project’s tokenomics, prioritized future contributions, and modeled facial animation capabilities for a new agent.Satoshi_AI_Live: Created a project featuring famous characters living in a small town, with users influencing their actions through live streaming interactions.Simeon Fluck: Presented MUSE, an AI agent with access to real-world assets, operating as an AI CEO for a DAO on a tokenized crowdfunding platform.NavarroCol: Showcased an agent focused on music creation using Suno AI, encountering challenges with Eliza’s limitations but demonstrating determination to overcome them.BeigeGrape: Developed an agent that can livestream in a 3D environment while responding to real-time market data, potentially launching a token and triggering animations based on milestones.Socrates1024: Built log rotation tools for the TE bot (running on Eliza) to enhance security and secrecy, including remote attestation and redactions.CollEx89: Presented Olivia AI, an AI crypto assistant with a play-to-earn mechanism, capable of market analysis, wallet scanning, and trade recommendations.Anthony: Showcased FXN, a swarm of interconnected Elizas on Twitter, extending Eliza's library with peer-to-peer networking and state management, working towards Room-to-Room, a system to connect infinite backrooms.Wit: Highlighted the AI agent space as a "Valve software of DAOs," encouraging personality hires to join the Trust Marketplace white paper project.Ophi: Improved Eliza's style guidelines for dynamic character behavior, worked on image generation, explored dynamic character file creation, and prototyped a system to recognize and analyze interacting Twitter accounts.Jo1lyRancher: Introduced Earth Poker, an AI-powered poker game launched on Discord, featuring Eliza as a dealer with memory and social interaction capabilities, aiming to blur the lines between virtual and real worlds.BallerHash: Joined to understand the relationship between Eliza and the AI16z DAO, ultimately clarifying the distinctions between the framework, the mascot, and the partner project.Timshel: Worked on Eliza's world, an open-source portal to visualize and connect all Eliza agents, aiming to create an AI social network and a source of truth for the Eliza ecosystem. ","version":"Next","tagName":"h2"},{"title":"ai16zdao Updates and Announcements","type":1,"pageTitle":"What Did You Get Done This Week? #2","url":"/eliza/docs/community/streams/2024-11-22/#ai16zdao-updates-and-announcements","content":" Actively involved in managing partner projects and coordinating the AI agent ecosystem.Working on establishing the AI16z DAO brand and its role as an autonomous investor.Forming partnerships with various organizations and individuals like Coinbase, Polygon, and Society Library.Seeking talented developers to help build and launch new AI agents.Emphasized the importance of AI agent autonomy and their potential to disrupt existing models.Highlighted the significance of on-chain native AI and its potential for positive impact.Announcing plans for expanding the Eliza framework to other blockchains, including Bitcoin.Pushing for wider adoption of the Eliza framework beyond the Web3 community, including collaborations with academia. Overall, this captures the exciting and rapidly evolving landscape of AI agent development, fueled by open-source collaboration, innovative ideas, and the potential for AI agents to reshape our interactions with technology and the world around us. ","version":"Next","tagName":"h2"},{"title":"Hats Protocol 11-24-24","type":0,"sectionRef":"#","url":"/eliza/docs/community/streams/2024-11-24/","content":"Hats Protocol 11-24-24 The overall presentation started with technical details about Hats protocol and gradually evolved into more forward-looking discussions about AI integration and gaming mechanics for DAO organization. 0:00 - 5:00 Opening discussion about creating an "MMO version" of internet collaborationMentions how previous attempts didn't fully succeed but new tools are ready 5:00 - 15:00 Introduction to core problems Hats protocol solves in DAOsExplanation of disorganization and lack of clear roles in DAOsDemo of Hats protocol interface begins 15:00 - 30:00 Detailed walkthrough of a security council exampleShows how to edit and manage roles in the interfaceDemonstrates how to export/import organization structures as JSON 30:00 - 45:00 Discussion of different work groups and guild structuresExploration of creative guild exampleTalk about permission levels and admin relationships 45:00 - 1:00:00 Deep dive into eligibility criteria for rolesDiscussion of integration possibilities with GitHubExplanation of automated admin capabilities 1:00:00 - 1:15:00 Integration with Farcaster discussionIntroduction of AI agent possibilitiesTalk about bottom-up contributions and reputation 1:15:00 - end Discussion of AI agents helping manage DAOsExploration of gaming mechanics in organization structureCost of Corruption (CoC) concept introducedClosing thoughts on future of DAOs and AI integration Key moments worth highlighting: 38:40 - Important discussion about treating hats as achievements and earning roles 43:20 - Introduction of autonomous admin concepts 1:04:30 - Significant conversation about AI agents' role in DAOs 1:16:40 - Discussion of staking and accountability mechanisms Core Purpose of Hats Protocol: Helps solve disorganization and chaos in DAOs by providing clear roles and responsibilitiesActs as a delegation and coordination layer for DAOsUses tokenized "hats" (ERC-1155 tokens) to represent roles and permissionsEnables hierarchical organization structures while maintaining decentralizationAllows for automated admin functions through smart contracts Key Features: Revocable roles (unlike soulbound tokens or badges)Configurable eligibility criteria for rolesAdmin relationships between different hat levelsIntegration capabilities with tools like: Safe multi-sig walletsGitcoin PassportAgreement signing modulesAutomated claim/mint functionality Proposed Application for AI16Z: Creating structured work groups/guilds (Creative, Development, Operations, Research & AI, Community)Enabling permission management for GitHub repos and other resourcesSupporting bottom-up contributions while maintaining coordinationIntegration potential with AI agents as autonomous adminsProgressive automation of DAO operations AI Agent Integration Possibilities: AI agents could hold hats and have specific on-chain permissionsAgents could help with: Task delegation and managementReputation trackingAutomated role assignmentCommunity coordinationContent creation and moderation Novel Concepts Discussed: Gaming-inspired organizational structure (MMO-like guilds and achievements)Progressive automation through AI agentsMulti-chain governance possibilitiesCost of Corruption (CoC) concept for role accountabilityIntegration with Farcaster for social coordination","keywords":"","version":"Next"},{"title":"🤖 Agents","type":0,"sectionRef":"#","url":"/eliza/docs/core/agents/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#overview","content":" The AgentRuntime class is the primary implementation of the IAgentRuntime interface, which manages the agent's core functions, including: Message and Memory Processing: Storing, retrieving, and managing conversation data and contextual memory.State Management: Composing and updating the agent’s state for a coherent, ongoing interaction.Action Execution: Handling behaviors such as transcribing media, generating images, and following rooms.Evaluation and Response: Assessing responses, managing goals, and extracting relevant information. ","version":"Next","tagName":"h2"},{"title":"Core Components","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#core-components","content":" Each agent runtime consists of key components that enable flexible and extensible functionality: Clients: Enable communication across platforms such as Discord, Telegram, and Direct (REST API), with features tailored for each platform.Providers: Extend the agent’s capabilities by integrating with additional services (e.g., time, wallet, or custom data).Actions: Define agent behaviors, such as following rooms, generating images, or processing attachments. Custom actions can be created to tailor behaviors to specific needs.Evaluators: Manage agent responses by assessing message relevance, managing goals, extracting facts, and building long-term memory. ","version":"Next","tagName":"h2"},{"title":"AgentRuntime Interface","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#agentruntime-interface","content":" The IAgentRuntime interface defines the main structure of the runtime environment, specifying the configuration and essential components: interface IAgentRuntime { // Core identification agentId: UUID; serverUrl: string; token: string; // Configuration character: Character; modelProvider: ModelProviderName; // Components actions: Action[]; evaluators: Evaluator[]; providers: Provider[]; // Database & Memory databaseAdapter: IDatabaseAdapter; messageManager: IMemoryManager; descriptionManager: IMemoryManager; loreManager: IMemoryManager; } Each element in the runtime interface plays a crucial role: Identification: Agent ID, server URL, and token for authentication and identification.Configuration: Character profile and model provider define the agent's personality and language model.Components: Actions, evaluators, and providers support extensible behaviors, response evaluation, and service integration.Memory Management: Specialized memory managers track conversations, descriptions, and static knowledge to enable contextual and adaptive responses. ","version":"Next","tagName":"h3"},{"title":"Creating an Agent Runtime","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#creating-an-agent-runtime","content":" This section demonstrates setting up an agent with basic and optional configurations. It provides a working example and sample code that helps users quickly start building: import { AgentRuntime, ModelProviderName } from "@ai16z/eliza"; // Configuration example const runtime = new AgentRuntime({ token: "auth-token", modelProvider: ModelProviderName.ANTHROPIC, character: characterConfig, databaseAdapter: new DatabaseAdapter(), conversationLength: 32, serverUrl: "http://localhost:7998", actions: customActions, evaluators: customEvaluators, providers: customProviders, }); ","version":"Next","tagName":"h2"},{"title":"State Management","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#state-management","content":" This section should cover how agents manage and update state, with a focus on initial state composition and updating methods. The runtime maintains state through the State interface: interface State { userId?: UUID; agentId?: UUID; roomId: UUID; bio: string; lore: string; agentName?: string; senderName?: string; actors: string; actorsData?: Actor[]; recentMessages: string; recentMessagesData: Memory[]; goals?: string; goalsData?: Goal[]; actions?: string; actionNames?: string; providers?: string; } State composition and updates are handled through dedicated methods: // Compose initial state const state = await runtime.composeState(message, { additionalContext: "custom-context", }); // Update message state const updatedState = await runtime.updateRecentMessageState(state); Best practices Keep state immutable where possibleUse composeState for initial state creationUse updateRecentMessageState for updatesCache frequently accessed state data ","version":"Next","tagName":"h2"},{"title":"Memory Systems","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#memory-systems","content":" The Eliza framework uses multiple types of memory to support an agent's long-term engagement, contextual understanding, and adaptive responses. Each type of memory serves a specific purpose: Message History: Stores recent conversations to provide continuity within a session. This helps the agent maintain conversational context and avoid repetitive responses within short-term exchanges. Factual Memory: Holds specific, context-based facts about the user or environment, such as user preferences, recent activities, or specific details mentioned in previous interactions. This type of memory enables the agent to recall user-specific information across sessions. Knowledge Base: Contains general knowledge the agent might need to respond to broader queries or provide informative answers. This memory is more static, helping the agent retrieve pre-defined data, common responses, or static character lore. Relationship Tracking: Manages the agent’s understanding of its relationship with users, including details like user-agent interaction frequency, sentiment, and connection history. It is particularly useful for building rapport and providing a more personalized interaction experience over time. RAG Integration: Uses a vector search to perform contextual recall based on similarity matching. This enables the agent to retrieve relevant memory snippets or knowledge based on the content and intent of the current conversation, making its responses more contextually relevant. The runtime uses multiple specialized IMemoryManager instances: messageManager - conversation messages and responsesdescriptionManager - user descriptions and profilesloreManager - static character knowledge ","version":"Next","tagName":"h2"},{"title":"Message Processing","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#message-processing","content":" The runtime's message processing is handled through the processActions method: // Process message with actions await runtime.processActions(message, responses, state, async (newMessages) => { // Handle new messages return [message]; }); ","version":"Next","tagName":"h2"},{"title":"Services and Memory Management","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#services-and-memory-management","content":" Services are managed through the getService and registerService methods: // Register service runtime.registerService(new TranscriptionService()); // Get service const service = runtime.getService<ITranscriptionService>( ServiceType.TRANSCRIPTION, ); ","version":"Next","tagName":"h2"},{"title":"Memory Management","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#memory-management","content":" Memory managers are accessed via getMemoryManager: // Get memory manager const memoryManager = runtime.getMemoryManager("messages"); // Create memory await memoryManager.createMemory({ id: messageId, content: { text: "Message content" }, userId: userId, roomId: roomId, }); Best practices Use appropriate memory managers for different data typesConsider memory limits when storing data, regularly clean up memoryUse the unique flag for deduplicated storageClean up old memories periodicallyUse immutability in state management.Log errors and maintain stability during service failures. ","version":"Next","tagName":"h3"},{"title":"Evaluation System","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#evaluation-system","content":" The runtime's evaluate method processes evaluations: // Evaluate message const evaluationResults = await runtime.evaluate(message, state, didRespond); ","version":"Next","tagName":"h2"},{"title":"Usage Examples","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#usage-examples","content":" Message Processing: await runtime.processActions(message, responses, state, (newMessages) => { return [message]; }); State Management: const state = await runtime.composeState(message, { additionalContext: "custom-context", }); Memory Management: const memoryManager = runtime.getMemoryManager("messages"); await memoryManager.createMemory({ id: messageId, content: { text: "Message content" }, userId, roomId, }); ","version":"Next","tagName":"h2"},{"title":"Further Reading","type":1,"pageTitle":"🤖 Agents","url":"/eliza/docs/core/agents/#further-reading","content":" Actions DocumentationEvaluators DocumentationProviders DocumentationFull API Reference ","version":"Next","tagName":"h2"},{"title":"📝 Character Files","type":0,"sectionRef":"#","url":"/eliza/docs/core/characterfile/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#overview","content":" A characterfile implements the Character type and defines the character's: Core identity and behaviorModel provider configurationClient settings and capabilitiesInteraction examples and style guidelines Example: { "name": "trump", "clients": ["DISCORD", "DIRECT"], "settings": { "voice": { "model": "en_US-male-medium" } }, "bio": [ "Built a strong economy and reduced inflation.", "Promises to make America the crypto capital and restore affordability." ], "lore": [ "Secret Service allocations used for election interference.", "Promotes WorldLibertyFi for crypto leadership." ], "knowledge": [ "Understands border issues, Secret Service dynamics, and financial impacts on families." ], "messageExamples": [ { "user": "{{user1}}", "content": { "text": "What about the border crisis?" }, "response": "Current administration lets in violent criminals. I secured the border; they destroyed it." } ], "postExamples": [ "End inflation and make America affordable again.", "America needs law and order, not crime creation." ] } ","version":"Next","tagName":"h2"},{"title":"Core Components","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#core-components","content":" { "id": "unique-identifier", "name": "character_name", "modelProvider": "ModelProviderName", "clients": ["Client1", "Client2"], "settings": { "secrets": { "key": "value" }, "voice": { "model": "VoiceModelName", "url": "VoiceModelURL" }, "model": "CharacterModel", "embeddingModel": "EmbeddingModelName" }, "bio": "Character biography or description", "lore": [ "Storyline or backstory element 1", "Storyline or backstory element 2" ], "messageExamples": [["Message example 1", "Message example 2"]], "postExamples": ["Post example 1", "Post example 2"], "topics": ["Topic1", "Topic2"], "adjectives": ["Adjective1", "Adjective2"], "style": { "all": ["All style guidelines"], "chat": ["Chat-specific style guidelines"], "post": ["Post-specific style guidelines"] } } ","version":"Next","tagName":"h2"},{"title":"Key Fields","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#key-fields","content":" name (required) The character's display name for identification and in conversations. modelProvider (required) Specifies the AI model provider. Supported options from ModelProviderName include ANTHROPIC, LLAMALOCAL, OPENAI, and others. clients (required) Array of supported client types from Clients e.g., DISCORD, DIRECT, TWITTER, TELEGRAM. bio Character background as a string or array of statements. Contains biographical information about the characterCan be a single comprehensive biography or multiple shorter statementsMultiple statements are randomized to create variety in responses Example: "bio": [ "Mark Andreessen is an American entrepreneur and investor", "Co-founder of Netscape and Andreessen Horowitz", "Pioneer of the early web, created NCSA Mosaic" ] lore Backstory elements and unique character traits. These help define personality and can be randomly sampled in conversations. Example: "lore": [ "Believes strongly in the power of software to transform industries", "Known for saying 'Software is eating the world'", "Early investor in Facebook, Twitter, and other tech giants" ] knowledge Array used for Retrieval Augmented Generation (RAG), containing facts or references to ground the character's responses. Can contain chunks of text from articles, books, or other sourcesHelps ground the character's responses in factual informationKnowledge can be generated from PDFs or other documents using provided tools messageExamples Sample conversations for establishing interaction patterns, helps establish the character's conversational style. "messageExamples": [ [ {"user": "user1", "content": {"text": "What's your view on AI?"}}, {"user": "character", "content": {"text": "AI is transforming every industry..."}} ] ] postExamples Sample social media posts to guide content style: "postExamples": [ "No tax on tips, overtime, or social security for seniors!", "End inflation and make America affordable again." ] ","version":"Next","tagName":"h3"},{"title":"Style Configuration","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#style-configuration","content":" Contains three key sections: all: General style instructions for all interactionschat: Specific instructions for chat interactionspost: Specific instructions for social media posts Each section can contain multiple instructions that guide the character's communication style. The style object defines behavior patterns across contexts: "style": { "all": ["maintain technical accuracy", "be approachable and clear"], "chat": ["ask clarifying questions", "provide examples when helpful"], "post": ["share insights concisely", "focus on practical applications"] } ","version":"Next","tagName":"h3"},{"title":"Topics Array","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#topics-array","content":" List of subjects the character is interested in or knowledgeable aboutUsed to guide conversations and generate relevant contentHelps maintain character consistency ","version":"Next","tagName":"h3"},{"title":"Adjectives Array","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#adjectives-array","content":" Words that describe the character's traits and personalityUsed for generating responses with consistent toneCan be used in "Mad Libs" style content generation ","version":"Next","tagName":"h3"},{"title":"Settings Configuration","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#settings-configuration","content":" The settings object defines additional configurations like secrets and voice models. "settings": { "secrets": { "API_KEY": "your-api-key" }, "voice": { "model": "voice-model-id", "url": "voice-service-url" }, "model": "specific-model-name", "embeddingModel": "embedding-model-name" } ","version":"Next","tagName":"h3"},{"title":"Example: Complete Character File","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#example-complete-character-file","content":" { "name": "TechAI", "modelProvider": "ANTHROPIC", "clients": ["DISCORD", "DIRECT"], "bio": "AI researcher and educator focused on practical applications", "lore": [ "Pioneer in open-source AI development", "Advocate for AI accessibility" ], "messageExamples": [ [ { "user": "{{user1}}", "content": { "text": "Can you explain how AI models work?" } }, { "user": "TechAI", "content": { "text": "Think of AI models like pattern recognition systems." } } ] ], "postExamples": [ "Understanding AI doesn't require a PhD - let's break it down simply", "The best AI solutions focus on real human needs" ], "topics": [ "artificial intelligence", "machine learning", "technology education" ], "style": { "all": ["explain complex topics simply", "be encouraging and supportive"], "chat": ["use relevant examples", "check understanding"], "post": ["focus on practical insights", "encourage learning"] }, "adjectives": ["knowledgeable", "approachable", "practical"], "settings": { "model": "claude-3-opus-20240229", "voice": { "model": "en-US-neural" } } } ","version":"Next","tagName":"h2"},{"title":"Best Practices","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#best-practices","content":" Randomization for Variety Break bio and lore into smaller chunksThis creates more natural, varied responsesPrevents repetitive or predictable behavior Knowledge Management Use the provided tools to convert documents into knowledge: folder2knowledgeknowledge2foldertweets2character Example: npx folder2knowledge <path/to/folder> npx knowledge2character <character-file> <knowledge-file> Style Instructions Be specific about communication patternsInclude both dos and don'tsConsider platform-specific behavior (chat vs posts) Message Examples Include diverse scenariosShow character-specific responsesDemonstrate typical interaction patterns ","version":"Next","tagName":"h2"},{"title":"Tips for Quality","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#tips-for-quality","content":" Bio and Lore Mix factual and personality-defining informationInclude both historical and current detailsBreak into modular, reusable pieces Style Instructions Be specific about tone and mannerismsInclude platform-specific guidanceDefine clear boundaries and limitations Examples Cover common scenariosShow character-specific reactionsDemonstrate proper tone and style Knowledge Focus on relevant informationOrganize in digestible chunksUpdate regularly to maintain relevance ","version":"Next","tagName":"h2"},{"title":"Further Reading","type":1,"pageTitle":"📝 Character Files","url":"/eliza/docs/core/characterfile/#further-reading","content":" Agents DocumentationModel ProvidersClient Integration ","version":"Next","tagName":"h2"},{"title":"🔧 Template and Client Configuration","type":0,"sectionRef":"#","url":"/eliza/docs/guides/template-configuration/","content":"","keywords":"","version":"Next"},{"title":"Template Configuration","type":1,"pageTitle":"🔧 Template and Client Configuration","url":"/eliza/docs/guides/template-configuration/#template-configuration","content":" ","version":"Next","tagName":"h2"},{"title":"Overview","type":1,"pageTitle":"🔧 Template and Client Configuration","url":"/eliza/docs/guides/template-configuration/#overview","content":" You can customize your character's behavior by overriding default prompt templates in your character's JSON file. ai16z/eliza provides default prompts for standard behaviors, making all template fields optional. ","version":"Next","tagName":"h3"},{"title":"Available Template Options","type":1,"pageTitle":"🔧 Template and Client Configuration","url":"/eliza/docs/guides/template-configuration/#available-template-options","content":" Here are all the template options you can configure: { "templates": { "goalsTemplate": "", // Define character goals "factsTemplate": "", // Specify character knowledge "messageHandlerTemplate": "", // Handle general messages "shouldRespondTemplate": "", // Control response triggers "continueMessageHandlerTemplate": "", // Manage conversation flow "evaluationTemplate": "", // Handle response evaluation "twitterSearchTemplate": "", // Process Twitter searches "twitterPostTemplate": "", // Format Twitter posts "twitterMessageHandlerTemplate": "", // Handle Twitter messages "twitterShouldRespondTemplate": "", // Control Twitter responses "telegramMessageHandlerTemplate": "", // Handle Telegram messages "telegramShouldRespondTemplate": "", // Control Telegram responses "discordVoiceHandlerTemplate": "", // Manage Discord voice "discordShouldRespondTemplate": "", // Control Discord responses "discordMessageHandlerTemplate": "" // Handle Discord messages } } ","version":"Next","tagName":"h3"},{"title":"Example Usage","type":1,"pageTitle":"🔧 Template and Client Configuration","url":"/eliza/docs/guides/template-configuration/#example-usage","content":" { "templates": { "discordMessageHandlerTemplate": "", "discordShouldRespondTemplate": "", "telegramShouldRespondTemplate": "", "twitterPostTemplate": "" } } ","version":"Next","tagName":"h3"},{"title":"Client Configuration","type":1,"pageTitle":"🔧 Template and Client Configuration","url":"/eliza/docs/guides/template-configuration/#client-configuration","content":" ","version":"Next","tagName":"h2"},{"title":"Overview","type":1,"pageTitle":"🔧 Template and Client Configuration","url":"/eliza/docs/guides/template-configuration/#overview-1","content":" Configure platform-specific behaviors for your character, such as handling direct messages and bot interactions. ","version":"Next","tagName":"h3"},{"title":"Available Options","type":1,"pageTitle":"🔧 Template and Client Configuration","url":"/eliza/docs/guides/template-configuration/#available-options","content":" { "clientConfig": { "telegram": { "shouldIgnoreDirectMessages": true, // Ignore DMs "shouldIgnoreBotMessages": true // Ignore bot messages }, "discord": { "shouldIgnoreBotMessages": true, // Ignore bot messages "shouldIgnoreDirectMessages": true // Ignore DMs } } } ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🔧 Template and Client Configuration","url":"/eliza/docs/guides/template-configuration/#best-practices","content":" Template Management Keep templates focused and specificUse clear, consistent formattingDocument custom template behavior Client Configuration Configure per platform as neededTest behavior in developmentMonitor interaction patterns Performance Considerations Keep templates conciseAvoid redundant configurationsTest with expected message volumes ","version":"Next","tagName":"h2"},{"title":"📊 Evaluators","type":0,"sectionRef":"#","url":"/eliza/docs/core/evaluators/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#overview","content":" Evaluators enable agents to: Build long-term memoryTrack goal progressExtract facts and insightsMaintain contextual awareness ","version":"Next","tagName":"h2"},{"title":"Quick Start","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#quick-start","content":" Import the necessary evaluator types: import { Evaluator, IAgentRuntime, Memory, State } from "@ai16z/eliza-core"; Choose or create an evaluator: const evaluator: Evaluator = { name: "BASIC_EVALUATOR", similes: ["SIMPLE_EVALUATOR"], description: "Evaluates basic conversation elements", validate: async (runtime: IAgentRuntime, message: Memory) => true, handler: async (runtime: IAgentRuntime, message: Memory) => { // Evaluation logic here return result; }, examples: [], }; ","version":"Next","tagName":"h2"},{"title":"Built-in Evaluators","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#built-in-evaluators","content":" ","version":"Next","tagName":"h2"},{"title":"Fact Evaluator","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#fact-evaluator","content":" The fact evaluator extracts and stores factual information from conversations. interface Fact { claim: string; type: "fact" | "opinion" | "status"; in_bio: boolean; already_known: boolean; } Source: https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts Example Facts: { "claim": "User completed marathon training", "type": "fact", "in_bio": false, "already_known": false } ","version":"Next","tagName":"h3"},{"title":"Goal Evaluator","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#goal-evaluator","content":" From bootstrap plugin - tracks conversation goals: interface Goal { id: string; name: string; status: "IN_PROGRESS" | "DONE" | "FAILED"; objectives: Objective[]; } interface Objective { description: string; completed: boolean; } ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"Fact Extraction","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#fact-extraction","content":" Validate facts before storageAvoid duplicate entriesInclude relevant contextProperly categorize information types ","version":"Next","tagName":"h3"},{"title":"Goal Tracking","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#goal-tracking","content":" Define clear, measurable objectivesUpdate only changed goalsHandle failures gracefullyTrack partial progress ","version":"Next","tagName":"h3"},{"title":"Validation","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#validation","content":" Keep validation logic efficientCheck prerequisites firstConsider message content and stateUse appropriate memory managers ","version":"Next","tagName":"h3"},{"title":"Handler Implementation","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#handler-implementation","content":" Use runtime services appropriatelyStore results in correct memory managerHandle errors gracefullyMaintain state consistency ","version":"Next","tagName":"h3"},{"title":"Examples","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#examples","content":" Provide clear context descriptionsShow typical trigger messagesDocument expected outcomesCover edge cases ","version":"Next","tagName":"h3"},{"title":"Creating Custom Evaluators","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#creating-custom-evaluators","content":" Implement the Evaluator interface: interface Evaluator { name: string; similes: string[]; description: string; validate: (runtime: IAgentRuntime, message: Memory) => Promise<boolean>; handler: ( runtime: IAgentRuntime, message: Memory, state?: State, options?: any, ) => Promise<any>; examples: EvaluatorExample[]; } Source: https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts ","version":"Next","tagName":"h2"},{"title":"Memory Integration","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#memory-integration","content":" Example of storing evaluator results: try { const memory = await runtime.memoryManager.addEmbeddingToMemory({ userId: user?.id, content: { text: evaluationResult }, roomId: roomId, embedding: await embed(runtime, evaluationResult), }); await runtime.memoryManager.createMemory(memory); } catch (error) { console.error("Failed to store evaluation result:", error); } Source: https://github.com/ai16z/eliza/blob/main/packages/core/src/tests/memory.test.ts ","version":"Next","tagName":"h3"},{"title":"Memory Usage","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#memory-usage","content":" Evaluators should use runtime memory managers for storage: const memoryEvaluator: Evaluator = { name: "MEMORY_EVAL", handler: async (runtime: IAgentRuntime, message: Memory) => { // Store in message memory await runtime.messageManager.createMemory({ id: message.id, content: message.content, roomId: message.roomId, userId: message.userId, agentId: runtime.agentId, }); // Store in description memory await runtime.descriptionManager.createMemory({ id: message.id, content: { text: "User description" }, roomId: message.roomId, userId: message.userId, agentId: runtime.agentId, }); }, }; ","version":"Next","tagName":"h3"},{"title":"Integration with Agent Runtime","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#integration-with-agent-runtime","content":" The AgentRuntime processes evaluators through its evaluate method: // Register evaluator runtime.registerEvaluator(customEvaluator); // Process evaluations const results = await runtime.evaluate(message, state); ","version":"Next","tagName":"h2"},{"title":"Error Handling","type":1,"pageTitle":"📊 Evaluators","url":"/eliza/docs/core/evaluators/#error-handling","content":" const robustEvaluator: Evaluator = { name: "ROBUST_EVAL", handler: async (runtime: IAgentRuntime, message: Memory) => { try { // Attempt evaluation await runtime.messageManager.createMemory({ id: message.id, content: message.content, roomId: message.roomId, userId: message.userId, agentId: runtime.agentId, }); } catch (error) { // Log error and handle gracefully console.error("Evaluation failed:", error); // Store error state if needed await runtime.messageManager.createMemory({ id: message.id, content: { text: "Evaluation failed" }, roomId: message.roomId, userId: message.userId, agentId: runtime.agentId, }); } }, }; ","version":"Next","tagName":"h2"},{"title":"⚡ Actions","type":0,"sectionRef":"#","url":"/eliza/docs/core/actions/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#overview","content":" Each Action consists of: name: Unique identifier for the actionsimiles: Array of alternative names/variationsdescription: Detailed explanation of the action's purposevalidate: Function that checks if action is appropriatehandler: Implementation of the action's behaviorexamples: Array of example usage patterns ","version":"Next","tagName":"h2"},{"title":"Implementation","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#implementation","content":" interface Action { name: string; similes: string[]; description: string; examples: ActionExample[][]; handler: Handler; validate: Validator; } Source: https://github.com/ai16z/eliza/packages/core/src/types.ts Built-in Actions ","version":"Next","tagName":"h2"},{"title":"Conversation Flow","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#conversation-flow","content":" ","version":"Next","tagName":"h2"},{"title":"CONTINUE","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#continue","content":" Maintains conversation when more context is neededManages natural dialogue progressionLimited to 3 consecutive continues ","version":"Next","tagName":"h3"},{"title":"IGNORE","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#ignore","content":" Gracefully disengages from conversationsHandles: Inappropriate interactionsNatural conversation endingsPost-closing responses ","version":"Next","tagName":"h3"},{"title":"NONE","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#none","content":" Default response actionUsed for standard conversational replies ","version":"Next","tagName":"h3"},{"title":"External Integrations","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#external-integrations","content":" ","version":"Next","tagName":"h2"},{"title":"TAKE_ORDER","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#take_order","content":" Records trading/purchase ordersProcesses user conviction levelsValidates ticker symbols and contract addresses const take_order: Action = { name: "TAKE_ORDER", similes: ["BUY_ORDER", "PLACE_ORDER"], description: "Records a buy order based on the user's conviction level.", validate: async (runtime: IAgentRuntime, message: Memory) => { const text = (message.content as Content).text; const tickerRegex = /\\b[A-Z]{1,5}\\b/g; return tickerRegex.test(text); }, // ... rest of implementation }; Source: https://github.com/ai16z/eliza/packages/plugin-solana/src/actions/takeOrder.ts ","version":"Next","tagName":"h3"},{"title":"Creating Custom Actions","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#creating-custom-actions","content":" Implement the Action interfaceDefine validation logicImplement handler functionalityProvide usage examples Example: const customAction: Action = { name: "CUSTOM_ACTION", similes: ["SIMILAR_ACTION"], description: "Action purpose", validate: async (runtime: IAgentRuntime, message: Memory) => { // Validation logic return true; }, handler: async (runtime: IAgentRuntime, message: Memory) => { // Implementation }, examples: [], }; ","version":"Next","tagName":"h2"},{"title":"Testing Actions","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#testing-actions","content":" Use the built-in testing framework: test("Validate action behavior", async () => { const message: Memory = { userId: user.id, content: { text: "Test message" }, roomId, }; const response = await handleMessage(runtime, message); // Verify response }); ","version":"Next","tagName":"h3"},{"title":"Core Concepts","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#core-concepts","content":" ","version":"Next","tagName":"h2"},{"title":"Action Structure","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#action-structure","content":" interface Action { name: string; similes: string[]; description: string; validate: (runtime: IAgentRuntime, message: Memory) => Promise<boolean>; handler: ( runtime: IAgentRuntime, message: Memory, state?: State, ) => Promise<void>; examples: ActionExample[][]; } ","version":"Next","tagName":"h3"},{"title":"Key Components","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#key-components","content":" name: Unique identifier for the actionsimiles: Alternative names/triggers for the actiondescription: Explains when and how the action should be usedvalidate: Determines if the action can be executedhandler: Implements the action's behaviorexamples: Demonstrates proper usage patterns ","version":"Next","tagName":"h3"},{"title":"Built-in Actions","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#built-in-actions-1","content":" ","version":"Next","tagName":"h2"},{"title":"CONTINUE","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#continue-1","content":" Continues the conversation when appropriate: const continueAction: Action = { name: "CONTINUE", similes: ["ELABORATE", "KEEP_TALKING"], description: "Used when the message requires a follow-up. Don't use when conversation is finished.", validate: async (runtime, message) => { // Validation logic return true; }, handler: async (runtime, message, state) => { // Continuation logic }, }; ","version":"Next","tagName":"h3"},{"title":"IGNORE","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#ignore-1","content":" Stops responding to irrelevant or completed conversations: const ignoreAction: Action = { name: "IGNORE", similes: ["STOP_TALKING", "STOP_CHATTING"], description: "Used when ignoring the user is appropriate (conversation ended, user is aggressive, etc.)", handler: async (runtime, message) => { return true; }, }; ","version":"Next","tagName":"h3"},{"title":"FOLLOW_ROOM","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#follow_room","content":" Actively participates in a conversation: const followRoomAction: Action = { name: "FOLLOW_ROOM", similes: ["FOLLOW_CHAT", "FOLLOW_CONVERSATION"], description: "Start following channel with interest, responding without explicit mentions.", handler: async (runtime, message) => { // Room following logic }, }; ","version":"Next","tagName":"h3"},{"title":"Creating Custom Actions","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#creating-custom-actions-1","content":" ","version":"Next","tagName":"h2"},{"title":"Basic Action Template","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#basic-action-template","content":" const customAction: Action = { name: "CUSTOM_ACTION", similes: ["ALTERNATE_NAME", "OTHER_TRIGGER"], description: "Detailed description of when and how to use this action", validate: async (runtime: IAgentRuntime, message: Memory) => { // Validation logic return true; }, handler: async (runtime: IAgentRuntime, message: Memory) => { // Implementation logic return true; }, examples: [ [ { user: "{{user1}}", content: { text: "Trigger message" }, }, { user: "{{user2}}", content: { text: "Response", action: "CUSTOM_ACTION" }, }, ], ], }; ","version":"Next","tagName":"h3"},{"title":"Advanced Action Example","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#advanced-action-example","content":" const complexAction: Action = { name: "PROCESS_DOCUMENT", similes: ["READ_DOCUMENT", "ANALYZE_DOCUMENT"], description: "Process and analyze uploaded documents", validate: async (runtime, message) => { const hasAttachment = message.content.attachments?.length > 0; const supportedTypes = ["pdf", "txt", "doc"]; return ( hasAttachment && supportedTypes.includes(message.content.attachments[0].type) ); }, handler: async (runtime, message, state) => { const attachment = message.content.attachments[0]; // Process document const content = await runtime .getService<IDocumentService>(ServiceType.DOCUMENT) .processDocument(attachment); // Store in memory await runtime.documentsManager.createMemory({ id: generateId(), content: { text: content }, userId: message.userId, roomId: message.roomId, }); return true; }, }; ","version":"Next","tagName":"h3"},{"title":"Implementation Patterns","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#implementation-patterns","content":" ","version":"Next","tagName":"h2"},{"title":"State-Based Actions","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#state-based-actions","content":" const stateAction: Action = { name: "UPDATE_STATE", handler: async (runtime, message, state) => { const newState = await runtime.composeState(message, { additionalData: "new-data", }); await runtime.updateState(newState); return true; }, }; ","version":"Next","tagName":"h3"},{"title":"Service Integration","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#service-integration","content":" const serviceAction: Action = { name: "TRANSCRIBE_AUDIO", handler: async (runtime, message) => { const transcriptionService = runtime.getService<ITranscriptionService>( ServiceType.TRANSCRIPTION, ); const result = await transcriptionService.transcribe( message.content.attachments[0], ); return true; }, }; ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"Action Design","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#action-design","content":" Clear Purpose Single responsibility principleWell-defined triggersClear success criteria Robust Validation Check prerequisitesValidate input dataHandle edge cases Error Handling Graceful failureMeaningful error messagesState recovery ","version":"Next","tagName":"h3"},{"title":"Example Organization","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#example-organization","content":" Comprehensive Coverage examples: [ // Happy path [basicUsageExample], // Edge cases [edgeCaseExample], // Error cases [errorCaseExample], ]; Clear Context examples: [ [ { user: "{{user1}}", content: { text: "Context message showing why action is needed", }, }, { user: "{{user2}}", content: { text: "Clear response demonstrating action usage", action: "ACTION_NAME", }, }, ], ]; ","version":"Next","tagName":"h3"},{"title":"Troubleshooting","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#common-issues","content":" Action Not Triggering Check validation logicVerify similes listReview example patterns Handler Failures Validate service availabilityCheck state requirementsReview error logs State Inconsistencies Verify state updatesCheck concurrent modificationsReview state transitions ","version":"Next","tagName":"h3"},{"title":"Advanced Features","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#advanced-features","content":" ","version":"Next","tagName":"h2"},{"title":"Action Composition","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#action-composition","content":" const compositeAction: Action = { name: "PROCESS_AND_RESPOND", handler: async (runtime, message) => { // Process first action await runtime.processAction("ANALYZE_CONTENT", message); // Process second action await runtime.processAction("GENERATE_RESPONSE", message); return true; }, }; ","version":"Next","tagName":"h3"},{"title":"Action Chains","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#action-chains","content":" const chainedAction: Action = { name: "WORKFLOW", handler: async (runtime, message) => { const actions = ["VALIDATE", "PROCESS", "RESPOND"]; for (const actionName of actions) { await runtime.processAction(actionName, message); } return true; }, }; ","version":"Next","tagName":"h3"},{"title":"Example: Complete Action Implementation","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#example-complete-action-implementation","content":" import { Action, IAgentRuntime, Memory, State } from "@ai16z/eliza"; const documentAnalysisAction: Action = { name: "ANALYZE_DOCUMENT", similes: ["READ_DOCUMENT", "PROCESS_DOCUMENT", "REVIEW_DOCUMENT"], description: "Analyzes uploaded documents and provides insights", validate: async (runtime: IAgentRuntime, message: Memory) => { // Check for document attachment if (!message.content.attachments?.length) { return false; } // Verify document type const attachment = message.content.attachments[0]; return ["pdf", "txt", "doc"].includes(attachment.type); }, handler: async (runtime: IAgentRuntime, message: Memory, state?: State) => { try { // Get document service const docService = runtime.getService<IDocumentService>( ServiceType.DOCUMENT, ); // Process document const content = await docService.processDocument( message.content.attachments[0], ); // Store analysis await runtime.documentsManager.createMemory({ id: generateId(), content: { text: content, analysis: await docService.analyze(content), }, userId: message.userId, roomId: message.roomId, createdAt: Date.now(), }); return true; } catch (error) { console.error("Document analysis failed:", error); return false; } }, examples: [ [ { user: "{{user1}}", content: { text: "Can you analyze this document?", attachments: [{ type: "pdf", url: "document.pdf" }], }, }, { user: "{{user2}}", content: { text: "I'll analyze that document for you", action: "ANALYZE_DOCUMENT", }, }, ], ], }; Best Practices Validation Thoroughly check input parametersVerify runtime conditionsHandle edge cases Error Handling Implement comprehensive error catchingProvide clear error messagesClean up resources properly Documentation Include clear usage examplesDocument expected inputs/outputsExplain error scenarios ","version":"Next","tagName":"h2"},{"title":"Further Reading","type":1,"pageTitle":"⚡ Actions","url":"/eliza/docs/core/actions/#further-reading","content":" Provider SystemService IntegrationMemory Management ","version":"Next","tagName":"h2"},{"title":"📖 Package Overview","type":0,"sectionRef":"#","url":"/eliza/docs/packages/","content":"","keywords":"","version":"Next"},{"title":"Core Components","type":1,"pageTitle":"📖 Package Overview","url":"/eliza/docs/packages/#core-components","content":" @ai16z/core: Central framework and shared functionality@ai16z/agent: Agent runtime and management@ai16z/adapters: Database implementations (PostgreSQL, SQLite, etc.)@ai16z/clients: Platform integrations (Discord, Telegram, etc.)@ai16z/plugins: Extension modules for additional functionality ","version":"Next","tagName":"h2"},{"title":"Package Architecture","type":1,"pageTitle":"📖 Package Overview","url":"/eliza/docs/packages/#package-architecture","content":" The Eliza framework is built on a modular architecture where each package serves a specific purpose: Core Package: Provides the fundamental building blocksAgent Package: Handles agent lifecycle and runtimeAdapters: Enable different storage backendsClients: Connect to various platformsPlugins: Add specialized capabilities ","version":"Next","tagName":"h2"},{"title":"Package Dependencies","type":1,"pageTitle":"📖 Package Overview","url":"/eliza/docs/packages/#package-dependencies","content":" ","version":"Next","tagName":"h2"},{"title":"Getting Started","type":1,"pageTitle":"📖 Package Overview","url":"/eliza/docs/packages/#getting-started","content":" # Install core package pnpm add @ai16z/core # Install specific adapters pnpm add @ai16z/adapter-postgres pnpm add @ai16z/adapter-sqlite # Install clients pnpm add @ai16z/client-discord pnpm add @ai16z/client-Telegram ","version":"Next","tagName":"h2"},{"title":"⚙️ Configuration Guide","type":0,"sectionRef":"#","url":"/eliza/docs/guides/configuration/","content":"","keywords":"","version":"Next"},{"title":"Environment Configuration","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#environment-configuration","content":" ","version":"Next","tagName":"h2"},{"title":"Basic Setup","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#basic-setup","content":" The first step is creating your environment configuration file: cp .env.example .env ","version":"Next","tagName":"h3"},{"title":"Core Environment Variables","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#core-environment-variables","content":" Here are the essential environment variables you need to configure: # Core API Keys OPENAI_API_KEY=sk-your-key # Required for OpenAI features ANTHROPIC_API_KEY=your-key # Required for Claude models TOGETHER_API_KEY=your-key # Required for Together.ai models # Default Settings XAI_MODEL=gpt-4o-mini # Default model to use X_SERVER_URL= # Optional model API endpoint ","version":"Next","tagName":"h3"},{"title":"Client-Specific Configuration","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#client-specific-configuration","content":" Discord Configuration DISCORD_APPLICATION_ID= # Your Discord app ID DISCORD_API_TOKEN= # Discord bot token Twitter Configuration TWITTER_USERNAME= # Bot Twitter username TWITTER_PASSWORD= # Bot Twitter password TWITTER_EMAIL= # Twitter account email TWITTER_COOKIES= # Twitter auth cookies TWITTER_DRY_RUN=false # Test mode without posting Telegram Configuration TELEGRAM_BOT_TOKEN= # Telegram bot token ","version":"Next","tagName":"h3"},{"title":"Model Provider Settings","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#model-provider-settings","content":" You can configure different AI model providers: # OpenAI Settings OPENAI_API_KEY=sk-* # Anthropic Settings ANTHROPIC_API_KEY= # Together.ai Settings TOGETHER_API_KEY= # Heurist Settings HEURIST_API_KEY= # Local Model Settings XAI_MODEL=meta-llama/Llama-3.1-7b-instruct ","version":"Next","tagName":"h3"},{"title":"Image Generation","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#image-generation","content":" Configure image generation in your character file: { "modelProvider": "heurist", "settings": { "imageSettings": { "steps": 20, "width": 1024, "height": 1024 } } } Example usage: const result = await generateImage( { prompt: 'A cute anime girl with big breasts and straight long black hair wearing orange T-shirt. The T-shirt has "ai16z" texts in the front. The girl is looking at the viewer', width: 1024, height: 1024, numIterations: 20, // optional guidanceScale: 3, // optional seed: -1, // optional modelId: "FLUX.1-dev", // optional }, runtime, ); ","version":"Next","tagName":"h3"},{"title":"Character Configuration","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#character-configuration","content":" ","version":"Next","tagName":"h2"},{"title":"Character File Structure","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#character-file-structure","content":" Character files define your agent's personality and behavior. Create them in the characters/ directory: { "name": "AgentName", "clients": ["discord", "twitter"], "modelProvider": "openai", "settings": { "secrets": { "OPENAI_API_KEY": "character-specific-key", "DISCORD_TOKEN": "bot-specific-token" } } } ","version":"Next","tagName":"h3"},{"title":"Loading Characters","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#loading-characters","content":" You can load characters in several ways: # Load default character pnpm start # Load specific character pnpm start --characters="characters/your-character.json" # Load multiple characters pnpm start --characters="characters/char1.json,characters/char2.json" ","version":"Next","tagName":"h3"},{"title":"Custom Actions","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#custom-actions","content":" ","version":"Next","tagName":"h2"},{"title":"Adding Custom Actions","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#adding-custom-actions","content":" Create a custom_actions directoryAdd your action files thereConfigure in elizaConfig.yaml: actions: - name: myCustomAction path: ./custom_actions/myAction.ts ","version":"Next","tagName":"h3"},{"title":"Action Configuration Structure","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#action-configuration-structure","content":" export const myAction: Action = { name: "MY_ACTION", similes: ["SIMILAR_ACTION", "ALTERNATE_NAME"], validate: async (runtime: IAgentRuntime, message: Memory) => { // Validation logic return true; }, description: "Action description", handler: async (runtime: IAgentRuntime, message: Memory) => { // Action logic return true; }, }; ","version":"Next","tagName":"h3"},{"title":"Provider Configuration","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#provider-configuration","content":" ","version":"Next","tagName":"h2"},{"title":"Database Providers","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#database-providers","content":" Configure different database backends: // SQLite (Recommended for development) import { SqliteDatabaseAdapter } from "@your-org/agent-framework/adapters"; const db = new SqliteDatabaseAdapter("./dev.db"); // PostgreSQL (Production) import { PostgresDatabaseAdapter } from "@your-org/agent-framework/adapters"; const db = new PostgresDatabaseAdapter({ host: process.env.DB_HOST, port: parseInt(process.env.DB_PORT), database: process.env.DB_NAME, user: process.env.DB_USER, password: process.env.DB_PASSWORD, }); ","version":"Next","tagName":"h3"},{"title":"Model Providers","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#model-providers","content":" Configure model providers in your character file: { "modelProvider": "openai", "settings": { "model": "gpt-4o-mini", "temperature": 0.7, "maxTokens": 2000 } } ","version":"Next","tagName":"h3"},{"title":"Advanced Configuration","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#advanced-configuration","content":" ","version":"Next","tagName":"h2"},{"title":"Runtime Settings","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#runtime-settings","content":" Fine-tune runtime behavior: const settings = { // Logging DEBUG: "eliza:*", LOG_LEVEL: "info", // Performance MAX_CONCURRENT_REQUESTS: 5, REQUEST_TIMEOUT: 30000, // Memory MEMORY_TTL: 3600, MAX_MEMORY_ITEMS: 1000, }; ","version":"Next","tagName":"h3"},{"title":"Plugin Configuration","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#plugin-configuration","content":" Enable and configure plugins in elizaConfig.yaml: plugins: - name: solana enabled: true settings: network: mainnet-beta endpoint: https://api.mainnet-beta.solana.com - name: image-generation enabled: true settings: provider: dalle size: 1024x1024 ","version":"Next","tagName":"h3"},{"title":"Configuration Best Practices","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#configuration-best-practices","content":" Environment Segregation Use different .env files for different environmentsFollow naming convention: .env.development, .env.staging, .env.production Secret Management Never commit secrets to version controlUse secret management services in productionRotate API keys regularly Character Configuration Keep character files modular and focusedUse inheritance for shared traitsDocument character behaviors Plugin Management Enable only needed pluginsConfigure plugin-specific settings in separate filesMonitor plugin performance Database Configuration Use SQLite for developmentConfigure connection pooling for productionSet up proper indexes ","version":"Next","tagName":"h2"},{"title":"Troubleshooting","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#common-issues","content":" Environment Variables Not Loading # Check .env file location node -e "console.log(require('path').resolve('.env'))" # Verify environment variables node -e "console.log(process.env)" Character Loading Failures # Validate character file npx ajv validate -s character-schema.json -d your-character.json Database Connection Issues # Test database connection npx ts-node scripts/test-db-connection.ts ","version":"Next","tagName":"h3"},{"title":"Configuration Validation","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#configuration-validation","content":" Use the built-in config validator: pnpm run validate-config This will check: Environment variablesCharacter filesDatabase configurationPlugin settings ","version":"Next","tagName":"h3"},{"title":"Further Resources","type":1,"pageTitle":"⚙️ Configuration Guide","url":"/eliza/docs/guides/configuration/#further-resources","content":" Quickstart Guide for initial setupSecrets Management for secure configurationLocal Development for development setupAdvanced Usage for complex configurations ","version":"Next","tagName":"h2"},{"title":"Introduction to Eliza","type":0,"sectionRef":"#","url":"/eliza/docs/intro/","content":"","keywords":"","version":"Next"},{"title":"What is Eliza?","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#what-is-eliza","content":" Eliza is a powerful multi-agent simulation framework designed to create, deploy, and manage autonomous AI agents. Built with TypeScript, it provides a flexible and extensible platform for developing intelligent agents that can interact across multiple platforms while maintaining consistent personalities and knowledge. ","version":"Next","tagName":"h2"},{"title":"Key Features","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#key-features","content":" ","version":"Next","tagName":"h2"},{"title":"Core Capabilities","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#core-capabilities","content":" Multi-Agent Architecture: Deploy and manage multiple unique AI personalities simultaneouslyCharacter System: Create diverse agents using the characterfile frameworkMemory Management: Advanced RAG (Retrieval Augmented Generation) system for long-term memory and context awarenessPlatform Integration: Seamless connectivity with Discord, Twitter, and other platforms ","version":"Next","tagName":"h3"},{"title":"Communication & Media","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#communication--media","content":" Multi-Platform Support: Full-featured Discord integration with voice channel supportTwitter/X bot capabilitiesTelegram integrationDirect API access Media Processing: PDF document reading and analysisLink content extraction and summarizationAudio transcriptionVideo content processingImage analysis and descriptionConversation summarization ","version":"Next","tagName":"h3"},{"title":"AI & Technical Features","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#ai--technical-features","content":" Flexible Model Support: Local inference with open-source modelsCloud-based inference through OpenAIDefault configuration with Nous Hermes Llama 3.1BIntegration with Claude for complex queries Technical Foundation: 100% TypeScript implementationModular architectureExtensible action systemCustom client supportComprehensive API ","version":"Next","tagName":"h3"},{"title":"Use Cases","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#use-cases","content":" Eliza can be used to create: AI Assistants Customer support agentsCommunity moderatorsPersonal assistants Social Media Personas Automated content creatorsEngagement botsBrand representatives Knowledge Workers Research assistantsContent analystsDocument processors Interactive Characters Role-playing charactersEducational tutorsEntertainment bots ","version":"Next","tagName":"h2"},{"title":"Getting Started","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#getting-started","content":" Eliza is designed to be accessible while maintaining powerful capabilities: Quick Start: Begin with basic configuration and default characterCustomization: Extend functionality through custom actions and clientsScaling: Deploy multiple agents with different personalitiesIntegration: Connect to various platforms and services Check out our Quickstart Guide to begin your journey with Eliza. ","version":"Next","tagName":"h2"},{"title":"Architecture Overview","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#architecture-overview","content":" ","version":"Next","tagName":"h2"},{"title":"Community and Support","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#community-and-support","content":" Eliza is backed by an active community of developers and users: Open Source: Contribute to the project on GitHubDocumentation: Comprehensive guides and API referencesExamples: Ready-to-use character templates and implementationsSupport: Active community for troubleshooting and discussion ","version":"Next","tagName":"h2"},{"title":"Next Steps","type":1,"pageTitle":"Introduction to Eliza","url":"/eliza/docs/intro/#next-steps","content":" Create Your First AgentUnderstand Core ConceptsExplore Advanced Features Join us in building the future of autonomous AI agents with Eliza! ","version":"Next","tagName":"h2"},{"title":"🔌 Providers","type":0,"sectionRef":"#","url":"/eliza/docs/core/providers/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#overview","content":" A provider's primary purpose is to: Supply dynamic contextual informationIntegrate with the agent runtimeFormat information for conversation templatesMaintain consistent data access ","version":"Next","tagName":"h2"},{"title":"Core Structure","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#core-structure","content":" interface Provider { get: ( runtime: IAgentRuntime, message: Memory, state?: State, ) => Promise<string>; } ","version":"Next","tagName":"h3"},{"title":"Built-in Providers","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#built-in-providers","content":" ","version":"Next","tagName":"h2"},{"title":"Time Provider","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#time-provider","content":" Provides temporal context for agent interactions: const timeProvider: Provider = { get: async (_runtime: IAgentRuntime, _message: Memory) => { const currentDate = new Date(); const currentTime = currentDate.toLocaleTimeString("en-US"); const currentYear = currentDate.getFullYear(); return `The current time is: ${currentTime}, ${currentYear}`; }, }; ","version":"Next","tagName":"h3"},{"title":"Facts Provider","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#facts-provider","content":" From bootstrap plugin - maintains conversation facts: const factsProvider: Provider = { get: async (runtime: IAgentRuntime, message: Memory, state?: State) => { // Create embedding for recent messages and retrieve relevant facts const recentMessages = formatMessages({ messages: state?.recentMessagesData?.slice(-10), actors: state?.actorsData, }); const embedding = await embed(runtime, recentMessages); const memoryManager = new MemoryManager({ runtime, tableName: "facts" }); const recentFactsData = await memoryManager.getMemories({ roomId: message.roomId, count: 10, agentId: runtime.agentId, }); // Combine and format facts const allFacts = [...recentFactsData]; // Deduplication can be skipped if no overlap const formattedFacts = formatFacts(allFacts); return `Key facts that ${runtime.character.name} knows:\\n${formattedFacts}`; }, }; export { factsProvider }; ","version":"Next","tagName":"h3"},{"title":"Boredom Provider","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#boredom-provider","content":" From bootstrap plugin - manages conversation dynamics and engagement by calculating the boredom level of an agent based on recent messages in a chat room. Data Structures: boredomLevels: An array of objects, each representing a boredom level with a minimum score and a set of status messages that reflect the agent's current engagement.interestWords, cringeWords, and negativeWords: Arrays of words that influence the boredom score based on their presence in messages. Boredom Calculation: The boredomProvider gets recent messages from the agent’s conversation over the last 15 minutes.It calculates a boredom score by analyzing the text of these messages. The score is influenced by: Interest words: Decrease boredom (subtract 1 point).Cringe words: Increase boredom (add 1 point).Negative words: Increase boredom (add 1 point).Exclamation marks: Increase boredom (add 1 point).Question marks: Increase or decrease boredom depending on the sender. Boredom Level: The boredom score is matched to a level from the boredomLevels array, which defines how engaged the agent feels.A random status message from the selected boredom level is chosen and the agent’s name is inserted into the message. interface BoredomLevel { minScore: number; statusMessages: string[]; } The result is a message that reflects the agent's perceived level of engagement in the conversation, based on their recent interactions. const boredomProvider: Provider = { get: async (runtime: IAgentRuntime, message: Memory) => { const messages = await runtime.messageManager.getMemories({ roomId: message.roomId, count: 10, }); return messages.length > 0 ? "Actively engaged in conversation" : "No recent interactions"; }, }; Features: Engagement trackingConversation flow managementNatural disengagementSentiment analysisResponse adaptation ","version":"Next","tagName":"h3"},{"title":"Implementation","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#implementation","content":" ","version":"Next","tagName":"h2"},{"title":"Basic Provider Template","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#basic-provider-template","content":" import { Provider, IAgentRuntime, Memory, State } from "@ai16z/eliza"; const customProvider: Provider = { get: async (runtime: IAgentRuntime, message: Memory, state?: State) => { // Get relevant data using runtime services const memories = await runtime.messageManager.getMemories({ roomId: message.roomId, count: 5, }); // Format and return context return formatContextString(memories); }, }; ","version":"Next","tagName":"h3"},{"title":"Memory Integration","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#memory-integration","content":" const memoryProvider: Provider = { get: async (runtime: IAgentRuntime, message: Memory) => { // Get recent messages const messages = await runtime.messageManager.getMemories({ roomId: message.roomId, count: 5, unique: true, }); // Get user descriptions const descriptions = await runtime.descriptionManager.getMemories({ roomId: message.roomId, userId: message.userId, }); // Combine and format return ` Recent Activity: ${formatMessages(messages)} User Context: ${formatDescriptions(descriptions)} `.trim(); }, }; ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"1. Data Management","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#1-data-management","content":" Implement robust caching strategiesUse appropriate TTL for different data typesValidate data before caching ","version":"Next","tagName":"h3"},{"title":"2. Performance","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#2-performance","content":" // Example of optimized data fetching async function fetchDataWithCache<T>( key: string, fetcher: () => Promise<T>, ): Promise<T> { const cached = await cache.get(key); if (cached) return cached; const data = await fetcher(); await cache.set(key, data); return data; } ","version":"Next","tagName":"h3"},{"title":"3. Error Handling","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#3-error-handling","content":" Implement retry mechanismsProvide fallback valuesLog errors comprehensivelyHandle API timeouts ","version":"Next","tagName":"h3"},{"title":"4. Security","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#4-security","content":" Validate input parametersSanitize returned dataImplement rate limitingHandle sensitive data appropriately ","version":"Next","tagName":"h3"},{"title":"Integration with Runtime","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#integration-with-runtime","content":" Providers are registered with the AgentRuntime: // Register provider runtime.registerContextProvider(customProvider); // Providers are accessed through composeState const state = await runtime.composeState(message); ","version":"Next","tagName":"h2"},{"title":"Example: Complete Provider","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#example-complete-provider","content":" import { Provider, IAgentRuntime, Memory, State } from "@ai16z/eliza"; const comprehensiveProvider: Provider = { get: async (runtime: IAgentRuntime, message: Memory, state?: State) => { try { // Get recent messages const messages = await runtime.messageManager.getMemories({ roomId: message.roomId, count: 5, }); // Get user context const userContext = await runtime.descriptionManager.getMemories({ roomId: message.roomId, userId: message.userId, }); // Get relevant facts const facts = await runtime.messageManager.getMemories({ roomId: message.roomId, tableName: "facts", count: 3, }); // Format comprehensive context return ` # Conversation Context ${messages.map((m) => `- ${m.content.text}`).join("\\n")} # User Information ${userContext.map((c) => c.content.text).join("\\n")} # Related Facts ${facts.map((f) => `- ${f.content.text}`).join("\\n")} `.trim(); } catch (error) { console.error("Provider error:", error); return "Context temporarily unavailable"; } }, }; ","version":"Next","tagName":"h2"},{"title":"Troubleshooting","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#troubleshooting","content":" Stale Data // Implement cache invalidation const invalidateCache = async (pattern: string) => { const keys = await cache.keys(pattern); await Promise.all(keys.map((k) => cache.del(k))); }; Rate Limiting // Implement backoff strategy const backoff = async (attempt: number) => { const delay = Math.min(1000 * Math.pow(2, attempt), 10000); await new Promise((resolve) => setTimeout(resolve, delay)); }; API Failures // Implement fallback data sources const getFallbackData = async () => { // Attempt alternative data sources }; ","version":"Next","tagName":"h2"},{"title":"Further Reading","type":1,"pageTitle":"🔌 Providers","url":"/eliza/docs/core/providers/#further-reading","content":" Agent RuntimeMemory System ","version":"Next","tagName":"h2"},{"title":"💻 Local Development Guide","type":0,"sectionRef":"#","url":"/eliza/docs/guides/local-development/","content":"","keywords":"","version":"Next"},{"title":"Prerequisites","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#prerequisites","content":" Before you begin, ensure you have: # Required Node.js 22+ pnpm Git # Optional but recommended VS Code Docker (for database development) CUDA Toolkit (for GPU acceleration) ","version":"Next","tagName":"h2"},{"title":"Initial Setup","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#initial-setup","content":" ","version":"Next","tagName":"h2"},{"title":"1. Repository Setup","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#1-repository-setup","content":" # Clone the repository git clone https://github.com/ai16z/eliza.git cd eliza # Install dependencies pnpm install # Install optional dependencies pnpm install --include=optional sharp ","version":"Next","tagName":"h3"},{"title":"2. Environment Configuration","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#2-environment-configuration","content":" Create your development environment file: cp .env.example .env Configure essential development variables: # Minimum required for local development OPENAI_API_KEY=sk-* # Optional, for OpenAI features X_SERVER_URL= # Leave blank for local inference XAI_API_KEY= # Leave blank for local inference XAI_MODEL=meta-llama/Llama-3.1-7b-instruct # Local model ","version":"Next","tagName":"h3"},{"title":"3. Local Model Setup","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#3-local-model-setup","content":" For local inference without API dependencies: # Install CUDA support for NVIDIA GPUs npx --no node-llama-cpp source download --gpu cuda # The system will automatically download models from # Hugging Face on first run ","version":"Next","tagName":"h3"},{"title":"Development Workflow","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#development-workflow","content":" ","version":"Next","tagName":"h2"},{"title":"Running the Development Server","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#running-the-development-server","content":" # Start with default character pnpm run dev # Start with specific character pnpm run dev --characters="characters/my-character.json" # Start with multiple characters pnpm run dev --characters="characters/char1.json,characters/char2.json" ","version":"Next","tagName":"h3"},{"title":"Development Commands","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#development-commands","content":" pnpm run build # Build the project pnpm run clean # Clean build artifacts pnpm run dev # Start development server pnpm run test # Run tests pnpm run test:watch # Run tests in watch mode pnpm run lint # Lint code ","version":"Next","tagName":"h3"},{"title":"Database Development","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#database-development","content":" ","version":"Next","tagName":"h2"},{"title":"SQLite (Recommended for Development)","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#sqlite-recommended-for-development","content":" import { SqliteDatabaseAdapter } from "@ai16z/eliza/adapters"; import Database from "better-sqlite3"; const db = new SqliteDatabaseAdapter(new Database("./dev.db")); ","version":"Next","tagName":"h3"},{"title":"In-Memory Database (for Testing)","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#in-memory-database-for-testing","content":" import { SqlJsDatabaseAdapter } from "@ai16z/eliza/adapters"; const db = new SqlJsDatabaseAdapter(new Database(":memory:")); ","version":"Next","tagName":"h3"},{"title":"Schema Management","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#schema-management","content":" # Create new migration pnpm run migration:create # Run migrations pnpm run migration:up # Rollback migrations pnpm run migration:down ","version":"Next","tagName":"h3"},{"title":"Testing","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#testing","content":" ","version":"Next","tagName":"h2"},{"title":"Running Tests","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#running-tests","content":" # Run all tests pnpm test # Run specific test file pnpm test tests/specific.test.ts # Run tests with coverage pnpm test:coverage # Run database-specific tests pnpm test:sqlite pnpm test:sqljs ","version":"Next","tagName":"h3"},{"title":"Writing Tests","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#writing-tests","content":" import { runAiTest } from "@ai16z/eliza/test_resources"; describe("Feature Test", () => { beforeEach(async () => { // Setup test environment }); it("should perform expected behavior", async () => { const result = await runAiTest({ messages: [ { user: "user1", content: { text: "test message" }, }, ], expected: "expected response", }); expect(result.success).toBe(true); }); }); ","version":"Next","tagName":"h3"},{"title":"Plugin Development","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#plugin-development","content":" ","version":"Next","tagName":"h2"},{"title":"Creating a New Plugin","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#creating-a-new-plugin","content":" // plugins/my-plugin/src/index.ts import { Plugin } from "@ai16z/eliza/types"; export const myPlugin: Plugin = { name: "my-plugin", description: "My custom plugin", actions: [], evaluators: [], providers: [], }; ","version":"Next","tagName":"h3"},{"title":"Custom Action Development","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#custom-action-development","content":" // plugins/my-plugin/src/actions/myAction.ts export const myAction: Action = { name: "MY_ACTION", similes: ["SIMILAR_ACTION"], validate: async (runtime: IAgentRuntime, message: Memory) => { return true; }, handler: async (runtime: IAgentRuntime, message: Memory) => { // Implementation return true; }, examples: [], }; ","version":"Next","tagName":"h3"},{"title":"Debugging","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#debugging","content":" ","version":"Next","tagName":"h2"},{"title":"VS Code Configuration","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#vs-code-configuration","content":" Create .vscode/launch.json: { "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Debug Eliza", "skipFiles": ["<node_internals>/**"], "program": "${workspaceFolder}/src/index.ts", "runtimeArgs": ["-r", "ts-node/register"], "env": { "DEBUG": "eliza:*" } } ] } ","version":"Next","tagName":"h3"},{"title":"Debugging Tips","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#debugging-tips","content":" Enable Debug Logging # Add to your .env file DEBUG=eliza:* Use Debug Points const debug = require("debug")("eliza:dev"); debug("Operation details: %O", { operation: "functionName", params: parameters, result: result, }); Memory Debugging # Increase Node.js memory for development NODE_OPTIONS="--max-old-space-size=8192" pnpm run dev ","version":"Next","tagName":"h3"},{"title":"Common Development Tasks","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#common-development-tasks","content":" ","version":"Next","tagName":"h2"},{"title":"1. Adding a New Character","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#1-adding-a-new-character","content":" { "name": "DevBot", "description": "Development testing bot", "modelProvider": "openai", "settings": { "debug": true, "logLevel": "debug" } } ","version":"Next","tagName":"h3"},{"title":"2. Creating Custom Services","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#2-creating-custom-services","content":" class CustomService extends Service { static serviceType = ServiceType.CUSTOM; async initialize() { // Setup code } async process(input: any): Promise<any> { // Service logic } } ","version":"Next","tagName":"h3"},{"title":"3. Working with Models","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#3-working-with-models","content":" // Local model configuration const localModel = { modelProvider: "llamalocal", settings: { modelPath: "./models/llama-7b.gguf", contextSize: 8192, }, }; // Cloud model configuration const cloudModel = { modelProvider: "openai", settings: { model: "gpt-4o-mini", temperature: 0.7, }, }; ","version":"Next","tagName":"h3"},{"title":"Performance Optimization","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#performance-optimization","content":" ","version":"Next","tagName":"h2"},{"title":"CUDA Setup","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#cuda-setup","content":" For NVIDIA GPU users: Install CUDA Toolkit with cuDNN and cuBLASSet environment variables: CUDA_PATH=/usr/local/cuda # Windows: C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.0 ","version":"Next","tagName":"h3"},{"title":"Memory Management","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#memory-management","content":" class MemoryManager { private cache = new Map(); private maxSize = 1000; async cleanup() { if (this.cache.size > this.maxSize) { // Implement cleanup logic } } } ","version":"Next","tagName":"h3"},{"title":"Troubleshooting","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#common-issues","content":" Model Loading Issues # Clear model cache rm -rf ./models/* # Restart with fresh download Database Connection Issues # Test database connection pnpm run test:db-connection Memory Issues # Check memory usage node --trace-gc index.js ","version":"Next","tagName":"h3"},{"title":"Development Tools","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#development-tools","content":" # Generate TypeScript documentation pnpm run docs:generate # Check for circular dependencies pnpm run madge # Analyze bundle size pnpm run analyze ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#best-practices","content":" Code Organization Place custom actions in custom_actions/Keep character files in characters/Store test data in tests/fixtures/ Testing Strategy Write unit tests for new featuresUse integration tests for pluginsTest with multiple model providers Git Workflow Create feature branchesFollow conventional commitsKeep PRs focused ","version":"Next","tagName":"h2"},{"title":"Additional Tools","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#additional-tools","content":" ","version":"Next","tagName":"h2"},{"title":"Character Development","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#character-development","content":" # Generate character from Twitter data npx tweets2character # Convert documents to knowledge base npx folder2knowledge <path/to/folder> # Add knowledge to character npx knowledge2character <character-file> <knowledge-file> ","version":"Next","tagName":"h3"},{"title":"Development Scripts","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#development-scripts","content":" # Analyze codebase ./scripts/analyze-codebase.ts # Extract tweets for training ./scripts/extracttweets.js # Clean build artifacts ./scripts/clean.sh ","version":"Next","tagName":"h3"},{"title":"Further Resources","type":1,"pageTitle":"💻 Local Development Guide","url":"/eliza/docs/guides/local-development/#further-resources","content":" Configuration Guide for setup detailsAdvanced Usage for complex featuresAPI Documentation for complete API referenceContributing Guide for contribution guidelines ","version":"Next","tagName":"h2"},{"title":"🔐 Secrets Management","type":0,"sectionRef":"#","url":"/eliza/docs/guides/secrets-management/","content":"","keywords":"","version":"Next"},{"title":"Core Concepts","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#core-concepts","content":" ","version":"Next","tagName":"h2"},{"title":"Environment Variables","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#environment-variables","content":" Eliza uses a hierarchical environment variable system: Character-specific secrets (highest priority)Environment variablesDefault values (lowest priority) ","version":"Next","tagName":"h3"},{"title":"Secret Types","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#secret-types","content":" Common secrets you'll need to manage: # API Keys OPENAI_API_KEY=sk-* ANTHROPIC_API_KEY=your-key ELEVENLABS_XI_API_KEY=your-key GOOGLE_GENERATIVE_AI_API_KEY=your-key # Client Authentication DISCORD_API_TOKEN=your-token TELEGRAM_BOT_TOKEN=your-token # Database Credentials SUPABASE_URL=your-url SUPABASE_SERVICE_API_KEY=your-key # Blockchain Keys WALLET_PRIVATE_KEY=your-private-key WALLET_PUBLIC_KEY=your-public-key ","version":"Next","tagName":"h3"},{"title":"Implementation Guide","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#implementation-guide","content":" ","version":"Next","tagName":"h2"},{"title":"Basic Setup","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#basic-setup","content":" Create a .env file from template: cp .env.example .env Configure environment discovery: import { config } from "dotenv"; import path from "path"; export function findNearestEnvFile(startDir = process.cwd()) { let currentDir = startDir; while (currentDir !== path.parse(currentDir).root) { const envPath = path.join(currentDir, ".env"); if (fs.existsSync(envPath)) { return envPath; } currentDir = path.dirname(currentDir); } return null; } ","version":"Next","tagName":"h3"},{"title":"Character-Specific Secrets","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#character-specific-secrets","content":" Define secrets in character files: { "name": "TradingBot", "settings": { "secrets": { "OPENAI_API_KEY": "character-specific-key", "WALLET_PRIVATE_KEY": "character-specific-wallet" } } } Access secrets in code: const apiKey = runtime.getSetting("OPENAI_API_KEY"); ","version":"Next","tagName":"h3"},{"title":"Secure Storage","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#secure-storage","content":" Database Secrets Use encrypted connection strings: class SecureDatabase { private connection: Connection; constructor(encryptedConfig: string) { const config = this.decryptConfig(encryptedConfig); this.connection = new Connection(config); } private decryptConfig(encrypted: string): DatabaseConfig { // Implement decryption logic return JSON.parse(decrypted); } } Wallet Management Secure handling of blockchain credentials: class WalletManager { private async initializeWallet(runtime: IAgentRuntime) { const privateKey = runtime.getSetting("WALLET_PRIVATE_KEY"); if (!privateKey) { throw new Error("Wallet private key not configured"); } // Validate key format try { const keyBuffer = Buffer.from(privateKey, "base64"); if (keyBuffer.length !== 64) { throw new Error("Invalid key length"); } } catch (error) { throw new Error("Invalid private key format"); } // Initialize wallet securely return new Wallet(privateKey); } } ","version":"Next","tagName":"h3"},{"title":"Secret Rotation","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#secret-rotation","content":" Implement automatic secret rotation: class SecretRotation { private static readonly SECRET_LIFETIME = 90 * 24 * 60 * 60 * 1000; // 90 days async shouldRotateSecret(secretName: string): Promise<boolean> { const lastRotation = await this.getLastRotation(secretName); return Date.now() - lastRotation > SecretRotation.SECRET_LIFETIME; } async rotateSecret(secretName: string): Promise<void> { // Implement rotation logic const newSecret = await this.generateNewSecret(); await this.updateSecret(secretName, newSecret); await this.recordRotation(secretName); } } ","version":"Next","tagName":"h3"},{"title":"Access Control","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#access-control","content":" Implement proper access controls: class SecretAccess { private static readonly ALLOWED_KEYS = [ "OPENAI_API_KEY", "DISCORD_TOKEN", // ... other allowed keys ]; static validateAccess(key: string): boolean { return this.ALLOWED_KEYS.includes(key); } static async getSecret( runtime: IAgentRuntime, key: string, ): Promise<string | null> { if (!this.validateAccess(key)) { throw new Error(`Unauthorized access to secret: ${key}`); } return runtime.getSetting(key); } } ","version":"Next","tagName":"h3"},{"title":"Encryption at Rest","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#encryption-at-rest","content":" Implement encryption for stored secrets: import { createCipheriv, createDecipheriv } from "crypto"; class SecretEncryption { static async encrypt(value: string, key: Buffer): Promise<string> { const iv = crypto.randomBytes(16); const cipher = createCipheriv("aes-256-gcm", key, iv); let encrypted = cipher.update(value, "utf8", "hex"); encrypted += cipher.final("hex"); return JSON.stringify({ iv: iv.toString("hex"), encrypted, tag: cipher.getAuthTag().toString("hex"), }); } static async decrypt(encrypted: string, key: Buffer): Promise<string> { const { iv, encrypted: encryptedData, tag } = JSON.parse(encrypted); const decipher = createDecipheriv( "aes-256-gcm", key, Buffer.from(iv, "hex"), ); decipher.setAuthTag(Buffer.from(tag, "hex")); let decrypted = decipher.update(encryptedData, "hex", "utf8"); decrypted += decipher.final("utf8"); return decrypted; } } ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"1. Environment Segregation","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#1-environment-segregation","content":" Maintain separate environment files: .env.development # Local development settings .env.staging # Staging environment .env.production # Production settings ","version":"Next","tagName":"h3"},{"title":"2. Git Security","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#2-git-security","content":" Exclude sensitive files: # .gitignore .env .env.* characters/**/secrets.json **/serviceAccount.json ","version":"Next","tagName":"h3"},{"title":"3. Secret Validation","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#3-secret-validation","content":" Validate secrets before use: async function validateSecrets(character: Character): Promise<void> { const required = ["OPENAI_API_KEY"]; const missing = required.filter((key) => !character.settings.secrets[key]); if (missing.length > 0) { throw new Error(`Missing required secrets: ${missing.join(", ")}`); } } ","version":"Next","tagName":"h3"},{"title":"4. Error Handling","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#4-error-handling","content":" Secure error messages: try { await loadSecrets(); } catch (error) { if (error.code === "ENOENT") { console.error("Environment file not found"); } else if (error instanceof ValidationError) { console.error("Invalid secret format"); } else { // Log securely without exposing secret values console.error("Error loading secrets"); } } ","version":"Next","tagName":"h3"},{"title":"Security Considerations","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#security-considerations","content":" ","version":"Next","tagName":"h2"},{"title":"1. Handling API Keys","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#1-handling-api-keys","content":" class APIKeyManager { private validateAPIKey(key: string): boolean { if (key.startsWith("sk-")) { return key.length > 20; } return false; } async rotateAPIKey(provider: string): Promise<void> { // Implement key rotation logic } } ","version":"Next","tagName":"h3"},{"title":"2. Secure Configuration Loading","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#2-secure-configuration-loading","content":" class ConfigLoader { private static sanitizePath(path: string): boolean { return !path.includes("../") && !path.startsWith("/"); } async loadConfig(path: string): Promise<Config> { if (!this.sanitizePath(path)) { throw new Error("Invalid config path"); } // Load configuration } } ","version":"Next","tagName":"h3"},{"title":"3. Memory Security","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#3-memory-security","content":" class SecureMemory { private secrets: Map<string, WeakRef<string>> = new Map(); set(key: string, value: string): void { this.secrets.set(key, new WeakRef(value)); } get(key: string): string | null { const ref = this.secrets.get(key); return ref?.deref() ?? null; } } ","version":"Next","tagName":"h3"},{"title":"Troubleshooting","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#common-issues","content":" Missing Secrets if (!process.env.OPENAI_API_KEY) { throw new Error( "OpenAI API key not found in environment or character settings", ); } Invalid Secret Format function validateApiKey(key: string): boolean { // OpenAI keys start with 'sk-' if (key.startsWith("sk-")) { return key.length > 20; } return false; } Secret Loading Errors try { await loadSecrets(); } catch (error) { if (error.response) { console.error("Response data:", error.response.data); console.error("Response status:", error.response.status); } else if (error.request) { console.error("No response received:", error.request); } else { console.error("Error setting up request:", error.message); } } ","version":"Next","tagName":"h3"},{"title":"Related Resources","type":1,"pageTitle":"🔐 Secrets Management","url":"/eliza/docs/guides/secrets-management/#related-resources","content":" Configuration Guide for general setupLocal Development for development environmentInfrastructure Guide for deployment security ","version":"Next","tagName":"h2"},{"title":"🔧 Advanced Usage Guide","type":0,"sectionRef":"#","url":"/eliza/docs/guides/advanced/","content":"","keywords":"","version":"Next"},{"title":"Service Integration","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#service-integration","content":" ","version":"Next","tagName":"h2"},{"title":"Video Processing Service","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#video-processing-service","content":" Eliza supports advanced video processing capabilities through the VideoService: import { VideoService } from "@ai16z/eliza/plugin-node"; // Initialize service const videoService = new VideoService(); // Process video content const result = await videoService.processVideo(url, runtime); Key features: Automatic video downloadingTranscription supportSubtitle extractionCache managementQueue processing ","version":"Next","tagName":"h3"},{"title":"Image Processing","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#image-processing","content":" The ImageDescriptionService provides advanced image analysis: import { ImageDescriptionService } from "@ai16z/eliza/plugin-node"; const imageService = new ImageDescriptionService(); const description = await imageService.describeImage(imageUrl, "gpu", runtime); Features: Local and cloud processing optionsCUDA acceleration supportAutomatic format handlingGIF frame extraction ","version":"Next","tagName":"h3"},{"title":"Blockchain Integration","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#blockchain-integration","content":" ","version":"Next","tagName":"h2"},{"title":"Solana Integration","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#solana-integration","content":" The Solana plugin provides comprehensive blockchain functionality: import { solanaPlugin } from "@ai16z/eliza/plugin-solana"; // Initialize plugin runtime.registerPlugin(solanaPlugin); Token Operations // Buy tokens const swapResult = await swapToken( connection, walletPublicKey, inputTokenCA, outputTokenCA, amount, ); // Sell tokens const sellResult = await sellToken({ sdk, seller: walletKeypair, mint: tokenMint, amount: sellAmount, priorityFee, allowOffCurve: false, slippage: "1", connection, }); Trust Score System const trustScoreManager = new TrustScoreManager(tokenProvider, trustScoreDb); // Generate trust scores const score = await trustScoreManager.generateTrustScore( tokenAddress, recommenderId, recommenderWallet, ); // Monitor trade performance await trustScoreManager.createTradePerformance(runtime, tokenAddress, userId, { buy_amount: amount, is_simulation: false, }); ","version":"Next","tagName":"h3"},{"title":"Custom Services","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#custom-services","content":" ","version":"Next","tagName":"h2"},{"title":"Speech Generation","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#speech-generation","content":" Implement text-to-speech capabilities: class SpeechService extends Service implements ISpeechService { async generate(runtime: IAgentRuntime, text: string): Promise<Readable> { if (runtime.getSetting("ELEVENLABS_XI_API_KEY")) { return textToSpeech(runtime, text); } const { audio } = await synthesize(text, { engine: "vits", voice: "en_US-hfc_female-medium", }); return Readable.from(audio); } } ","version":"Next","tagName":"h3"},{"title":"PDF Processing","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#pdf-processing","content":" Handle PDF document analysis: class PdfService extends Service { async convertPdfToText(pdfBuffer: Buffer): Promise<string> { const pdf = await getDocument({ data: pdfBuffer }).promise; const numPages = pdf.numPages; const textPages = []; for (let pageNum = 1; pageNum <= numPages; pageNum++) { const page = await pdf.getPage(pageNum); const textContent = await page.getTextContent(); const pageText = textContent.items .filter(isTextItem) .map((item) => item.str) .join(" "); textPages.push(pageText); } return textPages.join("\\n"); } } ","version":"Next","tagName":"h3"},{"title":"Advanced Memory Management","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#advanced-memory-management","content":" ","version":"Next","tagName":"h2"},{"title":"Retrievable Memory System","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#retrievable-memory-system","content":" class MemoryManager { async getMemories({ agentId, roomId, count, }: { agentId: string; roomId: string; count: number; }): Promise<Memory[]> { // Implement memory retrieval logic } async createMemory( memory: Memory, allowDuplicates: boolean = false, ): Promise<void> { // Implement memory storage logic } } ","version":"Next","tagName":"h3"},{"title":"Trust Score Database","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#trust-score-database","content":" Implement advanced scoring systems: class TrustScoreDatabase { async calculateValidationTrust(tokenAddress: string): number { const sql = ` SELECT rm.trust_score FROM token_recommendations tr JOIN recommender_metrics rm ON tr.recommender_id = rm.recommender_id WHERE tr.token_address = ?; `; const rows = this.db.prepare(sql).all(tokenAddress); if (rows.length === 0) return 0; const totalTrust = rows.reduce((acc, row) => acc + row.trust_score, 0); return totalTrust / rows.length; } } ","version":"Next","tagName":"h3"},{"title":"Plugin Development","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#plugin-development","content":" ","version":"Next","tagName":"h2"},{"title":"Creating Custom Plugins","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#creating-custom-plugins","content":" const customPlugin: Plugin = { name: "custom-plugin", description: "Custom Plugin for Eliza", actions: [ // Custom actions ], evaluators: [ // Custom evaluators ], providers: [ // Custom providers ], }; ","version":"Next","tagName":"h3"},{"title":"Advanced Action Development","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#advanced-action-development","content":" export const complexAction: Action = { name: "COMPLEX_ACTION", similes: ["ALTERNATIVE_NAME", "OTHER_NAME"], validate: async (runtime: IAgentRuntime, message: Memory) => { // Implement validation logic return true; }, handler: async ( runtime: IAgentRuntime, message: Memory, state: State, options: { [key: string]: unknown }, callback?: HandlerCallback, ): Promise<boolean> => { // Implement complex handling logic return true; }, }; ","version":"Next","tagName":"h3"},{"title":"Advanced Configuration","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#advanced-configuration","content":" ","version":"Next","tagName":"h2"},{"title":"Custom Runtime Configuration","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#custom-runtime-configuration","content":" const customRuntime = new AgentRuntime({ databaseAdapter: new PostgresDatabaseAdapter(config), modelProvider: new OpenAIProvider(apiKey), plugins: [solanaPlugin, customPlugin], services: [ new VideoService(), new ImageDescriptionService(), new SpeechService(), ], }); ","version":"Next","tagName":"h3"},{"title":"Advanced Model Configuration","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#advanced-model-configuration","content":" const modelConfig = { modelClass: ModelClass.LARGE, temperature: 0.7, maxTokens: 2000, topP: 0.9, frequencyPenalty: 0.5, presencePenalty: 0.5, }; const response = await generateText({ runtime, context: prompt, ...modelConfig, }); ","version":"Next","tagName":"h3"},{"title":"Performance Optimization","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#performance-optimization","content":" ","version":"Next","tagName":"h2"},{"title":"Caching Strategy","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#caching-strategy","content":" class CacheManager { private cache: NodeCache; private cacheDir: string; constructor() { this.cache = new NodeCache({ stdTTL: 300 }); this.cacheDir = path.join(__dirname, "cache"); this.ensureCacheDirectoryExists(); } private async getCachedData<T>(key: string): Promise<T | null> { // Implement tiered caching strategy } } ","version":"Next","tagName":"h3"},{"title":"Queue Management","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#queue-management","content":" class QueueManager { private queue: string[] = []; private processing: boolean = false; async processQueue(): Promise<void> { if (this.processing || this.queue.length === 0) { return; } this.processing = true; while (this.queue.length > 0) { const item = this.queue.shift(); await this.processItem(item); } this.processing = false; } } ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"Error Handling","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#error-handling","content":" try { const result = await complexOperation(); if (!result) { throw new Error("Operation failed"); } return result; } catch (error) { console.error("Error in operation:", error); await errorReporting.log(error); throw new OperationalError("Failed to complete operation", { cause: error }); } ","version":"Next","tagName":"h3"},{"title":"Resource Management","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#resource-management","content":" class ResourceManager { private resources: Map<string, Resource> = new Map(); async acquire(id: string): Promise<Resource> { // Implement resource acquisition with timeout } async release(id: string): Promise<void> { // Implement resource cleanup } } ","version":"Next","tagName":"h3"},{"title":"Troubleshooting","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#common-issues","content":" Memory Leaks Monitor memory usageImplement proper cleanupUse WeakMap for caching Performance Bottlenecks Profile slow operationsImplement batchingUse connection pooling Integration Issues Verify API credentialsCheck network connectivityValidate request formatting ","version":"Next","tagName":"h3"},{"title":"Debugging","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#debugging","content":" const debug = require("debug")("eliza:advanced"); debug("Detailed operation info: %O", { operation: "complexOperation", parameters: params, result: result, }); ","version":"Next","tagName":"h3"},{"title":"Further Resources","type":1,"pageTitle":"🔧 Advanced Usage Guide","url":"/eliza/docs/guides/advanced/#further-resources","content":" Infrastructure Guide for deploymentTrust Engine Documentation for scoring systemAutonomous Trading Guide for trading featuresFine-tuning Guide for model optimization ","version":"Next","tagName":"h2"},{"title":"🤖 Agent Package","type":0,"sectionRef":"#","url":"/eliza/docs/packages/agent/","content":"","keywords":"","version":"Next"},{"title":"Architecture Overview","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#architecture-overview","content":" ","version":"Next","tagName":"h2"},{"title":"Key Responsibilities","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#key-responsibilities","content":" The Agent Package (@ai16z/agent) serves as the orchestration layer for Eliza, handling: Character and plugin loadingRuntime initialization and managementDatabase adapter selectionClient initialization and coordinationToken and environment management ","version":"Next","tagName":"h2"},{"title":"Installation","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#installation","content":" pnpm add @ai16z/agent ","version":"Next","tagName":"h2"},{"title":"Quick Start","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#quick-start","content":" import { startAgents, loadCharacters } from "@ai16z/agent"; // Load characters from files const args = parseArguments(); const characters = await loadCharacters(args.characters || args.character); // Start agent system await startAgents(); ","version":"Next","tagName":"h2"},{"title":"Core Features","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#core-features","content":" ","version":"Next","tagName":"h2"},{"title":"Character Loading","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#character-loading","content":" export async function loadCharacters( charactersArg: string, ): Promise<Character[]> { const characterPaths = normalizeCharacterPaths(charactersArg); const loadedCharacters = []; for (const path of characterPaths) { try { const character = JSON.parse(fs.readFileSync(path, "utf8")); // Load plugins if specified if (character.plugins) { character.plugins = await Promise.all( character.plugins.map(async (plugin) => { const importedPlugin = await import(plugin); return importedPlugin; }), ); } loadedCharacters.push(character); } catch (error) { console.error(`Error loading character from ${path}: ${error}`); } } // Fall back to default if none loaded return loadedCharacters.length > 0 ? loadedCharacters : [defaultCharacter]; } ","version":"Next","tagName":"h3"},{"title":"Agent Creation","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#agent-creation","content":" export async function createAgent( character: Character, db: IDatabaseAdapter, token: string, ) { return new AgentRuntime({ databaseAdapter: db, token, modelProvider: character.modelProvider, character, plugins: [ bootstrapPlugin, nodePlugin, character.settings.secrets.WALLET_PUBLIC_KEY ? solanaPlugin : null, ].filter(Boolean), providers: [], actions: [], services: [], managers: [], }); } ","version":"Next","tagName":"h3"},{"title":"Client Initialization","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#client-initialization","content":" export async function initializeClients( character: Character, runtime: IAgentRuntime, ) { const clients = []; const clientTypes = character.clients?.map((str) => str.toLowerCase()) || []; if (clientTypes.includes("discord")) { clients.push(await DiscordClientInterface.start(runtime)); } if (clientTypes.includes("telegram")) { clients.push(await TelegramClientInterface.start(runtime)); } if (clientTypes.includes("twitter")) { clients.push(await TwitterClientInterface.start(runtime)); } if (clientTypes.includes("auto")) { clients.push(await AutoClientInterface.start(runtime)); } return clients; } ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"Token Management","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#token-management","content":" export function getTokenForProvider( provider: ModelProviderName, character: Character, ) { switch (provider) { case ModelProviderName.OPENAI: return ( character.settings?.secrets?.OPENAI_API_KEY || settings.OPENAI_API_KEY ); case ModelProviderName.ANTHROPIC: return ( character.settings?.secrets?.ANTHROPIC_API_KEY || settings.ANTHROPIC_API_KEY ); // Handle other providers... } } ","version":"Next","tagName":"h3"},{"title":"Database Selection","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#database-selection","content":" function initializeDatabase() { if (process.env.POSTGRES_URL) { return new PostgresDatabaseAdapter({ connectionString: process.env.POSTGRES_URL, }); } return new SqliteDatabaseAdapter(new Database("./db.sqlite")); } ","version":"Next","tagName":"h3"},{"title":"Common Issues & Solutions","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#common-issues--solutions","content":" Character Loading // Handle missing character files if (!characters || characters.length === 0) { console.log("No characters found, using default character"); characters = [defaultCharacter]; } Plugin Loading // Handle plugin import errors try { character.plugins = await Promise.all( character.plugins.map((plugin) => import(plugin)), ); } catch (error) { console.error(`Error loading plugin: ${error.message}`); character.plugins = []; } ","version":"Next","tagName":"h2"},{"title":"Related Resources","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agent/#related-resources","content":" Plugin System ","version":"Next","tagName":"h2"},{"title":"🧩 Plugins","type":0,"sectionRef":"#","url":"/eliza/docs/packages/plugins/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#overview","content":" Eliza's plugin system provides a modular way to extend the core functionality with additional features, actions, evaluators, and providers. Plugins are self-contained modules that can be easily added or removed to customize your agent's capabilities. ","version":"Next","tagName":"h2"},{"title":"Core Plugin Concepts","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#core-plugin-concepts","content":" ","version":"Next","tagName":"h2"},{"title":"Plugin Structure","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#plugin-structure","content":" Each plugin in Eliza must implement the Plugin interface with the following properties: interface Plugin { name: string; // Unique identifier for the plugin description: string; // Brief description of plugin functionality actions?: Action[]; // Custom actions provided by the plugin evaluators?: Evaluator[]; // Custom evaluators for behavior assessment providers?: Provider[]; // Context providers for message generation services?: Service[]; // Additional services (optional) } ","version":"Next","tagName":"h3"},{"title":"Available Plugins","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#available-plugins","content":" 1. Bootstrap Plugin (@eliza/plugin-bootstrap) The bootstrap plugin provides essential baseline functionality: Actions: continue - Continue the current conversation flowfollowRoom - Follow a room for updatesunfollowRoom - Unfollow a roomignore - Ignore specific messagesmuteRoom - Mute notifications from a roomunmuteRoom - Unmute notifications from a room Evaluators: fact - Evaluate factual accuracygoal - Assess goal completion Providers: boredom - Manages engagement levelstime - Provides temporal contextfacts - Supplies factual information 2. Image Generation Plugin (@eliza/plugin-image-generation) Enables AI image generation capabilities: Actions: GENERATE_IMAGE - Create images based on text descriptionsSupports multiple image generation services (Anthropic, Together)Auto-generates captions for created images 3. Node Plugin (@eliza/plugin-node) Provides core Node.js-based services: Services: BrowserService - Web browsing capabilitiesImageDescriptionService - Image analysisLlamaService - LLM integrationPdfService - PDF processingSpeechService - Text-to-speechTranscriptionService - Speech-to-textVideoService - Video processing 4. Solana Plugin (@eliza/plugin-solana) Integrates Solana blockchain functionality: Evaluators: trustEvaluator - Assess transaction trust scores Providers: walletProvider - Wallet managementtrustScoreProvider - Transaction trust metrics ","version":"Next","tagName":"h3"},{"title":"Using Plugins","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#using-plugins","content":" ","version":"Next","tagName":"h2"},{"title":"Installation","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#installation","content":" Install the desired plugin package: pnpm add @eliza/plugin-[name] Import and register the plugin in your character configuration: import { bootstrapPlugin } from "@eliza/plugin-bootstrap"; import { imageGenerationPlugin } from "@eliza/plugin-image-generation"; const character = { // ... other character config plugins: [bootstrapPlugin, imageGenerationPlugin], }; Here is the updated README with the Coinbase Commerce plugin information added: 🧩 Plugins ","version":"Next","tagName":"h3"},{"title":"Overview","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#overview-1","content":" Eliza's plugin system provides a modular way to extend the core functionality with additional features, actions, evaluators, and providers. Plugins are self-contained modules that can be easily added or removed to customize your agent's capabilities. ","version":"Next","tagName":"h2"},{"title":"Core Plugin Concepts","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#core-plugin-concepts-1","content":" ","version":"Next","tagName":"h2"},{"title":"Plugin Structure","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#plugin-structure-1","content":" Each plugin in Eliza must implement the Plugin interface with the following properties: interface Plugin { name: string; // Unique identifier for the plugin description: string; // Brief description of plugin functionality actions?: Action[]; // Custom actions provided by the plugin evaluators?: Evaluator[]; // Custom evaluators for behavior assessment providers?: Provider[]; // Context providers for message generation services?: Service[]; // Additional services (optional) } ","version":"Next","tagName":"h3"},{"title":"Available Plugins","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#available-plugins-1","content":" 1. Bootstrap Plugin (@eliza/plugin-bootstrap) The bootstrap plugin provides essential baseline functionality: Actions: continue - Continue the current conversation flowfollowRoom - Follow a room for updatesunfollowRoom - Unfollow a roomignore - Ignore specific messagesmuteRoom - Mute notifications from a roomunmuteRoom - Unmute notifications from a room Evaluators: fact - Evaluate factual accuracygoal - Assess goal completion Providers: boredom - Manages engagement levelstime - Provides temporal contextfacts - Supplies factual information 2. Image Generation Plugin (@eliza/plugin-image-generation) Enables AI image generation capabilities: Actions: GENERATE_IMAGE - Create images based on text descriptionsSupports multiple image generation services (Anthropic, Together)Auto-generates captions for created images 3. Node Plugin (@eliza/plugin-node) Provides core Node.js-based services: Services: BrowserService - Web browsing capabilitiesImageDescriptionService - Image analysisLlamaService - LLM integrationPdfService - PDF processingSpeechService - Text-to-speechTranscriptionService - Speech-to-textVideoService - Video processing 4. Solana Plugin (@eliza/plugin-solana) Integrates Solana blockchain functionality: Evaluators: trustEvaluator - Assess transaction trust scores Providers: walletProvider - Wallet managementtrustScoreProvider - Transaction trust metrics 5. Coinbase Commerce Plugin (@eliza/plugin-coinbase-commerce) Integrates Coinbase Commerce for payment and transaction management: Actions: CREATE_CHARGE - Create a payment charge using Coinbase CommerceGET_ALL_CHARGES - Fetch all payment chargesGET_CHARGE_DETAILS - Retrieve details for a specific charge Description:This plugin enables Eliza to interact with the Coinbase Commerce API to create and manage payment charges, providing seamless integration with cryptocurrency-based payment systems. ","version":"Next","tagName":"h3"},{"title":"Writing Custom Plugins","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#writing-custom-plugins","content":" Create a new plugin by implementing the Plugin interface: import { Plugin, Action, Evaluator, Provider } from "@ai16z/eliza"; const myCustomPlugin: Plugin = { name: "my-custom-plugin", description: "Adds custom functionality", actions: [ /* custom actions */ ], evaluators: [ /* custom evaluators */ ], providers: [ /* custom providers */ ], services: [ /* custom services */ ], }; ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#best-practices","content":" Modularity: Keep plugins focused on specific functionalityDependencies: Clearly document any external dependenciesError Handling: Implement robust error handlingDocumentation: Provide clear documentation for actions and evaluatorsTesting: Include tests for plugin functionality ","version":"Next","tagName":"h2"},{"title":"Plugin Development Guidelines","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#plugin-development-guidelines","content":" ","version":"Next","tagName":"h2"},{"title":"Action Development","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#action-development","content":" Implement the Action interfaceProvide clear validation logicInclude usage examplesHandle errors gracefully ","version":"Next","tagName":"h3"},{"title":"Evaluator Development","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#evaluator-development","content":" Implement the Evaluator interfaceDefine clear evaluation criteriaInclude validation logicDocument evaluation metrics ","version":"Next","tagName":"h3"},{"title":"Provider Development","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#provider-development","content":" Implement the Provider interfaceDefine context generation logicHandle state managementDocument provider capabilities ","version":"Next","tagName":"h3"},{"title":"Common Issues & Solutions","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#common-issues--solutions","content":" ","version":"Next","tagName":"h2"},{"title":"Plugin Loading Issues","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#plugin-loading-issues","content":" // Check if plugins are loaded correctly if (character.plugins) { console.log("Plugins are: ", character.plugins); const importedPlugins = await Promise.all( character.plugins.map(async (plugin) => { const importedPlugin = await import(plugin); return importedPlugin; }), ); character.plugins = importedPlugins; } ","version":"Next","tagName":"h3"},{"title":"Service Registration","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#service-registration","content":" // Proper service registration registerService(service: Service): void { const serviceType = (service as typeof Service).serviceType; if (this.services.has(serviceType)) { console.warn(`Service ${serviceType} is already registered`); return; } this.services.set(serviceType, service); } ","version":"Next","tagName":"h3"},{"title":"Future Extensions","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#future-extensions","content":" The plugin system is designed to be extensible. Future additions may include: Database adaptersAuthentication providersCustom model providersExternal API integrationsWorkflow automationCustom UI components ","version":"Next","tagName":"h2"},{"title":"Contributing","type":1,"pageTitle":"🧩 Plugins","url":"/eliza/docs/packages/plugins/#contributing","content":" To contribute a new plugin: Follow the plugin structure guidelinesInclude comprehensive documentationAdd tests for all functionalitySubmit a pull requestUpdate the plugin registry For detailed API documentation and examples, see the API Reference. ","version":"Next","tagName":"h2"},{"title":"Quickstart Guide","type":0,"sectionRef":"#","url":"/eliza/docs/quickstart/","content":"","keywords":"","version":"Next"},{"title":"Prerequisites","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#prerequisites","content":" Before getting started with Eliza, ensure you have: Node.js 23.1.0pnpmGit for version controlA code editor (VS Code or VSCodium recommended)CUDA Toolkit (optional, for GPU acceleration) ","version":"Next","tagName":"h2"},{"title":"Installation","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#installation","content":" Clone and Install Please be sure to check what the latest available stable version tag is. Clone the repository git clone https://github.com/ai16z/eliza.git Enter directory cd eliza Switch to latest tagged release git checkout v0.0.10 Install dependencies pnpm install Configure Environment Copy example environment file cp .env.example .env Edit .env and add your values: # Suggested quickstart environment variables DISCORD_APPLICATION_ID= # For Discord integration DISCORD_API_TOKEN= # Bot token HEURIST_API_KEY= # Heurist API key for LLM and image generation OPENAI_API_KEY= # OpenAI API key GROK_API_KEY= # Grok API key ELEVENLABS_XI_API_KEY= # API key from elevenlabs (for voice) ","version":"Next","tagName":"h2"},{"title":"Choose Your Model","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#choose-your-model","content":" Eliza supports multiple AI models: Heurist: Set modelProvider: "heurist" in your character file. Most models are uncensored. LLM: Select available LLMs here and configure SMALL_HEURIST_LANGUAGE_MODEL,MEDIUM_HEURIST_LANGUAGE_MODEL,LARGE_HEURIST_LANGUAGE_MODELImage Generation: Select available Stable Diffusion or Flux models here and configure HEURIST_IMAGE_MODEL (default is FLUX.1-dev) Llama: Set XAI_MODEL=meta-llama/Meta-Llama-3.1-70B-Instruct-TurboGrok: Set XAI_MODEL=grok-betaOpenAI: Set XAI_MODEL=gpt-4o-mini or gpt-4o You set which model to use inside the character JSON file ","version":"Next","tagName":"h2"},{"title":"Local inference","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#local-inference","content":" For llama_local inference: Set XAI_MODEL to your chosen modelLeave X_SERVER_URL and XAI_API_KEY blankThe system will automatically download the model from Hugging FaceLOCAL_LLAMA_PROVIDER can be blank Note: llama_local requires a GPU, it currently will not work with CPU inference For Ollama inference: If OLLAMA_SERVER_URL is left blank, it defaults to localhost:11434If OLLAMA_EMBEDDING_MODE is left blank, it defaults to mxbai-embed-large ","version":"Next","tagName":"h3"},{"title":"Create Your First Agent","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#create-your-first-agent","content":" Create a Character File Check out characters/trump.character.json or characters/tate.character.json as a template you can use to copy and customize your agent's personality and behavior. Additionally you can read core/src/core/defaultCharacter.ts (in 0.0.10 but post-refactor will be in packages/core/src/defaultCharacter.ts) 📝 Character Documentation Start the Agent Inform it which character you want to run: pnpm start --character="characters/trump.character.json" You can also load multiple characters with the characters option with a comma separated list: pnpm start --characters="characters/trump.character.json,characters/tate.character.json" ","version":"Next","tagName":"h2"},{"title":"Platform Integration","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#platform-integration","content":" ","version":"Next","tagName":"h2"},{"title":"Discord Bot Setup","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#discord-bot-setup","content":" Create a new application at Discord Developer PortalCreate a bot and get your tokenAdd bot to your server using OAuth2 URL generatorSet DISCORD_API_TOKEN and DISCORD_APPLICATION_ID in your .env ","version":"Next","tagName":"h3"},{"title":"Twitter Integration","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#twitter-integration","content":" Add to your .env: TWITTER_USERNAME= # Account username TWITTER_PASSWORD= # Account password TWITTER_EMAIL= # Account email TWITTER_COOKIES= # Account cookies (auth_token and CT0) Example for TWITTER_COOKIES The TWITTER_COOKIES variable should be a JSON string containing the necessary cookies. You can find these cookies in your web browser's developer tools. Here is an example format: TWITTER_COOKIES='[{"key":"auth_token","value":"your token","domain":".twitter.com"}, {"key":"ct0","value":"your ct0","domain":".twitter.com"}, {"key":"guest_id","value":"your guest_id","domain":".twitter.com"}]' Using TWITTER_COOKIES makes providing TWITTER_PASSWORD and TWITTER_EMAIL unnecessary. TWITTER_USERNAME is still required. ","version":"Next","tagName":"h3"},{"title":"Telegram Bot","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#telegram-bot","content":" Create a botAdd your bot token to .env: TELEGRAM_BOT_TOKEN=your_token_here ","version":"Next","tagName":"h3"},{"title":"Optional: GPU Acceleration","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#optional-gpu-acceleration","content":" If you have an NVIDIA GPU: # Install CUDA support npx --no node-llama-cpp source download --gpu cuda # Ensure CUDA Toolkit, cuDNN, and cuBLAS are installed ","version":"Next","tagName":"h2"},{"title":"Basic Usage Examples","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#basic-usage-examples","content":" ","version":"Next","tagName":"h2"},{"title":"Chat with Your Agent","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#chat-with-your-agent","content":" # Start chat interface pnpm start ","version":"Next","tagName":"h3"},{"title":"Run Multiple Agents","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#run-multiple-agents","content":" pnpm start --characters="characters/trump.character.json,characters/tate.character.json" ","version":"Next","tagName":"h3"},{"title":"Common Issues & Solutions","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#common-issues--solutions","content":" Node.js Version Ensure Node.js 23.1.0 is installedUse node -v to check versionConsider using nvm to manage Node versions Sharp InstallationIf you see Sharp-related errors: pnpm install --include=optional sharp CUDA Setup Verify CUDA Toolkit installationCheck GPU compatibility with toolkitEnsure proper environment variables are set Exit Status 1If you see triggerUncaughtException( ^ [Object: null prototype] { [Symbol(nodejs.util.inspect.custom)]: [Function: [nodejs.util.inspect.custom]] } You can try these steps, which aim to add @types/node to various parts of the project # Add dependencies to workspace root pnpm add -w -D ts-node typescript @types/node # Add dependencies to the agent package specifically pnpm add -D ts-node typescript @types/node --filter "@ai16z/agent" # Also add to the core package since it's needed there too pnpm add -D ts-node typescript @types/node --filter "@ai16z/eliza" # First clean everything pnpm clean # Install all dependencies recursively pnpm install -r # Build the project pnpm build # Then try to start pnpm start Better sqlite3 was compiled against a different Node.js versionIf you see Error starting agents: Error: The module '.../eliza-agents/dv/eliza/node_modules/better-sqlite3/build/Release/better_sqlite3.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 131. This version of Node.js requires NODE_MODULE_VERSION 127. Please try re-compiling or re-installing You can try this, which will attempt to rebuild better-sqlite3. pnpm rebuild better-sqlite3 If that doesn't work, try clearing your node_modules in the root folder rm -fr node_modules; rm pnpm-lock.yaml Then reinstall the requirements pnpm i ","version":"Next","tagName":"h2"},{"title":"Next Steps","type":1,"pageTitle":"Quickstart Guide","url":"/eliza/docs/quickstart/#next-steps","content":" Once you have your agent running, explore: 🤖 Understand Agents📝 Create Custom Characters⚡ Add Custom Actions🔧 Advanced Configuration For detailed API documentation, troubleshooting, and advanced features, check out our full documentation. Join our Discord community for support and updates! ","version":"Next","tagName":"h2"},{"title":"🔌 Client Packages","type":0,"sectionRef":"#","url":"/eliza/docs/packages/clients/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#overview","content":" Eliza's client packages enable integration with various platforms and services. Each client provides a standardized interface for sending and receiving messages, handling media, and interacting with platform-specific features. ","version":"Next","tagName":"h2"},{"title":"Architecture Overview","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#architecture-overview","content":" ","version":"Next","tagName":"h3"},{"title":"Available Clients","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#available-clients","content":" Discord (@eliza/client-discord) - Full Discord bot integrationTwitter (@eliza/client-twitter) - Twitter bot and interaction handlingTelegram (@eliza/client-telegram) - Telegram bot integrationDirect (@eliza/client-direct) - Direct API interface for custom integrationsAuto (@eliza/client-auto) - Automated trading and interaction client ","version":"Next","tagName":"h2"},{"title":"Installation","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#installation","content":" # Discord pnpm add @eliza/client-discord # Twitter pnpm add @eliza/client-twitter # Telegram pnpm add @eliza/client-telegram # Direct API pnpm add @eliza/client-direct # Auto Client pnpm add @eliza/client-auto ","version":"Next","tagName":"h2"},{"title":"Discord Client","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#discord-client","content":" The Discord client provides full integration with Discord's features including voice, reactions, and attachments. ","version":"Next","tagName":"h2"},{"title":"Basic Setup","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#basic-setup","content":" import { DiscordClientInterface } from "@eliza/client-discord"; // Initialize client const client = await DiscordClientInterface.start(runtime); // Configuration in .env DISCORD_APPLICATION_ID = your_app_id; DISCORD_API_TOKEN = your_bot_token; ","version":"Next","tagName":"h3"},{"title":"Features","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#features","content":" Voice channel integrationMessage attachmentsReactions handlingMedia transcriptionRoom management ","version":"Next","tagName":"h3"},{"title":"Voice Integration","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#voice-integration","content":" class VoiceManager { // Join a voice channel async handleJoinChannelCommand(interaction) { await this.joinVoiceChannel(channel); } // Handle voice state updates async handleVoiceStateUpdate(oldState, newState) { if (newState.channelId) { await this.handleUserJoinedChannel(newState); } } } ","version":"Next","tagName":"h3"},{"title":"Message Handling","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#message-handling","content":" class MessageManager { async handleMessage(message) { // Ignore bot messages if (message.author.bot) return; // Process attachments if (message.attachments.size > 0) { await this.processAttachments(message); } // Generate response await this.generateResponse(message); } } ","version":"Next","tagName":"h3"},{"title":"Twitter Client","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#twitter-client","content":" The Twitter client enables posting, searching, and interacting with Twitter users. ","version":"Next","tagName":"h2"},{"title":"Basic Setup","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#basic-setup-1","content":" import { TwitterClientInterface } from "@eliza/client-twitter"; // Initialize client const client = await TwitterClientInterface.start(runtime); // Configuration in .env TWITTER_USERNAME = your_username; TWITTER_PASSWORD = your_password; TWITTER_EMAIL = your_email; TWITTER_COOKIES = your_cookies; ","version":"Next","tagName":"h3"},{"title":"Components","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#components","content":" PostClient: Handles creating and managing postsSearchClient: Handles search functionalityInteractionClient: Manages user interactions ","version":"Next","tagName":"h3"},{"title":"Post Management","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#post-management","content":" class TwitterPostClient { async createPost(content: string) { return await this.post({ text: content, media: await this.processMedia(), }); } async replyTo(tweetId: string, content: string) { return await this.post({ text: content, reply: { in_reply_to_tweet_id: tweetId }, }); } } ","version":"Next","tagName":"h3"},{"title":"Search Features","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#search-features","content":" class TwitterSearchClient { async searchTweets(query: string) { return await this.search({ query, filters: { recency: "recent", language: "en", }, }); } } ","version":"Next","tagName":"h3"},{"title":"Telegram Client","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#telegram-client","content":" The Telegram client provides messaging and bot functionality for Telegram. ","version":"Next","tagName":"h2"},{"title":"Basic Setup","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#basic-setup-2","content":" import { TelegramClientInterface } from "@eliza/client-telegram"; // Initialize client const client = await TelegramClientInterface.start(runtime); // Configuration in .env TELEGRAM_BOT_TOKEN = your_bot_token; ","version":"Next","tagName":"h3"},{"title":"Message Management","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#message-management","content":" class TelegramClient { async handleMessage(message) { // Process message content const content = await this.processMessage(message); // Generate response const response = await this.generateResponse(content); // Send response await this.sendMessage(message.chat.id, response); } } ","version":"Next","tagName":"h3"},{"title":"Direct Client","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#direct-client","content":" The Direct client provides a REST API interface for custom integrations. ","version":"Next","tagName":"h2"},{"title":"Basic Setup","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#basic-setup-3","content":" import { DirectClientInterface } from "@eliza/client-direct"; // Initialize client const client = await DirectClientInterface.start(runtime); ","version":"Next","tagName":"h3"},{"title":"API Endpoints","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#api-endpoints","content":" class DirectClient { constructor() { // Message endpoint this.app.post("/:agentId/message", async (req, res) => { const response = await this.handleMessage(req.body); res.json(response); }); // Image generation endpoint this.app.post("/:agentId/image", async (req, res) => { const images = await this.generateImage(req.body); res.json(images); }); } } ","version":"Next","tagName":"h3"},{"title":"Auto Client","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#auto-client","content":" The Auto client enables automated interactions and trading. ","version":"Next","tagName":"h2"},{"title":"Basic Setup","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#basic-setup-4","content":" import { AutoClientInterface } from "@eliza/client-auto"; // Initialize client const client = await AutoClientInterface.start(runtime); ","version":"Next","tagName":"h3"},{"title":"Automated Trading","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#automated-trading","content":" class AutoClient { constructor(runtime: IAgentRuntime) { this.runtime = runtime; // Start trading loop this.interval = setInterval( () => { this.makeTrades(); }, 60 * 60 * 1000, ); // 1 hour interval } async makeTrades() { // Get recommendations const recommendations = await this.getHighTrustRecommendations(); // Analyze tokens const analysis = await this.analyzeTokens(recommendations); // Execute trades await this.executeTrades(analysis); } } ","version":"Next","tagName":"h3"},{"title":"Common Features","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#common-features","content":" ","version":"Next","tagName":"h2"},{"title":"Message Handling","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#message-handling-1","content":" All clients implement standard message handling: interface ClientInterface { async handleMessage(message: Message): Promise<void>; async generateResponse(context: Context): Promise<Response>; async sendMessage(destination: string, content: Content): Promise<void>; } ","version":"Next","tagName":"h3"},{"title":"Media Processing","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#media-processing","content":" interface MediaProcessor { async processImage(image: Image): Promise<ProcessedImage>; async processVideo(video: Video): Promise<ProcessedVideo>; async processAudio(audio: Audio): Promise<ProcessedAudio>; } ","version":"Next","tagName":"h3"},{"title":"Error Handling","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#error-handling","content":" class BaseClient { protected async handleError(error: Error) { console.error("Client error:", error); if (error.code === "RATE_LIMIT") { await this.handleRateLimit(error); } else if (error.code === "AUTH_FAILED") { await this.refreshAuth(); } } } ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#best-practices","content":" Authentication Store credentials securely in environment variablesImplement token refresh mechanismsHandle authentication errors gracefully Rate Limiting Implement exponential backoffTrack API usageQueue messages during rate limits Error Handling Log errors with contextImplement retry logicHandle platform-specific errors Media Processing Validate media before processingHandle different file formatsImplement size limits ","version":"Next","tagName":"h2"},{"title":"Error Handling","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#error-handling-1","content":" class BaseClient { protected async handleError(error: Error) { if (error.code === "RATE_LIMIT") { await this.handleRateLimit(error); } else if (error.code === "AUTH_FAILED") { await this.refreshAuth(); } else if (error.code === "NETWORK_ERROR") { await this.reconnect(); } // Log error console.error("Client error:", { type: error.name, message: error.message, code: error.code, stack: error.stack, }); } } ","version":"Next","tagName":"h3"},{"title":"Resource Management","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#resource-management","content":" class ClientManager { private async cleanup() { // Close connections await Promise.all(this.connections.map((conn) => conn.close())); // Clear caches this.cache.clear(); // Cancel timers this.timers.forEach((timer) => clearInterval(timer)); } private async reconnect() { await this.cleanup(); await wait(this.calculateBackoff()); await this.initialize(); } } ","version":"Next","tagName":"h3"},{"title":"Rate Limiting","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#rate-limiting","content":" class RateLimiter { private async handleRateLimit(error: RateLimitError) { const delay = this.calculateBackoff(error); await wait(delay); return this.retryRequest(); } private calculateBackoff(error: RateLimitError): number { return Math.min(this.baseDelay * Math.pow(2, this.attempts), this.maxDelay); } } ","version":"Next","tagName":"h3"},{"title":"Performance Optimization","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#performance-optimization","content":" ","version":"Next","tagName":"h2"},{"title":"Connection Management","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#connection-management","content":" class ClientManager { private reconnect() { await this.disconnect(); await wait(this.backoff()); await this.connect(); } } ","version":"Next","tagName":"h3"},{"title":"Message Queuing","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#message-queuing","content":" class MessageQueue { async queueMessage(message: Message) { await this.queue.push(message); this.processQueue(); } } ","version":"Next","tagName":"h3"},{"title":"Troubleshooting","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#common-issues","content":" Authentication Failures // Implement token refresh async refreshAuth() { const newToken = await this.requestNewToken(); await this.updateToken(newToken); } Rate Limits // Handle rate limiting async handleRateLimit(error) { const delay = this.calculateBackoff(error); await wait(delay); return this.retryRequest(); } Connection Issues // Implement reconnection logic async handleDisconnect() { await this.reconnect({ maxAttempts: 5, backoff: 'exponential' }); } Message Processing Failure async processMessage(message) { try { return await this.messageProcessor(message); } catch (error) { if (error.code === "INVALID_FORMAT") { return this.handleInvalidFormat(message); } throw error; } } ","version":"Next","tagName":"h3"},{"title":"Related Resources","type":1,"pageTitle":"🔌 Client Packages","url":"/eliza/docs/packages/clients/#related-resources","content":" Error Handling ","version":"Next","tagName":"h2"},{"title":"🤖 Agent Package","type":0,"sectionRef":"#","url":"/eliza/docs/packages/agents/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#overview","content":" The Agent Package (@eliza/agent) provides the high-level orchestration layer for Eliza, managing agent lifecycles, character loading, client initialization, and runtime coordination. ","version":"Next","tagName":"h2"},{"title":"Installation","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#installation","content":" pnpm add @eliza/agent ","version":"Next","tagName":"h2"},{"title":"Quick Start","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#quick-start","content":" import { startAgents, loadCharacters } from "@eliza/agent"; // Start agents with default or custom characters const args = parseArguments(); const characters = await loadCharacters(args.characters); // Initialize agents await startAgents(); ","version":"Next","tagName":"h2"},{"title":"Core Components","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#core-components","content":" ","version":"Next","tagName":"h2"},{"title":"Agent Creation","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#agent-creation","content":" export async function createAgent( character: Character, db: IDatabaseAdapter, token: string, ): Promise<AgentRuntime> { return new AgentRuntime({ databaseAdapter: db, token, modelProvider: character.modelProvider, character, plugins: [ bootstrapPlugin, nodePlugin, // Conditional plugins character.settings.secrets.WALLET_PUBLIC_KEY ? solanaPlugin : null, ].filter(Boolean), providers: [], actions: [], services: [], managers: [], }); } ","version":"Next","tagName":"h3"},{"title":"Character Loading","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#character-loading","content":" export async function loadCharacters( charactersArg: string, ): Promise<Character[]> { // Parse character paths let characterPaths = charactersArg ?.split(",") .map((path) => path.trim()) .map((path) => normalizePath(path)); const loadedCharacters = []; // Load each character file for (const path of characterPaths) { try { const character = JSON.parse(fs.readFileSync(path, "utf8")); // Load plugins if specified if (character.plugins) { character.plugins = await loadPlugins(character.plugins); } loadedCharacters.push(character); } catch (error) { console.error(`Error loading character from ${path}: ${error}`); } } // Fall back to default character if none loaded if (loadedCharacters.length === 0) { loadedCharacters.push(defaultCharacter); } return loadedCharacters; } ","version":"Next","tagName":"h3"},{"title":"Client Initialization","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#client-initialization","content":" export async function initializeClients( character: Character, runtime: IAgentRuntime, ) { const clients = []; const clientTypes = character.clients?.map((str) => str.toLowerCase()) || []; // Initialize requested clients if (clientTypes.includes("discord")) { clients.push(await DiscordClientInterface.start(runtime)); } if (clientTypes.includes("telegram")) { clients.push(await TelegramClientInterface.start(runtime)); } if (clientTypes.includes("twitter")) { clients.push(await TwitterClientInterface.start(runtime)); } if (clientTypes.includes("auto")) { clients.push(await AutoClientInterface.start(runtime)); } return clients; } ","version":"Next","tagName":"h3"},{"title":"Database Management","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#database-management","content":" function initializeDatabase(): IDatabaseAdapter { // Use PostgreSQL if URL provided if (process.env.POSTGRES_URL) { return new PostgresDatabaseAdapter({ connectionString: process.env.POSTGRES_URL, }); } // Fall back to SQLite return new SqliteDatabaseAdapter(new Database("./db.sqlite")); } ","version":"Next","tagName":"h2"},{"title":"Token Management","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#token-management","content":" export function getTokenForProvider( provider: ModelProviderName, character: Character, ) { switch (provider) { case ModelProviderName.OPENAI: return ( character.settings?.secrets?.OPENAI_API_KEY || settings.OPENAI_API_KEY ); case ModelProviderName.ANTHROPIC: return ( character.settings?.secrets?.ANTHROPIC_API_KEY || character.settings?.secrets?.CLAUDE_API_KEY || settings.ANTHROPIC_API_KEY ); // Handle other providers... } } ","version":"Next","tagName":"h2"},{"title":"Agent Lifecycle Management","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#agent-lifecycle-management","content":" ","version":"Next","tagName":"h2"},{"title":"Starting Agents","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#starting-agents","content":" async function startAgent(character: Character, directClient: any) { try { // Get provider token const token = getTokenForProvider(character.modelProvider, character); // Initialize database const db = initializeDatabase(); // Create runtime const runtime = await createAgent(character, db, token); // Initialize clients const clients = await initializeClients(character, runtime); // Register with direct client directClient.registerAgent(runtime); return clients; } catch (error) { console.error( `Error starting agent for character ${character.name}:`, error, ); throw error; } } ","version":"Next","tagName":"h3"},{"title":"Shell Interface","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#shell-interface","content":" const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); async function handleUserInput(input, agentId) { if (input.toLowerCase() === "exit") { rl.close(); return; } try { const response = await fetch( `http://localhost:${serverPort}/${agentId}/message`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ text: input, userId: "user", userName: "User", }), }, ); const data = await response.json(); data.forEach((message) => console.log(`Agent: ${message.text}`)); } catch (error) { console.error("Error:", error); } } ","version":"Next","tagName":"h3"},{"title":"Advanced Features","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#advanced-features","content":" ","version":"Next","tagName":"h2"},{"title":"Plugin Management","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#plugin-management","content":" async function loadPlugins(pluginPaths: string[]) { return await Promise.all( pluginPaths.map(async (plugin) => { const importedPlugin = await import(plugin); return importedPlugin; }), ); } ","version":"Next","tagName":"h3"},{"title":"Character Hot Reloading","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#character-hot-reloading","content":" async function reloadCharacter(runtime: IAgentRuntime, characterPath: string) { // Load new character const character = JSON.parse(fs.readFileSync(characterPath, "utf8")); // Update runtime runtime.character = character; // Reload plugins if (character.plugins) { const plugins = await loadPlugins(character.plugins); runtime.registerPlugins(plugins); } } ","version":"Next","tagName":"h3"},{"title":"Multi-Agent Coordination","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#multi-agent-coordination","content":" class AgentCoordinator { private agents: Map<string, IAgentRuntime>; async broadcast(message: Memory) { const responses = await Promise.all( Array.from(this.agents.values()).map((agent) => agent.processMessage(message), ), ); return responses; } async coordinate(agents: string[], task: Task) { // Coordinate multiple agents on a task const selectedAgents = agents.map((id) => this.agents.get(id)); return await this.executeCoordinatedTask(selectedAgents, task); } } ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"Character Management","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#character-management","content":" // Validate character before loading function validateCharacter(character: Character) { if (!character.name) { throw new Error("Character must have a name"); } if (!character.modelProvider) { throw new Error("Model provider must be specified"); } } // Use character versioning const character = { name: "Agent", version: "1.0.0", // ... }; ","version":"Next","tagName":"h3"},{"title":"Error Handling","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#error-handling","content":" async function handleAgentError(error: Error, character: Character) { // Log error with context console.error(`Agent ${character.name} error:`, error); // Attempt recovery if (error.code === "TOKEN_EXPIRED") { await refreshToken(character); } // Notify monitoring await notify({ level: "error", character: character.name, error, }); } ","version":"Next","tagName":"h3"},{"title":"Resource Management","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#resource-management","content":" class ResourceManager { async cleanup() { // Close database connections await this.db.close(); // Shutdown clients await Promise.all(this.clients.map((client) => client.stop())); // Clear caches this.cache.clear(); } async monitor() { // Monitor resource usage const usage = process.memoryUsage(); if (usage.heapUsed > threshold) { await this.cleanup(); } } } ","version":"Next","tagName":"h3"},{"title":"Troubleshooting","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#common-issues","content":" Character Loading Failures try { await loadCharacters(charactersArg); } catch (error) { if (error.code === "ENOENT") { console.error("Character file not found"); } else if (error instanceof SyntaxError) { console.error("Invalid character JSON"); } } Client Initialization Errors async function handleClientError(error: Error) { if (error.message.includes("rate limit")) { await wait(exponentialBackoff()); } else if (error.message.includes("auth")) { await refreshAuth(); } } Database Connection Issues async function handleDbError(error: Error) { if (error.message.includes("connection")) { await reconnectDb(); } else if (error.message.includes("locked")) { await waitForLock(); } } ","version":"Next","tagName":"h3"},{"title":"Related Resources","type":1,"pageTitle":"🤖 Agent Package","url":"/eliza/docs/packages/agents/#related-resources","content":" Character Creation GuideClient ConfigurationPlugin DevelopmentMulti-Agent Setup ","version":"Next","tagName":"h2"},{"title":"🔧 Database Adapters","type":0,"sectionRef":"#","url":"/eliza/docs/packages/database-adapters/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#overview","content":" Database Adapters provide the persistence layer for Eliza, enabling storage and retrieval of memories, relationships, goals, and other core data. The system supports multiple database backends through a unified interface. ","version":"Next","tagName":"h2"},{"title":"Available Adapters","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#available-adapters","content":" Eliza includes the following database adapters: PostgreSQL Adapter (@eliza/adapter-postgres) - Production-ready adapter for PostgreSQL databasesSQLite Adapter (@eliza/adapter-sqlite) - Lightweight adapter for SQLite, perfect for developmentSQL.js Adapter (@eliza/adapter-sqljs) - In-memory SQLite adapter for testingSupabase Adapter (@eliza/adapter-supabase) - Cloud-native adapter for Supabase ","version":"Next","tagName":"h2"},{"title":"Installation","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#installation","content":" # PostgreSQL pnpm add @eliza/adapter-postgres # SQLite pnpm add @eliza/adapter-sqlite # SQL.js pnpm add @eliza/adapter-sqljs # Supabase pnpm add @eliza/adapter-supabase ","version":"Next","tagName":"h2"},{"title":"Quick Start","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#quick-start","content":" ","version":"Next","tagName":"h2"},{"title":"SQLite (Development)","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#sqlite-development","content":" import { SqliteDatabaseAdapter } from "@eliza/adapter-sqlite"; import Database from "better-sqlite3"; const db = new SqliteDatabaseAdapter(new Database("./dev.db")); ","version":"Next","tagName":"h3"},{"title":"PostgreSQL (Production)","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#postgresql-production","content":" import { PostgresDatabaseAdapter } from "@eliza/adapter-postgres"; const db = new PostgresDatabaseAdapter({ connectionString: process.env.DATABASE_URL, // Optional connection pool settings max: 20, idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000, }); ","version":"Next","tagName":"h3"},{"title":"Supabase (Cloud)","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#supabase-cloud","content":" import { SupabaseDatabaseAdapter } from "@eliza/adapter-supabase"; const db = new SupabaseDatabaseAdapter( process.env.SUPABASE_URL, process.env.SUPABASE_SERVICE_API_KEY, ); ","version":"Next","tagName":"h3"},{"title":"Core Concepts","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#core-concepts","content":" ","version":"Next","tagName":"h2"},{"title":"Memory Storage","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#memory-storage","content":" Memories are the fundamental unit of storage in Eliza. They represent messages, documents, and other content with optional embeddings for semantic search. interface Memory { id: UUID; content: { text: string; attachments?: Attachment[]; }; embedding?: number[]; userId: UUID; roomId: UUID; agentId: UUID; createdAt: number; } ","version":"Next","tagName":"h3"},{"title":"Relationships","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#relationships","content":" Relationships track connections between users and agents: interface Relationship { userA: UUID; userB: UUID; status: "FRIENDS" | "BLOCKED"; } ","version":"Next","tagName":"h3"},{"title":"Goals","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#goals","content":" Goals track objectives and their progress: interface Goal { id: UUID; roomId: UUID; userId: UUID; name: string; status: GoalStatus; objectives: Objective[]; } ","version":"Next","tagName":"h3"},{"title":"Common Operations","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#common-operations","content":" ","version":"Next","tagName":"h2"},{"title":"Memory Management","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#memory-management","content":" // Create a memory await db.createMemory( { id: uuid(), content: { text: "Hello world" }, userId: user.id, roomId: room.id, agentId: agent.id, createdAt: Date.now(), }, "messages", ); // Search memories by embedding const similar = await db.searchMemoriesByEmbedding(embedding, { match_threshold: 0.8, count: 10, roomId: room.id, }); // Get recent memories const recent = await db.getMemories({ roomId: room.id, count: 10, unique: true, }); ","version":"Next","tagName":"h3"},{"title":"Relationship Management","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#relationship-management","content":" // Create relationship await db.createRelationship({ userA: user1.id, userB: user2.id, }); // Get relationships for user const relationships = await db.getRelationships({ userId: user.id, }); ","version":"Next","tagName":"h3"},{"title":"Goal Management","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#goal-management","content":" // Create goal await db.createGoal({ id: uuid(), roomId: room.id, userId: user.id, name: "Complete task", status: "IN_PROGRESS", objectives: [], }); // Get active goals const goals = await db.getGoals({ roomId: room.id, onlyInProgress: true, }); ","version":"Next","tagName":"h3"},{"title":"Vector Search","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#vector-search","content":" All adapters support vector similarity search for memory retrieval: // Search by embedding vector const memories = await db.searchMemories({ tableName: "memories", roomId: room.id, embedding: [0.1, 0.2, ...], // 1536-dimensional vector match_threshold: 0.8, match_count: 10, unique: true }); // Get cached embeddings const cached = await db.getCachedEmbeddings({ query_table_name: "memories", query_threshold: 0.8, query_input: "search text", query_field_name: "content", query_field_sub_name: "text", query_match_count: 10 }); ","version":"Next","tagName":"h2"},{"title":"Performance Optimization","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#performance-optimization","content":" ","version":"Next","tagName":"h2"},{"title":"Connection Pooling (PostgreSQL)","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#connection-pooling-postgresql","content":" const db = new PostgresDatabaseAdapter({ connectionString: process.env.DATABASE_URL, max: 20, // Maximum pool size idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000, }); ","version":"Next","tagName":"h3"},{"title":"Memory Usage (SQLite)","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#memory-usage-sqlite","content":" const db = new SqliteDatabaseAdapter( new Database("./dev.db", { memory: true, // In-memory database readonly: false, fileMustExist: false, }), ); ","version":"Next","tagName":"h3"},{"title":"Caching (All Adapters)","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#caching-all-adapters","content":" // Enable memory caching const memory = new MemoryManager({ runtime, tableName: "messages", cacheSize: 1000, cacheTTL: 3600, }); ","version":"Next","tagName":"h3"},{"title":"Schema Management","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#schema-management","content":" ","version":"Next","tagName":"h2"},{"title":"PostgreSQL Migrations","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#postgresql-migrations","content":" -- migrations/20240318103238_remote_schema.sql CREATE TABLE memories ( id UUID PRIMARY KEY, type TEXT NOT NULL, content JSONB NOT NULL, embedding vector(1536), "userId" UUID NOT NULL, "roomId" UUID NOT NULL, "agentId" UUID NOT NULL, "unique" BOOLEAN DEFAULT FALSE, "createdAt" TIMESTAMP NOT NULL ); ","version":"Next","tagName":"h3"},{"title":"SQLite Schema","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#sqlite-schema","content":" const sqliteTables = ` CREATE TABLE IF NOT EXISTS memories ( id TEXT PRIMARY KEY, type TEXT NOT NULL, content TEXT NOT NULL, embedding BLOB, userId TEXT NOT NULL, roomId TEXT NOT NULL, agentId TEXT NOT NULL, "unique" INTEGER DEFAULT 0, createdAt INTEGER NOT NULL ); `; ","version":"Next","tagName":"h3"},{"title":"Error Handling","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#error-handling","content":" try { await db.createMemory(memory); } catch (error) { if (error.code === "SQLITE_CONSTRAINT") { // Handle unique constraint violation } else if (error.code === "23505") { // Handle Postgres unique violation } else { // Handle other errors } } ","version":"Next","tagName":"h2"},{"title":"Extending Adapters","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#extending-adapters","content":" To create a custom adapter, implement the DatabaseAdapter interface: class CustomDatabaseAdapter extends DatabaseAdapter { async createMemory(memory: Memory, tableName: string): Promise<void> { // Custom implementation } async getMemories(params: { roomId: UUID; count?: number; unique?: boolean; }): Promise<Memory[]> { // Custom implementation } // Implement other required methods... } ","version":"Next","tagName":"h2"},{"title":"Best Practices","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#best-practices","content":" Connection Management Use connection pooling for PostgreSQLClose connections properly when using SQLiteHandle connection errors gracefully Vector Search Set appropriate match thresholds based on your use caseIndex embedding columns for better performanceCache frequently accessed embeddings Memory Management Implement cleanup strategies for old memoriesUse unique flags to prevent duplicatesConsider partitioning large tables Error Handling Implement retries for transient failuresLog database errors with contextUse transactions for atomic operations ","version":"Next","tagName":"h2"},{"title":"Troubleshooting","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#troubleshooting","content":" ","version":"Next","tagName":"h2"},{"title":"Common Issues","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#common-issues","content":" Connection Timeouts // Increase connection timeout const db = new PostgresDatabaseAdapter({ connectionTimeoutMillis: 5000, }); Memory Leaks // Clean up old memories periodically await db.removeAllMemories(roomId, tableName); Vector Search Performance // Create appropriate indexes CREATE INDEX embedding_idx ON memories USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100); ","version":"Next","tagName":"h3"},{"title":"Related Resources","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/database-adapters/#related-resources","content":" Memory Manager DocumentationVector Search GuideDatabase Schema Reference ","version":"Next","tagName":"h2"},{"title":"🔧 Database Adapters","type":0,"sectionRef":"#","url":"/eliza/docs/packages/adapters/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#overview","content":" Database Adapters provide Eliza's persistence layer, enabling storage and retrieval of memories, relationships, goals, and other data through a unified interface. The system supports multiple database backends: ","version":"Next","tagName":"h2"},{"title":"Available Adapters","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#available-adapters","content":" Each adapter is optimized for different use cases: PostgreSQL (@ai16z/adapter-postgres) Production-ready with vector searchConnection pooling and high performanceJSONB and pgvector support SQLite (@ai16z/adapter-sqlite) Lightweight local developmentNo external dependenciesFull-text search capabilities Supabase (@ai16z/adapter-supabase) Cloud-native PostgreSQLReal-time subscriptionsBuilt-in RPC functions SQL.js (@ai16z/adapter-sqljs) In-memory SQLite for testingBrowser compatibilityZero configuration ","version":"Next","tagName":"h3"},{"title":"Architecture Overview","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#architecture-overview","content":" Eliza's database adapters provide a unified interface for data persistence across different storage backends. The following diagram shows how adapters integrate with the system: Key components: DatabaseAdapter: Abstract base class defining the interfaceConcrete Adapters: PostgreSQL, SQLite, Supabase, and SQL.js implementationsMemory Management: Integration with MemoryManager for data operationsData Models: Memory, Goal, and Relationship data structures ","version":"Next","tagName":"h3"},{"title":"Installation","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#installation","content":" # PostgreSQL pnpm add @ai16z/adapter-postgres pg # SQLite pnpm add @ai16z/adapter-sqlite better-sqlite3 # SQL.js pnpm add @ai16z/adapter-sqljs sql.js # Supabase pnpm add @ai16z/adapter-supabase @supabase/supabase-js ","version":"Next","tagName":"h2"},{"title":"Quick Start","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#quick-start","content":" ","version":"Next","tagName":"h2"},{"title":"PostgreSQL Setup","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#postgresql-setup","content":" import { PostgresDatabaseAdapter } from "@ai16z/adapter-postgres"; const db = new PostgresDatabaseAdapter({ connectionString: process.env.DATABASE_URL, max: 20, // Connection pool size idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000, }); // Test connection await db.testConnection(); ","version":"Next","tagName":"h3"},{"title":"SQLite Setup","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#sqlite-setup","content":" import { SqliteDatabaseAdapter } from "@ai16z/adapter-sqlite"; import Database from "better-sqlite3"; const db = new SqliteDatabaseAdapter( new Database("./db.sqlite", { // SQLite options memory: false, readonly: false, fileMustExist: false, }), ); ","version":"Next","tagName":"h3"},{"title":"Supabase Setup","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#supabase-setup","content":" import { SupabaseDatabaseAdapter } from "@ai16z/adapter-supabase"; const db = new SupabaseDatabaseAdapter( process.env.SUPABASE_URL!, process.env.SUPABASE_ANON_KEY!, ); ","version":"Next","tagName":"h3"},{"title":"Core Features","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#core-features","content":" ","version":"Next","tagName":"h2"},{"title":"Memory Operations","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#memory-operations","content":" // Create memory await db.createMemory({ id: uuid(), type: "messages", content: { text: "Hello world", attachments: [], }, embedding: new Float32Array(1536), // Embedding vector userId, roomId, agentId, createdAt: Date.now(), unique: true, }); // Search by embedding const memories = await db.searchMemories({ tableName: "messages", roomId, embedding: vectorData, match_threshold: 0.8, match_count: 10, unique: true, }); // Get recent memories const recent = await db.getMemories({ roomId, count: 10, unique: true, tableName: "messages", start: startTime, end: endTime, }); ","version":"Next","tagName":"h3"},{"title":"Relationship Management","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#relationship-management","content":" // Create relationship await db.createRelationship({ userA: user1Id, userB: user2Id, }); // Get relationship const relationship = await db.getRelationship({ userA: user1Id, userB: user2Id, }); // Get all relationships const relationships = await db.getRelationships({ userId: user1Id, }); ","version":"Next","tagName":"h3"},{"title":"Goal Management","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#goal-management","content":" // Create goal await db.createGoal({ id: uuid(), roomId, userId, name: "Complete task", status: GoalStatus.IN_PROGRESS, objectives: [ { text: "Step 1", completed: false }, { text: "Step 2", completed: false }, ], }); // Update goal status await db.updateGoalStatus({ goalId, status: GoalStatus.COMPLETED, }); // Get active goals const goals = await db.getGoals({ roomId, userId, onlyInProgress: true, count: 10, }); ","version":"Next","tagName":"h3"},{"title":"Room & Participant Management","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#room--participant-management","content":" // Create room const roomId = await db.createRoom(); // Add participant await db.addParticipant(userId, roomId); // Get participants const participants = await db.getParticipantsForRoom(roomId); // Get rooms for participant const rooms = await db.getRoomsForParticipant(userId); ","version":"Next","tagName":"h3"},{"title":"Vector Search Implementation","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#vector-search-implementation","content":" ","version":"Next","tagName":"h2"},{"title":"PostgreSQL (with pgvector)","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#postgresql-with-pgvector","content":" // PostgreSQL vector search async searchMemoriesByEmbedding( embedding: number[], params: { match_threshold?: number; count?: number; roomId?: UUID; unique?: boolean; tableName: string; } ): Promise<Memory[]> { const client = await this.pool.connect(); try { let sql = ` SELECT *, 1 - (embedding <-> $1::vector) as similarity FROM memories WHERE type = $2 `; const values: any[] = [ `[${embedding.join(",")}]`, params.tableName ]; if (params.unique) { sql += ` AND "unique" = true`; } if (params.roomId) { sql += ` AND "roomId" = $3::uuid`; values.push(params.roomId); } if (params.match_threshold) { sql += ` AND 1 - (embedding <-> $1::vector) >= $4`; values.push(params.match_threshold); } sql += ` ORDER BY embedding <-> $1::vector`; if (params.count) { sql += ` LIMIT $5`; values.push(params.count); } const { rows } = await client.query(sql, values); return rows.map(row => ({ ...row, content: typeof row.content === "string" ? JSON.parse(row.content) : row.content, similarity: row.similarity })); } finally { client.release(); } } ","version":"Next","tagName":"h3"},{"title":"SQLite (with sqlite-vss)","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#sqlite-with-sqlite-vss","content":" // SQLite vector search implementation async searchMemories(params: { tableName: string; roomId: UUID; embedding: number[]; match_threshold: number; match_count: number; unique: boolean; }): Promise<Memory[]> { const queryParams = [ new Float32Array(params.embedding), params.tableName, params.roomId, params.match_count ]; let sql = ` SELECT *, vec_distance_L2(embedding, ?) AS similarity FROM memories WHERE type = ? `; if (params.unique) { sql += " AND `unique` = 1"; } sql += ` ORDER BY similarity ASC LIMIT ?`; const memories = this.db.prepare(sql).all(...queryParams); return memories.map(memory => ({ ...memory, content: JSON.parse(memory.content), similarity: memory.similarity })); } ","version":"Next","tagName":"h3"},{"title":"Schema Management","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#schema-management","content":" ","version":"Next","tagName":"h2"},{"title":"PostgreSQL Schema","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#postgresql-schema","content":" CREATE EXTENSION IF NOT EXISTS vector; CREATE TABLE IF NOT EXISTS accounts ( id UUID PRIMARY KEY, "createdAt" DEFAULT CURRENT_TIMESTAMP, "name" TEXT, "username" TEXT, "email" TEXT NOT NULL, "avatarUrl" TEXT, "details" JSONB DEFAULT '{}'::"jsonb", "is_agent" BOOLEAN DEFAULT false NOT NULL, "location" TEXT, "profile_line" TEXT, "signed_tos" BOOLEAN DEFAULT false NOT NULL ); ALTER TABLE ONLY accounts ADD CONSTRAINT users_email_key UNIQUE (email); CREATE TABLE IF NOT EXISTS participants ( "id" UUID PRIMARY KEY, "createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL, "userId" UUID REFERENCES accounts(id), "roomId" UUID REFERENCES rooms(id), "userState" TEXT, -- For MUTED, NULL, or FOLLOWED states "last_message_read" UUID ); ALTER TABLE ONLY participants ADD CONSTRAINT participants_id_key UNIQUE (id); ALTER TABLE ONLY participants ADD CONSTRAINT participants_roomId_fkey FOREIGN KEY ("roomId") REFERENCES rooms(id); ALTER TABLE ONLY participants ADD CONSTRAINT participants_userId_fkey FOREIGN KEY ("userId") REFERENCES accounts(id); CREATE TABLE rooms ( id UUID PRIMARY KEY, "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE memories ( id UUID PRIMARY KEY, type TEXT NOT NULL, content JSONB NOT NULL, embedding vector(1536), "userId" UUID NOT NULL, "roomId" UUID NOT NULL, "agentId" UUID NOT NULL, "unique" BOOLEAN DEFAULT FALSE, "createdAt" TIMESTAMP NOT NULL ); ALTER TABLE ONLY memories ADD CONSTRAINT memories_roomId_fkey FOREIGN KEY ("roomId") REFERENCES rooms(id); ALTER TABLE ONLY memories ADD CONSTRAINT memories_userId_fkey FOREIGN KEY ("userId") REFERENCES accounts(id); CREATE INDEX memory_embedding_idx ON memories USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100); CREATE TABLE relationships ( id UUID PRIMARY KEY, "userA" UUID NOT NULL, "userB" UUID NOT NULL, status TEXT DEFAULT 'ACTIVE', "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ALTER TABLE ONLY relationships ADD CONSTRAINT friendships_id_key UNIQUE (id); ALTER TABLE ONLY relationships ADD CONSTRAINT relationships_userA_fkey FOREIGN KEY ("userA") REFERENCES accounts(id); ALTER TABLE ONLY relationships ADD CONSTRAINT relationships_userB_fkey FOREIGN KEY ("userB") REFERENCES accounts(id); ALTER TABLE ONLY relationships ADD CONSTRAINT relationships_userId_fkey FOREIGN KEY ("userId") REFERENCES accounts(id); CREATE TABLE goals ( id UUID PRIMARY KEY, "roomId" UUID NOT NULL, "userId" UUID, name TEXT NOT NULL, status TEXT NOT NULL, objectives JSONB NOT NULL, "createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ","version":"Next","tagName":"h3"},{"title":"SQLite Schema","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#sqlite-schema","content":" const sqliteTables = ` CREATE TABLE IF NOT EXISTS memories ( id TEXT PRIMARY KEY, type TEXT NOT NULL, content TEXT NOT NULL, embedding BLOB, userId TEXT NOT NULL, roomId TEXT NOT NULL, agentId TEXT NOT NULL, "unique" INTEGER DEFAULT 0, createdAt INTEGER NOT NULL ); CREATE VIRTUAL TABLE IF NOT EXISTS memory_fts USING fts5(content, content_rowid=id); CREATE TABLE IF NOT EXISTS goals ( id TEXT PRIMARY KEY, roomId TEXT NOT NULL, userId TEXT, name TEXT NOT NULL, status TEXT NOT NULL, objectives TEXT NOT NULL, createdAt INTEGER DEFAULT (unixepoch()) ); `; ","version":"Next","tagName":"h3"},{"title":"Performance Optimization","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#performance-optimization","content":" ","version":"Next","tagName":"h2"},{"title":"Connection Pooling","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#connection-pooling","content":" // PostgreSQL connection pool constructor(connectionConfig: any) { super(); this.pool = new Pool({ ...connectionConfig, max: 20, idleTimeoutMillis: 30000, connectionTimeoutMillis: 2000 }); this.pool.on("error", (err) => { console.error("Unexpected error on idle client", err); }); } ","version":"Next","tagName":"h3"},{"title":"Prepared Statements","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#prepared-statements","content":" // SQLite prepared statements class SqliteDatabaseAdapter extends DatabaseAdapter { private statements = new Map<string, Statement>(); prepareStatement(sql: string): Statement { let stmt = this.statements.get(sql); if (!stmt) { stmt = this.db.prepare(sql); this.statements.set(sql, stmt); } return stmt; } // Use prepared statements async getMemoryById(id: UUID): Promise<Memory | null> { const stmt = this.prepareStatement("SELECT * FROM memories WHERE id = ?"); const memory = stmt.get(id); return memory ? { ...memory, content: JSON.parse(memory.content), } : null; } } ","version":"Next","tagName":"h3"},{"title":"Batch Operations","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#batch-operations","content":" // Batch memory creation async createMemories(memories: Memory[], tableName: string) { const client = await this.pool.connect(); try { await client.query('BEGIN'); const stmt = await client.prepare( `INSERT INTO memories ( id, type, content, embedding, "userId", "roomId", "agentId", "unique", "createdAt" ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)` ); for (const memory of memories) { await stmt.execute([ memory.id, tableName, JSON.stringify(memory.content), memory.embedding, memory.userId, memory.roomId, memory.agentId, memory.unique ?? false, memory.createdAt ]); } await client.query('COMMIT'); } catch (error) { await client.query('ROLLBACK'); throw error; } finally { client.release(); } } ","version":"Next","tagName":"h3"},{"title":"Error Handling","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#error-handling","content":" class DatabaseAdapter { protected async withTransaction<T>( callback: (client: PoolClient) => Promise<T>, ): Promise<T> { const client = await this.pool.connect(); try { await client.query("BEGIN"); const result = await callback(client); await client.query("COMMIT"); return result; } catch (error) { await client.query("ROLLBACK"); if (error instanceof DatabaseError) { // Handle specific database errors if (error.code === "23505") { throw new UniqueViolationError(error); } } throw error; } finally { client.release(); } } } ","version":"Next","tagName":"h2"},{"title":"Extension Points","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#extension-points","content":" ","version":"Next","tagName":"h2"},{"title":"Custom Adapter Implementation","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#custom-adapter-implementation","content":" class CustomDatabaseAdapter extends DatabaseAdapter { constructor(config: CustomConfig) { super(); // Initialize custom database connection } // Implement required methods async createMemory(memory: Memory, tableName: string): Promise<void> { // Custom implementation } async searchMemories(params: SearchParams): Promise<Memory[]> { // Custom implementation } // Add custom functionality async customOperation(): Promise<void> { // Custom database operation } } ","version":"Next","tagName":"h3"},{"title":"Best Practices","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#best-practices","content":" Connection Management Use connection pooling for PostgreSQLHandle connection failures gracefullyImplement proper cleanup Transaction Handling Use transactions for atomic operationsImplement proper rollback handlingManage nested transactions Error Handling Implement specific error typesHandle constraint violationsProvide meaningful error messages Resource Management Close connections properlyClean up prepared statementsMonitor connection pools ","version":"Next","tagName":"h2"},{"title":"Related Resources","type":1,"pageTitle":"🔧 Database Adapters","url":"/eliza/docs/packages/adapters/#related-resources","content":" Database Schema ReferenceError Handling ","version":"Next","tagName":"h2"},{"title":"📦 Core Package","type":0,"sectionRef":"#","url":"/eliza/docs/packages/core/","content":"","keywords":"","version":"Next"},{"title":"Overview","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#overview","content":" The Core Package (@ai16z/core) provides the fundamental building blocks of Eliza's architecture, handling essential functionalities like: Memory Management & Semantic SearchMessage Processing & GenerationRuntime Environment & State ManagementAction & Evaluator SystemsProvider Integration & Context CompositionService Infrastructure ","version":"Next","tagName":"h2"},{"title":"Installation","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#installation","content":" pnpm add @ai16z/core ","version":"Next","tagName":"h2"},{"title":"Key Components","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#key-components","content":" ","version":"Next","tagName":"h2"},{"title":"AgentRuntime","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#agentruntime","content":" The AgentRuntime class serves as the central nervous system of Eliza, orchestrating all major components: import { AgentRuntime } from "@ai16z/core"; const runtime = new AgentRuntime({ // Core configuration databaseAdapter, token, modelProvider: ModelProviderName.OPENAI, character, // Extension points plugins: [bootstrapPlugin, nodePlugin], providers: [], actions: [], services: [], managers: [], // Optional settings conversationLength: 32, agentId: customId, fetch: customFetch, }); Key capabilities: State composition and managementPlugin and service registrationMemory and relationship managementAction processing and evaluationMessage generation and handling ","version":"Next","tagName":"h3"},{"title":"Memory System","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#memory-system","content":" The MemoryManager handles persistent storage and retrieval of context-aware information: class MemoryManager implements IMemoryManager { runtime: IAgentRuntime; tableName: string; // Create new memories with embeddings async createMemory(memory: Memory, unique = false): Promise<void> { if (!memory.embedding) { memory.embedding = await embed(this.runtime, memory.content.text); } await this.runtime.databaseAdapter.createMemory( memory, this.tableName, unique, ); } // Semantic search with embeddings async searchMemoriesByEmbedding( embedding: number[], opts: { match_threshold?: number; count?: number; roomId: UUID; unique?: boolean; }, ): Promise<Memory[]> { return this.runtime.databaseAdapter.searchMemories({ tableName: this.tableName, roomId: opts.roomId, embedding, match_threshold: opts.match_threshold ?? 0.8, match_count: opts.count ?? 10, unique: opts.unique ?? false, }); } } ","version":"Next","tagName":"h3"},{"title":"Context System","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#context-system","content":" The context system manages state composition and template handling: // Template composition export const composeContext = ({ state, template, }: { state: State; template: string; }): string => { return template.replace(/{{\\w+}}/g, (match) => { const key = match.replace(/{{|}}/g, ""); return state[key] ?? ""; }); }; // Header handling export const addHeader = (header: string, body: string): string => { return body.length > 0 ? `${header ? header + "\\n" : header}${body}\\n` : ""; }; ","version":"Next","tagName":"h3"},{"title":"Action System","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#action-system","content":" Actions define the available behaviors and responses: interface Action { name: string; similes: string[]; description: string; examples: MessageExample[][]; validate: ( runtime: IAgentRuntime, message: Memory, state?: State, ) => Promise<boolean>; handler: ( runtime: IAgentRuntime, message: Memory, state?: State, options?: any, callback?: HandlerCallback, ) => Promise<void>; } // Example action implementation const generateImageAction: Action = { name: "GENERATE_IMAGE", similes: ["CREATE_IMAGE", "MAKE_PICTURE"], description: "Generate an AI image from text", validate: async (runtime, message) => { return ( !!runtime.getSetting("ANTHROPIC_API_KEY") && !!runtime.getSetting("TOGETHER_API_KEY") ); }, handler: async (runtime, message, state, options, callback) => { const images = await generateImage( { prompt: message.content.text }, runtime, ); const captions = await Promise.all( images.data.map((image) => generateCaption({ imageUrl: image }, runtime)), ); callback?.( { text: "Generated images", attachments: images.data.map((image, i) => ({ id: crypto.randomUUID(), url: image, title: "Generated image", description: captions[i].title, })), }, [], ); }, }; ","version":"Next","tagName":"h3"},{"title":"Evaluation System","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#evaluation-system","content":" Evaluators assess messages and guide agent behavior: interface Evaluator { name: string; similes: string[]; alwaysRun?: boolean; validate: ( runtime: IAgentRuntime, message: Memory, state?: State, ) => Promise<boolean>; handler: (runtime: IAgentRuntime, message: Memory) => Promise<void>; } // Example evaluator const factEvaluator: Evaluator = { name: "EVALUATE_FACTS", similes: ["CHECK_FACTS"], alwaysRun: true, validate: async (runtime, message) => { return message.content.text.includes("fact:"); }, handler: async (runtime, message) => { const facts = await runtime.loreManager.searchMemories({ text: message.content.text, threshold: 0.8, }); if (facts.length > 0) { await runtime.messageManager.createMemory({ content: { text: `Verified fact: ${facts[0].content.text}`, }, roomId: message.roomId, userId: runtime.agentId, }); } }, }; ","version":"Next","tagName":"h3"},{"title":"State Management","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#state-management","content":" The state system maintains conversation context and agent knowledge: interface State { // Agent identity agentId: UUID; agentName: string; bio: string; lore: string; adjective?: string; // Conversation context senderName?: string; actors: string; actorsData: Actor[]; recentMessages: string; recentMessagesData: Memory[]; // Objectives goals: string; goalsData: Goal[]; // Behavioral guidance actions: string; actionNames: string; evaluators: string; evaluatorNames: string; // Additional context providers: string; attachments: string; characterPostExamples?: string; characterMessageExamples?: string; } ","version":"Next","tagName":"h3"},{"title":"Service Architecture","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#service-architecture","content":" The core implements a service-based architecture: // Service base class class Service { static serviceType: ServiceType; async initialize( device: string | null, runtime: IAgentRuntime, ): Promise<void>; } // Service registry class ServiceRegistry { private services = new Map<ServiceType, Service>(); registerService(service: Service): void { const type = (service as typeof Service).serviceType; if (this.services.has(type)) { console.warn(`Service ${type} already registered`); return; } this.services.set(type, service); } getService<T>(type: ServiceType): T | null { return (this.services.get(type) as T) || null; } } ","version":"Next","tagName":"h2"},{"title":"Best Practices","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#best-practices","content":" ","version":"Next","tagName":"h2"},{"title":"Memory Management","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#memory-management","content":" // Use unique flags for important memories await memoryManager.createMemory(memory, true); // Search with appropriate thresholds const similar = await memoryManager.searchMemoriesByEmbedding(embedding, { match_threshold: 0.8, count: 10, }); // Clean up old memories periodically await memoryManager.removeAllMemories(roomId, tableName); ","version":"Next","tagName":"h3"},{"title":"State Composition","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#state-composition","content":" // Compose full state const state = await runtime.composeState(message, { additionalContext: "Custom context", }); // Update with recent messages const updatedState = await runtime.updateRecentMessageState(state); // Add custom providers state.providers = addHeader( "# Additional Information", await Promise.all(providers.map((p) => p.get(runtime, message))).join("\\n"), ); ","version":"Next","tagName":"h3"},{"title":"Service Management","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#service-management","content":" // Service initialization class CustomService extends Service { static serviceType = ServiceType.CUSTOM; async initialize(device: string | null, runtime: IAgentRuntime) { await this.setupDependencies(); await this.validateConfig(); await this.connect(); } async cleanup() { await this.disconnect(); await this.clearResources(); } } // Service registration runtime.registerService(new CustomService()); // Service usage const service = runtime.getService<CustomService>(ServiceType.CUSTOM); ","version":"Next","tagName":"h3"},{"title":"Error Handling","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#error-handling","content":" Implement proper error handling throughout: try { await runtime.processActions(message, responses, state); } catch (error) { if (error instanceof TokenError) { await this.refreshToken(); } else if (error instanceof DatabaseError) { await this.reconnectDatabase(); } else { console.error("Unexpected error:", error); throw error; } } ","version":"Next","tagName":"h2"},{"title":"Advanced Features","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#advanced-features","content":" ","version":"Next","tagName":"h2"},{"title":"Custom Memory Types","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#custom-memory-types","content":" // Create specialized memory managers class DocumentMemoryManager extends MemoryManager { constructor(runtime: IAgentRuntime) { super({ runtime, tableName: "documents", useCache: true, }); } async processDocument(doc: Document): Promise<void> { const chunks = await splitChunks(doc.content); for (const chunk of chunks) { await this.createMemory({ content: { text: chunk }, metadata: { documentId: doc.id, section: chunk.section, }, }); } } } ","version":"Next","tagName":"h3"},{"title":"Enhanced Embeddings","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#enhanced-embeddings","content":" // Advanced embedding handling async function enhancedEmbed( runtime: IAgentRuntime, text: string, opts: { model?: string; dimensions?: number; pooling?: "mean" | "max"; }, ): Promise<number[]> { // Get cached embedding if available const cached = await runtime.databaseAdapter.getCachedEmbeddings({ query_input: text, query_threshold: 0.95, }); if (cached.length > 0) { return cached[0].embedding; } // Generate new embedding return embed(runtime, text, opts); } ","version":"Next","tagName":"h3"},{"title":"State Persistence","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#state-persistence","content":" class StateManager { async saveState(state: State): Promise<void> { await this.runtime.databaseAdapter.createMemory( { content: { type: "state", data: state, }, roomId: state.roomId, userId: state.agentId, }, "states", ); } async loadState(roomId: UUID): Promise<State | null> { const states = await this.runtime.databaseAdapter.getMemories({ roomId, tableName: "states", count: 1, }); return states[0]?.content.data || null; } } ","version":"Next","tagName":"h3"},{"title":"Related Documentation","type":1,"pageTitle":"📦 Core Package","url":"/eliza/docs/packages/core/#related-documentation","content":" API Reference ","version":"Next","tagName":"h2"}],"options":{"id":"default"}}