Metadata-Version: 2.4
Name: antikythera-agent
Version: 1.8.4
Summary: General-purpose agent runtime with multi-agent orchestration, MCP tool integration, and WebAssembly support
Author: tsfarizi
License: MIT
Project-URL: Homepage, https://github.com/tsfarizi/antikythera-agent-sdk
Project-URL: Repository, https://github.com/tsfarizi/antikythera-agent-sdk
Project-URL: Issues, https://github.com/tsfarizi/antikythera-agent-sdk/issues
Keywords: agent,runtime,mcp,llm,wasm,multi-agent,orchestration
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
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: Topic :: Software Development :: Libraries
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Provides-Extra: wasm
Requires-Dist: wasmtime>=42.0; extra == "wasm"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: wasmtime>=42.0; extra == "dev"

# Antikythera Agent SDK

General-purpose agent runtime with multi-agent orchestration, MCP tool integration, and WebAssembly support.

## Installation

```bash
pip install antikythera-agent
```

For WASM execution support:

```bash
pip install antikythera-agent[wasm]
```

## Quick Start

### Create an Agent

```python
from antikythera_agent import Agent, PromptManager, PromptConfig

prompts = PromptManager()
prompts.register(PromptConfig(
    id="assistant",
    name="Assistant",
    content="You are a helpful assistant.",
))

agent = Agent(
    provider="openai",
    model="gpt-4o",
    system_prompt=prompts.get_content("assistant")
)

result = agent.run("Hello, how can you help me?")
print(result.output)
```

### Multi-Agent Orchestration

```python
from antikythera_agent import Orchestrator, PromptManager, PromptConfig

prompts = PromptManager()
prompts.register(PromptConfig(
    id="coder",
    name="Coder",
    content="You are a software engineer.",
    tags=["engineering"]
))
prompts.register(PromptConfig(
    id="reviewer",
    name="Reviewer",
    content="You are a code reviewer.",
    tags=["quality"]
))

orchestrator = Orchestrator(execution_mode="auto", max_concurrent_tasks=4)

orchestrator.register_agent(AgentProfileConfig(
    id="coder",
    name="Coder",
    role="developer",
    system_prompt=prompts.get_content("coder")
))

orchestrator.register_agent(AgentProfileConfig(
    id="reviewer",
    name="Reviewer",
    role="reviewer",
    system_prompt=prompts.get_content("reviewer")
))

result = orchestrator.dispatch("Write and review code")
```

### WASM Runtime (Server-Side)

```python
from antikythera_agent import WasmRuntime

runtime = WasmRuntime()
result = runtime.call_checked("init", '{"max_steps": 10}')
print(result)
```

### Load Prompts from JSON

```python
from antikythera_agent import PromptManager

# Load from file
prompts = PromptManager.from_file("prompts.json")

# Or load from string
prompts = PromptManager.from_json('[{"id":"agent","name":"Agent","content":"You are helpful."}]')
```

## Requirements

- Python 3
- wasmtime (optional, for WASM execution; the supported minimum is pinned in pyproject.toml)

## License

MIT
