A lightweight agent framework for Amazon Bedrock
Project description
MinimalAgent
A lightweight agent framework for building agentic applications with Amazon Bedrock.
Installation
pip install minimalagent
Quick Start
from minimalagent import Agent, tool
@tool
def get_weather(location: str):
"""Get weather for a location.
Args:
location: City name to get weather for
Returns:
Weather data dictionary
"""
# Your implementation here
return {"temperature": 22, "condition": "sunny"}
# Create agent
agent = Agent(tools=[get_weather])
# Run a query
response, reasoning = agent.run("What's the weather in San Francisco?")
print(response)
Key Features
- Simple API: Intuitive design with minimal boilerplate
- Tool-first approach: Easy tool creation with docstring parsing
- Built-in session memory: Persistent conversations via DynamoDB
- Step-by-step reasoning: Visibility into the agent's thought process
MinimalAgent is essentially a wrapper over the Bedrock Covnerse API (with optional session management using DDB), making it a simple framework for quickly bootstrapping AWS-native agents. It currently lacks integration with observability tools like Langfuse, so for large-scale production deployments I encourage you to use another framework.
Core Concepts
Tools
Tools give your agent capabilities. Simply decorate functions with @tool:
@tool
def search_database(query: str, limit: int = 10) -> list:
"""Search the database for records matching the query."""
# Your implementation here
return [{"id": 1, "name": query}]
Session Management
Enable persistent conversations across multiple interactions:
# Create an agent with session support
agent = Agent(use_session_memory=True)
# Use a consistent session ID for the same conversation
response1 = agent.run("Find information about electric cars", session_id="user123")
response2 = agent.run("What about hybrid models?", session_id="user123") # Remembers context
Reasoning Display
Control the visibility of the agent's thinking process:
# Colorized reasoning in the terminal is enabled by default
agent = Agent(tools=[get_weather]) # show_reasoning=True is the default
# Explicitly enable reasoning display
agent_with_display = Agent(
tools=[get_weather],
show_reasoning=True
)
# Hide reasoning output for production use
agent_without_display = Agent(
tools=[get_weather],
show_reasoning=False,
log_level="WARNING" # Only log warnings and errors
)
Reasoning Process
Access the agent's step-by-step thinking programmatically:
response, reasoning = agent.run("Calculate 25 * 4 + 10")
# Access reasoning data
print(f"Query: {reasoning.query}")
print(f"Steps: {reasoning.total_steps}")
for step in reasoning.steps:
print(f"Step {step.step_number} thinking: {step.thinking}")
Documentation
For more detailed documentation, visit https://niklas-palm.github.io/minimalagent/
AWS Setup
MinimalAgent requires AWS credentials for accessing Amazon Bedrock and DynamoDB.
Option 1: AWS CLI Configuration (Recommended)
- Install and configure the AWS CLI:
aws configure
Option 2: Environment Variables
export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
export AWS_REGION=us-west-2
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file minimalagent-0.2.4.tar.gz.
File metadata
- Download URL: minimalagent-0.2.4.tar.gz
- Upload date:
- Size: 36.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69de35a29328947288dcd274eb947f95831e6df2fe3ee15d9a6eb408e987592e
|
|
| MD5 |
bcb1fc3cf6e0fd3f39329d859d3b4034
|
|
| BLAKE2b-256 |
5e0d4f43587e91a596601a174b854fb339e0ad28dd39beb2f8709ccbc3412ce2
|
File details
Details for the file minimalagent-0.2.4-py3-none-any.whl.
File metadata
- Download URL: minimalagent-0.2.4-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9c4b2376e981385cd5b4eaf3d359196c4c44c6fad34b7172f900f4c74c9690a
|
|
| MD5 |
85e9db724a5f307081c93b75e6fca6d6
|
|
| BLAKE2b-256 |
3168517ea767a5f3c7c28edd964a4c5897ebc70cc2aa0c6d02f7edf8b5c124e5
|