@vinhnt-sdk/knowledge
v0.1.2
Published
Memory and knowledge management for VNT Agent — bounded memory, context compression, learning engine
Downloads
677
Maintainers
Readme
@vinhnt-sdk/knowledge
Version: 0.1.2-beta.0 | Status: BETA
Memory and knowledge management for vinhnt-sdk — bounded memory, context compression, learning engine.
Install
# npm
npm install @vinhnt-sdk/knowledge
# pnpm (monorepo)
pnpm add @vinhnt-sdk/knowledgeQuick Start
import { BoundedMemory, ContextCompressor } from '@vinhnt-sdk/knowledge';
// Create memory store
const memory = new BoundedMemory({ maxSize: 100 });
// Store memories
memory.store("User prefers dark mode", { tags: ["preferences"] });
memory.store("User is a developer", { tags: ["user-info"] });
// Search memories
const results = memory.search("dark mode");
console.log(results); // [{ content: "User prefers dark mode", ... }]
// Get context for agent
const context = memory.getContext("user preferences");
console.log(context); // "- User prefers dark mode\n- User is a developer"API Reference
BoundedMemory
import { BoundedMemory } from '@vinhnt-sdk/knowledge';
const memory = new BoundedMemory({ maxSize: 100 });
// Store memory
const item = memory.store("content", { metadata: { key: "value" }, tags: ["tag1"] });
// Search memories
const results = memory.search("query", { limit: 10 });
// Get all memories
const all = memory.getAll();
// Get memory by ID
const item = memory.getById("mem-123");
// Delete memory
memory.delete("mem-123");
// Get context for agent
const context = memory.getContext("query", { limit: 5 });ContextCompressor
import { ContextCompressor } from '@vinhnt-sdk/knowledge';
const compressor = new ContextCompressor({ tokenBudget: 32000 });
// Compress conversation
const compressed = await compressor.compress({
messages: [
{ role: "user", content: "Hello" },
{ role: "assistant", content: "Hi there!" },
// ... more messages
],
});
console.log(compressed.messages); // Compressed messages
console.log(compressed.tokens); // Token countMemoryItem
interface MemoryItem {
id: string;
content: string;
metadata?: Record<string, unknown>;
tags?: string[];
createdAt: Date;
updatedAt: Date;
}Dependencies
@vinhnt-sdk/schemaworkspace:*
Peer Dependencies
@vinhnt-sdk/toolsworkspace:* (optional)
Usage Examples
Store User Preferences
import { BoundedMemory } from '@vinhnt-sdk/knowledge';
const memory = new BoundedMemory({ maxSize: 50 });
// Store user preferences
memory.store("User prefers dark mode", { tags: ["preferences", "ui"] });
memory.store("User likes TypeScript", { tags: ["preferences", "language"] });
// Get context for agent
const context = memory.getContext("user preferences");
// Output:
// - User prefers dark mode
// - User likes TypeScriptCompress Long Conversation
import { ContextCompressor } from '@vinhnt-sdk/knowledge';
const compressor = new ContextCompressor({ tokenBudget: 4000 });
const conversation = {
messages: [
// ... many messages
],
};
const compressed = await compressor.compress(conversation);
console.log(`Reduced from ${conversation.messages.length} to ${compressed.messages.length} messages`);Search Memories
import { BoundedMemory } from '@vinhnt-sdk/knowledge';
const memory = new BoundedMemory({ maxSize: 100 });
// Store memories
memory.store("TypeScript is awesome");
memory.store("JavaScript is also good");
memory.store("Python is great for ML");
// Search
const results = memory.search("TypeScript");
console.log(results.length); // 1
// Search with tags
const tagged = memory.search("", { tags: ["language"] });
console.log(tagged.length); // 3License
MIT
