Metadata-Version: 2.4
Name: a2a-agent
Version: 0.1.0
Summary: MQTT 위에서 도는 커맨더-워커 A2A 오케스트레이션 에이전트
Author: Judvika
License-Expression: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: paho-mqtt
Requires-Dist: typer
Requires-Dist: pyyaml
Dynamic: license-file

# a2a-agent

`a2a-agent`는 MQTT 위에서 커맨더와 워커가 A2A 형식 메시지를 주고받기 위한 작은 명령줄 도구입니다.

현재 `0.1.0`은 설정 파일 저장, 초대 코드 생성과 참여, 워커 역할 기록, 상태 확인을 지원합니다. 실제 작업 전송 명령인 `send`는 아직 자리 표시자입니다.

## 설치

PyPI 배포 후에는 다음처럼 설치할 수 있습니다.

```bash
python -m pip install a2a-agent
```

개발 환경에서 소스 코드로 설치하려면 저장소 루트에서 실행합니다.

```bash
python -m venv .venv
source .venv/bin/activate
python -m pip install -e .
```

## 기본 사용

커맨더 설정을 만듭니다.

```bash
a2a-agent init --room team --device-name commander --broker-host broker.example.com
```

워커 초대 코드를 만듭니다.

```bash
a2a-agent invite device-a
```

워커 기기에서는 초대 코드로 참여합니다.

```bash
a2a-agent join "초대코드"
```

커맨더에서 워커 역할을 기록합니다.

```bash
a2a-agent set-role device-a research "collect project context"
```

현재 설정을 확인합니다.

```bash
a2a-agent status
```

## 구조

```text
a2a-agent/
├── pyproject.toml
├── README.md
├── LICENSE
├── src/a2a_agent/
│   ├── cli.py
│   ├── client.py
│   ├── config.py
│   ├── invite.py
│   ├── protocol.py
│   └── topics.py
└── tests/
```

주요 모듈은 다음 역할을 맡습니다.

- `cli.py`: 명령줄 진입점
- `config.py`: 로컬 설정 파일 저장과 읽기
- `invite.py`: 초대 코드 생성과 파싱
- `protocol.py`: A2A 메시지 자료 구조
- `topics.py`: MQTT 토픽 문자열 생성
- `client.py`: `paho-mqtt` 래퍼

## 라이선스

MIT 라이선스를 따릅니다.
