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.1.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.1-py3-none-any.whl (163.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

Hashes for indusagi-0.2.1.1.tar.gz
Algorithm Hash digest
SHA256 5f5738c453ef4519a14955152728858cd3cbee1303cb3cc4c99d480abf4c6486
MD5 f5d44ddf58b213ea9fd4dbb9b68db46f
BLAKE2b-256 935f14a0a4f20eea8769ddb9ef3b6fab5a78ea4885c45ee787f9d0dbabbf7e50

See more details on using hashes here.

File details

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

File metadata

  • Download URL: indusagi-0.2.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 427e0ba64c000c9e2055ea5b0485a0a75a3f7831acbc933c667023b99863462b
MD5 638d63fc65c5b852856619c677b2cb08
BLAKE2b-256 2d02d7bedb8a338a3aa7118c56be928e88040998f52ca5351903a94e840beebf

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