莫潇羽@无忆研习社(www.wuyi.wiki)原创内容,转载请注明出处。
快速摘要
PicoClaw 是由矽速科技(Sipeed)开源的一款超轻量级 AI 智能体运行框架,使用 Go 语言从零重构,整个程序打包为单个二进制文件,内存占用不到 10MB,可以运行在 LicheeRV-Nano、树莓派、旧手机甚至路由器等极低成本硬件上。 它保留了 AI Agent 的核心三要素——感知、思考、行动,支持 Telegram、Discord、QQ、钉钉等多渠道接入,同时具备工具调用、语音识别和联网搜索能力。如果你一直想在家里部署一个 24 小时在线的 AI 助手,却苦于硬件成本和资源占用,那 PicoClaw 可能是目前门槛极低的方案之一。 往下看,莫潇羽将从项目原理、架构设计、硬件选型到完整部署流程,给你做一次详细拆解。
为什么需要一个"极致轻量"的 AI Agent
传统方案的痛点
在 AI Agent(智能体)领域,不少开源项目已经做到了相当完善的功能覆盖。但很多主流框架都面临一些共性问题:
- 依赖链条过长:以 TypeScript 和 Python 为主的技术栈,往往需要安装大量的运行时环境和依赖包。一个
node_modules文件夹动辄几百兆,Python 的虚拟环境配置也让不少人头疼。 - 内存占用偏高:运行一个完整的 Agent 框架,通常需要数百兆甚至数 GB 的内存。对于想在低功耗设备上跑 Agent 的开发者来说,这是一个硬性门槛。
- 冷启动时间长:从执行命令到服务真正就绪,可能要等十几秒甚至更久。在嵌入式场景或者需要快速响应的场景下,这样的启动延迟是不可接受的。
- 跨平台部署繁琐:不同的 CPU 架构(x86、ARM、RISC-V)之间的迁移,往往需要重新处理依赖兼容性问题。
莫潇羽在无忆研习社也测试过几个主流的开源 Agent 框架,实际体验下来,想要在一台树莓派 3B 上流畅运行一个完整的 Agent,确实是一件相当困难的事情。
边缘 AI 的趋势
近年来,"边缘 AI(Edge AI)"的概念正在被越来越多地讨论。简单来说,边缘 AI 的核心思路是:把 AI 的推理计算放在云端大模型 API 上完成,把控制逻辑和运行框架放在本地轻量设备上执行。
这种架构有几个明显的好处:
- 本地设备只需要负责"调度"和"通信",不需要真正跑大模型推理,硬件门槛大幅降低。
- 7×24 小时运行的功耗极低,一块 5V/1A 的电源适配器就够用了。
- 数据流转和控制权掌握在自己手中,隐私性相对更好。
PicoClaw 正是这一思路的典型实践。它不在本地做任何大模型推理,而是将推理请求通过 API 转发给云端大模型,自己只负责"接收指令 → 调用工具 → 返回结果"这条控制链路。
PicoClaw 是什么
PicoClaw 是矽速科技(Sipeed)开源的一款超轻量级 AI Agent 框架,项目托管在 GitHub 上:
项目地址:https://github.com/sipeed/picoclaw
从技术定位上看,PicoClaw 属于 AI Agent 的"运行时(Runtime)"层——它本身不包含大语言模型,而是作为一个高效的控制中枢,连接用户输入、大模型 API 和各类工具。
核心定位
用一句话概括:PicoClaw 是一个能跑在"电子垃圾"上的 AI Agent 微内核。
这里的"电子垃圾"并非贬义,而是指那些你可能已经闲置了的老旧硬件——几年前买的树莓派、刷了 Linux 的旧手机、几十块的开发板等等。PicoClaw 的设计目标就是让这些设备重新焕发生命力。
数据对比
为了让大家直观地理解 PicoClaw 的轻量程度,莫潇羽@无忆研习社 整理了一组核心指标的对比:
|
指标 |
传统 Agent 框架(参考值) |
PicoClaw |
|
内存占用 |
500MB - 2GB+ |
< 10MB |
|
启动时间 |
10-30 秒 |
< 1 秒(0.6GHz 单核) |
|
部署文件 |
数百 MB(含依赖) |
单个二进制文件(数 MB) |
|
最低硬件成本 |
Mac mini 级别 |
~10 美元 |
|
跨平台支持 |
需要适配 |
原生支持 RISC-V/ARM/x86 |
|
语言栈 |
TypeScript/Python |
Go |
内存占用减少了约 99%,启动速度提升了约 400 倍。这不是简单的"优化",而是技术栈层面的彻底重构。
技术架构深度解析
为什么选择 Go 语言
PicoClaw 从零开始使用 Go 语言重构,这个技术决策本身就值得深入分析。莫潇羽认为,Go 语言在这个场景下有几个不可替代的优势:
第一,单二进制文件编译。 Go 的编译器默认会将所有依赖静态链接到一个二进制文件中。这意味着部署时不需要安装任何运行时环境——没有 Node.js,没有 Python 解释器,没有 pip install,没有 npm install。把编译好的文件通过 scp 拷贝到目标设备上,给个执行权限,直接运行。这在嵌入式场景下的价值是巨大的。
第二,卓越的内存效率。 Go 的运行时(goroutine 调度器 + GC)本身非常轻量。一个 goroutine 的初始栈大小只有几 KB,相比之下,一个系统线程通常需要几 MB 的栈空间。这使得 Go 程序可以在极低的内存环境下高效运行并发任务。
第三,原生跨平台交叉编译。 Go 的工具链原生支持交叉编译,只需要设置 GOOS 和 GOARCH 两个环境变量,就可以在一台 x86 的开发机上编译出 ARM 或 RISC-V 架构的二进制文件。例如:
# 在 x86 机器上编译 ARM 架构的二进制文件
GOOS=linux GOARCH=arm GOARM=7 go build -o picoclaw-arm
# 编译 RISC-V 架构的二进制文件
GOOS=linux GOARCH=riscv64 go build -o picoclaw-riscv64
# 编译 x86_64 架构的二进制文件
GOOS=linux GOARCH=amd64 go build -o picoclaw-amd64
这些命令可以在几秒钟内完成,不需要安装额外的交叉编译工具链。
第四,高效的并发模型。 AI Agent 的工作流程天然适合并发处理:同时监听多个消息渠道、并行调用多个工具、异步等待 API 响应。Go 的 goroutine + channel 模型让这些并发逻辑的实现既简洁又高效。
Agent 的三要素架构
PicoClaw 虽然轻量,但严格遵循了 AI Agent 的经典三要素架构——感知(Perception)、思考(Reasoning)、行动(Action)。下面莫潇羽分别拆解每个模块的实现原理。
感知层:多渠道接入
感知层负责"接收信息"。PicoClaw 采用了统一的消息抽象接口,将来自不同平台的消息格式统一化处理。目前支持的渠道包括:
- Telegram:通过 Telegram Bot API 接入,适合海外用户和开发者。
- Discord:通过 Discord Bot API 接入,适合社区场景。
- QQ:通过 QQ 开放平台接入,适合国内用户的日常沟通。
- 钉钉:通过钉钉机器人接口接入,适合团队协作场景。
每个渠道的接入逻辑被封装为独立的 Gateway 模块,遵循统一的接口规范。这意味着如果你需要接入一个新的平台(比如飞书或者企业微信),只需要实现对应的 Gateway 适配器即可,核心逻辑不需要改动。
这种设计模式在软件工程中叫做"适配器模式(Adapter Pattern)",它的好处是让系统具备良好的可扩展性。
在语音感知方面,PicoClaw 接入了 Groq 的 Whisper 语音识别服务。当用户发送语音消息时,PicoClaw 会将音频文件转发给 Groq API,获取转写后的文本,然后再交给大模型处理。这让你可以直接对着手机说话来操控你的 AI Agent。
思考层:大模型 API 调用
思考层是 Agent 的"大脑"。PicoClaw 本身不运行任何大语言模型——它的策略是将推理任务完全委托给云端大模型 API。
从配置文件中可以看到,PicoClaw 支持通过 OpenRouter 等聚合平台接入多种大模型。默认配置中使用的模型标识为 glm-4.7,当然你也可以替换为其他兼容 OpenAI API 格式的模型服务。
{
"agents": {
"defaults": {
"model": "glm-4.7",
"max_tokens": 8192,
"temperature": 0.7,
"max_tool_iterations": 20
}
}
}
这里几个关键参数的含义:
model:指定使用的大语言模型标识。你可以根据自己的需求和预算选择不同的模型。max_tokens:单次对话中模型生成的最大 token 数量。8192 是一个比较合理的默认值,足以应对大多数对话场景。temperature:生成随机性参数。0.7 表示适度的创造性,你可以调低到 0.1-0.3 来获得更确定性的回答,或者调高到 0.9 以上来获得更发散的回答。max_tool_iterations:工具调用的最大迭代次数。设为 20 意味着 Agent 在一次对话中最多可以连续调用 20 次工具。这是一个安全限制,防止 Agent 陷入无限循环。
这种"本地控制 + 云端推理"的架构,正是 PicoClaw 能够将内存占用压缩到 10MB 以下的根本原因。大模型推理是 AI 系统中最耗资源的环节,把它交给云端处理后,本地只需要维护一个轻量的 HTTP 客户端和消息队列即可。
行动层:工具调用系统
行动层负责"执行操作"。一个只会聊天的 Bot 并不是真正的 Agent——Agent 的核心价值在于它能够"做事"。
PicoClaw 内置了以下核心工具能力:
- Shell 命令执行:Agent 可以在宿主设备上执行 Shell 命令。这意味着你可以通过聊天指令让 Agent 查看系统状态、管理文件、执行脚本等等。
- 文件读写:Agent 可以读取和写入文件系统中的文件。结合 Shell 命令,你可以让 Agent 帮你编辑配置文件、生成报告、整理数据。
- 联网搜索:通过接入 Brave Search API,Agent 可以实时搜索互联网上的信息。这让它不再局限于大模型的训练数据,而是能够获取最新的信息。
- 语音转文字:通过 Groq 的 Whisper 服务,Agent 可以处理语音输入。
- Skills 技能系统:PicoClaw 还支持技能(Skills)的安装和扩展,你可以为它添加自定义的工具和能力。
值得注意的是,Shell 命令执行这个能力需要谨慎对待。莫潇羽@无忆研习社提醒大家,在生产环境中部署时,一定要做好权限隔离,建议使用非 root 用户运行 PicoClaw,并通过 Linux 的权限机制限制它能够访问的目录和命令范围。
"AI 自引导"的开发模式
PicoClaw 的 README 中提到了一个有趣的细节:项目核心代码的 95% 是由 AI Agent 自主生成的,人类开发者主要负责架构设计和代码审查。
这是一种被称为"AI 自引导(AI-Bootstrapped)"的开发模式。具体来说,开发团队先用 AI Agent 分析了现有 Agent 框架的架构和代码,然后让 Agent 按照 Go 语言的最佳实践重新生成核心逻辑代码。人类开发者在这个过程中扮演"架构师 + 审查者"的角色,负责把控方向、审查代码质量、处理边界情况。
这种开发模式在开源社区中正变得越来越普遍。它的优势在于可以快速完成大量重复性的编码工作,让人类开发者把精力集中在更高层次的设计决策上。
硬件选型指南
PicoClaw 最吸引人的特性之一就是它对硬件要求极低。莫潇羽为大家整理了几种典型的硬件方案,帮助不同需求的读者找到适合自己的选择。
极致性价比方案:LicheeRV-Nano
LicheeRV-Nano 是矽速科技自家出品的一款超小型 RISC-V 开发板,售价约 9.9 美元(折合人民币约 70 元左右)。
它的核心参数:
- CPU:RISC-V 架构,主频 1GHz
- 内存:64MB DDR
- 存储:支持 MicroSD 卡
- 网络:板载以太网或可选 WiFi
- 尺寸:约 25mm × 21mm,比一枚硬币大不了多少
64MB 的内存对于 PicoClaw 来说绰绰有余——PicoClaw 只需要不到 10MB。这意味着你还有超过 50MB 的内存空间来运行其他服务。
这个方案适合追求极致性价比、有一定嵌入式开发基础的开发者。
入门友好方案:树莓派
树莓派(Raspberry Pi)是嵌入式社区最知名的开发板之一,社区生态完善,文档丰富,非常适合小白入门。
即使是最老的树莓派 3B,也有 1GB 的内存和四核 ARM 处理器,运行 PicoClaw 完全不在话下。如果你手头已经有一块闲置的树莓派,那直接拿来用就好。
树莓派的优势在于生态成熟——你遇到的绝大多数问题,都能在社区论坛上找到答案。对于第一次接触嵌入式设备的读者,莫潇羽推荐从树莓派开始。
零成本方案:旧手机刷 Linux
如果你有一台已经淘汰的安卓手机,可以考虑用它来运行 PicoClaw。通过 Termux 或者刷入 Linux 发行版,旧手机可以变成一台迷你 Linux 服务器。
大多数几年前的手机都有至少 2-4GB 的内存和多核处理器,硬件性能远超 PicoClaw 的最低要求。而且手机自带电池,在断电情况下还能继续运行一段时间,算是一个天然的 UPS。
不过这个方案有一些注意事项:
- 手机的散热不如专门的开发板,长时间满负荷运行可能会有温度问题。
- 不同手机型号的 Linux 适配程度不同,可能需要额外的折腾。
- 建议使用 Termux 方案,兼容性相对最好。
其他可选硬件
PicoClaw 还可以运行在以下设备上:
- NanoKVM:矽速科技的另一款产品,主打远程 KVM 控制。
- MaixCAM:带摄像头的 AI 开发板,适合需要视觉感知的场景。
- 安卓电视盒:刷入 Armbian 后,几十块的电视盒也能变成 Agent 服务器。
- 路由器:理论上,刷了 OpenWrt 的路由器也可以运行 PicoClaw,但这取决于路由器的 CPU 架构和可用内存。
完整部署教程
下面莫潇羽@无忆研习社 给大家做一个从零开始的完整部署流程讲解。我会尽量把每个步骤都说清楚,让没有服务器运维经验的读者也能跟着操作。
方式一:使用预编译二进制文件(推荐新手)
这是最简单的部署方式,适合大多数用户。
第一步:下载二进制文件。
到 PicoClaw 的 GitHub Release 页面,根据你的设备 CPU 架构下载对应的二进制文件。
下载地址:https://github.com/sipeed/picoclaw/releases
常见的架构对照:
- x86_64 电脑(包括大多数台式机和笔记本):选择
amd64版本 - 树莓派 3B/4B:选择
arm或arm64版本 - RISC-V 开发板(如 LicheeRV-Nano):选择
riscv64版本
如果你不确定自己设备的架构,可以在终端中执行以下命令查看:
uname -m
输出结果的对照关系:
x86_64→ 下载 amd64 版本aarch64或armv7l→ 下载 arm64 或 arm 版本riscv64→ 下载 riscv64 版本
第二步:赋予执行权限并移动到系统路径。
# 假设下载的文件名为 picoclaw-linux-amd64
chmod +x picoclaw-linux-amd64
# 重命名为更简洁的名称
mv picoclaw-linux-amd64 picoclaw
# 移动到系统路径(可选,方便全局调用)
sudo mv picoclaw /usr/local/bin/
第三步:初始化配置。
picoclaw onboard
这个命令会在 ~/.picoclaw/ 目录下生成默认的配置文件。初始化完成后,你需要编辑配置文件来填入你的 API 密钥。
方式二:从源码编译
如果你想从源码编译,或者需要对代码做一些自定义修改,可以按照以下步骤操作。
前置要求: 确保你的开发机上安装了 Go 语言环境。Go 的版本建议使用 1.21 或更高版本。
检查 Go 是否已安装:
go version
如果没有安装,可以参考 Go 官方文档进行安装:https://go.dev/doc/install
编译步骤:
# 第一步:克隆项目代码
git clone https://github.com/sipeed/picoclaw.git
# 第二步:进入项目目录
cd picoclaw
# 第三步:安装依赖
make deps
# 第四步:编译
# 只编译当前平台
make build
# 或者编译所有平台(会同时生成 x86、ARM、RISC-V 等多个版本)
make build-all
# 第五步:安装到系统路径(可选)
make install
编译完成后,生成的二进制文件会出现在项目的 build 或 bin 目录下。
如果你需要为不同于当前机器架构的平台编译(交叉编译),Go 的工具链让这件事变得非常简单:
# 示例:在你的开发机上为树莓派编译
GOOS=linux GOARCH=arm64 make build
# 然后通过 scp 把编译好的文件传到树莓派
scp build/picoclaw-linux-arm64 pi@raspberrypi.local:~/picoclaw
方式三:Docker 部署
如果你的设备支持 Docker(比如 x86 服务器或者较新的树莓派 4B),Docker 部署是最省心的方式。
# 第一步:克隆项目代码
git clone https://github.com/sipeed/picoclaw.git
cd picoclaw
# 第二步:配置 API 密钥
cp config/config.example.json config/config.json
vim config/config.json # 用你喜欢的编辑器打开,填入 API 密钥
# 第三步:构建并启动服务
docker compose --profile gateway up -d
# 第四步:查看运行日志
docker compose logs -f picoclaw-gateway
# 如果需要停止服务
docker compose --profile gateway down
Docker 方式还支持"一次性对话模式",适合快速测试:
# 直接提问
docker compose run --rm picoclaw-agent -m "今天天气怎么样?"
# 交互式对话模式
docker compose run --rm picoclaw-agent
如果你修改了代码或配置,需要重新构建镜像:
docker compose --profile gateway build --no-cache
docker compose --profile gateway up -d
配置文件详解
配置文件是 PicoClaw 运行的核心,位于 ~/.picoclaw/config.json。下面莫潇羽@无忆研习社 逐个字段为大家解释每个配置项的含义和最佳实践。
完整配置文件模板
{
"agents": {
"defaults": {
"workspace": "~/.picoclaw/workspace",
"model": "glm-4.7",
"max_tokens": 8192,
"temperature": 0.7,
"max_tool_iterations": 20
}
},
"providers": {
"openrouter": {
"api_key": "你的 API 密钥",
"api_base": "https://openrouter.ai/api/v1"
}
},
"tools": {
"web": {
"search": {
"api_key": "你的 Brave Search API 密钥",
"max_results": 5
}
}
},
"channels": {
"qq": {
"enabled": true,
"app_id": "你的 QQ 机器人 App ID",
"app_secret": "你的 QQ 机器人 App Secret",
"allow_from": []
}
}
}
agents 配置段
这个部分定义了 Agent 的核心行为参数。
workspace:Agent 的工作目录。Agent 在执行文件操作时,会以这个目录为基准。默认值 ~/.picoclaw/workspace 是一个合理的选择,如果你想把工作目录放到其他位置(比如一个外挂的 U 盘或 NAS 挂载点),可以修改这个路径。
model:指定调用的大语言模型。这里的模型标识取决于你使用的 API 提供商。例如:
- 如果通过 OpenRouter,可以使用
google/gemma-2-9b-it、meta-llama/llama-3-8b-instruct等标识。 - 如果直接对接智谱 AI,可以使用
glm-4系列模型标识。 - 如果使用兼容 OpenAI API 格式的国内大模型服务(如通义千问、百川等),填入对应的模型标识即可。
max_tokens:限制模型单次回复的最大 token 数。建议根据使用场景调整:
- 日常聊天:4096 就够了
- 需要生成长文本或代码:8192 - 16384
- 简短问答场景:2048
temperature:控制输出的随机性和创造性。
- 0.0 - 0.3:输出非常确定,适合需要精确答案的场景(代码生成、数据分析)
- 0.4 - 0.7:平衡模式,大多数场景推荐
- 0.8 - 1.0:高创造性,适合头脑风暴、创意写作
max_tool_iterations:Agent 在单次对话中连续调用工具的最大次数。这是一个安全阀门,防止 Agent 因为逻辑错误而无限循环地调用工具。20 次在大多数场景下足够,如果你的使用场景涉及复杂的多步操作,可以适当调高。
providers 配置段
这个部分定义了大模型 API 的连接信息。
PicoClaw 默认支持 OpenRouter 作为 API 聚合层。OpenRouter 的好处是它聚合了多家大模型服务商,你可以用一个 API 密钥访问上百种不同的模型。
如果你更倾向于直接对接某一家大模型服务商,可以将 api_base 修改为对应的 API 地址。只要服务商的 API 格式兼容 OpenAI 的 Chat Completions 接口,PicoClaw 都可以无缝对接。
例如,如果要对接国产的大模型 API 服务:
{
"providers": {
"custom": {
"api_key": "你的 API 密钥",
"api_base": "https://你的API服务地址/v1"
}
}
}
tools 配置段
这个部分定义了 Agent 可以使用的外部工具。
目前配置文件中主要涉及的是联网搜索功能。PicoClaw 使用 Brave Search 作为搜索引