Урок 2 из 10•7 мин

Архитектура PicoClaw

Цели урока

После прохождения этого урока вы сможете:

  • 1Понять архитектуру единого Go-бинарника
  • 2Изучить AI-bootstrapping: как 95% кода написано AI-агентами
  • 3Разобраться в skill system и системе валидации
  • 4Оценить принцип self-contained deployment

Go-архитектура: один бинарник — все возможности

Архитектура PicoClaw принципиально отличается от OpenClaw и NanoClaw. Вместо Node.js runtime с тысячами файлов в node_modules, PicoClaw компилируется в единый статический бинарник. Этот бинарник включает все зависимости, маршрутизацию, обработку навыков и интеграции с LLM. Такой подход делает деплой тривиальным: скопировать один файл на целевое устройство.

Структура проекта

text
picoclaw/
  cmd/
    picoclaw/         # Точка входа (main.go)
  internal/
    agent/             # Ядро AI-агента
    config/            # Парсинг config.json
    gateway/           # Chat gateway сервер
    skills/            # Система навыков (skills)
    llm/               # Адаптеры для LLM-провайдеров
    search/            # Web search (Tavily, Brave, DuckDuckGo)
    cron/              # Планировщик задач
    hardware/          # I2C/SPI инструменты для IoT
  docker/              # Docker Compose конфигурация
  Makefile             # Сборка и кросс-компиляция
  config.example.json  # Шаблон конфигурации

AI-bootstrapping: 95% кода от AI

PicoClaw — один из первых крупных open-source проектов, где 95% кодовой базы было сгенерировано AI-агентами. Команда Sipeed использовала Claude, GPT и другие модели для генерации Go-кода, тестов и документации. Человеческие разработчики выступали в роли архитекторов и ревьюеров: определяли структуру, задавали ограничения и проверяли результат.

Этот подход доказывает, что AI может эффективно создавать production-ready Go-код для embedded-систем — области, традиционно считающейся сложной для автоматической генерации.

Skill System

PicoClaw использует систему навыков (skills) для расширения функциональности агента. Каждый навык — это модуль с валидацией входных параметров, описанием для LLM и функцией исполнения. Навыки регистрируются в реестре при старте и автоматически становятся доступны через tool use API любого подключённого LLM-провайдера.

go
// Пример структуры навыка в PicoClaw
type Skill struct {
    Name        string            `json:"name"`
    Description string            `json:"description"`
    Parameters  []SkillParameter  `json:"parameters"`
    Validate    func(input map[string]interface{}) error
    Execute     func(ctx context.Context, input map[string]interface{}) (string, error)
}

Self-contained deployment

Всё, что нужно PicoClaw для работы, — один бинарник и один файл конфигурации. Нет runtime-зависимостей, нет node_modules, нет виртуальных окружений. Конфигурация хранится в ~/.picoclaw/config.json, рабочие файлы — в ~/.picoclaw/workspace. Это критически важно для edge-устройств с ограниченным хранилищем.

OpenClaw / NanoClaw: Node.js
Требуется Node.js runtime (100+ МБ), установка npm-зависимостей (сотни пакетов), компиляция TypeScript. На RISC-V плате с 64 МБ RAM Node.js физически не запустится — нет достаточно памяти для V8 engine.
PicoClaw: статический бинарник Go
Единый скомпилированный файл размером 10-15 МБ. Никаких внешних зависимостей. Копируется на устройство через scp и запускается. Работает на любой архитектуре, поддерживаемой Go: RISC-V, ARM64, x86, MIPS.

Multi-LLM адаптеры

В отличие от NanoClaw, который привязан к Anthropic SDK и Claude, PicoClaw поддерживает множество LLM-провайдеров через унифицированный интерфейс адаптеров. Каждый провайдер реализует общий интерфейс LLMProvider, что позволяет переключаться между моделями изменением одной строки в конфигурации.

  • OpenRouter — агрегатор моделей (Claude, GPT, Llama и другие)
  • OpenAI — GPT-5.2 и другие модели
  • Anthropic — Claude Sonnet, Opus
  • Google — Gemini 2.5 Pro / Flash
  • DeepSeek — DeepSeek V3, R1
  • Groq — ультрабыстрый inference для Llama, Mixtral
  • Zhipu AI — GLM-4 (китайская модель)

Для edge-устройств с нестабильным интернетом рекомендуется использовать Groq или DeepSeek — они предлагают быстрый inference с низкой задержкой. Для сложных задач подойдут Claude Opus или GPT-5.2 через OpenRouter.

Вопросы для размышления

  • •Почему Go лучше подходит для edge-устройств, чем TypeScript?
  • •Как AI-bootstrapping (95% кода от AI) влияет на качество и поддерживаемость проекта?
  • •Какие преимущества даёт единый статический бинарник по сравнению с runtime-зависимостями?

Источник: Sipeed. © 2026 Reymer AI