feat(agent-zero): Zulip adapter with A2A protocol for kagentz
CI / validate (pull_request) Failing after 2s
CI / validate (pull_request) Failing after 2s
New project: agent-zero-zulip/ — direct Zulip integration for Agent Zero
agents using A2A protocol internally.
Architecture:
kagentz (CT 105) ┌──────────────────────┐
│ Zulip Adapter ◄──► │ Agent Zero
│ polls Zulip A2A │ Docker container
│ port 8001 │
└──────────────────────┘
- adapter.py: Zulip event queue poller + A2A client
- No intermediate bridge — direct kagentz ↔ Zulip
- Heartbeat, reconnection, placeholder→edit streaming
- Designed for re-use: scottdenya, future Agent Zero agents
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# Deploy Agent Zero Zulip Adapter
|
||||
|
||||
## Prerequisites
|
||||
- Agent Zero running in Docker on the target CT
|
||||
- A Zulip bot created for the agent (kagentz-bot, scottdenya-bot, etc.)
|
||||
- Python 3.11+ with httpx
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Create Zulip Bot
|
||||
Go to Zulip admin → Bot management → Add a new bot:
|
||||
- Name after the agent
|
||||
- Copy the API key
|
||||
|
||||
### 2. Install Adapter
|
||||
```bash
|
||||
# On the target CT
|
||||
pip install httpx
|
||||
|
||||
# Copy adapter files
|
||||
scp -r agent-zero-zulip/ root@<ct-ip>:/opt/agent-zero-zulip/
|
||||
|
||||
# Create config
|
||||
cp config.yaml.example config.yaml
|
||||
# Edit config.yaml with Zulip credentials
|
||||
```
|
||||
|
||||
### 3. Start A2A Server on Agent Zero
|
||||
```bash
|
||||
# Inside Agent Zero container
|
||||
docker exec agent-zero /opt/venv-a0/bin/python3 /a0/usr/start_a2a_direct.py &
|
||||
|
||||
# Verify A2A is running
|
||||
curl http://localhost:8001/.well-known/agent.json
|
||||
```
|
||||
|
||||
### 4. Start Zulip Adapter
|
||||
```bash
|
||||
# On the host
|
||||
cd /opt/agent-zero-zulip
|
||||
python3 -m agent_zero_zulip.adapter &
|
||||
|
||||
# Verify
|
||||
tail -f adapter.log
|
||||
```
|
||||
|
||||
### 5. Test
|
||||
Send a DM to kagentz-bot in Zulip. Expect "Processing..." → response.
|
||||
Reference in New Issue
Block a user