|
11 | 11 |
|
12 | 12 | --- |
13 | 13 |
|
14 | | -## The Problem with "Smart" Tools |
| 14 | +## 🌟 The "End of Friction" Promise |
15 | 15 |
|
16 | | -Most AI agents are like eager interns who refuse to tie their own shoelaces. They are undeniably smart, yet completely helpless. You have to configure them, deploy them, manage their environments, and restart them when they trip over a missing API key. |
| 16 | +Most AI agents are smart but helpless. They need you to configure environments, manage keys, and restart processes. |
| 17 | +**Charl** is different. It's a fleet of self-managing **OpenClaw** agents that live on the edge. |
17 | 18 |
|
18 | | -We asked a simple question: **Why can't the intern just tie their own shoes?** |
19 | | - |
20 | | -## The Solution: OpenClaw |
21 | | - |
22 | | -When you deploy **Charl**, you aren't just deploying software. You are hiring a fleet of **OpenClaw** agents who are biologically designed to manage themselves. |
23 | | - |
24 | | -### 🌟 The "End of Friction" Workflow |
25 | | - |
26 | | -Forget `ssh`, `vim`, and `.env` files. If you want to change OpenClaw's configuration, you don't act like a systems administrator. You act like a boss. |
27 | | - |
28 | | -You simply say: |
| 19 | +When you want to change something, you don't edit a config file. You just tell the agent: |
29 | 20 |
|
30 | 21 | > **You:** "We've switched to the new Claude Sonnet model. Please update yourself." |
31 | | -> |
32 | 22 | > **OpenClaw:** "Consider it done." |
33 | 23 |
|
34 | | -And here is where the alchemy happens: |
35 | | -1. The agent **writes its own config file**. |
36 | | -2. The agent **restarts its own process**. |
37 | | -3. The agent **verifies the new settings**. |
38 | | - |
39 | | -It feels less like engineering, and more like magic. |
| 24 | +And it happens. The agent updates its own state, persists it, and adapts instantly. |
40 | 25 |
|
41 | 26 | --- |
42 | 27 |
|
43 | | -## 🏗️ The Anatomy of Agency |
| 28 | +## 🏗️ Architecture & Agency |
| 29 | + |
| 30 | +Charl is built on the **Cloudflare Agents SDK**, leveraging the power of Durable Objects for persistence and stateful autonomy. |
44 | 31 |
|
45 | | -**Charl** (The Mothership) |
46 | | -A Cloudflare Worker that acts as the hive mind. It routes traffic, handles the API (MCP), and manages the flock. |
| 32 | +### Core Components |
47 | 33 |
|
48 | | -**OpenClaw** (The Worker) |
49 | | -A living, stateful entity running in a secure Sandbox. It possesses: |
50 | | -* **The Hands**: Tools to control IoT devices and manage files. |
51 | | -* **The Eyes**: Serverless Puppeteer to browse the web and verify reality. |
52 | | -* **The Will**: The autonomy to fix its own problems. |
| 34 | +1. **Charl (The Platform)**: A high-performance Worker that acts as the orchestrator. |
| 35 | +2. **Registry Agent**: The "Phonebook" of the system. |
| 36 | + * **Service Discovery**: Automatically registers new agents. |
| 37 | + * **Real-time State**: Uses WebSockets to sync fleet status to the dashboard instantly. |
| 38 | + * **Presence**: Tracks agent heartbeats (Online/Offline status). |
| 39 | +3. **OpenClaw Agents (The Workers)**: |
| 40 | + * **AI Brain**: Powered by `gpt-4o` (or compatible models). |
| 41 | + * **Tool Use**: Can schedule tasks, perform calculations, and browse the web. |
| 42 | + * **Sandbox**: Optional integration with `Moltbot` for secure, sandboxed execution of complex code. |
53 | 43 |
|
54 | | -### 🧠 The Hive Mind Visualization |
| 44 | +### 🧠 The Hive Mind |
55 | 45 |
|
56 | 46 | ```mermaid |
57 | 47 | graph TD |
58 | 48 | classDef platform fill:#f48120,color:#fff,stroke:#333,stroke-width:2px; |
59 | 49 | classDef agent fill:#e1e1e1,color:#333,stroke:#333,stroke-width:1px; |
60 | 50 | classDef client fill:#f9fafb,color:#333,stroke:#333,stroke-width:1px; |
61 | 51 |
|
62 | | - User("User / IDE / Claude"):::client |
| 52 | + User("User / Dashboard"):::client |
63 | 53 | |
64 | | - subgraph Charl_Cloud ["☁️ Charl (The Platform)"] |
| 54 | + subgraph Cloudflare_Worker ["☁️ Charl Worker"] |
65 | 55 | direction TB |
66 | | - Router["Orchestrator / Router"]:::platform |
67 | | - |
68 | | - subgraph Agent_1 ["Agent 1: 'The DevOps Eng'"] |
69 | | - OC1["🦁 OpenClaw <br/>(Self-Configuring)"]:::agent |
70 | | - end |
| 56 | + Registry["📖 Registry Agent"]:::platform |
71 | 57 | |
72 | | - subgraph Agent_2 ["Agent 2: 'The Researcher'"] |
73 | | - OC2["🦁 OpenClaw <br/>(Browsing Web)"]:::agent |
74 | | - end |
75 | | - |
76 | | - subgraph Agent_3 ["Agent 3: 'Home Automation'"] |
77 | | - OC3["🦁 OpenClaw <br/>(IoT Control)"]:::agent |
| 58 | + subgraph Agents |
| 59 | + A1["🦁 Agent: Research"]:::agent |
| 60 | + A2["🦁 Agent: DevOps"]:::agent |
78 | 61 | end |
79 | 62 | end |
80 | | -
|
81 | | - User -->|HTTP / MCP| Router |
82 | | - Router -->|"Routes Task"| Agent_1 |
83 | | - Router -->|"Routes Task"| Agent_2 |
84 | | - Router -->|"Routes Task"| Agent_3 |
| 63 | + |
| 64 | + User <-->|WebSocket| Registry |
| 65 | + Registry <-->|JSRPC| A1 |
| 66 | + Registry <-->|JSRPC| A2 |
85 | 67 | ``` |
86 | 68 |
|
87 | 69 | --- |
88 | 70 |
|
89 | | -## 🚀 Why You'll Love It |
| 71 | +## 🚀 Getting Started |
90 | 72 |
|
91 | | -### 1. It Sees What You See |
92 | | -When you ask OpenClaw to check a website, it doesn't hallucinate. It spins up a browser, takes a photo, and acts on ground truth. It’s the difference between guessing and knowing. |
| 73 | +### 1. Zero-Config Deployment |
| 74 | +Deploy the entire platform to your Cloudflare account in seconds. |
93 | 75 |
|
94 | | -### 2. It Plug & Plays (Literally) |
95 | | -Through the **Model Context Protocol (MCP)**, Charl turns your entire agent fleet into a backend for your favorite tools. Connect **Cursor** or **Claude Desktop** to Charl, and suddenly your local code editor has eyes and hands in the cloud. |
| 76 | +```bash |
| 77 | +npm run deploy |
| 78 | +``` |
| 79 | + |
| 80 | +### 2. Access the Dashboard |
| 81 | +Visit your deployed worker URL (e.g., `https://charl.your-subdomain.workers.dev`). |
| 82 | +* **Create Agents**: Spin up new workers with a click. |
| 83 | +* **Monitor Fleet**: See real-time status and heartbeats. |
| 84 | +* **Broadcast**: Send system-wide commands to all agents. |
96 | 85 |
|
97 | | -### 3. It Scales Without Drama |
98 | | -Add one agent or one hundred. Charl coordinates them all without you needing to learn Kubernetes. |
| 86 | +### 3. Documentation |
| 87 | +For detailed guides on architecture, configuration, and API usage, visit the **Docs** page on your deployed instance at `/docs`. |
99 | 88 |
|
100 | 89 | --- |
101 | 90 |
|
102 | | -## Quick Start (The Low-Friction Way) |
| 91 | +## 🛠️ Development |
103 | 92 |
|
104 | | -1. **Deploy Charl**: |
105 | | - ```bash |
106 | | - npm run deploy |
107 | | - ``` |
| 93 | +Run the full stack locally: |
| 94 | + |
| 95 | +```bash |
| 96 | +npm run dev |
| 97 | +``` |
108 | 98 |
|
109 | | -2. **Connect**: |
110 | | - Add Charl to your Claude Desktop config (see `package.json` for the MCP snippet). |
| 99 | +This starts the Worker, the Client (Vite), and the connection to Cloudflare services locally. |
111 | 100 |
|
112 | | -3. **Delegation**: |
113 | | - Open the chat. Ask the agent to configure itself. Then go make a coffee. |
| 101 | +### Key Config |
| 102 | +* `wrangler.jsonc`: Cloudflare bindings and configuration. |
| 103 | +* `.dev.vars`: Local secrets (OPENAI_API_KEY, etc.). |
114 | 104 |
|
115 | 105 | --- |
116 | 106 |
|
|
0 commit comments