Metadata-Version: 2.4
Name: agentify_toolkit
Version: 0.19.0
Summary: Python Toolkit for Declarative AI Agent Development
Author-email: Lewis Sheridan <lewis@backplane.dev>
License:                                  Apache License
                                   Version 2.0, January 2004
                                http://www.apache.org/licenses/
        
        TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
        
        1.  Definitions.
            "License" shall mean the terms and conditions for use, reproduction,
            and distribution as defined by Sections 1 through 9 of this document.
        
            "Licensor" shall mean the copyright owner or entity authorized by
            the copyright owner that is granting the License.
        
            "Legal Entity" shall mean the union of the acting entity and all
            other entities that control, are controlled by, or are under common
            control with that entity.
        
            "You" (or "Your") shall mean an individual or Legal Entity
            exercising permissions granted by this License.
        
            "Source" form shall mean the preferred form for making modifications,
            including but not limited to software source code, documentation
            source, and configuration files.
        
            "Object" form shall mean any form resulting from mechanical
            transformation or translation of a Source form, including but
            not limited to compiled object code, generated documentation,
            and conversions to other media types.
        
            "Work" shall mean the work of authorship, whether in Source or
            Object form, made available under the License, as indicated by a
            copyright notice that is included in or attached to the work.
        
            "Derivative Works" shall mean any work, whether in Source or Object
            form, that is based on (or derived from) the Work and for which the
            editorial revisions, annotations, elaborations, or other modifications
            represent, as a whole, an original work of authorship.
        
            "Contribution" shall mean any work of authorship, including
            the original version of the Work and any modifications or additions
            to that Work or Derivative Works thereof, that is intentionally
            submitted to Licensor for inclusion in the Work by the copyright owner
            or by an individual or Legal Entity authorized to submit on behalf of
            the copyright owner.
        
            "Contributor" shall mean Licensor and any individual or Legal Entity
            on behalf of whom a Contribution has been received by Licensor and
            subsequently incorporated within the Work.
        
        2.  Grant of Copyright License.
            Subject to the terms and conditions of this License, each Contributor
            hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
            royalty-free, irrevocable copyright license to reproduce, prepare
            Derivative Works of, publicly display, publicly perform, sublicense,
            and distribute the Work and such Derivative Works in Source or Object
            form.
        
        3.  Grant of Patent License.
            Subject to the terms and conditions of this License, each Contributor
            hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
            royalty-free, irrevocable patent license to make, have made, use,
            offer to sell, sell, import, and otherwise transfer the Work.
        
        4.  Redistribution.
            You may reproduce and distribute copies of the Work or Derivative
            Works thereof in any medium, with or without modifications, provided
            that You meet the following conditions:
        
            (a) You must give any other recipients of the Work or
            Derivative Works a copy of this License; and
        
            (b) You must cause any modified files to carry prominent notices
            stating that You changed the files; and
        
            (c) You must retain, in the Source form of any Derivative Works,
            all copyright, patent, trademark, and attribution notices.
        
        5.  Submission of Contributions.
            Unless You explicitly state otherwise, any Contribution intentionally
            submitted for inclusion in the Work shall be under the terms and
            conditions of this License.
        
        6.  Trademarks.
            This License does not grant permission to use the trade names,
            trademarks, service marks, or product names of the Licensor.
        
        7.  Disclaimer of Warranty.
            Unless required by applicable law or agreed to in writing, Licensor
            provides the Work on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
            OF ANY KIND.
        
        8.  Limitation of Liability.
            In no event shall any Contributor be liable for any damages arising
            from the use of the Work.
        
        9.  Accepting Warranty or Additional Liability.
            While redistributing the Work, You may choose to offer support or
            warranty obligations on Your own behalf.
        
        END OF TERMS AND CONDITIONS
        
Project-URL: Homepage, https://github.com/backplane-cloud/agentify-toolkit
Project-URL: Issues, https://github.com/backplane-cloud/agentify-toolkit/issues
Keywords: ai,agents,llm,openai,anthropic,bedrock
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.10
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Requires-Dist: click>=8.1
Requires-Dist: openai>=1.0
Requires-Dist: anthropic>=0.25
Requires-Dist: boto3>=1.34
Requires-Dist: xai_sdk>=1.5.0
Requires-Dist: google-genai>=0.8
Requires-Dist: fastapi<1.0.0,>=0.128.0
Requires-Dist: uvicorn>=0.26
Requires-Dist: python-multipart>=0.0.6
Requires-Dist: mistralai>=1.0.0
Requires-Dist: ollama>=0.6.1
Requires-Dist: python-dotenv>=1.2.1
Dynamic: license-file

# Agentify-Toolkit

[![PyPI](https://img.shields.io/pypi/v/agentify-toolkit)](https://pypi.org/project/agentify-toolkit/)
[![Python Version](https://img.shields.io/pypi/pyversions/agentify)](https://www.python.org/)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE)
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/backplane-cloud/agentify-toolkit/blob/main/examples/notebooks/Agentify_Developer_Quickstart.ipynb)

**Build and experiment with AI agents using simple declarative specs.**

![Agentify Toolkit Logo](https://raw.githubusercontent.com/backplane-cloud/agentify-toolkit/main/agentify-logo-lg.png)

![agent](https://raw.githubusercontent.com/backplane-cloud/agentify-toolkit/main/cli.png)

Agentify is a lightweight, declarative-first toolkit for prototyping AI agents. It lets you define agents as YAML specs and test them rapidly from the CLI or Python, without committing to a framework or model provider.

> Note: Agentify is not a workflow orchestrator or production framework. It’s simply for agent building, experimentation and prototyping.

## Quickstart

For a more detailed step-by-step [Quickstart](QUICKSTART.md).

### 1. Install the Agentify-Toolkit

```bash
pip install agentify-toolkit
```

### 2. Configure Provider API Keys

You can configure provider keys either via the CLI or manually through `.env`.

#### Option A - Using the CLI

```bash
agentify provider add <provider>
```

This updates (or creates) your `.env` file and stores the key for the selected provider.

To list all configured providers:

```bash
agentify provider list
```

To remove a provider key:

```bash
agentify provider remove <provider>
```

#### Option B - Using a `.env` File

```bash
cp .env.example .env
```

Populate `.env `with your provider keys:

```bash
OPENAI_API_KEY=<your-openai-key>
ANTHROPIC_API_KEY=<your-anthropic-key>
XAI_API_KEY=<your-xai-key>
GOOGLE_API_KEY=<your-google-key>
BEDROCK_API_KEY=<your-bedrock-key>
MISTRAL_API_KEY=<your-mistral-key>
DEEPSEEK_API_KEY=<your-deepseek-key>
OLLAMA_API_KEY=<your-deepseek-key>
```

Any configured provider will be automatically detected at runtime.

For instructions on how to obtain an Model API key:

| Provider   | Model               | Link                                                              |
| ---------- | ------------------- | ----------------------------------------------------------------- |
| OpenAI     | GPT-4               | [How to obtain an OpenAI API Key](docs/providers/OPENAI.md)       |
| Google     | Gemini              | [How to obtain an Google API Key](docs/providers/GOOGLE.md)       |
| Anthropic  | Claude              | [How to obtain an Anthropic API Key](docs/providers/ANTHROPIC.md) |
| XAI        | Grok                | [How to obtain an XAI API Key](docs/providers/XAI.md)             |
| Mistral AI | Mistral             | [How to obtain an Mistra AI API Key](docs/providers/MISTRAL.md)   |
| Deepseek   | deepseek-chat       | [How to obtain an Deepseek API Key](docs/providers/DEEPSEEK.md)   |
| Ollama     | evstral-small-2:24b | [How to obtain an Ollama Cloud API Key](docs/providers/OLLAMA.md) |

Verify:

```bash
agentify provider list
```

Example Output:

```bash
Configured Providers:
  ✓ openai     (sk-s****)
  ✓ anthropic  (sk-a****)
  ✓ deepseek   (sk-5****)
  ✓ mistral    (XOsY****)
  ✓ xai        (xai-****)
  ✓ google     (AIza****)
  ✓ bedrock    (ABSK****)
  ✓ ollama     (4163****)
```

### 3. Create an Agent

You can generate an agent spec via the CLI:

```bash
agentify agent new
```

Or define one manually by creating `agent.yaml`:

```yaml
name: claude
description: AI Engineer
version: 0.1.0

model:
  provider: anthropic
  id: claude-sonnet-4-5
  api_key_env: ANTHROPIC_API_KEY

role: |
  You are an AI Security Engineer.
  Provide concise, practical answers with examples.
```

### 4. Run the Agent

Run an agent directly from its YAML spec:

```bash
agentify run agent.yaml
```

You’ve just built and executed your first AI agent with Agentify.

#### Running Multiple Agents

You’ve just built and executed your first AI agent with Agentify.

```bash
agentify run examples/agents
```

Agentify will present an interactive selector so you can choose which agent to execute.

#### Overriding the Model at Runtime

Models and providers can be swapped without editing the YAML. For example:

```bash
agentify run agent.yaml --provider=openai --model=gpt-5-nano
```

Using overrides is useful for experimentation or benchmarking. Ensure the required API key is configured.

## Programmatic Usage

```python
from agentify import Agent

# Create Agent
agent = Agent(
    name="Grok",
    description="X's Grok Agent",
    provider="x",
    model_id="grok-4",
    role="You are an AI Security Architect specialising in X AI Grok models"
)

# Sent Prompt
response = agent.run("Which AI LLM is the best in 1 sentence?")
print(response)
```

### Quick CLI Reference

| Action                    | Command                               |
| ------------------------- | ------------------------------------- |
| Run from YAML             | `agentify run agent.yaml`             |
| Run folder of agents      | `agentify run examples/agents`        |
| List agents interactively | `agentify agent list [<folder_name>]` |
| Add a provider API key    | `agentify provider add <p>`           |
| List provider credentials | `agentify provider list`              |

## Supported Providers & Keys

| Provider   | Env Var                           |
| ---------- | --------------------------------- |
| OpenAI     | `export OPENAI_API_KEY=...`       |
| Anthropic  | `export ANTHROPIC_API_KEY=...`    |
| Gemini     | `export GEMINI_API_KEY=...`       |
| XAI (Grok) | `export XAI_API_KEY=...`          |
| Bedrock    | `export AWS_BEARER_TOKEN_BEDROCK` |

Windows:

```powershell
$env:OPENAI_API_KEY="..."
```

## Installation

Install from PyPI:

```bash
pip install agentify-toolkit
```

From source:

```bash
git clone https://github.com/backplane-cloud/agentify-toolkit.git
cd agentify-toolkit
pip install .
```

## License

Apache 2.0 - see LICENSE
