# crewai-go

An idiomatic Go port of the CrewAI framework, with zero external dependencies beyond the standard library, for assembling teams of role-based agents that collaborate sequentially or hierarchically on tasks using any LLM provider.

crewai-go lets Go developers assemble crews of agents with distinct roles that collaborate sequentially or hierarchically to complete tasks using large language models, built entirely on the Go standard library for small, auditable, fast-building binaries. It works with OpenAI and OpenAI-compatible providers such as Ollama, Groq and Azure, with Anthropic, or with a custom LLM implementation.

Agents call tools through text-based ReAct reasoning or through provider-native function calling with automatic fallback and full trace observability. Tasks can require structured JSON output validated against a schema with a bounded repair loop; code-enforced guardrails block outputs that violate business invariants after generation; and a first-class Fact type carries provenance metadata and is populated only by deterministic connector tools, never by the LLM. Web search is available either agent-driven or model-driven across seven providers with SSRF protection, and async task waves let independent tasks overlap while preserving declaration-order results.

Built with Go. MIT licensed.

Website: https://github.com/rhgs/crewai-go
