Skip to content

Guide · Agent skill

How to use the agent-squad Python assistant guide agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The agent-squad-python skill is a guide that teaches an AI coding agent how the agent-squad Python framework works. agent-squad lets a Python program send each user message to the most suitable of several specialist AI agents. This guide explains what the skill changes, how to install it, how to ask for help with natural requests, and what to check before you rely on the code it helps write.

agent-squad Python assistant guide2FastLabs/agent-squad · Apache-2.0

Quick start

  1. 1Download the ZIP. Get the agent-squad-python skill ZIP from this page.
  2. 2Install the skill. Unzip it into ~/.claude/skills/ for personal use, or into your project's .claude/skills/ folder, or upload it under Settings → Capabilities → Skills in the Claude apps.
  3. 3Check Python. Confirm you have Python 3.11 or newer, as the framework requires it.
  4. 4Install agent-squad with extras. Run pip install agent-squad with the extras your model provider needs, such as [aws], [anthropic] or [openai].
  5. 5Ask for your app in plain language. Describe the app and mention agent-squad so the agent loads the skill.
  6. 6Verify against the source. Check generated signatures against the framework source and run the code with your own credentials.

What is an agent skill and what does this one do?

An agent skill is a folder containing a SKILL.md file and supporting files that an AI coding agent can load when a task matches its description. This skill covers the agent-squad Python package, an async framework for multi-agent orchestration on Python 3.11 or newer.

Once loaded, the agent knows which agent type fits a given design: a single assistant, a multi-agent router, grounded answers, a fixed pipeline, a supervisor team, or external tool servers. It also knows which optional install extras to add and common pitfalls, such as always awaiting route_request and branching on response.streaming.

  • It is a map and guide, not a full API reference.
  • It tells the agent to read exact signatures from the framework source and docs rather than relying on the guide alone.

How do you install the agent-squad-python skill?

Download the ZIP file from this page. You can install it in one of two ways: for personal use across projects, unzip it into ~/.claude/skills/; for a single project, unzip it into that project's .claude/skills/ folder. Alternatively, upload the skill in the Claude apps under Settings → Capabilities → Skills.

  • Personal: unzip into ~/.claude/skills/
  • Single project: unzip into your project's .claude/skills/ folder
  • Claude apps: Settings → Capabilities → Skills, then upload the skill

How do you install the agent-squad Python package?

The skill is about the agent-squad package, which you install separately in your own project. All third-party integrations are optional extras, so you only add the ones you need. Core install has no LLM runtime.

  • pip install agent-squad: core only
  • pip install "agent-squad[aws]": adds boto3 for BedrockLLMAgent, BedrockClassifier and DynamoDbChatStorage
  • pip install "agent-squad[anthropic]": adds the anthropic SDK for AnthropicAgent and AnthropicClassifier
  • pip install "agent-squad[openai]": adds the openai SDK for OpenAIAgent and OpenAIClassifier
  • pip install "agent-squad[sql]": adds libsql-client for SqlChatStorage (Turso/libSQL)
  • pip install "agent-squad[mcp]": adds mcp for MCPToolProvider
  • pip install "agent-squad[all]": everything except strands-agents
pip install "agent-squad[aws]"

How do you trigger the skill with natural requests?

You do not need special syntax. Describe the Python app you are building and mention agent-squad, and the agent should load the skill when the task matches. The skill is meant for building or modifying a Python app that uses the agent-squad package.

  • "Using agent-squad, build a Python chatbot that sends billing questions to one agent and technical questions to another."
  • "Add an agent-squad supervisor agent that delegates research to two sub-agents."
  • "Connect my agent-squad app to two MCP tool servers."
  • "Why does my agent-squad route_request return a coroutine instead of a response?"

What does a basic agent-squad turn look like?

The main entry point is AgentSquad.route_request, which is a coroutine, so you must await it. The response has metadata, output and a streaming flag. Always branch on response.streaming because the type of output differs: an async generator when streaming, a ConversationMessage otherwise. Pass stream_response=True to stream back.

  • Create an AgentSquad with a classifier, then add agents with add_agent.
  • Call await orchestrator.route_request(user_input, user_id, session_id).
  • If no agent is selected and no default is set, you get a response with NO_SELECTED_AGENT_MESSAGE rather than an exception.
response = await orchestrator.route_request( user_input="...", user_id="u1", session_id="s1", stream_response=True, )

Which agent type should you choose?

Pick by the shape of the problem. One assistant needs a single agent and no orchestrator. Several specialists need an AgentSquad orchestrator and a classifier. Answers that must match live data use GroundedAgent, where a gatherer model calls tools and a separate presenter model writes the reply from curated facts. ChainAgent runs agents in sequence, SupervisorAgent lets a lead agent delegate to a team, and MCPToolProvider connects MCP tool servers over stdio or SSE.

  • Single assistant: one Agent subclass, call process_request directly
  • Multiple specialists: AgentSquad plus a classifier
  • Data-sensitive answers: GroundedAgent
  • Fixed pipeline: ChainAgent
  • Team coordination: SupervisorAgent with a compatible lead agent
  • External tools: MCPToolProvider (agent-squad[mcp])

What should you check and watch out for?

The skill directs the agent to read exact signatures from the framework source at python/src/agent_squad/ and the docs site. Treat the generated code as a draft until you have checked it against those sources and run it with your own credentials. The skill does not run scripts and does not use the network itself.

  • Confirm signatures in the source before trusting generated calls.
  • Supply your own credentials, such as AWS credentials for Bedrock or an Anthropic or OpenAI API key.
  • Make sure the Python version is 3.11 or newer.
  • Use the guide only for agent-squad. It may mislead on other frameworks.

What people use it for

  • A customer support bot that routes billing and technical questions to different specialist agents.
  • A price or stock assistant that uses GroundedAgent so replies match tool results.
  • A multi-step content pipeline built with ChainAgent.
  • A research assistant where a SupervisorAgent delegates to sub-agents.
  • An app that adds MCP tool servers through MCPToolProvider.

Frequently asked questions

What do I need to use the agent-squad Python skill?

You need Python 3.11 or newer and the agent-squad package installed with the extras for your model provider. You also need credentials for that provider, such as AWS credentials for Bedrock or an Anthropic or OpenAI API key, supplied by your own project.

Where do I put the agent skill folder?

Unzip the skill into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder for one project. You can also upload it in the Claude apps under Settings → Capabilities → Skills.

Does this skill run scripts or use the network?

According to the listing, the skill does not run scripts and does not use the network. It provides guidance that the agent uses while writing Python code.

Is the agent-squad skill free and what is its licence?

The agent-squad project is licensed under Apache-2.0. This listing does not state any price, so check the directory page for current terms.

Can this skill answer my questions directly?

No. The skill helps an AI coding agent write Python code that uses agent-squad. It is not meant for people who only want a chat assistant.

Why does my route_request call return something unexpected?

The most common cause is forgetting to await route_request, since it is a coroutine. Also check that your code branches on response.streaming, because output is an async generator when streaming and a ConversationMessage otherwise.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you are a Python developer building an assistant that routes requests to several specialist agents, especially with AWS Bedrock, Anthropic or OpenAI models or MCP tool servers. Pick something else if you only want a chat assistant, or if your project does not use the agent-squad package, since the guide may mislead on other frameworks.

Download the skill