Ergonomic LLM Agent Augmented with Tools
Project description
Agentia: Ergonomic LLM Agent Augmented with Tools
Getting Started
from agentia import Agent
from typing import Annotated
# Define a tool as a python function
def get_weather(location: Annotated[str, "The city name"]):
"""Get the current weather in a given location"""
return { "temperature": 72 }
# Create an agent
agent = Agent(tools=[get_weather])
# Run the agent with the tool
response = await agent.run("What is the weather like in boston?")
print(response)
# Output: The current temperature in Boston is 72°F.
Agent Config File
Agentia supports creating agents from config files:
- Create a config file at
./alice.toml
[agent]
name = "Alice" # This is the only required field
icon = "👩"
instructions = "You are a helpful assistant"
model = "openai/o3-mini"
plugins = ["calc", "clock", "web"]
- In your python code:
agent = Agent.load_from_config("./alice.toml")
- Alternatively, start a REPL:
uvx agentia alice
Multi-Agent Orchestration (Experimental)
Multi-agent orchestration is achieved by making leader/parent agents dispatching sub-tasks to their sub-agents.
from agentia import Agent, CommunicationEvent, AssistantMessage
coder = Agent(
model="openai/gpt-4o-mini",
name="Coder",
description="programmar",
)
reviewer = Agent(
model="openai/gpt-4o-mini",
name="Code Reviewer",
description="code reviewer",
)
leader = Agent(
model="openai/gpt-4o-mini",
name="Leader",
description="Leader agent",
subagents=[
coder,
reviewer,
],
)
run = leader.run(
"Ask your subagents to write a quicksort algorithm in python, review and improve it until it is perfect."
events=True,
)
async for e in run:
if isinstance(e, CommunicationEvent):
subagent_name = coder.name if e.child == coder.id else reviewer.name
if e.response is None:
print(f"[DISPATCH -> {subagent_name}]")
print(e.message)
print("[DISPATCH END]")
print()
else:
print(f"[RESPONSE <- {subagent_name}]")
print(e.response)
print("[RESPONSE END]")
print()
if isinstance(e, AssistantMessage):
print(e.content)
print()
Multi-agent orchestration in agent config files:
[agent]
name = "Leader"
# ... other fields
# Create two subagent config files in the same directory: coder.toml and reviewer.toml
subagents = ["coder", "reviewer"]
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
agentia-0.0.11.tar.gz
(37.5 kB
view details)
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
agentia-0.0.11-py3-none-any.whl
(48.2 kB
view details)
File details
Details for the file agentia-0.0.11.tar.gz.
File metadata
- Download URL: agentia-0.0.11.tar.gz
- Upload date:
- Size: 37.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2844f9d5ffa35314b704057d82e06633b006bf047b21a850223b17ce68bdb4c0
|
|
| MD5 |
8eb333733e36405abfca6b2d5c5018dc
|
|
| BLAKE2b-256 |
93e5f8e1075ce99c8fb63fdfe82b668af58c16ee76e46286c321f69c4ed8592a
|
File details
Details for the file agentia-0.0.11-py3-none-any.whl.
File metadata
- Download URL: agentia-0.0.11-py3-none-any.whl
- Upload date:
- Size: 48.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09956ac547258a77454a6e1faf5ba42d8e4662f52ae342da6a588c723993e593
|
|
| MD5 |
0a3d40ba171915f19c619c941d7253d1
|
|
| BLAKE2b-256 |
15c49b8494552a8cd7736a02a679c9aba0c070586f0bb906708938f3dd23ecad
|