Related use case: Agents & MCP
Concept Mapping
| Agent Framework | Pixeltable Equivalent |
|---|---|
StateGraph / AgentExecutor | pxt.create_table() with computed columns |
| Graph nodes (functions) | Computed columns — dependencies resolved automatically |
| Graph edges / conditional routing | Column references — Pixeltable infers the DAG |
ToolNode / @tool | pxt.tools() + invoke_tools() |
MemorySaver / checkpointer | Tables are persistent by default |
| Separate vector DB for RAG | add_embedding_index() + @pxt.query |
| LangSmith for observability | t.select() on any column — every step is queryable |
Side by Side: Tool-Calling Agent
An agent that picks tools, calls them, and answers based on the results.- LangGraph
- Pixeltable
langgraph, langchain-openai, langchain-core, plus a vector DB client for RAGWhat Changes
| LangGraph / CrewAI | Pixeltable | |
|---|---|---|
| State | Ephemeral — lost when the process ends | Persistent — every row survives restarts |
| Caching | No built-in caching of tool results | Same input returns cached result |
| Observability | LangSmith (separate service + API key) | agent.select(agent.tool_output).collect() |
| Adding RAG | Separate vector DB integration | add_embedding_index() + @pxt.query — no extra service |
| Graph definition | Nodes, edges, conditional routing DSL | Computed columns — Pixeltable infers the DAG |
| MCP tools | Custom integration | pxt.mcp_udfs() loads tools from any MCP server |
Common Patterns
Adding persistent memory
- LangGraph
- Pixeltable
Adding RAG to an agent
- LangGraph
- Pixeltable
Inspecting agent behavior
- LangGraph
- Pixeltable