Metadata-Version: 2.4
Name: agenthub-py
Version: 0.1.0
Summary: A framework for building and running AI agents
Home-page: https://agenthublabs.com
Author: Youssef Kallel
Author-email: Youssef Kallel <youssef@agenthublabs.com>
License: MIT
Project-URL: Homepage, https://www.agenthublabs.com/
Project-URL: Documentation, https://www.agenthublabs.com/docs
Keywords: ai,agents,framework
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Dynamic: author
Dynamic: home-page
Dynamic: requires-python

# AgentHub SDK

Simple interface to make agents runnable on AgentHub.

## Installation

Add `agenthub_sdk` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:agenthub_sdk, "~> 1.0.2"}
  ]
end
```

## Usage

The AgentHub SDK provides a simple behavior for creating agent runners that can be executed on the AgentHub platform.

### Creating an Agent

To create an agent, implement the `AgenthubSdk` behavior:

```elixir
defmodule MyAgent do
  @behaviour AgenthubSdk

  def run(input) do
    # Process the input and return a result
    {:ok, %{result: "processed", input: input}}
  end
end
```

### Running an Agent

Use `AgenthubSdk.run/2` to execute your agent:

```elixir
result = AgenthubSdk.run(MyAgent, %{data: "test"})
case result do
  {:ok, output} -> IO.puts("Success: #{inspect(output)}")
  {:error, reason} -> IO.puts("Error: #{inspect(reason)}")
end
```

## API Reference

### `AgenthubSdk.run/2`

Runs an agent with the given input.

**Parameters:**
- `agent_module` - The module implementing the AgentRunner behavior
- `input` - The input data to pass to the agent

**Returns:**
- `{:ok, result}` - On successful execution
- `{:error, reason}` - On failure

### Behavior Callback

Your agent module must implement:

```elixir
@callback run(input :: any()) :: {:ok, any()} | {:error, any()}
```

## License

ISC
