AT 命令参考

概述

AT 命令通过串口(USB CDC)发送,适合开发者在调试阶段配置设备、查询状态以及与 Agent 直接交互。 所有命令均以 AT+CLAW= 开头,并通过换行符(回车)触发执行。

默认波特率:1500000

小技巧

普通用户可直接通过 Web 后台完成所有配置,无需使用 AT 命令。AT 命令主要面向开发者调试场景。

连接串口

按以下步骤连接设备串口:

  1. 安装串口工具,例如 PuTTY(Windows)、minicom(Linux)或 screen(macOS / Linux)。

  2. 将 Ameba 开发板通过 USB 连接到电脑,确认对应的串口设备名称(Windows 为 COMx,Linux / macOS 为 /dev/ttyUSBx/dev/tty.usbserial-xxx)。

  3. 打开串口工具,设置波特率为 1500000,数据位 8,停止位 1,无奇偶校验。

  4. 连接成功后,发送以下命令测试与 Agent 的通信:

screen /dev/ttyUSB0 1500000

连接后,在终端输入:

AT+CLAW=ask,你好

若 Agent 正常回复,则表明串口通信工作正常。

备注

不同操作系统下设备名称可能不同。Linux 用户可运行 ls /dev/ttyUSB*ls /dev/ttyACM* 确认设备节点;macOS 用户可运行 ls /dev/tty.usb*

命令速查表

下表列出所有可用的 AT 命令、功能说明及使用示例。

命令

说明

示例

AT+CLAW=ask,<消息>

与 Agent 对话,发送一条自然语言消息并等待回复

AT+CLAW=ask,现在几点了

AT+CLAW=ask,<消息>,sid,<会话 id>

与 Agent 对话并强制使用指定 session_id(用于隔离测试)

AT+CLAW=ask,你好,sid,test1

AT+CLAW=lua_repl

进入 Lua REPL 交互模式(在 REPL 中输入 exit() 退出)

AT+CLAW=lua_repl

AT+CLAW=lua_execute_sync,<路径>[,<JSON 参数>]

按绝对路径同步执行 .lua 文件,阻塞直到脚本返回

AT+CLAW=lua_execute_sync,vfs:/scripts/foo.lua

AT+CLAW=lua_execute_async,<路径>[,<JSON 参数>]

按绝对路径以后台任务方式执行 .lua 文件,立即返回 job_id

AT+CLAW=lua_execute_async,vfs:/scripts/foo.lua

AT+CLAW=cfg

查看当前 LLM 配置(API Key、模型、URL、认证方式等)

AT+CLAW=cfg

AT+CLAW=cfg,key,<val>

设置 LLM API Key

AT+CLAW=cfg,key,sk-xxx

AT+CLAW=cfg,model,<val>

设置模型名称

AT+CLAW=cfg,model,gpt-4o

AT+CLAW=cfg,url,<val>

设置 LLM API 端点 URL

AT+CLAW=cfg,url,https://api.openai.com/v1

AT+CLAW=cfg,backend,<0|1>

设置认证方式:0 = OpenAI Bearer Token,1 = Anthropic

AT+CLAW=cfg,backend,0

AT+CLAW=cfg,search,<key>[,<n>]

设置联网搜索(Tavily)API Key;keyclear 可禁用,n 为每次返回结果数(1–5)

AT+CLAW=cfg,search,tvly-xxx,3

AT+WLCONN=ssid,<ssid>,pw,<pass>

连接指定 Wi-Fi 网络(底层命令,立即生效,配置持久化保存)

AT+WLCONN=ssid,MyNetwork,pw,password123

AT+CLAW=cfg,wifi,<ssid>,<pass>

连接指定 Wi-Fi 网络(应用层命令,与上一条功能相同)

AT+CLAW=cfg,wifi,MyNetwork,password123

AT+CLAW=wifi,clear

清除 Wi-Fi 配置并重启,设备进入 SoftAP 配网模式

AT+CLAW=wifi,clear

AT+CLAW=memory,list

列出所有已存储的长期记忆条目

AT+CLAW=memory,list

AT+CLAW=memory,clear

清除所有长期记忆

AT+CLAW=memory,clear

AT+CLAW=session,list

列出所有会话

AT+CLAW=session,list

AT+CLAW=session,new[,<渠道>,<id>[,<名称>]]

新建会话并切换,旧会话历史保留(默认渠道 serial、id atcmd

AT+CLAW=session,new

AT+CLAW=session,clear

清除当前活动会话的历史记录

AT+CLAW=session,clear

AT+CLAW=session,clear,all

清除所有会话的历史记录

AT+CLAW=session,clear,all

AT+CLAW=cap

列出所有已注册的 Capability(Agent 可调用的能力)

AT+CLAW=cap

AT+CLAW=cap,<id>[,<JSON>][,sid,<会话 id>]

直接调用某个 Capability,可选传入 JSON 参数与会话 id

AT+CLAW=cap,get_info

AT+CLAW=tools[,<会话 id>]

列出某会话对 LLM 可见的工具名(默认 serial 会话)

AT+CLAW=tools

AT+CLAW=fs,list,<path>

列出指定路径下的文件

AT+CLAW=fs,list,vfs:/

AT+CLAW=fs,delete,<path>

删除指定路径的文件

AT+CLAW=fs,delete,vfs:/tmp/test.lua

Lua REPL 模式

AT+CLAW=lua_repl 命令会将串口切换为交互式 Lua 解释器(REPL)。在 REPL 模式下,可以逐行输入 Lua 语句并立即得到执行结果,无需重新编译固件。这对于调试硬件外设、验证逻辑和快速原型开发非常有用。

退出 REPL 模式:在 > 提示符下输入 exit() 并回车。

可用外设模块

以下 Lua 模块仅在 REPL 模式下可直接调用,不能在 Skill 脚本中使用

模块

功能

wifi

Wi-Fi 扫描与连接

uart

UART 串口通信

pwm

PWM 波形输出

ir

红外发送与接收

lcdc

LCD 显示控制器操作

adc

模数转换(ADC)采样

thermal

片上温度传感器读取

touch

触摸屏输入读取

basictimer

硬件基础定时器精确计时

led_strip

WS2812 可编程 LED 灯带控制

备注

gpioi2cspirtcaudiodisplaybutton 等模块在 REPL 和 Skill 脚本中均可使用。上表列出的模块为 REPL 专属,Skill 脚本中无法访问。

使用示例

以下示例展示在 Lua REPL 模式下读取 GPIO 状态并通过 UART 发送数据的基本用法。

首先进入 REPL:

AT+CLAW=lua_repl

进入后终端将显示 > 提示符,逐行输入以下代码:

-- 读取 GPIO 引脚电平(以 PA_0 为例)
local pin = gpio.new("PA_0", gpio.INPUT)
print("GPIO PA_0 level:", pin:read())

-- 通过 UART 发送一条消息
local u = uart.new(0, 115200)
u:write("Hello from Ameba-Claw REPL\r\n")

-- 读取片上温度传感器
local temp = thermal.read()
print("Chip temperature:", temp, "°C")

每行代码回车后立即执行,结果直接输出在终端中。调试完成后,输入 exit() 退出 REPL,恢复正常 AT 命令模式。

小技巧

在 REPL 中可以定义函数、使用循环和条件语句,与标准 Lua 语法完全一致。适合快速验证传感器读值、测试通信时序或批量操作文件系统。