From e7bff28c0c5a25d35324ce442d51f00b66b500ec Mon Sep 17 00:00:00 2001 From: zane Date: Wed, 25 Mar 2026 19:09:08 -0400 Subject: [PATCH] add cover image --- Cover.png | Bin 0 -> 38437 bytes README.md | 2 ++ README.zh.md | 2 ++ 3 files changed, 4 insertions(+) create mode 100644 Cover.png diff --git a/Cover.png b/Cover.png new file mode 100644 index 0000000000000000000000000000000000000000..666adfd8651141a508360073d8553384ac19099c GIT binary patch literal 38437 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

M|u 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 751f89e..5aa7d94 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ A step-by-step tutorial to build your own AI agent, from a simple chat loop to a lightweight version of [OpenClaw](https://github.com/openclaw/openclaw). + + ## Overview **18 progressive steps** that teach you how to build an minimal version of OpenClaw. Each step includes: diff --git a/README.zh.md b/README.zh.md index 82d5cf7..9214c67 100644 --- a/README.zh.md +++ b/README.zh.md @@ -2,6 +2,8 @@ 从简单的聊天循环开始,一步步搭建 [OpenClaw](https://github.com/openclaw/openclaw) 的精简版。 + + ## 概述 18 个步骤,每步包含: