If you typed "ai agent framework github" into a search box, you were probably trying to answer one question: of all the agent frameworks on GitHub, which one do I actually clone? Here is the map. Twelve open-source frameworks, every star count read straight from the GitHub API on August 21, 2026, sorted highest to lowest — with the one-line reason to pick each and a link to the head-to-head where we go deep.

The one-sentence answer first: there is no single winner. There are eight community frameworks and four first-party SDKs from the model labs, and the right pick is decided by your control-flow needs and your language — not by who has the most stars. In fact the highest-starred repo on this whole list is one you probably shouldn't start a new project on. Here's why.

The leaderboard, by GitHub stars (Aug 21, 2026)#

#FrameworkStarsLanguage · LicenseStatus
1AutoGen~60.6kPython · CC-BY-4.0Maintenance mode
2CrewAI~57.4kPython · MITActive
3LlamaIndex~51.8kPython · MITActive
4Agno~41.8kPython · Apache-2.0Active
5LangGraph~40.2kPython/TS · MITActive (1.0 GA)
6smolagents~28.9kPython · Apache-2.0Active
7OpenAI Agents SDK~28.8kPython/TS · MITActive
8Mastra~27.3kTypeScript · Apache-2.0Active
9Google ADK~21.2kPython · Apache-2.0Active
10Pydantic AI~19.4kPython · MITActive
11Microsoft Agent Framework~13.0kPython/.NET · MITActive (1.0 GA)
12Claude Agent SDK~7.9kPython/TS · MITActive

Star counts move daily; treat these as an August-21 snapshot, not a live scoreboard. The number that matters least is the one at the top.

Why the star leader is a trap#

AutoGen has the most stars and you should probably still not start there. Microsoft placed AutoGen in maintenance mode in 2026 and folded its abstractions into the new Microsoft Agent Framework, which reached 1.0 GA in April 2026. Semantic Kernel went the same way. So AutoGen's ~60.6k stars are two years of accumulated history — inertia — not a signal that it's where new work is happening. This is the whole reason "sort by stars" is the wrong instinct: stars measure age and attention, not fitness. They're a decent proxy for how much Stack Overflow help exists, and nothing more.

If you were reaching for AutoGen, reach for the Microsoft Agent Framework instead — we walked the migration and what changed in Microsoft Agent Framework vs LangGraph vs CrewAI and Semantic Kernel vs AutoGen vs Microsoft Agent Framework.

The two families on this list#

Sort the twelve a better way — by what they are — and the choice gets easier.

Community frameworks (independent, portable across model providers): CrewAI, LlamaIndex, Agno, LangGraph, smolagents, Mastra, Pydantic AI. These compete on orchestration richness, memory, and deployment.

First-party SDKs (shipped by a model lab, deliberately lightweight): OpenAI Agents SDK, Google ADK, Microsoft Agent Framework, and Anthropic's Claude Agent SDK. These give you primitives — agents, handoffs, guardrails, tracing — with first-class support for their own models and, increasingly, everyone else's.

A common 2026 pattern: prototype on a first-party SDK, then graduate to a community framework when you need durable state or real multi-agent orchestration. We compared the labs' own kits directly in Claude Agent SDK vs OpenAI Agents SDK and OpenAI Agents SDK vs Pydantic AI vs Google ADK.

The paradigms differ more than the READMEs admit#

The frameworks don't just differ in API surface — they disagree about what an agent even is. Three of the most common shapes, in the fewest lines each needs:

LangGraph — the agent is an explicit state graph. You wire nodes and edges, and you get persistence, checkpointing, and human-in-the-loop for free.

from langgraph.graph import StateGraph, START, END

g = StateGraph(dict)
g.add_node("plan", plan_step)
g.add_node("act", act_step)
g.add_edge(START, "plan")
g.add_conditional_edges("plan", route, {"act": "act", "done": END})
g.add_edge("act", "plan")
agent = g.compile(checkpointer=checkpointer)   # resumable, inspectable

CrewAI — the agent is a role on a team. You describe who each agent is and let them collaborate.

from crewai import Agent, Task, Crew

researcher = Agent(role="Researcher", goal="Find the facts", backstory="...")
writer = Agent(role="Writer", goal="Draft the brief", backstory="...")
crew = Crew(agents=[researcher, writer],
            tasks=[Task(description="Research X", agent=researcher),
                   Task(description="Write it up", agent=writer)])
crew.kickoff()

Pydantic AI — the agent is a typed function. The output is a validated model, not a string you have to parse.

from pydantic import BaseModel
from pydantic_ai import Agent

class Verdict(BaseModel):
    ship: bool
    reason: str

agent = Agent("claude-opus-4-8", output_type=Verdict)
result = agent.run_sync("Should we ship? Repo is failing 2 tests.")
print(result.output.ship, result.output.reason)   # typed, guaranteed shape

That's the real decision surface: a graph, a crew, or a typed function. We took the graph-vs-everything-else question apart in every AI agent framework became a graph, and put the two Python leaders head to head in LangGraph vs CrewAI vs AutoGen and Agno vs LangGraph vs CrewAI.

What changed in 2026#

Three shifts explain the current shape of the list:

So which repo do you clone?#

Skip the star column. Answer these instead:

The frameworks all keep getting better; the model underneath matters as much as the harness around it. Once you've picked one, the next decision is what runs inside it — which is the question we track in AI-Agent Funding, August 2026: 'Control the Agents' Won the Summer and, if you're charging for what you build, How to Price an AI Agent. </content> </invoke>