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.12.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.12-py3-none-any.whl
(48.2 kB
view details)
File details
Details for the file agentia-0.0.12.tar.gz.
File metadata
- Download URL: agentia-0.0.12.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 |
bf12e80a6ce6045bcfbaa68befab45744896a1dc1c3ab7f1ab4178c529d370d7
|
|
| MD5 |
2ed4b3a9ce8eabff24b09c0dcd9bcd9d
|
|
| BLAKE2b-256 |
faa9f5a6b7518bf5285ea25a9e684993ca32a2e803f08443526a9cb47c77cb13
|
File details
Details for the file agentia-0.0.12-py3-none-any.whl.
File metadata
- Download URL: agentia-0.0.12-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 |
fb0eef3b960e8e190eee896719360826b2625d86d8ab38e5171af998f3ea0a15
|
|
| MD5 |
1800236101da7d924aeeb72d2820da4e
|
|
| BLAKE2b-256 |
2a8ec67413a9d5651c103bfb97211ab848579ff6f16a459eb995208c50ded642
|