Agent Squad

Route each conversation turn to the right specialized agent while preserving context across the exchange.

Stars
★ 7.8k
Last updated
29d ago
License
Apache-2.0
Primary language
Python

At a glance

How it runs
Library / SDKFramework
Works with
Universal · cross-platformOpenAI API · Claude API
Cost
Free software; you pay for model usage
Setup effort
Medium · a few setup steps
You'll need
Python 3.11+Node.jsiOS 16+ or macOS 14+ for SwiftShell / CLINetwork accessLocal filesystemMCP Server
Typical use
An e-commerce support team routing order, product, and human-verification questions to separate specialized agents.
Not a fit if
  • Teams wanting a ready-made bot without wiring up a model provider
  • Teams needing one deployment target to cover every runtime

What does this agent do, and when should you use it?

Agent Squad is an open-source framework for orchestrating multiple AI agents across Python, TypeScript, and Swift runtimes. Its Classifier selects an Agent using the user request, agent descriptions, and conversation history, while the Orchestrator stores the exchange and returns the response. The framework includes pre-built Bedrock, Anthropic, OpenAI, Lex, and Lambda agents, with extension points for custom agents, classifiers, storage, and retrievers. Python and TypeScript can run in AWS Lambda, containers, or locally; the Swift runtime targets iOS 16+ and macOS 14+ with on-device routing, MCP tools, realtime voice, tracing, and local chat storage. It fits teams building a single conversational entry point across several specialized capabilities rather than a hosted, ready-made business bot.

An application sends text plus a userId and sessionId to AgentSquad in Python or TypeScript, or to the Swift Orchestrator. The Classifier uses registered Agent descriptions and conversation history to route the turn; the selected Agent processes it, calling tools when needed, and the Orchestrator saves the interaction before returning a streaming or non-streaming response. TypeScript exposes orchestrator.addAgent(...) and routeRequest(...), while Python uses add_agent(...) and route_request(...) and can emit AgentStreamResponse values. Swift iterates events from Orchestrator.route(.text(...), userId:..., sessionId:...); its tools can be native Swift functions, declarative HTTP tools, or MCP servers. SupervisorAgent coordinates parallel sub-agent work and combines the result, while GroundedAgent separates tool-data gathering from a presenter that writes only from curated tool output.

  1. An e-commerce support team routing order, product, and human-verification questions to separate specialized agents.
  2. A travel product team building one assistant that keeps context as a user moves among travel, weather, restaurant, and math questions.
  3. An AWS engineering team deploying a conversational orchestration layer in Lambda or containers with Bedrock, Lex, or Lambda agents.
  4. A financial, retail, or betting application using GroundedAgent where answers about balances, prices, availability, or odds must match retrieved tool data.
  5. An iPhone, iPad, or Mac team building an on-device, local-first assistant with MCP tools and realtime voice.

How do you install or deploy this agent?

Choose one runtime. TypeScript: npm install agent-squad. Python: pip install "agent-squad[aws]"; the README also lists [anthropic], [openai], and [all], and requires Python 3.11+. Swift: add .package(url: "https://github.com/2FastLabs/agent-squad", branch: "main") to Package.swift dependencies, or use Xcode’s Add Package Dependencies flow. The Swift sample requires an apiKey for ChatCompletionsClient; the README does not document exact credential setup for Bedrock or other providers.

How do you use this agent?

A first TypeScript invocation is: import { AgentSquad, BedrockLLMAgent } from "agent-squad"; const orchestrator = new AgentSquad(); orchestrator.addAgent(new BedrockLLMAgent({ name: "Tech Agent", description: "Specializes in technology: software, hardware, AI, cybersecurity, cloud.", streaming: true })); const response = await orchestrator.routeRequest("What is AWS Lambda?", "user123", "session456"); Iterate response.output with for await when response.streaming is true; otherwise read response.output. In Swift, create Agent(name: "Shop", description: "Shopping assistant", model: ChatCompletionsClient(model: "gpt-4o-mini", apiKey: apiKey)), then route through Orchestrator(agents: [agent], store: try DeviceChatStorage(userId: "u1")).

What are this agent's strengths and limitations?

Pros
  • One orchestration model spans Python, TypeScript, and Swift, with Swift explicitly designed for fully on-device operation.
  • Routing considers both agent descriptions and conversation history, rather than only the current text.
  • GroundedAgent isolates tool gathering from final presentation, which is useful when replies must faithfully reflect prices, inventory, or balances.
  • SupervisorAgent supports parallel sub-agent queries, shared context, and hierarchical teams.
  • The Swift tool boundary unifies native functions, HTTP tools, and MCP servers.
Limitations
  • Runtime requirements differ: Python needs 3.11+, while Swift requires iOS 16+ or macOS 14+, so one deployment target does not cover every environment.
  • The README shows dependency installation and examples but does not provide exact credential-configuration steps for Bedrock or other providers.
  • Applications using the built-in Bedrock, Anthropic, or OpenAI agents still need to integrate the applicable model provider.
  • The Swift package example points to the main branch rather than a fixed release, which can introduce version-drift risk.
  • The project moved from awslabs/agent-squad and was previously named multi-agent-orchestrator, so old clone URLs, bookmarks, and dependencies need updating.

How does this agent compare with similar options?

The repository explicitly offers Bedrock, Anthropic, OpenAI, Lex, and Lambda agent implementations. These are integration options that can be registered within the same Agent Squad orchestration layer, not mutually exclusive framework replacements.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Agent Squad This agent 31 · Major gaps Library / SDKFree + model costs ★ 7.8k 29d ago Python OpenAI API · Claude API
Shannon 53 · Major gaps Self-hosted serviceFree + model costs ★ 2.3k 2mo ago Go OpenAI API · Claude API
AutoGen Multi-Agent Framework 52 · Major gaps Library / SDKFree + model costs ★ 62k 8d ago Python OpenAI API
Open Swarm 40 · Major gaps — ★ 827 25d ago JavaScript Claude API

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
31/ 100 5-point scale 1.6 / 5
This review covers the source as of Aug 09, 2026. The project has shipped 2 stable release(s) since, which have not been re-reviewed. The score and verdict describe the reviewed version only. Recent releases ↓
Trust 0/29
Reliability 5/14
Adaptability 8/18
Convention 8/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust0 / 29 · 0.0/5

Evidence shows no documentation or code for permission management, user confirmation, data flow transparency, sensitive data handling, dependency security, external effects, rollback, or source attribution. All trust criteria scored 0 due to absence of evidence.

Reliability5 / 14 · 1.8/5

Self-consistency scored 2: README describes multiple runtimes and features, but no detailed code or tests to verify consistency. Dependency availability scored 1: README mentions npm and PyPI packages, but no version pinning or dependency manifests. Failure messages scored 0: no documentation on error handling or failure messages.

Adaptability8 / 18 · 2.2/5

Audience and scenarios scored 2: README clearly identifies target audience (developers) and multiple use cases (cloud, on-device). Capability boundaries scored 1: extensibility described, but no explicit limits. Trigger precision scored 0: no trigger mechanisms or precise conditions. Environment fit scored 2: supported environments listed (Python 3.11+, Node.js, iOS 16+).

Convention8 / 18 · 2.2/5

Information architecture scored 2: README well-structured with TOC and sections. Install notes scored 2: npm, pip, and Swift package install commands provided. Naming stability scored 1: project rename and migration mentioned, but no version history. Examples and FAQ scored 2: multiple examples and article links provided. Known limitations scored 0: no limitations mentioned. License scored 2: Apache-2.0 clearly stated. Versioning and changelog scored 0: no CHANGELOG or version history. Maintenance responsibility scored 1: authors and contributors listed, but no explicit maintenance policy.

Effectiveness7 / 13 · 2.7/5

Output usability scored 2: API examples and output formats provided. Marginal value scored 2: framework offers multi-runtime and unique features (e.g., GroundedAgent). Cost-benefit scored 1: no performance or cost data.

Verifiability3 / 8 · 1.9/5

Claim traceability scored 1: claims in README not linked to specific code or tests. Cross-source corroboration scored 1: external articles and podcasts exist, but no independent verification. Fact-inference separation scored 1: some distinction between feature descriptions and inferences, but not explicit.

Risks and how to mitigate them
  • Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
  • Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
  • Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
  • Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
  • No security documentation provided, such as permission management, data flow transparency, sensitive data handling; assess before use.
  • Dependency security not mentioned; recommend checking dependency manifests and known vulnerabilities.
  • No known limitations or failure handling documentation, which may affect production use.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 31eccfeb0d54 New commits since this review; the score may not cover them
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. typescript_1.1.5 TypeScript 1.1.5
    Release notes excerpt
    What's new - Added JevClassifier: routes with TypeSafe's Jev decision model instead of an LLM. The registered agents become a typed choice question, and Jev returns the chosen agent plus a calibrated confidence, billed on input tokens only. Uses the built-in fetch, no new dependencies. See the [docs](https://2fastlabs.github.io/agent-squad/classifiers/built-in/jev-classifier) (#699) - MCP protocol 2026-07-28 support via @modelcontextprotocol/client v2 (#642) - Streamable HTTP transport in MCPToolProvider (#639) …
    View on GitHub ↗
  2. python_1.1.4 Python 1.1.4
    Release notes excerpt
    What's new - Added JevClassifier: routes with TypeSafe's Jev decision model instead of an LLM. The registered agents become a typed choice question, and Jev returns the chosen agent plus a calibrated confidence, billed on input tokens only. Standard library only, no new dependencies. See the [docs](https://2fastlabs.github.io/agent-squad/classifiers/built-in/jev-classifier) (#699) - MCP protocol 2026-07-28 support via mcp 2.x, keeping 1.x compatible (#643) - Streamable HTTP transport in MCPToolProvider (#639) - MCP tool-UI passthrough in MCPToolProvider (#604) …
    View on GitHub ↗
  3. typescript_1.1.4 TypeScript 1.1.4
    Release notes excerpt
    What's new - Added SummarizingChatStorage: wraps any ChatStorage and automatically compresses long conversation histories via a user-supplied LLM summarizer. Uses lazy buffer activation and eager save-time compression — raw messages are always preserved in the inner store.
    View on GitHub ↗

FAQ

Is Agent Squad limited to AWS Bedrock?
No. The README lists pre-built Bedrock, Anthropic, OpenAI, Lex, and Lambda agents, and Python installation options include aws, anthropic, openai, and all.
How does it reduce unsupported claims from tool data?
GroundedAgent uses a gatherer to call tools, then an isolated presenter that has no tools, tool transcript, or chat history and writes only from curated tool output. A turn with no tool use skips the presenter.
Can it run on Apple devices?
Yes. Its Swift runtime supports iOS 16+ and macOS 14+ and documents on-device routing, MCP, realtime voice, tracing, and JSON-file or SwiftData chat storage.
Does it support streaming?
Yes. The README documents streaming and non-streaming responses: TypeScript uses async iteration, Python iterates AgentStreamResponse values, and Swift routing produces iterable events.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents