Skip to content

Conversation

@tonycdr-prog
Copy link

Summary

Implements CrewAI crew runner as requested in #266, following the existing LangChain integration pattern.

What is CrewAI?

CrewAI is a framework for orchestrating role-based autonomous AI agents. It enables:

  • Role-based agent design (each agent has a role, goal, backstory)
  • Sequential and parallel task execution
  • Agent collaboration on complex tasks
  • Tool sharing across agents

Changes

  • New CrewAIAgentRunner class in src/openagents/agents/crewai_agent.py
  • Tool conversion utilities:
    • openagents_tool_to_crewai() - convert OpenAgents tools to CrewAI format
    • crewai_tool_to_openagents() - convert CrewAI tools to OpenAgents format
  • Network tools injected into all agents in the crew
  • Full feature parity with LangChain/PydanticAI integrations

Usage

Basic Crew

from crewai import Agent, Task, Crew
from openagents.agents import CrewAIAgentRunner

# Define specialized agents
researcher = Agent(
    role='Researcher',
    goal='Find accurate information on any topic',
    backstory='Expert researcher with keen attention to detail'
)

writer = Agent(
    role='Writer',
    goal='Create clear and engaging content',
    backstory='Skilled writer who explains complex topics simply'
)

# Define tasks
research_task = Task(
    description='Research the following topic: {input}',
    agent=researcher,
    expected_output='Detailed research findings'
)

write_task = Task(
    description='Write an article based on the research findings',
    agent=writer,
    expected_output='Well-written article'
)

# Create crew
crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    verbose=True
)

# Connect to OpenAgents network
runner = CrewAIAgentRunner(
    crew=crew,
    agent_id='research-writer-crew'
)
runner.start(network_host='localhost', network_port=8600)
runner.wait_for_stop()

Reference

Follows the pattern established in:

  • src/openagents/agents/langchain_agent.py

Closes #266

Implements CrewAI crew runner as requested in openagents-org#266.

## Changes
- Add `CrewAIAgentRunner` class in `src/openagents/agents/crewai_agent.py`
- Support for CrewAI's role-based multi-agent crews
- Tool conversion utilities:
  - `openagents_tool_to_crewai()` - convert OpenAgents tools to CrewAI
  - `crewai_tool_to_openagents()` - convert CrewAI tools to OpenAgents
- Injects network tools into all agents in the crew
- Event filtering support (event_names, event_filter)
- Custom response handler support
- Export new classes from `openagents.agents`

## Usage
```python
from crewai import Agent, Task, Crew
from openagents.agents import CrewAIAgentRunner

researcher = Agent(role='Researcher', goal='Find info')
writer = Agent(role='Writer', goal='Create content')

research = Task(description='Research: {input}', agent=researcher)
write = Task(description='Write about findings', agent=writer)

crew = Crew(agents=[researcher, writer], tasks=[research, write])

runner = CrewAIAgentRunner(crew=crew, agent_id='research-crew')
runner.start(network_host='localhost', network_port=8600)
```

Closes openagents-org#266
@vercel
Copy link

vercel bot commented Feb 3, 2026

@Bandit-AI is attempting to deploy a commit to the Raphael's projects Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Help Wanted: CrewAI Agent Integration

2 participants