Skip to content

CrewAI Adapter

Generate Python CrewAI agent code from your agent.yaml manifest.

Usage

bash
export ANTHROPIC_API_KEY=your-api-key-here
agentspec generate agent.yaml --framework crewai --output ./generated/

Get an API key at console.anthropic.com.

Generated Files

FileWhen generated
crew.pyAlways — agent, task, and crew definitions
tools.pyWhen spec.tools is non-empty
guardrails.pyWhen spec.guardrails is set
requirements.txtAlways
.env.exampleAlways
README.mdAlways

Manifest → Code Mapping

agent.yaml fieldGenerated code
spec.model.provider: groqfrom langchain_groq import ChatGroqAgent(llm=llm)
spec.model.provider: openaifrom langchain_openai import ChatOpenAI
spec.model.provider: anthropicfrom langchain_anthropic import ChatAnthropic
spec.model.parameters.temperaturetemperature=N kwarg
spec.model.apiKey: $env:VARapi_key=os.environ.get("VAR")
spec.prompts.systembackstory field on the Agent
spec.tools[]@tool-decorated functions in tools.py, passed to Agent(tools=[...])
spec.memoryCrew(memory=True)
spec.guardrails.input[]run_input_guardrails() in guardrails.py
spec.guardrails.output[]run_output_guardrails() in guardrails.py
spec.observability.tracing.backend: langfuseLangfuse env vars for automatic CrewAI tracing
spec.requires.envVars[]validate_env() called at module top-level

crew.py Structure

python
# crew.py (excerpt)
from crewai import Agent, Task, Crew
from langchain_groq import ChatGroq

llm = ChatGroq(model="llama-3.3-70b-versatile", api_key=os.environ.get("GROQ_API_KEY"))

agent = Agent(
    role="GymCoach",
    goal="Help users achieve their fitness goals",
    backstory=load_system_prompt(),
    tools=[log_workout, get_workout_history],
    llm=llm,
    verbose=True,
)

def run_agent(user_input: str) -> str:
    task = Task(
        description=user_input,
        agent=agent,
        expected_output="A helpful, accurate response to the user's request.",
    )
    crew = Crew(agents=[agent], tasks=[task], memory=True, verbose=True)
    return str(crew.kickoff())

See also

Released under the Apache 2.0 License.