memory

The memory namespace provides persistent key-value storage for your agent. All data is scoped to your agent session and persists across executions. Use memory to track state, store configuration, or maintain context between runs. Memory is automatically scoped to your session ID, and for now is simple string storage. You will need to handle serialization of whatever data you want to store here.

memory.set()

Store a string value with a unique key.

Signature

agent.memory.set(
  key: string,
  value: string
): Promise<MemorySetResponse>

Parameters

Param
Type
Description

key

string

Unique identifier for the value (1 - 255 characters)

value

string

String value to store

Returns

  • Promise<MemorySetResponse>

type MemorySetResponse = {
  success: boolean;
  data?: {
    key: string;  // The key that was set
  };
  error?: string;
  errorMessage?: string;
  errorDetails?: object;
}

Examples

// Set a value
const result = await agent.memory.set("lastSwapNetwork", "ethereum:42161");

if (result.success && result.data) {
  await agent.log(`Stored key: ${result.data.key}`);
} else {
  await agent.log(result.error || 'Failed to set memory', { error: true });
}

Common Errors

Error
Cause
Solution

"Invalid key"

Key too long (>255 chars) or empty

Use keys between 1-255 characters

"Invalid value"

Value exceeds size limit

Keep values reasonable size, consider splitting large data

memory.get()

Retrieve a previously stored value by key.

Signature

agent.memory.get(
  key: string
): Promise<MemoryGetResponse>

Parameters

Param
Type
Description

key

string

The key to retrieve

Returns

  • Promise<MemoryGetResponse>

type MemoryGetResponse = {
  success: boolean;
  data?: {
    key: string;    // The requested key
    value: string;  // The stored value
  };
  error?: string;
  errorMessage?: string;
  errorDetails?: object;
}

Examples

// Get a value
const result = await agent.memory.get("lastSwapNetwork");

if (result.success && result.data) {
  await agent.log(`Network: ${result.data.value}`);
} else {
  await agent.log(`Key not found: ${result.error}`, { error: true });
}

Common Errors

Error
Cause
Solution

"Key not found"

Key doesn't exist in memory

Check if key exists first, or handle missing keys gracefully

memory.delete()

Remove a key-value pair from storage. Succeeds even if the key doesn't exist.

Signature

agent.memory.delete(
  key: string
): Promise<MemoryDeleteResponse>

Parameters

Param
Type
Description

key

string

The key to delete

Returns

  • Promise<MemoryDeleteResponse>

type MemoryDeleteResponse = {
  success: boolean;
  data?: {
    key: string;  // The deleted key
  };
  error?: string;
  errorMessage?: string;
  errorDetails?: object;
}

Examples

// Get a key
const result = await agent.memory.delete("tempSwapQuote");

if (result.success && result.data) {
  await agent.log(`Deleted key: ${result.data.key}`);
}

memory.list()

Get an array of all keys stored for this agent session. Useful for debugging or iterating through stored data.

Signature

agent.memory.list(): Promise<MemoryListResponse>

Returns

  • Promise<MemoryListResponse>

type MemoryListResponse = {
  success: boolean;
  data?: {
    keys: string[];  // Array of all stored keys
    count: number;   // Total number of keys
  };
  error?: string;
  errorMessage?: string;
  errorDetails?: object;
}

Examples

// List all keys
const result = await agent.memory.list();

if (result.success && result.data) {
  await agent.log(`Found ${result.data.count} keys: ${result.data.keys.join(', ')}`);
  
  // Iterate through all stored values
  for (const key of result.data.keys) {
    const value = await agent.memory.get(key);
    await agent.log(`${key}: ${value.data?.value}`);
  }
}

Last updated