strands-agents


Namestrands-agents JSON
Version 1.5.0 PyPI version JSON
download
home_pageNone
SummaryA model-driven approach to building AI agents in just a few lines of code
upload_time2025-08-19 02:13:59
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseApache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <div>
    <a href="https://strandsagents.com">
      <img src="https://strandsagents.com/latest/assets/logo-github.svg" alt="Strands Agents" width="55px" height="105px">
    </a>
  </div>

  <h1>
    Strands Agents
  </h1>

  <h2>
    A model-driven approach to building AI agents in just a few lines of code.
  </h2>

  <div align="center">
    <a href="https://github.com/strands-agents/sdk-python/graphs/commit-activity"><img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/m/strands-agents/sdk-python"/></a>
    <a href="https://github.com/strands-agents/sdk-python/issues"><img alt="GitHub open issues" src="https://img.shields.io/github/issues/strands-agents/sdk-python"/></a>
    <a href="https://github.com/strands-agents/sdk-python/pulls"><img alt="GitHub open pull requests" src="https://img.shields.io/github/issues-pr/strands-agents/sdk-python"/></a>
    <a href="https://github.com/strands-agents/sdk-python/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/strands-agents/sdk-python"/></a>
    <a href="https://pypi.org/project/strands-agents/"><img alt="PyPI version" src="https://img.shields.io/pypi/v/strands-agents"/></a>
    <a href="https://python.org"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/strands-agents"/></a>
  </div>
  
  <p>
    <a href="https://strandsagents.com/">Documentation</a>
    ◆ <a href="https://github.com/strands-agents/samples">Samples</a>
    ◆ <a href="https://github.com/strands-agents/sdk-python">Python SDK</a>
    ◆ <a href="https://github.com/strands-agents/tools">Tools</a>
    ◆ <a href="https://github.com/strands-agents/agent-builder">Agent Builder</a>
    ◆ <a href="https://github.com/strands-agents/mcp-server">MCP Server</a>
  </p>
</div>

Strands Agents is a simple yet powerful SDK that takes a model-driven approach to building and running AI agents. From simple conversational assistants to complex autonomous workflows, from local development to production deployment, Strands Agents scales with your needs.

## Feature Overview

- **Lightweight & Flexible**: Simple agent loop that just works and is fully customizable
- **Model Agnostic**: Support for Amazon Bedrock, Anthropic, LiteLLM, Llama, Ollama, OpenAI, Writer, and custom providers
- **Advanced Capabilities**: Multi-agent systems, autonomous agents, and streaming support
- **Built-in MCP**: Native support for Model Context Protocol (MCP) servers, enabling access to thousands of pre-built tools

## Quick Start

```bash
# Install Strands Agents
pip install strands-agents strands-agents-tools
```

```python
from strands import Agent
from strands_tools import calculator
agent = Agent(tools=[calculator])
agent("What is the square root of 1764")
```

> **Note**: For the default Amazon Bedrock model provider, you'll need AWS credentials configured and model access enabled for Claude 4 Sonnet in the us-west-2 region. See the [Quickstart Guide](https://strandsagents.com/) for details on configuring other model providers.

## Installation

Ensure you have Python 3.10+ installed, then:

```bash
# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows use: .venv\Scripts\activate

# Install Strands and tools
pip install strands-agents strands-agents-tools
```

## Features at a Glance

### Python-Based Tools

Easily build tools using Python decorators:

```python
from strands import Agent, tool

@tool
def word_count(text: str) -> int:
    """Count words in text.

    This docstring is used by the LLM to understand the tool's purpose.
    """
    return len(text.split())

agent = Agent(tools=[word_count])
response = agent("How many words are in this sentence?")
```

**Hot Reloading from Directory:**
Enable automatic tool loading and reloading from the `./tools/` directory:

```python
from strands import Agent

# Agent will watch ./tools/ directory for changes
agent = Agent(load_tools_from_directory=True)
response = agent("Use any tools you find in the tools directory")
```

### MCP Support

Seamlessly integrate Model Context Protocol (MCP) servers:

```python
from strands import Agent
from strands.tools.mcp import MCPClient
from mcp import stdio_client, StdioServerParameters

aws_docs_client = MCPClient(
    lambda: stdio_client(StdioServerParameters(command="uvx", args=["awslabs.aws-documentation-mcp-server@latest"]))
)

with aws_docs_client:
   agent = Agent(tools=aws_docs_client.list_tools_sync())
   response = agent("Tell me about Amazon Bedrock and how to use it with Python")
```

### Multiple Model Providers

Support for various model providers:

```python
from strands import Agent
from strands.models import BedrockModel
from strands.models.ollama import OllamaModel
from strands.models.llamaapi import LlamaAPIModel

# Bedrock
bedrock_model = BedrockModel(
  model_id="us.amazon.nova-pro-v1:0",
  temperature=0.3,
  streaming=True, # Enable/disable streaming
)
agent = Agent(model=bedrock_model)
agent("Tell me about Agentic AI")

# Ollama
ollama_model = OllamaModel(
  host="http://localhost:11434",
  model_id="llama3"
)
agent = Agent(model=ollama_model)
agent("Tell me about Agentic AI")

# Llama API
llama_model = LlamaAPIModel(
    model_id="Llama-4-Maverick-17B-128E-Instruct-FP8",
)
agent = Agent(model=llama_model)
response = agent("Tell me about Agentic AI")
```

Built-in providers:
 - [Amazon Bedrock](https://strandsagents.com/latest/user-guide/concepts/model-providers/amazon-bedrock/)
 - [Anthropic](https://strandsagents.com/latest/user-guide/concepts/model-providers/anthropic/)
 - [LiteLLM](https://strandsagents.com/latest/user-guide/concepts/model-providers/litellm/)
 - [LlamaAPI](https://strandsagents.com/latest/user-guide/concepts/model-providers/llamaapi/)
 - [Ollama](https://strandsagents.com/latest/user-guide/concepts/model-providers/ollama/)
 - [OpenAI](https://strandsagents.com/latest/user-guide/concepts/model-providers/openai/)
 - [Writer](https://strandsagents.com/latest/documentation/docs/user-guide/concepts/model-providers/writer/)

Custom providers can be implemented using [Custom Providers](https://strandsagents.com/latest/user-guide/concepts/model-providers/custom_model_provider/)

### Example tools

Strands offers an optional strands-agents-tools package with pre-built tools for quick experimentation:

```python
from strands import Agent
from strands_tools import calculator
agent = Agent(tools=[calculator])
agent("What is the square root of 1764")
```

It's also available on GitHub via [strands-agents/tools](https://github.com/strands-agents/tools).

## Documentation

For detailed guidance & examples, explore our documentation:

- [User Guide](https://strandsagents.com/)
- [Quick Start Guide](https://strandsagents.com/latest/user-guide/quickstart/)
- [Agent Loop](https://strandsagents.com/latest/user-guide/concepts/agents/agent-loop/)
- [Examples](https://strandsagents.com/latest/examples/)
- [API Reference](https://strandsagents.com/latest/api-reference/agent/)
- [Production & Deployment Guide](https://strandsagents.com/latest/user-guide/deploy/operating-agents-in-production/)

## Contributing ❤️

We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for details on:
- Reporting bugs & features
- Development setup
- Contributing via Pull Requests
- Code of Conduct
- Reporting of security issues

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

## Security

See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "strands-agents",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "AWS <opensource@amazon.com>",
    "download_url": "https://files.pythonhosted.org/packages/e7/4b/2adc357deb4e29cd6f34136e7133f35f6e06f51597fa29b00282c23f1f4e/strands_agents-1.5.0.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <div>\n    <a href=\"https://strandsagents.com\">\n      <img src=\"https://strandsagents.com/latest/assets/logo-github.svg\" alt=\"Strands Agents\" width=\"55px\" height=\"105px\">\n    </a>\n  </div>\n\n  <h1>\n    Strands Agents\n  </h1>\n\n  <h2>\n    A model-driven approach to building AI agents in just a few lines of code.\n  </h2>\n\n  <div align=\"center\">\n    <a href=\"https://github.com/strands-agents/sdk-python/graphs/commit-activity\"><img alt=\"GitHub commit activity\" src=\"https://img.shields.io/github/commit-activity/m/strands-agents/sdk-python\"/></a>\n    <a href=\"https://github.com/strands-agents/sdk-python/issues\"><img alt=\"GitHub open issues\" src=\"https://img.shields.io/github/issues/strands-agents/sdk-python\"/></a>\n    <a href=\"https://github.com/strands-agents/sdk-python/pulls\"><img alt=\"GitHub open pull requests\" src=\"https://img.shields.io/github/issues-pr/strands-agents/sdk-python\"/></a>\n    <a href=\"https://github.com/strands-agents/sdk-python/blob/main/LICENSE\"><img alt=\"License\" src=\"https://img.shields.io/github/license/strands-agents/sdk-python\"/></a>\n    <a href=\"https://pypi.org/project/strands-agents/\"><img alt=\"PyPI version\" src=\"https://img.shields.io/pypi/v/strands-agents\"/></a>\n    <a href=\"https://python.org\"><img alt=\"Python versions\" src=\"https://img.shields.io/pypi/pyversions/strands-agents\"/></a>\n  </div>\n  \n  <p>\n    <a href=\"https://strandsagents.com/\">Documentation</a>\n    \u25c6 <a href=\"https://github.com/strands-agents/samples\">Samples</a>\n    \u25c6 <a href=\"https://github.com/strands-agents/sdk-python\">Python SDK</a>\n    \u25c6 <a href=\"https://github.com/strands-agents/tools\">Tools</a>\n    \u25c6 <a href=\"https://github.com/strands-agents/agent-builder\">Agent Builder</a>\n    \u25c6 <a href=\"https://github.com/strands-agents/mcp-server\">MCP Server</a>\n  </p>\n</div>\n\nStrands Agents is a simple yet powerful SDK that takes a model-driven approach to building and running AI agents. From simple conversational assistants to complex autonomous workflows, from local development to production deployment, Strands Agents scales with your needs.\n\n## Feature Overview\n\n- **Lightweight & Flexible**: Simple agent loop that just works and is fully customizable\n- **Model Agnostic**: Support for Amazon Bedrock, Anthropic, LiteLLM, Llama, Ollama, OpenAI, Writer, and custom providers\n- **Advanced Capabilities**: Multi-agent systems, autonomous agents, and streaming support\n- **Built-in MCP**: Native support for Model Context Protocol (MCP) servers, enabling access to thousands of pre-built tools\n\n## Quick Start\n\n```bash\n# Install Strands Agents\npip install strands-agents strands-agents-tools\n```\n\n```python\nfrom strands import Agent\nfrom strands_tools import calculator\nagent = Agent(tools=[calculator])\nagent(\"What is the square root of 1764\")\n```\n\n> **Note**: For the default Amazon Bedrock model provider, you'll need AWS credentials configured and model access enabled for Claude 4 Sonnet in the us-west-2 region. See the [Quickstart Guide](https://strandsagents.com/) for details on configuring other model providers.\n\n## Installation\n\nEnsure you have Python 3.10+ installed, then:\n\n```bash\n# Create and activate virtual environment\npython -m venv .venv\nsource .venv/bin/activate  # On Windows use: .venv\\Scripts\\activate\n\n# Install Strands and tools\npip install strands-agents strands-agents-tools\n```\n\n## Features at a Glance\n\n### Python-Based Tools\n\nEasily build tools using Python decorators:\n\n```python\nfrom strands import Agent, tool\n\n@tool\ndef word_count(text: str) -> int:\n    \"\"\"Count words in text.\n\n    This docstring is used by the LLM to understand the tool's purpose.\n    \"\"\"\n    return len(text.split())\n\nagent = Agent(tools=[word_count])\nresponse = agent(\"How many words are in this sentence?\")\n```\n\n**Hot Reloading from Directory:**\nEnable automatic tool loading and reloading from the `./tools/` directory:\n\n```python\nfrom strands import Agent\n\n# Agent will watch ./tools/ directory for changes\nagent = Agent(load_tools_from_directory=True)\nresponse = agent(\"Use any tools you find in the tools directory\")\n```\n\n### MCP Support\n\nSeamlessly integrate Model Context Protocol (MCP) servers:\n\n```python\nfrom strands import Agent\nfrom strands.tools.mcp import MCPClient\nfrom mcp import stdio_client, StdioServerParameters\n\naws_docs_client = MCPClient(\n    lambda: stdio_client(StdioServerParameters(command=\"uvx\", args=[\"awslabs.aws-documentation-mcp-server@latest\"]))\n)\n\nwith aws_docs_client:\n   agent = Agent(tools=aws_docs_client.list_tools_sync())\n   response = agent(\"Tell me about Amazon Bedrock and how to use it with Python\")\n```\n\n### Multiple Model Providers\n\nSupport for various model providers:\n\n```python\nfrom strands import Agent\nfrom strands.models import BedrockModel\nfrom strands.models.ollama import OllamaModel\nfrom strands.models.llamaapi import LlamaAPIModel\n\n# Bedrock\nbedrock_model = BedrockModel(\n  model_id=\"us.amazon.nova-pro-v1:0\",\n  temperature=0.3,\n  streaming=True, # Enable/disable streaming\n)\nagent = Agent(model=bedrock_model)\nagent(\"Tell me about Agentic AI\")\n\n# Ollama\nollama_model = OllamaModel(\n  host=\"http://localhost:11434\",\n  model_id=\"llama3\"\n)\nagent = Agent(model=ollama_model)\nagent(\"Tell me about Agentic AI\")\n\n# Llama API\nllama_model = LlamaAPIModel(\n    model_id=\"Llama-4-Maverick-17B-128E-Instruct-FP8\",\n)\nagent = Agent(model=llama_model)\nresponse = agent(\"Tell me about Agentic AI\")\n```\n\nBuilt-in providers:\n - [Amazon Bedrock](https://strandsagents.com/latest/user-guide/concepts/model-providers/amazon-bedrock/)\n - [Anthropic](https://strandsagents.com/latest/user-guide/concepts/model-providers/anthropic/)\n - [LiteLLM](https://strandsagents.com/latest/user-guide/concepts/model-providers/litellm/)\n - [LlamaAPI](https://strandsagents.com/latest/user-guide/concepts/model-providers/llamaapi/)\n - [Ollama](https://strandsagents.com/latest/user-guide/concepts/model-providers/ollama/)\n - [OpenAI](https://strandsagents.com/latest/user-guide/concepts/model-providers/openai/)\n - [Writer](https://strandsagents.com/latest/documentation/docs/user-guide/concepts/model-providers/writer/)\n\nCustom providers can be implemented using [Custom Providers](https://strandsagents.com/latest/user-guide/concepts/model-providers/custom_model_provider/)\n\n### Example tools\n\nStrands offers an optional strands-agents-tools package with pre-built tools for quick experimentation:\n\n```python\nfrom strands import Agent\nfrom strands_tools import calculator\nagent = Agent(tools=[calculator])\nagent(\"What is the square root of 1764\")\n```\n\nIt's also available on GitHub via [strands-agents/tools](https://github.com/strands-agents/tools).\n\n## Documentation\n\nFor detailed guidance & examples, explore our documentation:\n\n- [User Guide](https://strandsagents.com/)\n- [Quick Start Guide](https://strandsagents.com/latest/user-guide/quickstart/)\n- [Agent Loop](https://strandsagents.com/latest/user-guide/concepts/agents/agent-loop/)\n- [Examples](https://strandsagents.com/latest/examples/)\n- [API Reference](https://strandsagents.com/latest/api-reference/agent/)\n- [Production & Deployment Guide](https://strandsagents.com/latest/user-guide/deploy/operating-agents-in-production/)\n\n## Contributing \u2764\ufe0f\n\nWe welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for details on:\n- Reporting bugs & features\n- Development setup\n- Contributing via Pull Requests\n- Code of Conduct\n- Reporting of security issues\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## Security\n\nSee [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A model-driven approach to building AI agents in just a few lines of code",
    "version": "1.5.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/strands-agents/sdk-python/issues",
        "Documentation": "https://strandsagents.com",
        "Homepage": "https://github.com/strands-agents/sdk-python"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3e6a67daf3b719bb6c6f1f886d158591411febdabd763c2b0a5adbf3189c8bab",
                "md5": "c8e02bc1d86e796689db4b7d9c205b28",
                "sha256": "e90842bbc49a6acb69d01be5b7e545f25fd728ee5da429413da52e790d7f675b"
            },
            "downloads": -1,
            "filename": "strands_agents-1.5.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c8e02bc1d86e796689db4b7d9c205b28",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 180745,
            "upload_time": "2025-08-19T02:13:57",
            "upload_time_iso_8601": "2025-08-19T02:13:57.215051Z",
            "url": "https://files.pythonhosted.org/packages/3e/6a/67daf3b719bb6c6f1f886d158591411febdabd763c2b0a5adbf3189c8bab/strands_agents-1.5.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e74b2adc357deb4e29cd6f34136e7133f35f6e06f51597fa29b00282c23f1f4e",
                "md5": "0ccdd50832018f69fc657121bbc9c407",
                "sha256": "0abde7ea9854cf98f65e242973ebbf26627f9d93d381ed6c0d55d23b7f2445a6"
            },
            "downloads": -1,
            "filename": "strands_agents-1.5.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0ccdd50832018f69fc657121bbc9c407",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 262074,
            "upload_time": "2025-08-19T02:13:59",
            "upload_time_iso_8601": "2025-08-19T02:13:59.179544Z",
            "url": "https://files.pythonhosted.org/packages/e7/4b/2adc357deb4e29cd6f34136e7133f35f6e06f51597fa29b00282c23f1f4e/strands_agents-1.5.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-19 02:13:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "strands-agents",
    "github_project": "sdk-python",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "strands-agents"
}
        
Elapsed time: 0.65725s