agentlys
mcp
Lightweight AI agent library. Turn Python functions/classes into AI tools instantly. No verbose configs or complex abstractions.
README.md
Agentlys
Turn any Python class into an AI tool. Instantly.
Async-native • MCP support • Multi-providers • ~500 lines of core code
class Database:
def __llm__(self):
return f"Tables: {self.list_tables()}" # AI sees this every turn
def query(self, sql: str) -> list[dict]:
"""Execute SQL query"""
return self.execute(sql)
def describe(self, table: str) -> dict:
"""Get table schema"""
return self.get_schema(table)
agent = Agentlys()
agent.add_tool(Database(conn)) # That's it. All methods are now AI tools.
agent.run("What drove revenue decline in Q3?")
Other frameworks: 50 lines of tool definitions, separate schemas, manual state management.
Agentlys: Your class IS the tool. Methods become actions. __llm__() injects state.
Why Agentlys?
| If you want... | Use |
|---|---|
| Graphs and state machines | LangGraph |
| Team-based agent crews | CrewAI |
| Your existing classes as AI tools | Agentlys |
~500 lines of core code. No framework lock-in. No magic.
Install
pip install 'agentlys[all]' # OpenAI + Anthropic + MCP
The Pattern
1. Functions → Tools
def get_weather(city: str) -> str:
"""Get current weather for a city"""
return requests.get(f"https://wttr.in/{city}?format=3").text
agent.add_function(get_weather)
2. Classes → Stateful Tools (the killer feature)
class FileSystem:
def __init__(self, root: str):
self.root = root
def __llm__(self):
"""State shown to AI each turn"""
return f"Current directory: {self.root}\nFiles: {os.listdir(self.root)}"
def read(self, path: str) -> str:
"""Read file contents"""
return open(f"{self.root}/{path}").read()
def write(self, path: str, content: str):
"""Write to file"""
open(f"{self.root}/{path}", 'w').write(content)
agent.add_tool(FileSystem("/workspace"))
# AI now sees file state, can read/write, all from one class
3. Run Conversations
for message in agent.run_conversation("Refactor config.json to use environment variables"):
print(message.content)
Async Support
# Async conversation loop
async for message in agent.run_conversation_async("Analyze the data"):
print(message.content)
# Single async call
response = await agent.ask_async("What tables exist?")
Real Example: agentlys-dev
A coding agent in 15 lines:
from agentlys import Agentlys
from agentlys_tools import CodeEditor, Terminal, Git
agent = Agentlys(
instruction="You are a senior developer",
provider="anthropic",
model="claude-sonnet-4-20250514"
)
agent.add_tool(CodeEditor())
agent.add_tool(Terminal())
agent.add_tool(Git())
agent.run_conversation("Create a FastAPI app with tests")
Providers
# Anthropic (default)
agent = Agentlys(provider="anthropic", model="claude-sonnet-4-20250514")
# OpenAI
agent = Agentlys(model="gpt-4o")
More
Used By
- Myriade — AI-native data platform
When NOT to use Agentlys
- You need graph-based workflows → Use LangGraph
- You want pre-built agent teams → Use CrewAI
- You need sandboxed code execution → Use Smolagents
Agentlys is for: turning your existing Python code into AI tools with zero ceremony.
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found