Skip to main content

Create an agent that can handle a large number of tools with persistence support.

Project description

AgentAmi

AgentAmi is a flexible agentic framework built using LangGraph, designed to scale with large numbers of tools and intelligently select the most relevant ones for a given user query.

It supports:

  • Dynamic tool selection via inbuilt RAG with an option to easily integrate your own tool_selector.
  • State checkpointing with pluggable backends
  • Pruner to limit memory and improve performance

Quick start

pip install agentami
from agentami import AgentAmi

Usage and features

Refer the main.py file for a complete sample usage.

from langchain.chat_models import ChatOpenAI
from langgraph.checkpoint.memory import InMemorySaver
from agentami.agents.ami import AgentAmi

# Replace ... (ellipsis) with the commented instructions

tools = [...]  # List of LangChain-compatible tools
agent = AgentAmi(
    model=ChatOpenAI(model="gpt-4o"),
    tools=tools,  # List of LangChain-compatible tools
    checkpointer=InMemorySaver(),  # Optional. No persistence if omitted.

    # Optional parameters:
    tool_selector=...,  # Custom function to select relevant tools. Defaults to internal tool_selector given.
    top_k=...,  # Number of top tools to use. Defaults to 3.
    context_size=...,  # Number of past user prompts to retain. Defaults to 7.
    disable_pruner=...,  # If True, disables pruning. May increase token usage. Defaults to False
    prompt_template=...  # Custom prompt template. Defaults to a generic bot template.
)
agent_ami = agent.graph # Your regular langgraph's graph.

How to integrate your own tool selector?

Just make a function that accepts (query: str, top_k: int) and parameters and returns List[str] #List of tool names.

from typing import List


# function template:
def my_own_tool_selector(query: str, top_k: int) -> List[str]:
    # Your logic to select tools based on the query
    return ["tool1", "tool2", "tool3"]  # Return top_k selected tool names

Things you should be aware about:

  • Running for the first time will take time as it installs the dependencies (models used by internal tool_selector).
  • Your first agent_ami.invoke() or agent_agent_ami.astream() may take time if you have hundreds of tools, because it initialises a vector store and embeds the tool descriptions at runtime for each AgentAmi() object
  • Your eventual prompts would be fine.

AgentAmi.png

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

agentami-0.1.7.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentami-0.1.7-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file agentami-0.1.7.tar.gz.

File metadata

  • Download URL: agentami-0.1.7.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for agentami-0.1.7.tar.gz
Algorithm Hash digest
SHA256 180868e6cadb8b0d39c5ea4ccee1b684e0d65ddc1abeac5b39c5a7901c09a890
MD5 5322e870180685920dad17e345eaffe8
BLAKE2b-256 46eb5a60bbc635d6849a81ed3941fa21743ad90bc82a2a0ea2e75efe0bfa1bd9

See more details on using hashes here.

File details

Details for the file agentami-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: agentami-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for agentami-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 abd978c59edc8520e4d106afad59dbda73e46b411fbcc553b225806fbd8a4de3
MD5 b6e3610568e7efa9197e1bf6594e0cf6
BLAKE2b-256 5c8bf9db462b5a4f65a8e205bed9547bafaa8ae7cee53f8e82f33d01b13a912b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page