esp-agents-firmware-skill

Guides firmware development for ESP Private Agents devices using ESP-IDF and real SDK APIs.

28|3|Updated Jun 24, 2026
One-click install
npx skills add https://github.com/JasonYANG170/esp-dev-skill --skill esp-agents-firmware-skill-jasonyang170
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: esp-agents-firmware-skill
Source: https://github.com/JasonYANG170/esp-dev-skill/tree/main/repos/esp-agents-firmware
Command: npx skills add https://github.com/JasonYANG170/esp-dev-skill --skill esp-agents-firmware-skill-jasonyang170

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Developing device-side firmware for the ESP Private Agents AI platform requires exact knowledge of the esp-agents-firmware SDK's initialization order, event model, tool registration contract, and board configuration; guessing APIs leads to broken builds and non-starting agents. This Skill grounds every generated line in the repository's real headers, Kconfig symbols, and example source so firmware compiles and connects correctly. ## Core Features & Use Cases - Scenario Recipes: Twelve step-by-step recipes covering build/flash, custom boards, custom deployments, agent initialization and events, provisioning, local tool development, built-in tools, Matter controller service and control, audio pipeline, console commands, and headless devices. - Verified API & Config Reference: Real signatures for esp_agent, app_agent, agent_setup, app_audio, app_device, app_display, and Matter controller modules, plus all Kconfig options and board-level macros. - Pitfall Prevention: Thirteen critical pitfalls with wrong/correct code pairs, such as heap-allocating tool results, forwarding events to the default handler, and satisfying the three agent-start preconditions. - Use Case: Add a new local tool to a voice chat agent on an ESP-BOX-3: register the handler in firmware, declare the matching inputSchema in agent_config.json, follow the canonical app_main init order, then build and flash with idf.py. ## Quick Start Ask the AI to create a voice chat agent firmware based on the voice_chat example for the ESP-BOX-3 board, including a custom local tool registered in both firmware and agent_config.json.

Frequently Asked Questions about esp-agents-firmware-skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build and flash esp-agents-firmware examples?

Use ESP-IDF v5.5.2 or later on the release/5.5 branch, enter examples/voice_chat or examples/matter_controller, run idf.py select-board --board <board>, then idf.py build flash monitor. Supported boards include esp_box_3, esp_vocat_board_v1_2, and m5stack_cores3.

How do I register a local tool for an ESP Private Agents device?

Register the handler in firmware with app_agent_register_tool using the esp_agent_tool_handler_t signature, and declare the same tool name with an inputSchema in the example's agent_config.json on the Dashboard. Tool results must be heap-allocated with strdup or malloc, and parameters support only NUMBER, STRING, and BOOL types.

Which boards and chips does esp-agents-firmware support?

It targets ESP32-S3 based boards: ESP-BOX-3, ESP-VoCat Core Board v1.2, M5Stack CoreS3, and M5Stack CoreS3 with the H2 Gateway module. Only the H2 Gateway variant supports Thread Border Router functionality for the Matter controller example.

Why does my ESP agent never reach the STARTED state?

The agent starts only when three preconditions are all met: Wi-Fi connected, agent_id set, and refresh_token set. Set them via menuconfig CONFIG_AGENT_SETUP_DEFAULT_AGENT_ID, serial commands set-agent and set-token, or the RainMaker Home App.

Can I use a custom ESP Private Agents deployment instead of the public cloud?

Yes. Change CONFIG_ESP_AGENT_API_ENDPOINT in menuconfig under ESP Agent Config to your self-hosted AWS endpoint, rebuild and flash, then set the refresh token and agent_id via the serial set-token and set-agent commands.

What are the limitations of the Matter client-only controller?

The client-only Matter controller requires disabling the Matter server, commissioner, Wi-Fi and Thread commissioning drivers, and CHIPOBLE. It depends on the RainMaker REST API and can only control the OnOff, LevelControl, and ColorControl clusters.