A Python package for No More Agents project.
Project description
No More Agents - nmagents
Agentic AI without any Agent Frameworks
There is a deluge of Agentic Frameworks. Actually nothing is needed but just a few python wrappers, and thats what this is. Not another framework
Something you can pip install or copy paste and use! And it has elementary token cost and budgetting which none of the Frameworks have !!
What is Agentic AI ?
In the simplest sense, it means using AI in your code. For example I give a file and I use an LLM Model to do a Code Review. Instead of me doing this manually in ChatGPT, if I write a program for this then that is Agentic AI.
Here Agent is a automated program that uses AI for a task.
Why is Model Context Protocol (MCP) needed for Agentic AI ?
MCP is a JSON-RPC based wrapper for API calls. Why ?
Because Generative AI/LLM models can generate the API calls in JSON with parameters,which an Agentic AI program can parse and invoke the actual API.
Example:
Say that I write a program to automate flight ticket booking - an Agentic AI application
User input will be - "Here is a picture of my passport (and credit card). Book me a ticket, economy class to Santiago"
My program will need to translate the above command to an API call with the ticket booking system with the help of LLM.
I need to tell the LLM to formulate the API call as per how the API expects the parameter. The Ticket Booking System MCP server( assume it exists) will give the methods
and JSON structure for booking.
I give this format to the LLM and ask it to parse the Passport and user command and create a JSON request for ticket booking
The LLM/AI will repsont with something similar to below and my program will POST this to the Ticket Booking System MCP server for intiating Ticket booking
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "book_flight_ticket",
"arguments": {
"destination": "Santiago (SCL)",
"travel_class": "economy",
"passenger_details": {
"full_name": "John Doe",
"passport_number": "A12345678",
"nationality": "USA",
"expiry_date": "2030-05-12"
},
"travel_date": "2023-11-27"
}
},
"id": "call_890s7d6f"
}
You will understand while coding MCP the actual deatails
Which Framework to use for Agentic AI ?
You really do not need a framework like LangChain, LangGraph,CrewAI or AutoGen/Microsoft Agent Framework or all the other hunderds of frameworks for using AI logic in your programming.
Calling LLMs via an API is already exposed by OpenAI APIs. This abstraction is more than enough. All that is needed is just some Software Construction Patterns like Command Pattern and Chain of Responsibility
This is a simple Command class wrapper for performing LLM-based automation without using Any frameworks - complex or simple
Just plain MCP and API calls combined with good old-fashioned programming is enough for the most complicated tasks
How to Use
pip install nmagents
from nmagents.command import CallLLM, ToolCall,
Intailize OpenAI based LLMs (Inlcuding vLLM and ollama models)
from openai import OpenAI
# Initialize OpenAI client with OpenAI's official base URL
MODEL_NAME = "gpt-4.1-nano"
#MODEL_NAME = "gpt-5-nano"
openai_client = OpenAI(
api_key=api_key,
base_url="https://api.openai.com/v1"
)
# ollama client
# MODEL_NAME= "phi3.5"
# openai_client = OpenAI(
# api_key="sk-local",
# base_url="http://localhost:11434/v1"
# )
# vllm client
# MODEL_NAME= "gemma"
# openai_client = OpenAI(
# api_key="sk-local",
# base_url="http://localhost:8080/v1"
# )
Call the LLM with the Prompt
call_llm_command = CallLLM(openai_client, "Call the LLM with the given context",
MODEL_NAME, COST_PER_TOKEN_INPUT, COST_PER_TOKEN_OUTPUT, 0.5)
context = main_context + f" Here is the file diff for {file_path}:\n{diff} for review\n" + \
f"You have access to the following MCP tools to help you with your code review: {tool_schemas_content}"
response = call_llm_command.execute(context)
Call the LLM for invoking an MCP Tool
async with Client(SOME_MCP_SERVER_URL) as ast_tool_client:
tool_command = ToolCall(
ast_tool_client, "Call the tool with the given method and params")
tool_result, succeeded = await tool_command.execute(payload_json)
PyPy Repo link
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 nmagents-0.1.1.tar.gz.
File metadata
- Download URL: nmagents-0.1.1.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43e6fa6c3e0bd2dc3de77b4db58433ef0959fba35a126aab2379f47869a87eca
|
|
| MD5 |
190dd459c47d9757ec6736077f556e4a
|
|
| BLAKE2b-256 |
02b79b38afe9c58598410fa015e13d947b7b68c9aaf736ff634892dbe21305fb
|
File details
Details for the file nmagents-0.1.1-py3-none-any.whl.
File metadata
- Download URL: nmagents-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b041d596d044c648fac843165fd4c5e22b55d775d23a0324984f407dc78d29f5
|
|
| MD5 |
53d2a7e51f4afbccfd8b00e4b0399d48
|
|
| BLAKE2b-256 |
a9edea01a5197ee4d30be4d6b869c74b749f8b822b94ecf000e0a14c10357062
|