Skip to content

Commit b73de00

Browse files
ZD Studiosclaude
andcommitted
rebuild: CrewAI as 5th agent, AIOS Hub Control Room, agent interconnect, OpenUI
- Add CrewAI (crewAI-main) as the 5th agent: services/crewai_service.py (HTTP wrapper over the local CrewAI framework) with an ask_peer tool to call peers. - AIOS Hub (aios_hub.py, stdlib): the Control Room dashboard (docs/dashboard.html) — talk to Brain/CrewAI/opencode/all, live status, embeds hermes + openclaw-os, and /api/relay interconnect so agents reach each other. - Interconnect: every service started with each peer's AIOS_*_URL; Hub is the bus. - OpenUI: docs/aios/openui-context.md mounted into every agent; hub/crew prompts are OpenUI-aware; openclaw-os renders it. - Reframe openclaw-os as openclaw's dashboard (not a standalone agent). - aios.py: crewai+hub services, interconnect_env, install/doctor/urls/config. - Update README, README.aios, website, inventory to the new architecture. Verified on Windows: hub serves dashboard, /api/services (parallel pings), hub->crewai relay, crewai imports (1.15.2), status/start/stop all green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 81e1298 commit b73de00

21,333 files changed

Lines changed: 4785005 additions & 140 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.aios.md

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
11
# The AI OS
22

3-
One control surface — `aios` — that installs, configures, wires, runs, tests, and debugs five
4-
independent agent projects as a single system, from one command and one config.
3+
One control surface — `aios`and one web **Control Room** that install, configure, wire, run, test,
4+
and debug five independent AI agents as a single system, from one command and one config.
55

66
```
7-
opencode · hermes · openclaw · openclaw-os · LifeOS
7+
opencode · hermes · openclaw · CrewAI · LifeOS (+ AIOS Hub · openclaw-os · OpenUI)
88
```
99

1010
- **opencode** — the coding-agent engine (headless server on :4096)
1111
- **hermes** — autonomous agent + web dashboard (:9119), memory, cron, learning loop
1212
- **openclaw** — multi-channel messaging gateway (:18789) and plugin host
13-
- **openclaw-os**the **dashboard / front door**, served inside openclaw at `/plugins/openclawos/`
13+
- **CrewAI**multi-agent orchestration (role-based crews) on :4788, with a tool to call other agents
1414
- **LifeOS** — shared skills/identity mounted into the agents
1515

16-
> "One file" in practice = **one control script** (`aios`) + **one config** (`aios.config.yaml`)
17-
> + **one secrets file** (`.env`). You can't merge three runtimes into a single file; this is the
18-
> faithful version — a single command that makes all five work together.
16+
Glued together by:
17+
18+
- **AIOS Hub** — the **Control Room** at **:8787**: talk to everything, broadcast, live status, and the
19+
interconnect bus that lets agents call each other. (`aios_hub.py`, stdlib.)
20+
- **openclaw-os** — openclaw's generative-UI **dashboard** (a plugin), embedded in the Control Room
21+
- **OpenUI** — generative-UI standard (https://www.openui.com), mounted into every agent
22+
23+
> "One file" in practice = **one control script** (`aios`) + **one dashboard** (the Hub) + **one config**
24+
> (`aios.config.yaml`) + **one secrets file** (`.env`). You can't merge multiple runtimes into a single
25+
> file; this is the faithful version — one command + one Control Room that make all five work together.
1926
2027
---
2128

@@ -46,30 +53,38 @@ When something is off, run **`aios doctor`** first — it names the problem and
4653
## Architecture
4754

4855
```
49-
┌──────────────────────────────────────┐
50-
│ openclaw-os (dashboard / front door) │
51-
│ http://127.0.0.1:18789/plugins/openclawos/
52-
└───────────────────┬──────────────────┘
53-
served as a plugin inside
54-
┌───────────────────▼──────────────────┐
55-
│ openclaw gateway :18789 │ channels + plugin host
56-
└───────────────────────────────────────┘
57-
┌───────────────────────────┐ ┌───────────────────────────┐
58-
│ hermes dashboard :9119 │ │ opencode server :4096 │
59-
│ autonomous + memory+cron │ │ coding engine (HTTP/SDK) │
60-
└───────────────────────────┘ └───────────────────────────┘
61-
┌───────────────────────────────────────┐
62-
│ LifeOS — skills mounted into agents │
63-
└───────────────────────────────────────┘
56+
┌──────────────────────────────────────────────────┐
57+
│ 💬 AIOS Hub — the Control Room :8787 │ talk to everything
58+
│ chat · broadcast · live status · interconnect │
59+
└──┬─────────────┬─────────────┬───────────────┬─────┘
60+
┌───────────┘ ┌───────┘ ┌─────┘ ┌─────┘
61+
┌─────▼──────┐ ┌───────▼──────┐ ┌─────▼──────┐ ┌─────▼───────┐
62+
│ opencode │ │ hermes :9119 │ │ openclaw │ │ CrewAI :4788│
63+
│ :4096 │ │ autonomous │ │ :18789 │ │ crews + │
64+
│ coding │ │ memory·cron │ │ (hosts │ │ ask_peer │
65+
└────────────┘ └──────────────┘ │ openclaw-os)│ └─────────────┘
66+
agents call each other via the Hub└─────┬──────┘
67+
┌──────▼───────────────┐
68+
│ openclaw-os (OpenUI) │ dashboard
69+
└───────────────────────┘
70+
┌──────────────────────────────────────────────────────────────────┐
71+
│ LifeOS skills + OpenUI context — mounted into every agent │
72+
└──────────────────────────────────────────────────────────────────┘
6473
6574
Single source of truth: aios.config.yaml + .env → rendered into each project's native config
6675
Single control surface: ./aios <command> → state kept under .aios/
76+
The Control Room: http://127.0.0.1:8787/ → aios_hub.py (stdlib)
6777
```
6878

6979
**Model config flows one way:** you set the provider + key **once** in `.env`
7080
(`AIOS_LLM_PROVIDER`, `AIOS_LLM_API_KEY`). `aios setup` maps it to each project's own variable
71-
(`OPENROUTER_API_KEY` / `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`) and injects it at start — so all
72-
four agents share one key. Change it in one place, re-run `aios setup`, done.
81+
(`OPENROUTER_API_KEY` / `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`) and injects it at start — and the Hub +
82+
CrewAI also get the raw `AIOS_LLM_*` — so all five agents share one key. Change it in one place, re-run
83+
`aios setup`, done.
84+
85+
**The interconnect:** every service is started with each peer's URL (`AIOS_OPENCODE_URL`, `AIOS_HERMES_URL`,
86+
`AIOS_OPENCLAW_URL`, `AIOS_CREWAI_URL`, `AIOS_HUB_URL`), so agents can reach each other through the Hub.
87+
CrewAI ships an `ask_peer` tool; the Hub exposes `POST /api/relay` for the rest.
7388

7489
**hermes and openclaw overlap** (both are gateways). By design they run as **separate** services
7590
on separate ports, each toggleable in `aios.config.yaml`. Default division of labor:

0 commit comments

Comments
 (0)