A library for pairing LLM agents with tools so they perform open ended tasks
Project description
Archytas: A Tools Interface for AI Agents
Implementation of the ReAct (Reason & Action) framework for Large Language Model (LLM) agents. Mainly targeting OpenAI's GPT-4.
Easily create tools from simple python functions or classes with the @tool decorator. A tools list can then be passed to the ReActAgent which will automagically generate a prompt for the LLM containing usage instructions for each tool, as well as manage the ReAct decision loop while the LLM performs its task.
Tools can be anything from internet searches to custom interpreters for your domain. Archytas provides a few built-in demo tools e.g. datetime, fibonacci numbers, and a simple calculator.
Demos
Short demo of using the PythonTool to download a COVID-19 dataset, and perform some basic processing/visualization/analysis/etc.
MCP Demos
# Install with MCP support (includes langchain-mcp-adapters + fastmcp)
uv pip install -e ".[mcp]"
# Vision demo with local MCP server
python demos/demo_mcp_vision.py
# External MCP server (DuckDuckGo search via npx)
python demos/demo_mcp_duckduckgo.py
# HTTP MCP server (Context7 - requires API key)
export CONTEXT7_API_KEY="your-api-key"
python demos/demo_mcp_context7.py
To use mcp tools with archytas, you will need to install the optional deps
uv pip install -e ".[mcp]"
Read the mcp quick start doc for more info
Quickstart
# make sure poetry is installed
pip install poetry
# clone and install
git clone git@github.com:jataware/archytas.git
cd archytas
poetry install
# make sure OPENAI_API_KEY var is set
# or pass it in as an argument to the agent
export OPENAI_API_KEY="sk-..."
# run demo
poetry run chat-repl
Simple Usage
Import pre-made tools from the tools module
from archytas.react import ReActAgent, FailedTaskError
from archytas.tools import PythonTool
from easyrepl import REPL
# create the agent with the tools list or a `custom_prelude` (if desired)
some_tools = [PythonTool, ..., etc.]
agent = ReActAgent(tools=some_tools, verbose=True)
# REPL to interact with agent
for query in REPL():
try:
answer = agent.react(query)
print(answer)
except FailedTaskError as e:
print(f"Error: {e}")
Documentation
See the wiki docs for details.
Project details
Release history Release notifications | RSS feed
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 archytas-1.6.6.tar.gz.
File metadata
- Download URL: archytas-1.6.6.tar.gz
- Upload date:
- Size: 69.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bbc678ba209fc00b99203603c5514547c761c011479e5ab8140b5301a631cb1
|
|
| MD5 |
12c41cf4c81e4c639e143d96de4948e5
|
|
| BLAKE2b-256 |
8708bc52f5296b6ede5d6566fed4216076738d53bc61dd589cf2e4c8b0355f82
|
Provenance
The following attestation bundles were made for archytas-1.6.6.tar.gz:
Publisher:
publish.yml on jataware/archytas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
archytas-1.6.6.tar.gz -
Subject digest:
0bbc678ba209fc00b99203603c5514547c761c011479e5ab8140b5301a631cb1 - Sigstore transparency entry: 796681262
- Sigstore integration time:
-
Permalink:
jataware/archytas@23e4904ceee3212ef27fe061a669cb5620d718c6 -
Branch / Tag:
refs/tags/v1.6.6 - Owner: https://github.com/jataware
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@23e4904ceee3212ef27fe061a669cb5620d718c6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file archytas-1.6.6-py3-none-any.whl.
File metadata
- Download URL: archytas-1.6.6-py3-none-any.whl
- Upload date:
- Size: 83.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd5ffc6e595c8629350259383475a8c8a6c46134fb40306f60b7a132557fea90
|
|
| MD5 |
83572702349ef9741f711395e9cd29e8
|
|
| BLAKE2b-256 |
6f9eac21502daa1ad51abbba7781102e79a368845350e13e7c9d9a6ec6dabb3c
|
Provenance
The following attestation bundles were made for archytas-1.6.6-py3-none-any.whl:
Publisher:
publish.yml on jataware/archytas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
archytas-1.6.6-py3-none-any.whl -
Subject digest:
cd5ffc6e595c8629350259383475a8c8a6c46134fb40306f60b7a132557fea90 - Sigstore transparency entry: 796681278
- Sigstore integration time:
-
Permalink:
jataware/archytas@23e4904ceee3212ef27fe061a669cb5620d718c6 -
Branch / Tag:
refs/tags/v1.6.6 - Owner: https://github.com/jataware
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@23e4904ceee3212ef27fe061a669cb5620d718c6 -
Trigger Event:
push
-
Statement type: