Skip to main content

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, and AugTeam abstractions 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_tool decorator dynamically generates strict OpenAI function-calling JSON schemas from standard Python type hints.
  • Context Chaining: AugTeam orchestrators 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

augagent-0.1.0.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

augagent-0.1.0-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

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

Hashes for augagent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a98cd2a00f530b1311732a915b8881a7231ec216a420561d119ed64ba1052d26
MD5 9b27e11d9dc0f822f4df5ee5929a6269
BLAKE2b-256 a8cb35453edf682356d1245a9031c634e9f4f1c27f674e2c529bf14309f67c2a

See more details on using hashes here.

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

Hashes for augagent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc400fc10d6ee4a063fa460aaab6981245580b79ebefeeb8477d1b0dc79035bd
MD5 0134430a8d46f16c301d246eb1f8c689
BLAKE2b-256 366a3639a24fa912dd50092d19459d073f7b1fa95dc4a1e6260c5b396ba8646c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page