GitHub

Agent Tools

Give your AI agents persistent memory. Expose Functor's 71 memory operations as native tools for any agent framework.

The Problem

AI agents are stateless by default. Each conversation starts fresh with no memory of past interactions, user preferences, or learned procedures. Building memory into agents typically requires:

  • Custom database integrations
  • Manual state management
  • Framework-specific implementations
  • Significant boilerplate code

The Solution

Functor's Agent Tools layer automatically exposes the entire memory system as native tools that any AI agent can use. With a single import, your agent gains access to:

10 Memory Modules

Episodic, Semantic, Procedural, Short-term, Long-term, Pruning, Personalization, Observability, Multi-tenant, Rollout

71 Memory Operations

Create, search, update, archive, prune, and manage memory across all modules with full type safety

4 Framework Adapters

Native support for MCP (Claude), LangChain, OpenAI function calling, and direct SDK usage

Zero Configuration

Tools are auto-generated from SDK annotations. No manual schema definitions required.

Architecture

The tools layer sits between the Functor SDK and your agent framework:

┌─────────────────────────────────────────────────────────────┐
│ Your AI Agent │
│ (Claude, LangChain Agent, OpenAI Assistant, Custom Agent) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Framework Adapters │
│ ┌─────────┐ ┌───────────┐ ┌────────┐ ┌──────────────┐ │
│ │ MCP │ │ LangChain │ │ OpenAI │ │ Direct SDK │ │
│ └─────────┘ └───────────┘ └────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Tools Layer │
│ ┌─────────────┐ ┌──────────────┐ ┌───────────────────┐ │
│ │ @tool │ │ ToolRegistry │ │ FunctorToolContext│ │
│ │ Decorators │ │ (Discovery) │ │ (Execution) │ │
│ └─────────────┘ └──────────────┘ └───────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Functor SDK │
│ (Memory Namespaces with @tool decorators) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Functor Backend │
│ (KG-RAG API + Vector Database) │
└─────────────────────────────────────────────────────────────┘

Supported Frameworks

FrameworkAdapterUse Case
MCPgenerate_mcp_tools()Claude Desktop, Claude Code, MCP-compatible clients
LangChainget_functor_tools()LangChain agents, ReAct, AgentExecutor
OpenAIgenerate_openai_tools()OpenAI Assistants, function calling
Direct SDKFunctorToolContextCustom agents, any Python application

Quick Example

Here's how simple it is to give your LangChain agent persistent memory:

from functor_sdk import FunctorClient
from functor_sdk.tools import get_functor_tools
from langchain.agents import create_react_agent
# Initialize client
client = FunctorClient(api_key="your-api-key")
# Get all 71 memory tools as LangChain tools
tools = get_functor_tools(client)
# Create agent with memory capabilities
agent = create_react_agent(llm, tools, prompt)
# Your agent can now:
# - Store conversations in episodic memory
# - Learn and recall facts in semantic memory
# - Execute learned procedures
# - Personalize responses based on user preferences
# - And much more...

Getting Started

Ready to add memory to your agent? Start with the Quick Start Guide to get up and running in 5 minutes.

Next Steps