Skip to content

LLM tools

Seven tools give the LLM read/write access to memories. Register them on a ChatService, constructing each tool from a MemoryService:

import {
    MemoryService,
    AddMemoryTool,
    UpdateMemoryTool,
    DeleteMemoryTool,
    GetMemoryTool,
    RecallMemoriesTool,
    LinkMemoriesTool,
    UnlinkMemoriesTool
} from '@johannes.latzel/llm-chat-memory';
import { OpenAIChatService } from '@johannes.latzel/llm-chat';

const memoryService = new MemoryService(config, embedder);
await memoryService.init();
const chatService = new OpenAIChatService(/* ... */);

chatService.tools().add(new AddMemoryTool(memoryService));
chatService.tools().add(new UpdateMemoryTool(memoryService));
chatService.tools().add(new DeleteMemoryTool(memoryService));
chatService.tools().add(new GetMemoryTool(memoryService));
chatService.tools().add(new RecallMemoriesTool(memoryService));
chatService.tools().add(new LinkMemoriesTool(memoryService));
chatService.tools().add(new UnlinkMemoriesTool(memoryService));

Or bundle all seven with MemoryToolPackage:

import { MemoryService, MemoryToolPackage } from '@johannes.latzel/llm-chat-memory';
import { OpenAIChatService } from '@johannes.latzel/llm-chat';

const memoryService = new MemoryService(config, embedder);
await memoryService.init();
const chatService = new OpenAIChatService(/* ... */);
chatService.tools().add(new MemoryToolPackage(memoryService));
Tool What it does
add_memory Store a new memory
update_memory Modify an existing memory
delete_memory Remove a memory
get_memory View memory details
recall_memories Manually trigger recall
link_memories Create explicit links between memories
unlink_memories Remove explicit links between memories

All parameters are strings or numbers. tags is an array of strings.