A simple multi-agent framework
Project description
iragent
iragent is a simple framework for building OpenAI‑Like, tool‑using software agents.
It sits halfway between a prompt‑engineering playground and a full orchestration layer—perfect for experiments, research helpers and production micro‑agents.
✨ Key features
| Feature | Why it matters |
|---|---|
Composable Agent model |
Chain or orchestrate agents via SimpleSequentialAgents, AgentManager, and AutoAgentManager for flexible workflows |
| Auto-routing agent | AutoAgentManager uses a language model to dynamically decide the next agent in the loop |
| Web-augmented agent | InternetAgent uses googlesearch, requests, and summarizing agents to fetch and condense live web data |
| Parallel summarization | fast_start method uses ThreadPoolExecutor to speed up web content processing |
| Prompt-driven summaries | Summarization is driven by customizable system prompts and token-limited chunking for accurate context |
| Simple, Pythonic design | Agents are lightweight Python classes with callable message interfaces—no metaclasses or hidden magic |
| Memory, BaseMemory | BaseMemory provides foundational memory management for agents, storing conversation history and message objects. It supports adding, retrieving, and clearing memory, offering a flexible design for session-based context, interaction history, or task-specific memory across multiple agent invocations. Ideal for scenarios where the agent needs to recall past interactions for continuity. |
🚀 Installation
# Requires Python 3.10+
pip install iragent
# Or directly from GitHub
pip install git+https://github.com/parssky/iragent.git
⚡ Quick start
from iragent.tools import get_time_now, simple_termination
factory = AgentFactory(base_url,api_key, model, provider)
agent1 = factory.create_agent(name="time_reader",
system_prompt="You are that one who can read time. there is a fucntion named get_time_now(), you can call it whether user ask about time or date.",
fn=[get_time_now]
)
agent2 = factory.create_agent(name="date_exctractor",
system_prompt= "You are that one who extract time from date. only return time.")
agent3 = factory.create_agent(name="date_converter",
system_prompt= "You are that one who write the time in Persian. when you wrote time, then in new line write [#finish#]")
manager = AutoAgentManager(
init_message="what time is it?",
agents= [agent1,agent2,agent3],
first_agent=agent1,
max_round=5,
termination_fn=simple_termination,
termination_word="[#finish#]"
)
res = manager.start()
res.content
More docs
visit below url: https://parssky.github.io/iragent/namespacemembers.html
📚 More Usage Examples
Explore practical examples and use cases in the example directory.
Development
git clone https://github.com/parssky/iragent.git
cd iragent
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]" # ruff, pytest, etc.
🤝 Contributing
Pull requests are welcome! Please open an issue first if you plan large‑scale changes. 1- Fork → create feature branch
2- Write tests & follow ruff style (ruff check . --fix)
3- Submit PR; GitHub Actions will run lint & tests.
📄 License
This project is released under the MIT License.
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
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 iragent-0.1.4.tar.gz.
File metadata
- Download URL: iragent-0.1.4.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69a91c639321ce1545477fb0d1fd166798eac6bc41a9a3a1b645d10e778d280c
|
|
| MD5 |
c354c2c06bb28e3062b5b2bb6ddde2bf
|
|
| BLAKE2b-256 |
a5a9ddf81dc550b0535400917157ac6c119e711b36b6c07d6677aee45c25b8ee
|
File details
Details for the file iragent-0.1.4-py3-none-any.whl.
File metadata
- Download URL: iragent-0.1.4-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c99c669637df42b7f637a13d5a1a28c5c966656ea089da03541fc6916f470944
|
|
| MD5 |
cbb7d528a8c456c02e3b0bfee3aabfd5
|
|
| BLAKE2b-256 |
f877cfa53cc54810c79f463db8e82cdfe59212115a82b0656188d331b26de1bc
|