Skip to main content

CrewAI Integration

Use QWED with CrewAI for verified multi-agent systems.

Installation

pip install qwed crewai

Quick Start

from crewai import Task, Crew
from qwed_sdk.crewai import QWEDVerifiedAgent

# Create a verified agent
analyst = QWEDVerifiedAgent(
role="Financial Analyst",
goal="Perform accurate financial calculations",
backstory="Expert in financial modeling",
)

# Use in CrewAI workflow
task = Task(
description="Calculate compound interest for $10,000 at 5% for 10 years",
agent=analyst.agent
)

crew = Crew(agents=[analyst.agent], tasks=[task])
result = crew.kickoff()

QWEDVerificationTool

Give agents verification capabilities:

from crewai import Agent
from qwed_sdk.crewai import QWEDVerificationTool

agent = Agent(
role="Data Analyst",
goal="Verify calculations",
tools=[QWEDVerificationTool()]
)

Specialized Tools

from qwed_sdk.crewai import QWEDMathTool, QWEDCodeTool, QWEDSQLTool

agent = Agent(
role="Developer",
goal="Write secure code",
tools=[
QWEDMathTool(), # Math verification
QWEDCodeTool(), # Code security
QWEDSQLTool(), # SQL validation
]
)

QWEDVerifiedAgent

Agent wrapper with automatic verification:

from qwed_sdk.crewai import QWEDVerifiedAgent, VerificationConfig

analyst = QWEDVerifiedAgent(
role="Analyst",
goal="Accurate analysis",
backstory="...",
verification_config=VerificationConfig(
enabled=True,
verify_math=True,
verify_code=True,
auto_correct=False,
log_results=True,
)
)

# Check verification summary
print(analyst.verification_summary())
# {"total_outputs": 5, "verified": 4, "failed": 1}

QWEDVerifiedCrew

Verify entire crew outputs:

from qwed_sdk.crewai import QWEDVerifiedCrew

crew = QWEDVerifiedCrew(
agents=[analyst, writer],
tasks=[task1, task2],
verify_final_output=True,
)

result = crew.kickoff()
print(result.verified) # True/False
print(result.overall_verification_rate) # 0.95

Task Decorator

from qwed_sdk.crewai import verified_task

@verified_task(verify_output=True)
def process_result(output):
# Output is verified before this runs
return output.upper()