Архитектура 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. Такой подход делает деплой тривиальным: скопировать один файл на целевое устройство.
Структура проекта
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-провайдера.
// Пример структуры навыка в 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-устройств с ограниченным хранилищем.
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-зависимостями?
