Metadata-Version: 2.4
Name: atomagent
Version: 0.1.0
Summary: A lightweight Python AI Agent framework with async support
Home-page: https://github.com/liuyunrui123/AtomAgent
Author: liuyunrui123
Author-email: liuyunrui123 <your.email@example.com>
Maintainer-email: liuyunrui123 <your.email@example.com>
License: MIT
Project-URL: Homepage, https://github.com/liuyunrui123/AtomAgent
Project-URL: Documentation, https://github.com/liuyunrui123/AtomAgent#readme
Project-URL: Repository, https://github.com/liuyunrui123/AtomAgent
Project-URL: Bug Tracker, https://github.com/liuyunrui123/AtomAgent/issues
Project-URL: Changelog, https://github.com/liuyunrui123/AtomAgent/releases
Keywords: ai,agent,llm,openai,async,tools,function-calling
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.25.0
Requires-Dist: python-dotenv>=0.19.0
Provides-Extra: async
Requires-Dist: aiohttp>=3.8.0; extra == "async"
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.18.0; extra == "dev"
Requires-Dist: black>=22.0; extra == "dev"
Requires-Dist: flake8>=4.0; extra == "dev"
Requires-Dist: mypy>=0.950; extra == "dev"
Requires-Dist: isort>=5.10.0; extra == "dev"
Requires-Dist: pre-commit>=2.17.0; extra == "dev"
Provides-Extra: all
Requires-Dist: atomagent[async,dev]; extra == "all"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# ⚛️ AtomAgent

[![Python Version](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/liuyunrui123/AtomAgent/blob/main/LICENSE)

AtomAgent is a lightweight Python AI Agent framework that supports both synchronous and asynchronous modes, providing a clean tool registration mechanism for building intelligent agents with function calling capabilities.

## ✨ Key Features

- **🔌 Minimal Dependencies**: Only depends on pure Python libraries, no Rust dependencies
- **🎯 OpenAI API Compatible**: Supports all OpenAI API compatible LLMs
- **🔧 Flexible Tool System**: Easy tool registration with decorators
- **🚀 Async Support**: Full async implementation for high concurrency
- **📡 Multi-Tool Calling**: Supports OpenAI's latest tools protocol
- **🔄 Streaming Output**: Real-time streaming responses
- **📝 Detailed Logging**: Built-in hierarchical logging system

## 📦 Installation

```bash
# Basic installation
pip install atomagent
```

## 🚀 Quick Start

```python
from atomagent import AsyncAgent

# Create an agent
agent = AsyncAgent(
    name="Assistant",
    model="gpt-3.5-turbo",
    api_key="your_api_key"
)

# Register a tool
@agent.tool()
def get_weather(city: str) -> str:
    """Get weather information for a city"""
    return f"The weather in {city} is sunny"

# Run the agent
import asyncio

async def main():
    response = await agent.run("What's the weather in Beijing?")
    print(response)

asyncio.run(main())
```

## 📖 Documentation

For detailed documentation and examples, visit: [https://github.com/liuyunrui123/AtomAgent](https://github.com/liuyunrui123/AtomAgent)

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## 📄 License

This project is licensed under the MIT License.
