TrustGraph vs CrewAI
Compare TrustGraph's Knowledge Graph-based agents with CrewAI's role-based agent orchestration. Learn the differences in agent architecture, task coordination, and memory management.
TrustGraph vs CrewAI
TrustGraph and CrewAI both enable building multi-agent AI systems, but they differ fundamentally in how agents share knowledge, coordinate tasks, and maintain context.
At a Glance
| Feature | TrustGraph | CrewAI |
|---|---|---|
| Agent Foundation | Knowledge Graph-based | Role-based with tools |
| Memory Model | Shared Knowledge Graph | Per-agent memory + optional shared |
| Task Coordination | Graph-aware orchestration | Sequential/hierarchical processes |
| Knowledge Sharing | Native graph structure | Message passing |
| Context Persistence | Graph nodes & relationships | Memory buffers |
| Reasoning | Multi-hop graph traversal | Tool-based chain-of-thought |
| Deployment | Complete platform | Python framework |
| Transparency | Full graph provenance | Execution logs |
Core Philosophy
TrustGraph: Graph-Native Agent System
TrustGraph agents operate on shared Knowledge Graphs:
// Agents share a unified Knowledge Graph
const agent = await trustgraph.createAgent({
type: "research-analyst",
knowledgeGraph: sharedGraph,
capabilities: ["query", "reason", "update"],
permissions: {
read: ["entities", "relationships"],
write: ["annotations", "insights"],
},
});
// Agent automatically has access to all graph knowledge
const result = await agent.execute({
task: "Analyze market trends for product X",
reasoning: "multi-hop",
updateGraph: true, // Findings added to shared graph
});
// Other agents immediately see updates
const synthesizer = await trustgraph.createAgent({
type: "report-writer",
knowledgeGraph: sharedGraph, // Same graph!
});
Key Benefits:
- All agents share the same knowledge representation
- No duplicate information or synchronization needed
- Graph structure prevents knowledge inconsistencies
- Transparent provenance for every fact
CrewAI: Role-Based Agent Collaboration
CrewAI organizes agents by roles and responsibilities:
from crewai import Agent, Task, Crew
# Define agents with specific roles
researcher = Agent(
role="Research Analyst",
goal="Gather market intelligence",
backstory="Expert at finding and analyzing market data",
tools=[search_tool, scraper_tool],
verbose=True
)
writer = Agent(
role="Content Writer",
goal="Create compelling reports",
backstory="Skilled at synthesizing information",
tools=[writing_tool],
verbose=True
)
# Define tasks
research_task = Task(
description="Research market trends for product X",
agent=researcher
)
writing_task = Task(
description="Write report based on research",
agent=writer,
context=[research_task] # Gets output from research
)
# Orchestrate execution
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
process="sequential" # or "hierarchical"
)
result = crew.kickoff()
Key Characteristics:
- Agents defined by roles and goals
- Knowledge passed through task outputs
- Tools provide agent capabilities
- Flexible process orchestration
Knowledge Management
TrustGraph: Shared Graph Memory
Unified knowledge representation:
// All agents work with the same graph
const multiAgentSystem = await trustgraph.createMultiAgent({
researcher: {
role: "research",
capabilities: ["extract-entities", "find-relationships"],
},
analyzer: {
role: "analyze",
capabilities: ["reason", "compute-metrics"],
},
coordinator: {
role: "orchestrate",
capabilities: ["plan", "coordinate"],
},
// All share the same Knowledge Graph
sharedKnowledgeGraph: mainGraph,
});
// Researcher adds findings
await multiAgentSystem.researcher.execute({
task: "Extract key concepts from documents",
});
// Graph now contains new entities and relationships
// Analyzer immediately has access without data transfer
await multiAgentSystem.analyzer.execute({
task: "Find patterns in recent findings",
// Automatically queries the updated graph
});
// Knowledge is structured and queryable
const insights = await mainGraph.query({
cypher: `
MATCH (a:Agent)-[:DISCOVERED]->(e:Entity)-[:RELATES_TO]->(c:Concept)
WHERE a.id = 'researcher'
RETURN e, c
`
});
Advantages:
- Zero knowledge duplication
- Instant synchronization
- Structured, queryable knowledge
- Full audit trail of agent contributions
CrewAI: Context Passing
Output-based knowledge sharing:
# Researcher output becomes context for next agent
research_task = Task(
description="Research competitors",
agent=researcher,
expected_output="List of competitors with key features"
)
analysis_task = Task(
description="Analyze competitive landscape",
agent=analyzer,
context=[research_task] # Receives research output as text
)
# Optional shared memory
from crewai.memory import ShortTermMemory, LongTermMemory
crew = Crew(
agents=[researcher, analyzer],
tasks=[research_task, analysis_task],
memory=True, # Enable memory
short_term_memory=ShortTermMemory(),
long_term_memory=LongTermMemory()
)
Characteristics:
- Knowledge passed as text outputs
- Optional memory systems (short-term, long-term)
- Agents retrieve relevant context from memory
- Less structured than graph representation
Agent Coordination
TrustGraph: Graph-Aware Orchestration
Agents coordinate through graph operations:
// Define agent network with graph-based coordination
const agentNetwork = await trustgraph.createAgentNetwork({
topology: "hierarchical",
agents: {
supervisor: {
type: "coordinator",
capabilities: ["plan", "delegate", "synthesize"],
subordinates: ["researcher1", "researcher2", "analyst"],
},
researcher1: {
type: "web-researcher",
capabilities: ["search", "extract", "validate"],
},
researcher2: {
type: "document-researcher",
capabilities: ["read-docs", "extract", "summarize"],
},
analyst: {
type: "data-analyst",
capabilities: ["analyze", "compute", "visualize"],
},
},
coordinationGraph: coordinationGraph, // Tracks dependencies
});
// Supervisor plans based on graph structure
const plan = await agentNetwork.supervisor.plan({
objective: "Complete market analysis",
constraints: ["use latest data", "cite sources"],
});
// Execution follows graph dependencies
// Results automatically merge into Knowledge Graph
const result = await agentNetwork.execute(plan);
CrewAI: Process-Based Orchestration
Sequential or hierarchical execution:
from crewai import Crew, Process
# Sequential process - one after another
sequential_crew = Crew(
agents=[researcher, analyst, writer],
tasks=[research_task, analysis_task, writing_task],
process=Process.sequential
)
# Hierarchical process - manager delegates to workers
hierarchical_crew = Crew(
agents=[manager, researcher, analyst, writer],
tasks=[research_task, analysis_task, writing_task],
process=Process.hierarchical,
manager_llm="gpt-4" # Manager coordinates
)
# Custom process control
from crewai import Task
conditional_task = Task(
description="Additional research if needed",
agent=researcher,
condition=lambda context: needs_more_research(context)
)
Reasoning Capabilities
TrustGraph: Graph-Based Reasoning
Multi-hop relationship reasoning:
// Agent can traverse relationships for complex reasoning
const reasoning = await agent.reason({
query: "How does technology X impact industry Y?",
strategy: "graph-traversal",
maxDepth: 4, // Follow relationship chains
includeInference: true,
});
// Returns:
{
directImpacts: [
{ entity: "Technology X", relation: "disrupts", target: "Process A" }
],
indirectImpacts: [
{
path: ["Technology X", "enables", "Tool B", "improves", "Efficiency C", "benefits", "Industry Y"],
confidence: 0.87
}
],
supportingEvidence: [
{ fact: "...", source: "doc_123", timestamp: "2025-01-10" }
]
}
CrewAI: Tool-Based Reasoning
Chain-of-thought with tools:
# Agent uses tools to reason
analyst = Agent(
role="Strategic Analyst",
goal="Provide strategic insights",
tools=[
calculator_tool,
search_tool,
analysis_tool
],
verbose=True,
allow_delegation=True # Can delegate to other agents
)
# Chain of thought emerges from tool use
task = Task(
description="""
Analyze impact of technology X on industry Y:
1. Research current state of industry Y
2. Identify how technology X is being used
3. Calculate potential efficiency gains
4. Synthesize strategic implications
""",
agent=analyst
)
Hallucination Prevention
TrustGraph: Graph Grounding
Facts must exist in graph:
// Agent responses validated against graph
const response = await agent.generate({
prompt: "Explain relationship between X and Y",
groundingMode: "strict", // Only reference graph entities
validateOutput: true,
});
// Automatic validation
if (!response.validated) {
console.error("Hallucinated entities:", response.hallucinations);
// System can reject or flag response
}
// All claims traceable to graph nodes
response.claims.forEach(claim => {
console.log("Claim:", claim.statement);
console.log("Source:", claim.graphNode);
console.log("Provenance:", claim.sourceDocuments);
});
CrewAI: Output Validation
Manual validation approaches:
# Add validation through custom tools
validation_tool = Tool(
name="Fact Checker",
func=validate_against_sources,
description="Verify facts against source documents"
)
reviewer = Agent(
role="Quality Reviewer",
goal="Ensure accuracy of outputs",
tools=[validation_tool],
backstory="Expert at fact-checking and validation"
)
review_task = Task(
description="Review and validate the analysis",
agent=reviewer,
context=[analysis_task]
)
# Or use guardrails in prompts
analyst = Agent(
role="Analyst",
goal="Provide accurate analysis",
backstory="""Expert analyst who always:
- Cites sources for claims
- Distinguishes facts from opinions
- Says 'I don't know' when uncertain
"""
)
Deployment & Infrastructure
TrustGraph: Complete Platform
Containerized multi-agent platform:
# docker-compose.yml
services:
knowledge-graph:
image: trustgraph/graph-store
agent-orchestrator:
image: trustgraph/agents
environment:
- GRAPH_URL=knowledge-graph:7687
- VECTOR_URL=vector-store:6333
vector-store:
image: trustgraph/vector-db
monitoring:
image: trustgraph/observability
Built-in features:
- Agent lifecycle management
- Resource allocation
- Cost tracking per agent
- Performance monitoring
- Audit logging
CrewAI: Python Application
You deploy and manage:
# Your application code
from crewai import Crew
import os
# You handle:
# - Environment configuration
# - LLM API keys
# - Deployment infrastructure
# - Monitoring (if any)
# - Scaling
os.environ["OPENAI_API_KEY"] = "your-key"
crew = Crew(
agents=[...],
tasks=[...],
verbose=True
)
# Deploy as Python application
# (Flask, FastAPI, container, etc.)
Use Case Recommendations
Choose TrustGraph For:
-
Knowledge-Intensive Systems
- Agents need to build and maintain complex knowledge bases
- Multiple agents must share consistent understanding
- Need to query and reason over accumulated knowledge
-
High-Accuracy Requirements
- Medical, legal, financial domains
- Must prevent hallucinations
- Need complete audit trails
-
Long-Running Agent Systems
- Agents operate continuously
- Knowledge persists across sessions
- Learning and adaptation required
-
Complex Relationship Understanding
- Multi-hop reasoning needed
- Relationship types matter
- Context includes entity connections
Choose CrewAI For:
-
Well-Defined Workflows
- Clear role assignments
- Linear or hierarchical processes
- Task dependencies are simple
-
Rapid Prototyping
- Quick agent experimentation
- Flexible role definitions
- Python-native development
-
Tool-Heavy Applications
- Agents primarily use external tools
- Less emphasis on shared knowledge
- Output-focused collaboration
-
Simple Knowledge Requirements
- Context passing via text is sufficient
- Don't need complex relationship tracking
- Memory requirements are basic
Integration & Ecosystem
TrustGraph
- MCP Native: Built-in Model Context Protocol support
- Graph Stores: Neo4j, Cassandra, Memgraph, FalkorDB
- LLMs: OpenAI, Anthropic, Google, AWS Bedrock, 40+ providers
- Messaging: Apache Pulsar for agent communication
- Observability: Built-in monitoring dashboards
CrewAI
- LLMs: OpenAI, Anthropic, local models via LiteLLM
- Tools: LangChain tools compatible
- Frameworks: Can integrate with LangChain, LlamaIndex
- Deployment: Python-native (FastAPI, Flask, etc.)
- Community: Active Discord, many tutorials
Advanced Features
TrustGraph
✅ Knowledge Graph Agents: Agents that understand graph structure ✅ Provenance Tracking: Every fact traces to source ✅ Multi-hop Reasoning: Follow relationship chains ✅ Graph Visualization: 3D visualization of agent knowledge ✅ Temporal Graphs: Time-aware relationships ✅ Distributed Agents: Scale across multiple nodes
CrewAI
✅ Role-Based Design: Intuitive agent definitions ✅ Multiple Processes: Sequential, hierarchical, custom ✅ Memory Systems: Short-term, long-term, entity memory ✅ Tool Integration: Easy tool addition ✅ Delegation: Agents can delegate to others ✅ Callbacks: Hook into agent execution
Migration Considerations
From CrewAI to TrustGraph
Why migrate:
- Need structured knowledge sharing
- Want graph-based reasoning
- Require hallucination prevention
- Need production platform infrastructure
Migration approach:
# CrewAI agent outputs can become TrustGraph entities
crew_result = crew.kickoff()
# Extract entities and relationships from outputs
entities = extract_entities(crew_result)
relationships = extract_relationships(crew_result)
# Build Knowledge Graph
trustgraph.ingest_entities(entities)
trustgraph.ingest_relationships(relationships)
# Recreate agents as graph-aware
trustgraph_agents = trustgraph.createMultiAgent({
researcher: { role: "research", graph: mainGraph },
analyst: { role: "analyze", graph: mainGraph }
})
Using Both Together
Complementary approach:
# Use CrewAI for task orchestration
crew_researcher = Agent(
role="Researcher",
tools=[search_tool]
)
research_task = Task(
description="Gather data",
agent=crew_researcher
)
# Feed results into TrustGraph
crew_result = crew.kickoff()
# Build Knowledge Graph from results
trustgraph_client.ingest_data(crew_result)
# Use TrustGraph agents for graph-based reasoning
graph_result = trustgraph_client.agents.analyze({
task: "Find hidden patterns",
reasoning: "graph-traversal"
})
Performance Characteristics
TrustGraph
- Strength: Complex reasoning over relationships
- Optimization: Graph query optimization
- Scaling: Distributed graph databases
- Overhead: Graph storage and maintenance
CrewAI
- Strength: Quick task execution
- Optimization: LLM call efficiency
- Scaling: Horizontal scaling of Python workers
- Overhead: Minimal, framework is lightweight
Pricing
TrustGraph
- Open source: Free
- Self-hosted: Infrastructure costs
- Enterprise support: Optional
CrewAI
- Open source: Free
- Costs: LLM API calls (pay per use)
- CrewAI+: Optional paid tier with additional features
Conclusion
TrustGraph and CrewAI excel in different scenarios:
Choose TrustGraph when you need:
- Shared, structured knowledge across agents
- Graph-based reasoning and relationships
- Hallucination prevention through grounding
- Production-ready platform with observability
- Long-term knowledge persistence
Choose CrewAI when you need:
- Role-based agent collaboration
- Rapid prototyping and experimentation
- Simple task orchestration
- Python-native development
- Lightweight framework
For knowledge-intensive, accuracy-critical systems, TrustGraph's Knowledge Graph foundation provides significant advantages. For well-defined workflows with role-based coordination, CrewAI offers an excellent, intuitive framework.
Additional Resources
CrewAI:
TrustGraph: