Skip to main content

A sophisticated AI agent toolkit supporting multiple AI providers with tool calling capabilities.

Project description

nixagent

Python 3.8+ License: MIT

A generic, multipurpose nixagent library in Python. This framework is completely agnostic to specific use cases and architectures, serving as a robust foundation for building autonomous, collaborative AI agents that can manage their own context, interface with each other, and securely use external tools.

๐Ÿš€ Quick Start

Installation

pip install -r requirements.txt

Command Line Usage

First, set up your environment configuration by copying .env.example to .env and adding your API keys.

# Ask a question directly
python app.py "What files are in the current directory?"

# Interactive mode
python app.py

# With custom settings
python app.py "Analyze the code structure" --no-save

Python Library Usage

from nixagent import Agent

# Initialize the core agent
agent = Agent(
    name="MainAgent",
    system_prompt="You are a highly capable AI assistant that uses available tools to accomplish goals."
)

result = agent.run(user_prompt="List all Python files in the project")
print(result)

โœจ Features

  • ๐ŸŒ Standardized API Interface: Uses pure requests following the OpenAI native JSON structure. Compatible with OpenAI, Vertex, Local LLMs (via Ollama/vLLM), Groq, and more.
  • ๐Ÿค– Autonomous Agents: Agents maintain independent conversation histories and automatically delegate sub-tasks when needed.
  • ๐Ÿ”Œ Model Context Protocol (MCP): Dynamic tool extension via MCP Servers via .mcp.json.
  • ๐Ÿ› ๏ธ Rich Built-In Tools: Deep system-level tools covering regex-based file searching, exact content mapping, disk manipulation, and secure subprocess execution.
  • ๐Ÿ—ฃ๏ธ Inter-Agent Collaboration: Support for multiple sub-agents operating concurrently under the same framework via .register_collaborator(agent).

๐Ÿ“ฆ Project Structure

framework/
โ”œโ”€โ”€ app.py                # Main CLI application
โ”œโ”€โ”€ nixagent/             # Core Framework Mechanics
โ”‚   โ”œโ”€โ”€ __init__.py       # Library exports
โ”‚   โ”œโ”€โ”€ agent.py          # Core contextual autonomous Agent
โ”‚   โ”œโ”€โ”€ llm.py            # Central HTTP-based LLM orchestration
โ”‚   โ”œโ”€โ”€ logger.py         # Central system execution logger
โ”‚   โ”œโ”€โ”€ mcp.py            # Model Context Protocol definition and bindings
โ”‚   โ”œโ”€โ”€ providers/        # LLM Vendor specific HTTP adapters
โ”‚   โ”‚   โ”œโ”€โ”€ openai.py
โ”‚   โ”‚   โ”œโ”€โ”€ anthropic.py
โ”‚   โ”‚   โ”œโ”€โ”€ gemini.py
โ”‚   โ”‚   โ”œโ”€โ”€ vertex.py
โ”‚   โ”‚   โ””โ”€โ”€ qwen.py
โ”‚   โ””โ”€โ”€ tools/            # Default Native Tools
โ”‚       โ”œโ”€โ”€ __init__.py   # Tool bindings & descriptions
โ”‚       โ”œโ”€โ”€ cmd.py        # Subprocess shell extensions
โ”‚       โ””โ”€โ”€ fs.py         # File system native operations
โ”œโ”€โ”€ mcp.json              # Model Context Protocol Server mapping
โ”œโ”€โ”€ docs/                 # Additional Documentation
โ”œโ”€โ”€ requirements.txt      # Python dependencies
โ”œโ”€โ”€ .env                  # Operational mapping variables
โ””โ”€โ”€ README.md             # This file

โš™๏ธ Configuration

Create a .env file in your project root:

# LLM Provider (openai, anthropic, gemini, or vertex)
PROVIDER=openai

# OpenAI Configuration
OPENAI_API_KEY=your_api_key_here
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o

# Anthropic Configuration
ANTHROPIC_API_KEY=your_anthropic_api_key_here
ANTHROPIC_BASE_URL=https://api.anthropic.com/v1
ANTHROPIC_MODEL=claude-3-opus-20240229

# Gemini Configuration
GEMINI_API_KEY=your_gemini_api_key_here
GEMINI_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai
GEMINI_MODEL=gemini-2.5-flash

# Vertex AI Configuration
VERTEX_API_KEY=your_vertex_api_key_here
VERTEX_BASE_URL=https://aiplatform.googleapis.com/v1
VERTEX_MODEL=gemini-2.5-flash-lite

# Qwen Configuration
QWEN_EMAIL=your_email_here
QWEN_PASSWORD=your_password_here
QWEN_MODEL=qwen3.5-plus

# Tool and Processing Configuration
MAX_ITERATIONS=25

# Logging Configuration
LOG_LEVEL=INFO
LOG_FILE=agent.log  # (Optional) Route all agent tool execution traces to this file instead of stdout

๐Ÿ”Œ Using MCP Servers

Add server definitions to your mcp.json file in the root directory:

{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": ["mcp-server-sqlite", "--db-path", "./database.db"],
      "active": true
    }
  }
}

The framework's MCPManager automatically bootstraps all active MCP servers, parses their schemas, and loads their tools natively alongside standard tools upon Agent initialization.

๐Ÿค Collaborative Agents

Agents can securely establish communication networks.

from nixagent import Agent

research_agent = Agent("Researcher", "You perform file system research.")
writer_agent = Agent("Writer", "You answer questions accurately.")

writer_agent.register_collaborator(research_agent)

writer_agent.run("Ask the Researcher to find all text files and read them to me.")

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

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

nixagent-1.15.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

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

nixagent-1.15-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file nixagent-1.15.tar.gz.

File metadata

  • Download URL: nixagent-1.15.tar.gz
  • Upload date:
  • Size: 27.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for nixagent-1.15.tar.gz
Algorithm Hash digest
SHA256 f955b3b89d10bf24232e4175f290a4c3bfe8d0ca5c9aef3dba7ee483080634ce
MD5 6d4b07861d4efad93bcb3f8aa8e88ed6
BLAKE2b-256 216d30d649a0e224a02a4dfc40b568f5a997c98fb372bf091b8cf6c580f9d3f7

See more details on using hashes here.

File details

Details for the file nixagent-1.15-py3-none-any.whl.

File metadata

  • Download URL: nixagent-1.15-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for nixagent-1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 41ee52e27a16b01c31ff6a22b005ead1ace53a58465b6bb2c8bfb4a60a7999a1
MD5 b83f91843fd10362de658aa4354216ee
BLAKE2b-256 1503e737f9d33a41236bbadbb2f23b1e03d315901ea52cb2a9263a56ebbcd5f4

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