Use this file to discover all available pages before exploring further.
Integrate Memvid with CrewAI to build collaborative AI crews with shared knowledge access. The crewai adapter provides function schemas compatible with OpenAI’s function calling API.
import { use } from '@memvid/sdk';// Open with CrewAI adapterconst mem = await use('crewai', 'knowledge.mv2');// Access function schemas (OpenAI-compatible)const functions = mem.functions;
Node.js uses OpenAI function calling directly. CrewAI is Python-only,
but the function schemas work with any OpenAI-compatible client for
building similar multi-agent workflows.
from crewai import Agent, Task, Crewfrom memvid_sdk import create, useimport os# Create new file or open existingif os.path.exists('knowledge.mv2'): mem = use('crewai', 'knowledge.mv2', read_only=True)else: mem = create('knowledge.mv2', kind='crewai')# Get the search tool (find tool is at index 1)find_tool = mem.tools[1]# Create agent with Memvid toolresearcher = Agent( role="Research Analyst", goal="Find relevant information from the knowledge base", backstory="Expert at finding and analyzing information", tools=[find_tool], verbose=True)# Define taskresearch_task = Task( description="Research the main features and create a summary", agent=researcher, expected_output="A summary of the main features")# Create crewcrew = Crew( agents=[researcher], tasks=[research_task])# Executeresult = crew.kickoff()print(result)
from crewai import Agent, Task, Crew, Processfrom memvid_sdk import create, useimport os# Create new file or open existingif os.path.exists('knowledge.mv2'): mem = use('crewai', 'knowledge.mv2', read_only=True)else: mem = create('knowledge.mv2', kind='crewai')# Get the find tool (index 1)find_tool = mem.tools[1]# Create multiple agentsresearcher = Agent( role="Researcher", goal="Find comprehensive information from the knowledge base", backstory="Skilled at finding relevant information quickly", tools=[find_tool], verbose=True)writer = Agent( role="Technical Writer", goal="Write clear documentation based on research", backstory="Expert at translating technical content into readable docs", verbose=True)reviewer = Agent( role="Editor", goal="Review and improve the documentation for clarity", backstory="Meticulous editor with attention to detail", verbose=True)# Define tasksresearch_task = Task( description="Research authentication mechanisms in the knowledge base", agent=researcher, expected_output="Detailed findings about authentication")writing_task = Task( description="Write a guide based on the research findings", agent=writer, expected_output="A clear authentication guide", context=[research_task] # Depends on research)review_task = Task( description="Review and polish the guide for publication", agent=reviewer, expected_output="Final polished guide", context=[writing_task] # Depends on writing)# Create crew with sequential processcrew = Crew( agents=[researcher, writer, reviewer], tasks=[research_task, writing_task, review_task], process=Process.sequential, verbose=True)result = crew.kickoff()print(result)
from crewai.tools import toolfrom memvid_sdk import usemem = use('crewai', 'knowledge.mv2', read_only=True)@tool("Search Knowledge Base")def search_knowledge(query: str) -> str: """Search the knowledge base for relevant information.""" results = mem.find(query, k=5) return "\n".join([f"- {r.title}: {r.snippet}" for r in results])@tool("Get Recent Entries")def get_recent(limit: int = 10) -> str: """Get the most recent entries from the knowledge base.""" entries = mem.timeline(limit=limit) return "\n".join([f"- [{e.timestamp}] {e.title}" for e in entries])@tool("Ask Question")def ask_question(question: str) -> str: """Ask a question and get an AI-synthesized answer.""" answer = mem.ask(question) return str(answer.get("answer", ""))
Share tools across agents that need knowledge access
Use task context to pass information between tasks
Close the memory when done
mem = use('crewai', 'knowledge.mv2', read_only=True)try: # Create and run crew crew = Crew(agents=[...], tasks=[...]) result = crew.kickoff()finally: mem.seal()