toolshop


Nametoolshop JSON
Version 0.1.4 PyPI version JSON
download
home_pageNone
SummaryA Tool Framework for AI Agents
upload_time2024-07-16 18:30:28
maintainerNone
docs_urlNone
authorAndrew Hannigan
requires_python<3.13,>=3.9
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Toolshop
A Tool Framework for AI Agents

# Description
Toolshop is a general framework for developing tools used by LLM Agents. The
library ships with a standard set of tools that can be used by agents that
support tool-calling. Additionally, build your own custom tools by extending the
`Tool` class. By developing your tools with Toolshop, your tools inherit several
helpful features.
* __Configuration__: Toolshop tools are classes, not functions. This enables
  users to configure their tools for a particular session before passing them to
  the agent.
* __Confirmations__: Toolshop makes it easy to add required user confirmations
  to tool calls. Examples might include an agent editing sensitive files or
  provisioning cloud resources.
* __Constraints__: Tools can share state. This allows users to enforce
  constraints that require more context than the tool call arguments alone.
  Examples might include prevention of multiple parallel edits to the same file,
  requiring file reads before file edits, and cost-based limits on tool usage.

# Quick Start
Toolshop ships with a text-based assistant equipped with all of Toolshop's tools
and designed for developer productivity.

To install and chat, run:
```
pip install toolshop
ts chat
```

# Python Usage
```
from toolshop import all_tools
from marvin.beta import Application

app = Application(
    tools=all_tools()
)

app.say("Write mergesort.py")
app.say("Test mergesort.py")
```

# Motivation
Toolshop seeks to provide a tool development platform for AI engineers. The
motivation for this project is the belief that tool development is the best
place for AI developers to invest their time. Conversely, time spent augmenting
the reasoning and planning of existing assistant services is a risky area to
invest as a 3rd party developer.  This is simply because the reasoning and
planning capabilities of agentic AI, offered "out of the box" by companies such
as OpenAI and Anthropic, will continue to improve over time. Focusing
development time on enhancing these capabilities is potentially risky, as 
improvements to the base assistant services themselves will quickly render this work
obsolete.

The shift of companies like
[OpenAI](https://platform.openai.com/docs/guides/text-generation/completions-api)
and [Anthropic](https://docs.anthropic.com/claude/reference/complete_post) away
from simple text-completion models towards tool-enabled chat assistants
abstracts more from the user, thereby increasing the surface area for AI R&D. We
should expect these companies to continually improve their flagship assistant
services, with enhancements in reasoning and planning being obvious avenues for
development.

In contrast, tool development seems like a safe area for investment, and
Toolshop provides a solid foundation for this purpose. An agent will always
require a means to affect its environment or access information it was not
trained on. The tool-calling paradigm has emerged as a simple and effective
pattern to support these needs. Smarter models are able to use tools more
correctly and efficiently, so investments in solid tools will pay dividends as
models improve. Additionally, by enforcing guardrails in the tools rather than
in the process, the planning and reasoning process native to the underlying
agent remains unhindered.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "toolshop",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Andrew Hannigan",
    "author_email": "Andrew.S.Hannigan@Gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/18/81/a7a1744ec71603b266252341ebd437458521af8d8adc55df1e7aaebcf20e/toolshop-0.1.4.tar.gz",
    "platform": null,
    "description": "# Toolshop\nA Tool Framework for AI Agents\n\n# Description\nToolshop is a general framework for developing tools used by LLM Agents. The\nlibrary ships with a standard set of tools that can be used by agents that\nsupport tool-calling. Additionally, build your own custom tools by extending the\n`Tool` class. By developing your tools with Toolshop, your tools inherit several\nhelpful features.\n* __Configuration__: Toolshop tools are classes, not functions. This enables\n  users to configure their tools for a particular session before passing them to\n  the agent.\n* __Confirmations__: Toolshop makes it easy to add required user confirmations\n  to tool calls. Examples might include an agent editing sensitive files or\n  provisioning cloud resources.\n* __Constraints__: Tools can share state. This allows users to enforce\n  constraints that require more context than the tool call arguments alone.\n  Examples might include prevention of multiple parallel edits to the same file,\n  requiring file reads before file edits, and cost-based limits on tool usage.\n\n# Quick Start\nToolshop ships with a text-based assistant equipped with all of Toolshop's tools\nand designed for developer productivity.\n\nTo install and chat, run:\n```\npip install toolshop\nts chat\n```\n\n# Python Usage\n```\nfrom toolshop import all_tools\nfrom marvin.beta import Application\n\napp = Application(\n    tools=all_tools()\n)\n\napp.say(\"Write mergesort.py\")\napp.say(\"Test mergesort.py\")\n```\n\n# Motivation\nToolshop seeks to provide a tool development platform for AI engineers. The\nmotivation for this project is the belief that tool development is the best\nplace for AI developers to invest their time. Conversely, time spent augmenting\nthe reasoning and planning of existing assistant services is a risky area to\ninvest as a 3rd party developer.  This is simply because the reasoning and\nplanning capabilities of agentic AI, offered \"out of the box\" by companies such\nas OpenAI and Anthropic, will continue to improve over time. Focusing\ndevelopment time on enhancing these capabilities is potentially risky, as \nimprovements to the base assistant services themselves will quickly render this work\nobsolete.\n\nThe shift of companies like\n[OpenAI](https://platform.openai.com/docs/guides/text-generation/completions-api)\nand [Anthropic](https://docs.anthropic.com/claude/reference/complete_post) away\nfrom simple text-completion models towards tool-enabled chat assistants\nabstracts more from the user, thereby increasing the surface area for AI R&D. We\nshould expect these companies to continually improve their flagship assistant\nservices, with enhancements in reasoning and planning being obvious avenues for\ndevelopment.\n\nIn contrast, tool development seems like a safe area for investment, and\nToolshop provides a solid foundation for this purpose. An agent will always\nrequire a means to affect its environment or access information it was not\ntrained on. The tool-calling paradigm has emerged as a simple and effective\npattern to support these needs. Smarter models are able to use tools more\ncorrectly and efficiently, so investments in solid tools will pay dividends as\nmodels improve. Additionally, by enforcing guardrails in the tools rather than\nin the process, the planning and reasoning process native to the underlying\nagent remains unhindered.",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Tool Framework for AI Agents",
    "version": "0.1.4",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "99bda426881bf3713b128786d20446f7aceaf51c7acdc32203d403fcd61e1c5b",
                "md5": "6bfaba2464830d0631dc9fc0c6506488",
                "sha256": "4d0d5f28f5fc95526b906b554e62b4f0e605a0d60ff94714918eefbbb2fb4a67"
            },
            "downloads": -1,
            "filename": "toolshop-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6bfaba2464830d0631dc9fc0c6506488",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.9",
            "size": 16409,
            "upload_time": "2024-07-16T18:30:26",
            "upload_time_iso_8601": "2024-07-16T18:30:26.829607Z",
            "url": "https://files.pythonhosted.org/packages/99/bd/a426881bf3713b128786d20446f7aceaf51c7acdc32203d403fcd61e1c5b/toolshop-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1881a7a1744ec71603b266252341ebd437458521af8d8adc55df1e7aaebcf20e",
                "md5": "1bfdda0cf3ed0a6b8afac75f7961c6dc",
                "sha256": "ffe8ccbd38399545f33e7cb70933289ee82a09f8adb36ce1f39aa34a2a07a596"
            },
            "downloads": -1,
            "filename": "toolshop-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "1bfdda0cf3ed0a6b8afac75f7961c6dc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.9",
            "size": 14493,
            "upload_time": "2024-07-16T18:30:28",
            "upload_time_iso_8601": "2024-07-16T18:30:28.267593Z",
            "url": "https://files.pythonhosted.org/packages/18/81/a7a1744ec71603b266252341ebd437458521af8d8adc55df1e7aaebcf20e/toolshop-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-16 18:30:28",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "toolshop"
}
        
Elapsed time: 0.26890s