A multi-agent Python framework with intuitive DX, powered by Pydantic.
Project description
AugAgent 🤖
AugAgent is a multi-agent framework designed in Python, providing a deeply intuitive Developer Experience (DX) heavily inspired by industry standards like CrewAI and AutoGen, but supercharged with Pydantic for rigid type safety and data validation.
By utilizing strict Pydantic schemas under the hood, AugAgent ensures that Language Models produce predictable, structured outputs, effectively eliminating hallucinated parameters and malformed function arguments before they ever reach your runtime code.
🚀 Why AugAgent?
- Familiar, Intuitive DX: If you've used CrewAI or AutoGen, you'll feel right at home. The
AugAgent(Role/Goal/Backstory),AugTask, andAugTeamabstractions are heavily aligned with the latest industry orchestration standards. - Pydantic Native: LLM configurations, chat schemas, and tool arguments are built on Pydantic v2.
- OpenAI Compatible: Easily plug in any OpenAI-compatible API endpoint (e.g. OpenAI, Azure, vLLM, Ollama) directly into the
LLMConfig. - Automatic Tool Schemas: The
@aug_tooldecorator dynamically generates strict OpenAI function-calling JSON schemas from standard Python type hints. - Context Chaining:
AugTeamorchestrators automatically chain task outputs as context for subsequent tasks.
🛠️ Quick Start
Install AugAgent:
pip install augagent
Below is an example of an orchestrated Research and Writing team using the framework:
import asyncio
from augagent import AugAgent, AugTask, AugTeam, aug_tool, LLMConfig
from pydantic import Field
# 1. Define tools
@aug_tool
def search_web(query: str = Field(description="Search query")) -> str:
"""Search the web for information."""
print(f" [Tool Executing] Searching the web for: {query}")
# Mock search results for demonstration
if "quantum" in query.lower():
return "Quantum computing uses qubits. It can solve complex problems faster than classical computers."
return f"Found generic results for {query}."
@aug_tool
def fetch_article(url: str = Field(description="URL to fetch")) -> str:
"""Fetch the contents of an article."""
print(f" [Tool Executing] Fetching article: {url}")
return "This is the content of the article regarding " + url
# 2. Define agents
llm_config = LLMConfig(model="gpt-4o-mini", temperature=0.2)
researcher = AugAgent(
name="Researcher",
role="Senior Technology Researcher",
goal="Find comprehensive and accurate information on emerging technologies.",
backstory="You have 10 years of experience researching deep tech.",
llm_config=llm_config,
tools=[search_web, fetch_article],
verbose=True
)
writer = AugAgent(
name="Writer",
role="Technical Content Writer",
goal="Write engaging, accurate articles about technology.",
backstory="You write clear, accessible articles for a wide audience.",
llm_config=llm_config,
verbose=True
)
# 3. Define tasks
research_task = AugTask(
description="Research the topic: {topic}. Find key facts and recent advancements.",
expected_output="A bulleted list of key facts about {topic}.",
agent=researcher
)
writing_task = AugTask(
description="Write a short, engaging article about {topic} based on the research provided.",
expected_output="A 2-paragraph article in Markdown format.",
agent=writer
)
# 4. Assemble the team and kickoff
team = AugTeam(
agents=[researcher, writer],
tasks=[research_task, writing_task],
verbose=True
)
if __name__ == "__main__":
print(f"=== Kicking off AugTeam ===")
results = team.kickoff(inputs={"topic": "Quantum Computing"})
print("\n=== Final Results ===")
for idx, result in enumerate(results):
print(f"\nTask {idx + 1} ({result.agent_name}):")
print("-" * 40)
print(result.output)
📚 Documentation
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 augagent-0.1.0.tar.gz.
File metadata
- Download URL: augagent-0.1.0.tar.gz
- Upload date:
- Size: 20.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a98cd2a00f530b1311732a915b8881a7231ec216a420561d119ed64ba1052d26
|
|
| MD5 |
9b27e11d9dc0f822f4df5ee5929a6269
|
|
| BLAKE2b-256 |
a8cb35453edf682356d1245a9031c634e9f4f1c27f674e2c529bf14309f67c2a
|
File details
Details for the file augagent-0.1.0-py3-none-any.whl.
File metadata
- Download URL: augagent-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc400fc10d6ee4a063fa460aaab6981245580b79ebefeeb8477d1b0dc79035bd
|
|
| MD5 |
0134430a8d46f16c301d246eb1f8c689
|
|
| BLAKE2b-256 |
366a3639a24fa912dd50092d19459d073f7b1fa95dc4a1e6260c5b396ba8646c
|