Observed since 20 Oct, 21:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agentami
Create an agent that can handle a large number of tools with persistence support.
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 helps with decreasing token size significantly.
It supports:
Refer the main.py file for a complete sample usage.
pip install agentami
from agentami import AgentAmi
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.
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 & will 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.
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() objectJust 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
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
langchainEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | langchain>=0.3.24 | runtime |
langchain-coreEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | langchain-core>=0.3.56 | runtime |
langchain-openaiEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | langchain-openai>=0.3.14 | runtime |
langgraphEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | langgraph>=0.3.34 | runtime |
langgraph-checkpointEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | langgraph-checkpoint>=2.0.25 | runtime |
langgraph-sdkEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | langgraph-sdk>=0.1.63 | runtime |
openaiEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | openai>=1.76.0 | runtime |
tiktokenEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | tiktoken>=0.9.0 | runtime |
faiss-cpuEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | faiss-cpu>=1.11.0 | runtime |
sentence-transformersEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | sentence-transformers>=4.1.0 | runtime |
scikit-learnEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | scikit-learn>=1.6.1 | runtime |
pydanticEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | pydantic>=2.11.3 | runtime |
python-dotenvEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | python-dotenv>=1.1.0 | runtime |
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | requests>=2.32.3 | runtime |
orjsonEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | orjson>=3.10.16 | runtime |
richEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | rich>=14.0.0 | runtime |
bdist_wheel · 8.02 KB · Python py3
sdist · 8.79 KB · Python source
Observed since 20 Oct, 21:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:09f8cc6d038fa82d6cfd93d9f9897a79c8de439073d07cbb43eacc87dd5037a4