Skip to main content

A modern, extensible indus-agents for building autonomous agents with LLMs

Project description

indus-agents

PyPI version Python versions License

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

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

indusagi-0.2.1.2.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

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

indusagi-0.2.1.2-py3-none-any.whl (163.6 kB view details)

Uploaded Python 3

File details

Details for the file indusagi-0.2.1.2.tar.gz.

File metadata

  • Download URL: indusagi-0.2.1.2.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

Hashes for indusagi-0.2.1.2.tar.gz
Algorithm Hash digest
SHA256 6fc8dccd8118622f740747dce5aad19e49f5b35716217d291071ce738da4061d
MD5 2b4cb1abc80d996abb3c68b3ccfd15c7
BLAKE2b-256 89805dafc9619ac86590bfd9a981ff97b35862f3cef12c0fb271e114075acdd9

See more details on using hashes here.

File details

Details for the file indusagi-0.2.1.2-py3-none-any.whl.

File metadata

  • Download URL: indusagi-0.2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 163.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for indusagi-0.2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d65c13b9094cea8e651de0a10a7587d3648e8ddbb7f17ecd2f502da2b350738a
MD5 bf30e37c6ec4dbc67e649ca356e3c673
BLAKE2b-256 ca44dcd074c48534f9b1e238913bcd00898dba18f0a280ed0f88d6fbbc137a7f

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