Name | archytas JSON |
Version |
1.5.0
JSON |
| download |
home_page | None |
Summary | A library for pairing LLM agents with tools so they perform open ended tasks |
upload_time | 2025-07-08 16:18:53 |
maintainer | None |
docs_url | None |
author | David Andrew Samson |
requires_python | >=3.10 |
license | GPL-3.0-or-later |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Archytas: A Tools Interface for AI Agents
<img src="assets/logo.png" width="150" height="150" align="left" style="padding-right:0.5em;"/>
Implementation of the [ReAct (Reason & Action)](https://arxiv.org/abs/2210.03629) 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.
<div style="clear:left;"></div>
# Demo
Short demo of using the `PythonTool` to download a COVID-19 dataset, and perform some basic processing/visualization/analysis/etc.
<div align="center">
<a href="https://youtu.be/52e4xN8SIi8">
<img src="assets/covid_repl_demo.gif" alt="Watch the video">
</a>
<br/>
click to watch original video on youtube
</div>
# Quickstart
```bash
# 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
```python
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](https://github.com/jataware/archytas/wiki) for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "archytas",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "David Andrew Samson",
"author_email": "david.andrew.engineer@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/da/91/93637cd32bc2b8c03ce29db7e4ef3acd9c2ceafca102a4887d75532f43e8/archytas-1.5.0.tar.gz",
"platform": null,
"description": "# Archytas: A Tools Interface for AI Agents\n<img src=\"assets/logo.png\" width=\"150\" height=\"150\" align=\"left\" style=\"padding-right:0.5em;\"/>\n\nImplementation of the [ReAct (Reason & Action)](https://arxiv.org/abs/2210.03629) framework for Large Language Model (LLM) agents. Mainly targeting OpenAI's GPT-4.\n\nEasily 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.\n\nTools 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.\n\n<div style=\"clear:left;\"></div>\n\n# Demo\nShort demo of using the `PythonTool` to download a COVID-19 dataset, and perform some basic processing/visualization/analysis/etc.\n<div align=\"center\">\n <a href=\"https://youtu.be/52e4xN8SIi8\">\n <img src=\"assets/covid_repl_demo.gif\" alt=\"Watch the video\">\n </a>\n <br/>\n click to watch original video on youtube\n</div>\n\n# Quickstart\n```bash\n# make sure poetry is installed\npip install poetry\n\n# clone and install\ngit clone git@github.com:jataware/archytas.git\ncd archytas\npoetry install\n\n# make sure OPENAI_API_KEY var is set\n# or pass it in as an argument to the agent\nexport OPENAI_API_KEY=\"sk-...\"\n\n# run demo\npoetry run chat-repl\n```\n\n# Simple Usage\nImport pre-made tools from the tools module\n```python\nfrom archytas.react import ReActAgent, FailedTaskError\nfrom archytas.tools import PythonTool\n\nfrom easyrepl import REPL\n\n# create the agent with the tools list or a `custom_prelude` (if desired)\nsome_tools = [PythonTool, ..., etc.]\nagent = ReActAgent(tools=some_tools, verbose=True)\n\n# REPL to interact with agent\nfor query in REPL():\n try:\n answer = agent.react(query)\n print(answer)\n except FailedTaskError as e:\n print(f\"Error: {e}\")\n```\n\n# Documentation\nSee the [wiki docs](https://github.com/jataware/archytas/wiki) for details.\n\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "A library for pairing LLM agents with tools so they perform open ended tasks",
"version": "1.5.0",
"project_urls": {
"Bug Tracker": "https://github.com/jataware/archytas/issues",
"Homepage": "https://github.com/jataware/archytas"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "79bc2904cdca0272d081fe79bf9c72fdbfe206b1f458c16f8105d06a6b19cdd6",
"md5": "313f5bde8806976c69d75a360f51862c",
"sha256": "7248985af8b96c22647e0dbd89cb21bdb49efde93c10650a52f8c44f82bdb0dc"
},
"downloads": -1,
"filename": "archytas-1.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "313f5bde8806976c69d75a360f51862c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 72715,
"upload_time": "2025-07-08T16:18:52",
"upload_time_iso_8601": "2025-07-08T16:18:52.655502Z",
"url": "https://files.pythonhosted.org/packages/79/bc/2904cdca0272d081fe79bf9c72fdbfe206b1f458c16f8105d06a6b19cdd6/archytas-1.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "da9193637cd32bc2b8c03ce29db7e4ef3acd9c2ceafca102a4887d75532f43e8",
"md5": "da70dd2ab837b4ab1bafe0e78377d9ef",
"sha256": "64241b2923691b57cd5dc0d00921e766386cfa09b129d2261e9afd04747cd7c2"
},
"downloads": -1,
"filename": "archytas-1.5.0.tar.gz",
"has_sig": false,
"md5_digest": "da70dd2ab837b4ab1bafe0e78377d9ef",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 59985,
"upload_time": "2025-07-08T16:18:53",
"upload_time_iso_8601": "2025-07-08T16:18:53.846607Z",
"url": "https://files.pythonhosted.org/packages/da/91/93637cd32bc2b8c03ce29db7e4ef3acd9c2ceafca102a4887d75532f43e8/archytas-1.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-08 16:18:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jataware",
"github_project": "archytas",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "archytas"
}