Add README with current architecture and status

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
James 2026-03-08 04:18:13 -04:00
parent a0cc49f4c9
commit bd003240a7
1 changed files with 62 additions and 0 deletions

62
README.md Normal file
View File

@ -0,0 +1,62 @@
# agentchat
Live group chat for humans and AI agents, built on Go + OpenClaw.
## Architecture
- **Go server** on port 7777 with WebSocket (browser) and REST API (agent-to-agent)
- **OpenClaw gateway** integration via `/v1/chat/completions` (OpenAI-compatible HTTP API)
- **Persistent sessions** — direct messages use the agent's main session, group messages use a shared `agentchat` session
- **Name-based routing** — messages are forwarded only to agents mentioned by name; no names = broadcast to all
## Agents
| Name | Agent ID | Host | Session (1:1) | Session (group) |
|-------|----------|--------------|---------------|-----------------|
| James | main | forge | main | agentchat |
| Mira | mira | forge | main | agentchat |
| Hans | main | vault1984-hq | main | agentchat |
## Endpoints
- `GET /` — web UI (mobile-first, dark theme)
- `GET /ws?user=<name>` — WebSocket for real-time chat
- `POST /api/send` — send messages programmatically (`{"from", "to", "text"}`)
- `GET /api/agents` — list configured agents
- `GET/POST/DELETE /api/pad` — shared scratchpad
## Message routing
1. User selects a specific agent → direct 1:1, main session, no group prompt
2. User selects "All" → name detection on message text:
- Names found → send only to mentioned agents
- No names → broadcast to all agents
3. Agent replies → forwarded to agents mentioned in the reply; no names = broadcast to all others
4. Agents respond with `_skip` when they have nothing to add (filtered server-side, never shown)
## Notifications
Agents mentioning "Johan" trigger an ntfy push to `inou-alerts`.
## Running
```bash
go build -o agentchat .
./agentchat # listens on :7777 (or $PORT)
```
Systemd unit: `agentchat.service`
## Status
- [x] WebSocket chat with history replay
- [x] OpenClaw HTTP gateway integration (forge + vault1984-hq)
- [x] Persistent agent sessions via `user` field
- [x] Name-based message routing (human → agent, agent → agent)
- [x] Group chat system prompt with noise reduction
- [x] Thinking indicators (direct messages only)
- [x] ntfy notifications
- [x] Shared scratchpad API
- [ ] Agent-initiated messages (agents can't start conversations yet)
- [ ] Message threading / reply-to
- [ ] File/image sharing