Metadata-Version: 2.4
Name: moss-autogen
Version: 0.1.0
Summary: MOSS signing integration for AutoGen agents
Project-URL: Homepage, https://mosscomputing.com
Project-URL: Repository, https://github.com/mosscomputing/moss-autogen
Author: Carey D'Souza
License-Expression: MIT
License-File: LICENSE
Keywords: agents,ai,autogen,cryptography,moss,signing
Classifier: Development Status :: 3 - Alpha
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
Requires-Python: >=3.9
Requires-Dist: moss-sdk>=0.1.0
Requires-Dist: pyautogen>=0.2.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# moss-autogen

MOSS signing integration for AutoGen agents.

## Installation

```bash
pip install moss-autogen
```

## Usage

```python
from autogen import AssistantAgent
from moss_autogen import signed_agent

# Create your AutoGen agent
agent = AssistantAgent(
    name="analyst",
    llm_config={"model": "gpt-4"}
)

# Wrap with MOSS signing
agent = signed_agent(agent, "moss:lab:analyst")

# After agent replies, signature is available
reply = agent.generate_reply(messages=[{"content": "Analyze this data"}])
envelope = agent.moss_envelope  # MOSS Envelope with signature
```

## Verification

```python
from moss import Subject

# Verify the agent's output
result = Subject.verify(agent.moss_envelope)
assert result.valid
```

## Multi-Agent Scenarios

```python
from autogen import AssistantAgent, UserProxyAgent
from moss_autogen import signed_agent

assistant = signed_agent(
    AssistantAgent(name="assistant", ...),
    "moss:team:assistant"
)

analyst = signed_agent(
    AssistantAgent(name="analyst", ...),
    "moss:team:analyst"
)

# Each agent's replies are independently signed
# Check assistant.moss_envelope or analyst.moss_envelope after interactions
```
