从大龙虾到NanoClaw:HarmonyOS 6.0 上的OpenClaw AI Agent完全本地化实战
1.前言
最近大家都在研究比较火的大龙虾!!!OpenClaw 是 2026 年增长最快的开源 AI Agent 框架(GitHub 163K stars),但它有 40 万行 Node.js 代码和一堆 Docker 依赖——移植到 HarmonyOS?想都别想。Docker 依赖 Linux 内核的 cgroup 和 namespace,而 HarmonyOS NEXT 已经把 Linux 内核整个换成了自研的 HongMeng Kernel——这个内核并不开源。没有 Linux 内核,Docker 就是一个不存在的概念。目前可以替代的方案:NanoClaw,OpenClaw 的极简重写版,约 3500 行 TypeScript,5 个文件,把 Agent 的核心功能提炼出来了:ReAct 循环、工具调用、持久记忆、定时任务。但它仍然跑在 Node.js + Docker 上,用 Claude Agent SDK——HarmonyOS 上这些还是没有。
2. 效果展示
3. 技术架构
具体实施方案:保留 NanoClaw 的调度/数据层架构,砍掉 Docker 依赖,用 DeepSeek API + 自写 ReAct 循环替代 Claude Agent SDK,实现完全本地化的鸿蒙 AI Agent 应用。
3.1 移植对照表:
| NanoClaw模块 | 行数 | 处理方式 | 本项目对应 |
|---|---|---|---|
| db.ts (SQLite) | 697 | 移植,API替换 | DatabaseService.ets |
| types.ts | 107 | 移植,精简 | Types.ets |
| task-scheduler.ts | 281 | 简化移植 | TaskScheduler.ets |
| container-runner.ts | 702 | 完全重写 | AgentCore.ets + ApiClient.ets |
| agent-runner/index.ts | 588 | 完全重写 | AgentCore.ets |
| ipc-mcp-stdio.ts | 339 | 重写为直接调用 | tools/*.ets |
最终实现:18个文件,2427行ArkTS代码,相比原版40万行代码库实现了99.4%的代码精简。
3.2 技术栈
- 平台: OpenHarmony / HarmonyOS NEXT 6.0.1 (API 21)
- 语言: ArkTS(TypeScript超集)
- UI框架: ArkUI声明式
- 数据库: @ohos.data.relationalStore (SQLite)
- 网络: @ohos.net.http
- 文件: @kit.CoreFileKit (fileIo)
- LLM API: DeepSeek Chat API(OpenAI兼容格式)
3.3 整体架构设计
┌─────────────────────────────────────────────────────┐ │ ArkUI前端 │ │ ┌──────────┐ ┌──────────────┐ │ │ │ Index.ets│ │SettingsPage │ │ │ │ 聊天界面 │ │ .ets │ │ │ │ │ │ API配置 │ │ │ └────┬─────┘ └──────────────┘ │ │ │ │ │ ─────┼──────────── 服务层 ────────────────────── │ │ │ │ │ ┌────▼─────────────────────────────────────────┐ │ │ │ AgentCore.ets │ │ │ │ ReAct 循环 │ │ │ │ │ │ │ │ 用户输入 │ │ │ │ ↓ │ │ │ │ ApiClient.ets ──→ DeepSeek API │ │ │ │ ↓ │ │ │ │ finish_reason == "tool_calls"? │ │ │ │ ├─ Yes → ToolRegistry → 执行工具 → 回 API │ │ │ │ └─ No → 返回文本 → 显示在 UI │ │ │ └──────────────────────────────────────────────┘ │ │ │ │ │ │ │ ┌────▼────┐ ┌──────▼─────┐ ┌────▼──────┐ │ │ │Database │ │ToolRegistry│ │TaskSched- │ │ │ │Service │ │ + Tools │ │uler │ │ │ │ SQLite │ │ │ │ Cron/定时 │ │ │ └─────────┘ └──────┬─────┘ └───────────┘ │ │ │ │ │ ┌────────────┼────────────┐ │ │ │ │ │ │ │ ┌────▼───┐ ┌─────▼────┐ ┌────▼───┐ │ │ │FileTools│ │WebTools │ │Memory │ │ │ │文件读写 │ │搜索/抓取 │ │Tools │ │ │ └────────┘ └──────────┘ └────────┘ │ └──