Appearance
Prebuilt Tools
Python-only package
The prebuilt tools package (elsai-agents-tools) is a Python-only companion to the Elsai Agents SDK. It provides ready-made tools for experimenting with agents during development — file I/O, shell access, web search, AWS integrations, multi-agent orchestration, and more.
Installation
Requires Python 3.10+ and elsai-agents>=0.2.0.
bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents-tools==0.1.0Some tools need additional dependencies. Each category below includes the install command for its optional extras when required. You can combine extras in one install, for example "elsai-agents-tools[mem0-memory,diagram]==0.1.0".
Register tools by passing them to Agent(tools=[...]). Import each tool from its module (for example from elsai_tools.shell import shell) or, for class-based tools, pass the instance method (for example interpreter.code_interpreter).
For per-tool parameters and import paths, see the Prebuilt Tools API (organized by category).
Available tools
RAG and memory
| Tool | Description | Extra |
|---|---|---|
retrieve | Query Amazon Bedrock Knowledge Bases with semantic search and return ranked passages for agent context | base |
memory | Full CRUD over Knowledge Base documents — store, list, get, delete, and retrieve entries the agent can reference later | base |
agent_core_memory | Persistent short- and long-term memory through Bedrock AgentCore — record facts, retrieve by query, and manage session history | base (AWS) |
mem0_memory | Long-term agent memory and user personalization backed by Mem0, with vector search over past interactions | mem0-memory |
elasticsearch_memory | Store and recall agent memory in Elasticsearch with vector similarity search for fast semantic lookup | elasticsearch-memory |
mongodb_memory | Store and retrieve agent memory using MongoDB Atlas Vector Search for scalable, document-oriented recall | mongodb-memory |
Optional extras:
bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[mem0-memory]==0.1.0"
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[elasticsearch-memory]==0.1.0"
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[mongodb-memory]==0.1.0"File operations
| Tool | Description |
|---|---|
editor | View, search, and edit files line-by-line — supports insert, replace, pattern matching, and undo for safe in-place changes |
file_read | Read local files and parse common formats (JSON, CSV, PDF, code, and more) into text the agent can reason over |
file_write | Create new files or overwrite existing ones with agent-generated content; prompts for consent unless bypassed |
python
from elsai import Agent
from elsai_tools.editor import editor
from elsai_tools.file_read import file_read
from elsai_tools.file_write import file_write
agent = Agent(tools=[editor, file_read, file_write])
# View a file with syntax highlighting
agent.tool.editor(command="view", path="./src/app.py")
# Create or overwrite a file
agent.tool.file_write(path="./output/report.txt", content="Summary\n")
# Read a file (supports many formats including PDF, CSV, and code)
agent.tool.file_read(path="./data/config.json")Shell and system
| Tool | Description | Extra |
|---|---|---|
environment | Read, set, and unset environment variables so the agent can inspect or configure its runtime | base |
shell | Run shell commands in a working directory with stdout/stderr capture — useful for builds, git, and system tasks | base |
cron | Add, list, and remove cron jobs to schedule recurring scripts or maintenance tasks on the host | base |
use_computer | Desktop automation — control mouse, keyboard, and screen OCR to interact with GUI applications | use-computer |
Optional extra for use_computer:
bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[use-computer]==0.1.0"python
from elsai import Agent
from elsai_tools.environment import environment
from elsai_tools.shell import shell
from elsai_tools.cron import cron
agent = Agent(tools=[environment, shell, cron])
# Run a shell command
agent.tool.shell(command="ls -la", work_dir="/app")
# List environment variables
agent.tool.environment(action="list")
# Schedule a recurring job
agent.tool.cron(
action="add",
schedule="0 8 * * *",
command="python /app/daily_report.py >> /tmp/report.log 2>&1",
description="Daily report at 8 AM",
)Code interpretation
| Tool | Description | Extra | Notes |
|---|---|---|---|
python_repl | Execute Python in a persistent REPL session where variables and imports carry over between calls | base | Not supported on Windows (fcntl unavailable) |
code_interpreter | Run Python or other languages in an isolated Bedrock AgentCore sandbox with no local machine access | agent-core-code-interpreter | Bedrock AgentCore Code Sandbox |
Optional extra for code_interpreter:
bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[agent-core-code-interpreter]==0.1.0"python
from elsai import Agent
from elsai_tools.python_repl import python_repl
from elsai_tools.code_interpreter import AgentCoreCodeInterpreter
# Local persistent Python REPL
repl_agent = Agent(tools=[python_repl])
repl_agent.tool.python_repl(code="x = 10")
repl_agent.tool.python_repl(code="print(x * 2)")
# Sandboxed execution on Bedrock AgentCore (requires [agent-core-code-interpreter])
interpreter = AgentCoreCodeInterpreter(region="us-west-2")
sandbox_agent = Agent(tools=[interpreter.code_interpreter])
sandbox_agent.tool.code_interpreter(
code_interpreter_input={
"action": {
"type": "executeCode",
"code": "print('Hello, World!')",
"language": "python",
}
}
)Web and network
| Tool | Description | Extra |
|---|---|---|
http_request | Make authenticated HTTP requests and fetch web pages — supports Bearer, JWT, Basic, Digest, and AWS SigV4 auth | base |
slack | Full Slack integration with Socket Mode — listen for events, call any Slack API method, and handle threads | base |
slack_send_message | Post a message to a Slack channel or thread in one step, without composing raw API payloads | base |
browser | Automate a real browser — navigate URLs, click elements, fill forms, and extract page content | local-chromium-browser or agent-core-browser |
rss | Subscribe to RSS/Atom feeds and surface new entries so the agent can monitor news and changelogs | rss |
bright_data | Scrape websites and run search queries through Bright Data's proxy and SERP APIs | base |
tavily_search | AI-optimized web search with filtering, ranking, domain controls, and news or general topic modes | base |
tavily_extract | Pull clean, LLM-ready text from one or more URLs with optional image and metadata extraction | base |
tavily_crawl | Crawl a website starting from a base URL, following links within depth and page limits | base |
tavily_map | Discover and map the link structure of a site from a starting URL before deeper crawling | base |
exa_search | Semantic web search that finds pages by meaning and relevance, not just keyword matching | base |
exa_get_contents | Retrieve full page text and metadata for URLs — typically used after an Exa search | base |
mcp_client | Connect to MCP servers at runtime and invoke their tools dynamically from inside the agent loop | base |
Optional extras:
bash
# Local Chromium browser
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[local-chromium-browser]==0.1.0"
# Bedrock AgentCore browser
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[agent-core-browser]==0.1.0"
# RSS feeds
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[rss]==0.1.0"MCP client vs SDK MCPClient
mcp_client (this package) is an agent tool that lets the model connect to MCP servers dynamically. The SDK's MCPClient is used by you at agent setup time to register MCP tools statically. See MCP Tools for the SDK integration.
Multimodal
| Tool | Description | Extra |
|---|---|---|
generate_image_stability | Generate images from text prompts using Stability AI models with configurable size and style | base |
image_reader | Load local image files and return descriptions or extracted text for vision-style agent reasoning | base |
generate_image | Generate images from prompts using Amazon Bedrock image models (e.g. Titan, Stable Diffusion) | base |
nova_reels | Create short videos from text prompts with Amazon Nova Reels on Bedrock | base |
speak | Convert text to speech using macOS say locally or Amazon Polly in the cloud | base |
diagram | Render cloud architecture and UML diagrams from agent descriptions (AWS, Azure, GCP, and generic) | diagram |
chat_video | Ask questions about uploaded video content using TwelveLabs multimodal understanding | twelvelabs |
search_video | Semantic search across indexed video libraries to find clips matching a natural-language query | twelvelabs |
Optional extras:
bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[diagram]==0.1.0"
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[twelvelabs]==0.1.0"python
from elsai import Agent
from elsai_tools.generate_image import generate_image
from elsai_tools.image_reader import image_reader
from elsai_tools.speak import speak
agent = Agent(tools=[generate_image, image_reader, speak])
# Generate an image with Amazon Bedrock
agent.tool.generate_image(prompt="A steampunk robot playing chess")
# Analyze a local image file
agent.tool.image_reader(image_path="./screenshots/diagram.png")
# Convert text to speech (macOS say or Amazon Polly)
agent.tool.speak(text="Task completed successfully.")AWS services
| Tool | Description |
|---|---|
use_aws | Call any AWS service operation dynamically through boto3 — the agent supplies the service, method, and parameters |
Utilities
| Tool | Description |
|---|---|
calculator | Evaluate math expressions, solve equations, and perform calculus operations with symbolic support |
current_time | Return the current date and time with optional timezone — useful for scheduling and time-sensitive tasks |
load_tool | Dynamically import and register tools from Python files at runtime without restarting the agent |
sleep | Pause the agent for a specified duration; respects interrupts so long waits can be cancelled |
stop | Force-stop the agent event loop immediately, ending the current run |
Agents and workflows
| Tool | Description | Extra |
|---|---|---|
graph | Build and run multi-agent graphs with defined nodes, edges, and handoff topology | base |
agent_graph | Create, update, and execute persistent agent graphs with shared state across nodes | base |
journal | Maintain structured task lists and execution logs that agents can read and append to over time | base |
swarm | Coordinate a team of specialist agents that hand off to each other until the task is complete | base |
handoff_to_user | Pause the agent loop and wait for human input, or fully hand control back to the user | base |
use_agent | Spawn a nested agent with its own tools and system prompt inside the current event loop | base |
think | Run parallel reasoning branches and merge results — useful for exploring multiple approaches | base |
use_llm | Call a nested LLM with a custom prompt, separate from the main agent conversation | base |
workflow | Define and execute sequenced task pipelines with dependencies and priority ordering | base |
batch | Invoke multiple tools in a single model turn, reducing round-trips for compound operations | base |
a2a_discover_agent | Discover remote agents that expose the Agent-to-Agent (A2A) protocol on a given endpoint | a2a-client |
a2a_list_discovered_agents | List agents previously discovered via A2A, with their capabilities and endpoints | a2a-client |
a2a_send_message | Send a task or message to a remote A2A agent and receive its response | a2a-client |
Optional extra for A2A tools:
bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[a2a-client]==0.1.0"python
from elsai import Agent
from elsai_tools.graph import graph
from elsai_tools.swarm import swarm
from elsai_tools.workflow import workflow
from elsai_tools.handoff_to_user import handoff_to_user
agent = Agent(tools=[graph, swarm, workflow, handoff_to_user])
# Create and run a multi-agent graph
agent.tool.graph(
action="create",
graph_id="analysis_pipeline",
topology={
"nodes": [
{
"id": "researcher",
"role": "researcher",
"system_prompt": "You research topics thoroughly.",
},
{
"id": "writer",
"role": "writer",
"system_prompt": "You write clear summaries.",
},
],
"edges": [{"from": "researcher", "to": "writer"}],
},
)
agent.tool.graph(action="execute", graph_id="analysis_pipeline", task="Summarize AI trends in 2026")
# Coordinate a custom agent team
agent.tool.swarm(
task="Plan a product launch",
agents=[
{"name": "strategist", "system_prompt": "You define product strategy."},
{"name": "marketer", "system_prompt": "You craft go-to-market plans."},
],
)
# Run parallel tasks in a workflow
agent.tool.workflow(
action="create",
workflow_id="research_workflow",
tasks=[
{"id": "gather", "prompt": "Collect key facts about the topic.", "priority": 1},
{"id": "summarize", "prompt": "Write a one-page summary.", "depends_on": ["gather"], "priority": 2},
],
)
# Pause for human input before continuing
agent.tool.handoff_to_user(
message="Review the draft above. Type 'approve' to continue.",
breakout_of_loop=False,
)Tool consent and bypassing
By default, tools that perform sensitive operations — file writes, shell commands, code execution, AWS mutations, and similar — prompt for user confirmation before running.
To bypass confirmation prompts, set the BYPASS_TOOL_CONSENT environment variable:
bash
export BYPASS_TOOL_CONSENT=trueOr in Python:
python
import os
os.environ["BYPASS_TOOL_CONSENT"] = "true"Use this in automated workflows, development, and CI/CD where interactive prompts are not possible. Use with caution in production — it removes an important safety check.
Tools that respect BYPASS_TOOL_CONSENT include editor, file_write, environment, shell, cron, http_request, memory, mem0_memory, python_repl, use_aws, and use_computer.
Related
- Prebuilt Tools API — full import-path catalog and class-based providers
- Tools Overview — how tools work in the SDK
- Function Tools — build your own
@toolfunctions - MCP Tools — connect MCP servers at agent setup
- Building Tools — guide to authoring custom tools
- Installation — install the Elsai Agents SDK