AgentToolDrop

65 of 71

smolagents

Runs agents that write their actions as Python code, with core agent logic in about 1,000 lines

Install with pip

pip install "smolagents[toolkit]"

Copied from the project's docs at github.com/huggingface/smolagents

Why you'd want it

smolagents keeps abstractions minimal: the agent logic fits in roughly 1,000 lines, and its CodeAgent writes its actions in code. It is model-agnostic (local transformers or Ollama models, Hugging Face inference providers, or OpenAI, Anthropic and others via LiteLLM) and can use tools from MCP servers, LangChain or Hub Spaces. Agents and tools can be pushed to and pulled from the Hugging Face Hub, and a smolagent CLI runs agents from the terminal.

Best for

  • Agents that act by writing code
  • Hugging Face Hub users
  • Reading and learning a compact agent loop

Use it when

You want a small, readable agent library and agents that act by writing code, with your choice of local or hosted models.

Skip it if

You cannot run agent code in a sandbox: the README says the built-in LocalPythonExecutor is not a security boundary and recommends E2B, Blaxel, Modal or Docker.

Same category or shared tags, by drop score.

  1. Rank 52

    Runs a model-driven agent loop in your own process, in Python or TypeScript, with any model provider

    • score 48
    • 8.8k stars
    • pushed
    • python/v1.61.0 on
    • Apache-2.0

    Install with pip

    pip install strands-agents strands-agents-tools
    Use it when, skip it if, stats for Strands Agents

    Why you'd want it

    Strands is an SDK for cases where you would otherwise write your own agent loop: it runs in your process with no hosted control plane and covers turn limits, token budgets, cancellation, tools, structured output, MCP, multi-agent patterns, memory, sessions, streaming, guardrails, tracing and evals. It has first-class support for Amazon Bedrock, Anthropic, OpenAI and Gemini plus other and custom providers, and hooks let you intercept any step of the loop. Strands harness (create_harness() in Python, createHarness() in TypeScript) gives a fully assembled agent with preset defaults.

    Best for

    • Replacing a hand-rolled agent loop
    • Amazon Bedrock users
    • Mixed Python and TypeScript stacks

    Use it when

    You want to own the agent loop in your own process, with lifecycle limits, hooks and tracing built in and the option to swap model providers.

    Skip it if

    You want a hosted agent platform rather than a library. The Python SDK needs Python 3.10+ and the TypeScript SDK needs Node.js 22+.

    Stats

    Stars
    8,816
    Last push
    Release
    python/v1.61.0,
    License
    Apache-2.0
    Pricing
    Open source
    Drop score
    48 of 100
  2. Rank 9

    Provides one interface and a large integration library for models, embeddings, vector stores and tools

    • score 81
    • 148k stars
    • pushed
    • langchain-core==1.6.10 on
    • MIT

    Install with pip

    pip install -U langchain
    Use it when, skip it if, stats for LangChain

    Why you'd want it

    LangChain is a framework for building agents and LLM apps from interoperable components, with a large library of integrations for model providers, tools, vector stores and retrievers. Its standard model interface lets you swap models as you experiment without rebuilding the app. An equivalent JS/TS library, LangChain.js, is available, and it pairs with LangGraph for lower-level orchestration and LangSmith for evals and tracing.

    Best for

    • Apps that need many model or data integrations
    • Switching between model providers
    • Prototyping LLM apps in Python or JS

    Use it when

    You want ready-made integrations for models, vector stores and retrievers, and a single interface for switching providers.

    Skip it if

    You need fine-grained control over agent flow and state; the README points to LangGraph for advanced customization and agent orchestration.

    Stats

    Stars
    147,836
    Last push
    Release
    langchain-core==1.6.10,
    License
    MIT
    Pricing
    Open source
    Drop score
    81 of 100
  3. Rank 21

    Runs a typed Python agent loop with validated tools and outputs, and models swapped by a string

    • score 65
    • 20.6k stars
    • pushed
    • v2.56.0 on
    • MIT

    Install with uv

    uv add pydantic-ai
    Use it when, skip it if, stats for Pydantic AI

    Why you'd want it

    Pydantic AI gives you an agent whose tools and outputs are typed: tool arguments are validated before your code runs, and a run is guaranteed to return the output type you declared. The same agent can run behind a web frontend, in the terminal, on a voice call, or under durable execution with Temporal, DBOS or Prefect. Pydantic AI Harness adds capabilities such as memory, guardrails, sub-agents, planning and context management, and its instrumentation is plain OpenTelemetry.

    Best for

    • Typed data extraction
    • Python teams already using Pydantic
    • Durable background agents on Temporal or DBOS

    Use it when

    You want type checking and validation across tools and outputs, plus the option to switch model providers without rewriting the agent.

    Skip it if

    You are not working in Python.

    Stats

    Stars
    20,619
    Last push
    Release
    v2.56.0,
    License
    MIT
    Pricing
    Open source
    Drop score
    65 of 100

For agents

The same entry, as files an agent can read without scraping this page.

# read one entry
curl -s https://agenttooldrop.com/tools/smolagents.md

# list the MCP servers in the catalog
curl -s https://agenttooldrop.com/tools.json \
  | jq -r '.tools[] | select(.category=="mcp-server") | .slug'