Agent skill

Agent Squad Python Guide

by 2FastLabs in 2FastLabs/agent-squad

Map of the agent-squad Python framework for async multi-agent orchestration: which agent, classifier, storage and tool provider to pick, and the pitfalls to avoid.

Apache-2.0Auto-check passedAI & LLM Engineering

Install Agent Squad Python Guide

skills CLI
$ npx skills add 2FastLabs/agent-squad --skill agent-squad-python -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install 2FastLabs/agent-squad agent-squad-python --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/2FastLabs/agent-squad.git skills-src && mkdir -p .claude/skills && cp -r skills-src/python .claude/skills/agent-squad-python && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
agent-squad-python
GitHub stars
7.8k
Token cost
~4.7k tokens
SKILL.md length
1,498 words
Files
113
Skills in repo
3
Repo updated
First seen
Licence
Apache-2.0

At a glance

Map of the agent-squad Python framework for async multi-agent orchestration: which agent, classifier, storage and tool provider to pick, and the pitfalls to avoid.

  • Building a multi-agent Python app with agent-squad
  • SKILL.md covers When to use what, How to install, How a turn works and The pieces, plus 3 more sections
  • Runs Python scripts from its folder; calls pip, npm and make; needs DAKERA_API_KEY
  • Routing conversations between specialist agents with a classifier

What it does

This guide supports building or changing Python apps with the agent-squad package, an async-first, dependency-optional multi-agent orchestration framework for Python 3.11 or later. It is a map rather than an API reference: the agent is told to read exact signatures from the source and docs and to use the guide for what to choose, when, and what to watch for. Third-party integrations are optional extras, installed for example with `agent-squad[aws]`, `agent-squad[anthropic]` or `agent-squad[mcp]`.

A when-to-use section matches needs to building blocks: a single `Agent` subclass for one assistant, several agents behind an `AgentSquad` orchestrator whose classifier routes each turn, `GroundedAgent` when answers must not drift from live data, `ChainAgent` for a fixed pipeline, `SupervisorAgent` for a lead agent delegating to a team, and `MCPToolProvider` to bring in tools from MCP servers. The guide stresses that `route_request` is a coroutine to await and that responses should be handled according to their `streaming` flag. The description also names storage, retriever and classifier options; the excerpt is truncated.

When your agent uses it

  • Building a multi-agent Python app with agent-squad
  • Routing conversations between specialist agents with a classifier
  • Adding a supervisor, chain or grounded agent to an existing squad
  • Connecting MCP server tools to agent-squad agents

Example prompts

  • “Build a support bot with agent-squad that routes between a billing agent and a technical agent.”
  • “Add a GroundedAgent so price answers only use values from our inventory tool.”
  • “Switch this app's chat history storage from in-memory to DynamoDB.”
  • “Stream the response from route_request back to the client.”

Requirements

  • Python 3.11 or later
  • The agent-squad package, plus extras such as aws, anthropic or mcp for the integrations you use

What it can do on your machine

Read from SKILL.md and the folder at commit 729d5f5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • pip
    • npm
    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • DAKERA_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Agent Squad Python Guide loads about 4.7k tokens when it runs. Until then it costs about 117 tokens; SKILL.md has 1,498 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~117
When it runs · the whole SKILL.md, loaded when a task matches
~4.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from 2FastLabs/agent-squad at commit 729d5f5, republished under its Apache-2.0 licence (© 2FastLabs). 1,498 words, ~4,725 tokens.

Download SKILL.mdSave it as .claude/skills/agent-squad-python/SKILL.md (or your agent's skills folder). This skill also uses 112 other files; get the full folder from GitHub.
name
agent-squad-python
description
Use when building or modifying a Python app that uses the agent-squad Python package — async multi-agent orchestration for Python 3.11+: orchestrator, agents (BedrockLLMAgent, AnthropicAgent, OpenAIAgent, SupervisorAgent, GroundedAgent, ChainAgent, and more), classifier routing (Bedrock, Anthropic, OpenAI), storage (in-memory, DynamoDB, SQL/Turso), retrievers (Amazon KB, Dakera), tools (AgentTools, MCPToolProvider), and custom implementations.

agent-squad Python — assistant guide

Async-first, dependency-optional multi-agent orchestration framework (Python 3.11+). This is a guide and a map — not an API reference. Read exact signatures from the source (python/src/agent_squad/) and the docs site (docs/src/content/docs/); this file tells you what to use, when, and what to watch out for.

When to use what

  • One assistant — a single Agent subclass; no orchestrator needed, call process_request directly.
  • Several specialists — multiple agents + an AgentSquad orchestrator; the classifier routes each turn to the right agent automatically.
  • Answers must not drift from data (prices, balances, live stock) — GroundedAgent: a gatherer LLM calls tools and sees raw results but never speaks to the user; an isolated presenter LLM writes the reply grounded only on curated facts.
  • Fixed pipeline — ChainAgent: routes the output of one agent as the input to the next, sequentially.
  • Team coordination — SupervisorAgent: a lead BedrockLLMAgent or AnthropicAgent delegates to a team of sub-agents via an internal tool loop, maintaining shared context. Can itself be registered in an AgentSquad.
  • External tool servers — MCPToolProvider (requires agent-squad[mcp]) connects any number of MCP servers (stdio or SSE) and makes their tools available to any agent.

How to install

All third-party integrations are optional extras — never forced on users who don't need them.

bash
pip install agent-squad                  # core only (no LLM runtime)
pip install "agent-squad[aws]"           # + boto3 — BedrockLLMAgent, BedrockClassifier, DynamoDbChatStorage, etc.
pip install "agent-squad[anthropic]"     # + anthropic SDK — AnthropicAgent, AnthropicClassifier
pip install "agent-squad[openai]"        # + openai SDK — OpenAIAgent, OpenAIClassifier
pip install "agent-squad[sql]"           # + libsql-client — SqlChatStorage (Turso/libSQL)
pip install "agent-squad[strands-agents]"# + strands-agents — StrandsAgent
pip install "agent-squad[dakera]"        # + dakera — DakeraRetriever
pip install "agent-squad[mcp]"           # + mcp — MCPToolProvider
pip install "agent-squad[all]"           # everything except strands-agents

How a turn works

AgentSquad.route_request is the one entry point worth memorising. It is a coroutine — you must await it.

python
import asyncio
from agent_squad.orchestrator import AgentSquad
from agent_squad.agents import BedrockLLMAgent, BedrockLLMAgentOptions
from agent_squad.classifiers import BedrockClassifier, BedrockClassifierOptions

orchestrator = AgentSquad(
    classifier=BedrockClassifier(BedrockClassifierOptions())
)
orchestrator.add_agent(BedrockLLMAgent(BedrockLLMAgentOptions(
    name="General Assistant",
    description="Handles general knowledge questions",
)))

async def main():
    response = await orchestrator.route_request(
        user_input="What is the capital of France?",
        user_id="user-123",
        session_id="session-abc",
    )

    if response.streaming:
        # response.output is an async generator of AgentStreamResponse
        async for chunk in response.output:
            if chunk.text:
                print(chunk.text, end="", flush=True)
            if chunk.final_message:
                pass  # full ConversationMessage — already persisted
    else:
        # response.output is a ConversationMessage
        print(response.output.content[0]["text"])

asyncio.run(main())

AgentResponse has three fields: metadata (AgentProcessingResult), output, and streaming (bool). Always branch on response.streaming — the type of output differs.

To stream back from route_request, pass stream_response=True:

python
response = await orchestrator.route_request(
    user_input="...",
    user_id="u1",
    session_id="s1",
    stream_response=True,
)

If no agent is selected and no default agent is configured, route_request returns an AgentResponse with the NO_SELECTED_AGENT_MESSAGE text rather than raising.

The pieces

AgentSquad (orchestrator)

from agent_squad.orchestrator import AgentSquad

The top-level object. Holds an agent registry, a classifier, and a ChatStorage.

python
from agent_squad.types import AgentSquadConfig

orchestrator = AgentSquad(
    options=AgentSquadConfig(
        LOG_CLASSIFIER_OUTPUT=True,
        MAX_MESSAGE_PAIRS_PER_AGENT=20,
        USE_DEFAULT_AGENT_IF_NONE_IDENTIFIED=True,
    ),
    storage=my_storage,        # default: InMemoryChatStorage
    classifier=my_classifier,  # default: BedrockClassifier (if boto3 installed)
    default_agent=fallback,    # used when classifier returns no match
)
orchestrator.add_agent(agent)

AgentSquadConfig fields: LOG_AGENT_CHAT, LOG_CLASSIFIER_CHAT, LOG_CLASSIFIER_RAW_OUTPUT, LOG_CLASSIFIER_OUTPUT, LOG_EXECUTION_TIMES, MAX_RETRIES, USE_DEFAULT_AGENT_IF_NONE_IDENTIFIED, NO_SELECTED_AGENT_MESSAGE, GENERAL_ROUTING_ERROR_MSG_MESSAGE, MAX_MESSAGE_PAIRS_PER_AGENT.

You can also call classify_request and agent_process_request separately if you need to inspect the routing decision before dispatching.

Agents

All agents require agent-squad[aws], [anthropic], or [openai] depending on the underlying SDK. The base Agent and AgentOptions plus SupervisorAgent and GroundedAgent are always available with the core install.

AgentExtra neededNotes
BedrockLLMAgentawsBedrock Converse API; supports streaming, tools, retriever
AmazonBedrockAgentawsBedrock Agents runtime (managed agents with KB/action groups)
BedrockInlineAgentawsBedrock inline agents — code interpretation, KB, and tools inline
BedrockFlowsAgentawsBedrock Flows — runs a preconfigured flow
BedrockTranslatorAgentawsBedrock translation agent
LambdaAgentawsInvokes an AWS Lambda function
LexBotAgentawsRoutes to an Amazon Lex bot
ComprehendFilterAgentawsComprehend PII/toxicity filter before passing to another agent
ChainAgentawsSequential pipeline — each agent's output feeds the next
AnthropicAgentanthropicAnthropic Messages API; supports streaming and tools
OpenAIAgentopenaiOpenAI Chat Completions API; supports streaming and tools
StrandsAgentstrands-agentsStrands Agents integration
SupervisorAgentaws or anthropicLead agent coordinates a team via tools; always available in __init__.py but requires a compatible lead_agent
GroundedAgentsame as gatherer/presenterTwo-LLM anti-hallucination pattern; always importable

All agents extend Agent (agent_squad.agents.agent). The AgentOptions dataclass is the construction pattern — every concrete agent has a matching *Options dataclass that extends it:

python
from agent_squad.agents import BedrockLLMAgent, BedrockLLMAgentOptions
from agent_squad.utils import AgentTools, AgentTool

agent = BedrockLLMAgent(BedrockLLMAgentOptions(
    name="My Agent",
    description="Handles X",              # shown to the classifier
    model_id="anthropic.claude-3-5-sonnet-20240620-v1:0",
    streaming=True,
    save_chat=True,                        # default True — persists history
    tool_config={"tool": my_tools},        # AgentTools instance
    retriever=my_retriever,
    LOG_AGENT_DEBUG_TRACE=False,
))

GroundedAgent takes a gatherer, presenter, tools, optional curator (ToolOutputCurator), and optional presenter_prompt (PresenterPrompt). The gatherer runs the tool loop; the presenter receives only the curated data and never sees the chat history or the gatherer's transcript.

SupervisorAgent takes a lead_agent (must be BedrockLLMAgent or AnthropicAgent), a team list, optional storage, and optional extra_tools. The lead agent must not have its own tool_config — tools are managed internally. Use extra_tools for additional tools beyond the team-dispatch tools.

ChainAgent (requires aws) takes an agents list. Each agent's text output becomes the next agent's input.

Classifiers

from agent_squad.classifiers import BedrockClassifier, AnthropicClassifier, OpenAIClassifier

ClassifierExtra needed
BedrockClassifieraws
AnthropicClassifieranthropic
OpenAIClassifieropenai

The orchestrator defaults to BedrockClassifier if boto3 is installed and no classifier is provided. If boto3 is not installed and no classifier is passed, the orchestrator raises ValueError at construction time.

All classifiers extend Classifier (agent_squad.classifiers.classifier). You can override the routing prompt via set_system_prompt(template, variables) where {{AGENT_DESCRIPTIONS}} and {{HISTORY}} are the built-in template placeholders.

Storage

from agent_squad.storage import InMemoryChatStorage, DynamoDbChatStorage, SqlChatStorage

StorageExtra neededNotes
InMemoryChatStoragenoneDefault; not persistent
DynamoDbChatStorageawsDynamoDB-backed; production default for AWS deployments
SqlChatStoragesqllibSQL/Turso-backed
SummarizingChatStoragenoneWraps any storage; compresses history via a user-supplied async callable when history exceeds trigger_at pairs

All storage classes extend ChatStorage (agent_squad.storage.chat_storage). Storage is keyed by (user_id, session_id, agent_id). MAX_MESSAGE_PAIRS_PER_AGENT (default 100) trims history at write time. save_chat=False on an agent disables history for that agent only.

Retrievers

from agent_squad.retrievers import AmazonKnowledgeBasesRetriever, DakeraRetriever

RetrieverExtra neededNotes
AmazonKnowledgeBasesRetrieverawsAmazon Bedrock Knowledge Bases
DakeraRetrieverdakeraSelf-hosted Dakera memory server

All retrievers extend Retriever (agent_squad.retrievers.retriever). A retriever attached to an agent augments its prompt with retrieved context before the LLM call.

DakeraRetriever reads DAKERA_API_KEY and DAKERA_URL from environment variables if not provided in DakeraRetrieverOptions.

Tools

AgentTools / AgentTool — the native tool system, always available:

python
from agent_squad.utils import AgentTools, AgentTool

def get_weather(city: str) -> str:
    """Get the weather for a city.
    :param city: The city name.
    """
    return f"Sunny in {city}"

tools = AgentTools(tools=[
    AgentTool(name="get_weather", func=get_weather)
])
# AgentTool auto-extracts properties from type hints and :param docstrings.

AgentTool wraps both sync and async functions transparently. Properties, descriptions, and required fields can be overridden explicitly. AgentTools.tool_handler processes tool call responses for Bedrock and Anthropic wire formats.

MCPToolProvider — drop-in AgentTools subclass for MCP servers (requires agent-squad[mcp]):

python
from agent_squad.tools import MCPToolProvider, MCPServerConfig

provider = await MCPToolProvider.create([
    MCPServerConfig(type="stdio", command="uvx", args=["my-mcp-server"]),
    MCPServerConfig(type="sse", url="http://localhost:3000/sse"),
])

agent = BedrockLLMAgent(BedrockLLMAgentOptions(
    name="MCP Agent",
    description="...",
    tool_config={"tool": provider},
))

# Clean up when done:
await provider.disconnect()

MCPToolProvider.create is an async factory — it connects to all servers and fetches tool definitions upfront so they are available synchronously when the agent builds its API request.

Callbacks

AgentCallbacks (on AgentOptions) hooks into the agent lifecycle:

  • on_agent_start — returns a dict (tracking info) available to other callbacks via kwargs
  • on_agent_end
  • on_llm_start
  • on_llm_new_token
  • on_llm_end

AgentToolCallbacks (on AgentTools) hooks into tool execution:

  • on_tool_start
  • on_tool_end
  • on_tool_error

ClassifierCallbacks hooks into the classifier:

  • on_classifier_start
  • on_classifier_stop
Show full SKILL.md (582 more words)Show less

Custom implementations

Subclass the abstract base and pass your instance where the built-in goes. Source paths are under python/src/agent_squad/.

SeamBase classSource file
AgentAgentagents/agent.py
ClassifierClassifierclassifiers/classifier.py
StorageChatStoragestorage/chat_storage.py
RetrieverRetrieverretrievers/retriever.py
Tool curatorToolOutputCuratoragents/grounded_agent.py
Presenter promptPresenterPromptagents/grounded_agent.py

Minimal custom agent:

python
from typing import Optional, AsyncIterable, Union
from agent_squad.agents import Agent, AgentOptions
from agent_squad.types import ConversationMessage, ParticipantRole

class MyAgent(Agent):
    def __init__(self, options: AgentOptions):
        super().__init__(options)

    async def process_request(
        self,
        input_text: str,
        user_id: str,
        session_id: str,
        chat_history: list[ConversationMessage],
        additional_params: Optional[dict] = None,
    ) -> Union[ConversationMessage, AsyncIterable]:
        return ConversationMessage(
            role=ParticipantRole.ASSISTANT.value,
            content=[{"text": f"Echo: {input_text}"}],
        )

For a streaming custom agent, also override is_streaming_enabled to return True and yield AgentStreamResponse objects (set final_message on the last one).

Gotchas

  • All public methods are async. route_request, process_request, classify, storage methods, and retriever methods are all coroutines. You must await them inside an async context. Use asyncio.run(main()) at the top level.
  • Optional imports at module level, not inside methods. The framework guards all optional integrations with try/except ImportError at the top of each module. If you copy this pattern for your own extensions, keep the guard at module level — never inside __init__ or a method.
  • Classifier is required. Unlike the Swift version, the Python AgentSquad raises at construction time if no classifier can be resolved (no boto3 installed and no classifier passed). Always pass a classifier explicitly when boto3 is not available.
  • response.streaming and response.output type are coupled. When streaming=True, output is an async generator; when False, it is a ConversationMessage. Always branch on response.streaming before consuming output.
  • stream_response=False by default. Even if the agent itself streams internally, the orchestrator will drain the stream and return a single ConversationMessage unless you pass stream_response=True to route_request.
  • Agent id is derived from name via generate_key_from_name: lowercased, spaces replaced with hyphens, special characters stripped. agent.id is the storage key — two agents with names that normalise to the same string will collide. Pick distinct names.
  • AgentOptions is a dataclass; new fields must have defaults. When subclassing (e.g. BedrockLLMAgentOptions), add new fields with defaults so existing construction call-sites keep working.
  • SupervisorAgent name and description come from the lead agent. Whatever you set on SupervisorAgentOptions.name / .description is overwritten by lead_agent.name / lead_agent.description at construction time.
  • SupervisorAgent forbids tool_config on the lead agent. The supervisor manages tools internally. Use extra_tools for any additional tools beyond team dispatch.
  • GroundedAgent presenter isolation is strict. The presenter never sees chat history or the gatherer's transcript — only the curated data produced by the ToolOutputCurator. A chit-chat turn that calls no tools is answered by the gatherer alone (presenter is skipped).
  • MCPToolProvider.create is async. It must be awaited before building the agent. Call await provider.disconnect() when done to close server connections.
  • save_chat=True by default. Every agent persists both sides of each exchange unless explicitly set to False. Storage is scoped per (user_id, session_id, agent_id). The MAX_MESSAGE_PAIRS_PER_AGENT config trims at save time, not at fetch time.
  • ConversationMessage.content is a list of dicts, not a plain string. Text is at content[0]["text"] for most agents. Some agents may produce multi-block content (tool use, images). Do not assume content has a single element.
  • DakeraRetriever and AmazonKnowledgeBasesRetriever are not import-guarded — they are always exported from agent_squad.retrievers. If the underlying SDK (dakera, boto3) is not installed, the import will fail at runtime when you try to construct them.

Go deeper

  • Prose and recipes — the Starlight docs under docs/src/content/docs/ (run with npm run dev from docs/): get-started/, agents/, classifiers/, storage/, retrievers/, tools/.
  • Exact signatures — python/src/agent_squad/:
    • orchestrator.py — AgentSquad, route_request, classify_request, agent_process_request
    • agents/agent.py — Agent, AgentOptions, AgentCallbacks, AgentResponse, AgentStreamResponse
    • agents/grounded_agent.py — GroundedAgent, GroundedAgentOptions, ToolOutputCurator, DataBlockCurator, PerToolCurator, PresenterPrompt, CapturedToolResult
    • agents/supervisor_agent.py — SupervisorAgent, SupervisorAgentOptions
    • agents/chain_agent.py — ChainAgent, ChainAgentOptions
    • classifiers/classifier.py — Classifier, ClassifierResult, ClassifierCallbacks
    • storage/chat_storage.py — ChatStorage
    • retrievers/retriever.py — Retriever
    • utils/tool.py — AgentTools, AgentTool, AgentToolCallbacks, AgentToolResult
    • tools/mcp_tool_provider.py — MCPToolProvider, MCPServerConfig
    • types/types.py — ConversationMessage, ParticipantRole, AgentSquadConfig, TimestampedMessage
  • Tests — python/src/tests/ — pytest; run from python/ with make test.
  • Optional extras — python/setup.cfg — [options.extras_require].

© 2FastLabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 112 other files in python of 2FastLabs/agent-squad.

  • SKILL.md
  • .gitignore
  • CONTRIBUTING.md
  • Makefile
  • README.md
  • pyproject.toml
  • ruff.toml
  • setup.cfg
  • setup.py
  • src/agent_squad/__init__.py
  • src/agent_squad/agent_overlap_analyzer.py
  • src/agent_squad/agents/__init__.py
  • src/agent_squad/agents/agent.py
  • src/agent_squad/agents/amazon_bedrock_agent.py
  • src/agent_squad/agents/anthropic_agent.py
  • src/agent_squad/agents/bedrock_flows_agent.py
  • src/agent_squad/agents/bedrock_inline_agent.py
  • src/agent_squad/agents/bedrock_llm_agent.py
  • … and 95 more

Open the folder on GitHubat commit 729d5f5

Compare with similar skills

Agent Squad Python Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Agent Squad Python Guide compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Agent Squad Python Guide this skill2FastLabs/agent-squad7.8k—~4.7kAutomated safety check: PassApache-2.0
Agent BuilderMathews-Tom/armory327—~1.7kAutomated safety check: PassMIT
Ydc Openai Agent SDK IntegrationLeoYeAI/openclaw-master-skills2.2k—~4.4kAutomated safety check: NotesMIT
Using Ccproxy Inspectorstarbaser/ccproxy348—~2.7kAutomated safety check: PassCustom licence
Bootstrapping Agentairbytehq/airbyte-agent-sdk135—~1.7kAutomated safety check: NotesCustom licence
Tool Designagentailor/fullstack-langgraph-nextjs-agent132—~3.2kAutomated safety check: PassMIT

Similar skills

  • Agent Builder

    Mathews-Tom/armory

    Build AI agents and automate Claude Code programmatically via the Claude Agent SDK and headless CLI mode.

    327 GitHub stars~1.7k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Ydc Openai Agent SDK Integration

    LeoYeAI/openclaw-master-skills

    Integrate OpenAI Agents SDK with You.com MCP server - Hosted and Streamable HTTP support for Python and TypeScript.

    2.2k GitHub stars~4.4k tokensUpdated 2 mo ago
    AI & LLM EngineeringAuto-check: notes
  • Using Ccproxy Inspector

    starbaser/ccproxy

    Operates the ccproxy inspector MITM system for intercepting, inspecting, and transforming LLM API traffic.

    348 GitHub stars~2.7k tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check passed
  • Bootstrapping Agent

    airbytehq/airbyte-agent-sdk

    Official

    Wires up an Airbyte connector for use in a PydanticAI, Claude SDK, or other agent.

    135 GitHub stars~1.7k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check: notes
  • Tool Design

    agentailor/fullstack-langgraph-nextjs-agent

    Design and verify tools that AI agents can actually use — for any framework or language (MCP servers, LangChain/LangGraph, function-calling, raw JSON schema; TypeScript, Python, or otherwise).

    132 GitHub stars~3.2k tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check passed
  • Run Bitrouter Benchmark

    bitrouter/bitrouter

    A skill your agent uses when a user wants to run, compare, resume, audit, share, or submit a Harbor benchmark through BitRouter, including choosing a Harbor dataset and agent, confirming routed…

    235 GitHub stars~2.2k tokensUpdated today
    AI & LLM EngineeringAuto-check passed

More from 2FastLabs/agent-squad

  • AgentSquad for Swift

    2FastLabs/agent-squad

    Guides building on-device multi-agent apps in Swift with the AgentSquad framework: which agent, orchestrator, classifier, storage or voice type fits each situation.

    7.8k GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Agent Squad for TypeScript

    2FastLabs/agent-squad

    Guide to building Node.js and TypeScript apps on the agent-squad package: orchestrator, agent types, classifier routing, storage, retrievers and MCP tools.

    7.8k GitHub stars~4.3k tokensUpdated today
    Auto-check passed

Questions about Agent Squad Python Guide

What does Agent Squad Python Guide do?

Map of the agent-squad Python framework for async multi-agent orchestration: which agent, classifier, storage and tool provider to pick, and the pitfalls to avoid. 11 or later. It is a map rather than an API reference: the agent is told to read exact signatures from the source and docs and to use the guide for what to choose, when, and what to watch for.

When should I use Agent Squad Python Guide?

Agent Squad Python Guide fits situations like: building a multi-agent Python app with agent-squad; routing conversations between specialist agents with a classifier; adding a supervisor, chain or grounded agent to an existing squad; connecting MCP server tools to agent-squad agents.

How do I install Agent Squad Python Guide in Claude Code?

Run `npx skills add 2FastLabs/agent-squad --skill agent-squad-python -a claude-code`. Or copy the skill folder (python in 2FastLabs/agent-squad) into .claude/skills/agent-squad-python in your project. Claude Code loads it when a task matches its description.

How do I install Agent Squad Python Guide in Codex?

Run `npx skills add 2FastLabs/agent-squad --skill agent-squad-python -a codex`. Or copy the skill folder (python in 2FastLabs/agent-squad) into .agents/skills/agent-squad-python in your project. Codex loads it when a task matches its description.

Can I use Agent Squad Python Guide in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add 2FastLabs/agent-squad --skill agent-squad-python -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-squad-python, .gemini/skills/agent-squad-python, .github/skills/agent-squad-python and .opencode/skills/agent-squad-python in your project.

What does Agent Squad Python Guide need to run?

Going by SKILL.md and its folder, Agent Squad Python Guide needs Python for the scripts in its folder, the command-line tools its instructions call (pip, npm and make) and credentials named DAKERA_API_KEY. Our summary lists: Python 3.11 or later; The agent-squad package, plus extras such as aws, anthropic or mcp for the integrations you use.

Does Agent Squad Python Guide access the network?

SKILL.md contains no URLs. Its commands use pip and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Agent Squad Python Guide safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Agent Squad Python Guide use?

Agent Squad Python Guide is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Agent Squad Python Guide use?

About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Agent Squad Python Guide?

Skills that share tags, products or a category with Agent Squad Python Guide: Agent Builder (Mathews-Tom/armory, 327 stars), Ydc Openai Agent SDK Integration (LeoYeAI/openclaw-master-skills, 2.2k stars), Using Ccproxy Inspector (starbaser/ccproxy, 348 stars) and Bootstrapping Agent (airbytehq/airbyte-agent-sdk, 135 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Agent Squad Python Guide?

2FastLabs (a GitHub organization) maintains it in 2FastLabs/agent-squad, which has 7,787 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 7, 2026.

Source: 2FastLabs/agent-squad on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.