A modern, extensible indus-agents for building autonomous agents with LLMs
Project description
indus-agents
A modern, extensible framework for building LLM-powered agents with tools, memory, and multi-agent orchestration. Built with Python and a clean, modular architecture.
Features
- Clean architecture with clear separation of concerns
- Type safety via Pydantic models
- Tool calling loop with built-in dev tools
- Multi-provider support: OpenAI, Anthropic, Groq, Ollama
- Multi-agent orchestration (Agency + Orchestrator)
- Conversation memory and tool usage logging
- Rich CLI and optional TUI
Quick Start
Installation
Using uv (recommended)
pip install uv
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install indusagi
Using pip
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install indusagi
Development install
git clone https://github.com/varunisrani/indus-agents.git
cd indus-agents
uv pip install -e ".[dev]"
Basic usage
from indusagi import Agent, AgentConfig
agent = Agent(
name="Helper",
role="Helpful assistant",
config=AgentConfig(model="gpt-5-mini", temperature=0.7),
)
response = agent.process("What is 2 + 2?")
print(response)
Using tools
from typing import ClassVar
from indusagi import Agent, AgentConfig
from indusagi.tools import BaseTool, registry
class AddTool(BaseTool):
name: ClassVar[str] = "add"
description: ClassVar[str] = "Add two numbers"
a: int
b: int
def execute(self) -> str:
return str(self.a + self.b)
registry.register(AddTool)
agent = Agent(
name="Calculator",
role="Math helper",
config=AgentConfig(model="gpt-5-mini"),
)
response = agent.process_with_tools(
"Add 12 and 30",
tools=registry.schemas,
tool_executor=registry,
)
print(response)
Configuration
Copy .env.example to .env and fill in your keys. Example:
OPENAI_API_KEY=your-openai-api-key-here
ANTHROPIC_API_KEY=your-anthropic-api-key-here
GROQ_API_KEY=your-groq-api-key-here
OLLAMA_API_KEY=your-ollama-api-key-here
LLM_PROVIDER=groq
GROQ_MODEL=moonshotai/kimi-k2-instruct-0905
OLLAMA_MODEL=glm-4.7
DEFAULT_MODEL=gpt-5-mini
DEFAULT_TEMPERATURE=1
MAX_TOKENS=6000
CLI Commands
indusagi run "Tell me a joke"
indusagi interactive
indusagi list-tools
indusagi test-connection
indusagi list-agents
indusagi create-agent --output ./agents
indusagi tui
indusagi agency-demo
indusagi version
Project Structure
indus-agents/
src/indusagi/
agent.py
agency.py
orchestrator.py
memory.py
tools.py
tools/
providers/
presets/
templates/
tui/
utils/
cli.py
example_agents/
example_agency*.py
example_agency_improved_*_prompts/
example-html-website-create-by-agents/
<static html demos>
useful-resource/
Agency-Code/
Mini-Agent/
claude-agent-sdk/
.env.example
agents.md
pyproject.toml
README.md
CHANGELOG.md
CONTRIBUTING.md
LICENSE
Examples and Demos
example_agents/contains the demo scripts and prompt folders used by the agency examples.example-html-website-create-by-agents/contains static HTML/CSS/JS demo sites generated by agents.
Archived or Reference Projects
useful-resource/contains archived or reference subprojects (not part of the core package).
Development
uv pip install -e ".[dev]"
pre-commit install
ruff check src
ruff format src
python -m build
Contributing
Please see CONTRIBUTING.md for guidelines.
Support
- Issues: https://github.com/varunisrani/indus-agents/issues
- Discussions: https://github.com/varunisrani/indus-agents/discussions
- Email: team@indusagi.ai
License
This project is licensed under the MIT License. See LICENSE.
Acknowledgments
- Built with Typer for the CLI
- Styled with Rich for terminal output
- Validated with Pydantic models
Citation
@software{indusagi,
title = {indus-agents},
author = {IndusAGI Team},
year = {2025},
url = {https://github.com/varunisrani/indus-agents}
}
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 indusagi-0.2.1.tar.gz.
File metadata
- Download URL: indusagi-0.2.1.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed7472efd066886c9a82f45e785c82519efbbcaa0681b7708214da52b9dbf120
|
|
| MD5 |
2b496748cbf838304eccc4df3c672a23
|
|
| BLAKE2b-256 |
d9dce3a090c9129e5aee32b1ac43d4d488a7e44233d7e97a86d684eaadd73acd
|
File details
Details for the file indusagi-0.2.1-py3-none-any.whl.
File metadata
- Download URL: indusagi-0.2.1-py3-none-any.whl
- Upload date:
- Size: 163.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
358fdc0d06e137a929eb5bcda8afa37cbfe9beccfee2f5256e6c80d43fc6589e
|
|
| MD5 |
2c15f7c0e43db980f120c0dd2d4b2785
|
|
| BLAKE2b-256 |
09a3fab22dad2f037decbd1edd35ba07da91fe90f807e00dd3681192a1349cf4
|