如何提出请求
告诉 Agent 要使用 gclight-control,并提供目标串口、希望读取或修改的状态,以及状态变更所需的明确参数。该 Skill 是 GC Light 设备族的统一入口,当前 gcli 仅支持 Mini。Windows 端口通常类似 COM3,Linux 端口通常类似 /dev/ttyACM0;请使用系统实际分配的端口。
只读请求示例:
使用 gclight-control 查询 COM3 上 Mini 的序列号和当前输出状态。
使用 gclight-control 读取 /dev/ttyACM0 上 Mini 的实际电流、温度和蓝牙状态。
状态变更示例:
使用 gclight-control 将 /dev/ttyACM1 上 Mini 的电流设为 120 mA 并开启输出,然后验证状态。
立即关闭 COM3 上 Mini 的激光输出,并确认 output_enabled 为 false。
支持的操作
| 意图 | Agent 使用的 gcli 操作 |
|---|---|
| 探测已知候选端口 | mini discover <PORT> [...] |
| 查询身份 | mini -p <PORT> info |
| 查询输出状态与实际电流 | mini -p <PORT> state |
| 查询全部或指定状态字段 | mini -p <PORT> status [FIELD ...] |
| 设置电流并开启输出 | mini -p <PORT> laser-on --current-ma <MA> |
| 关闭输出 | mini -p <PORT> laser-off |
| 只修改电流设定 | mini -p <PORT> set-current --current-ma <MA> |
| 查询或切换蓝牙 | `mini -p |
| 执行设备自检 | mini -p <PORT> self-test |
| 读取有限数量的主动上报 | mini -p <PORT> events --count <N> --event-timeout <SECONDS> |
可查询的状态字段为 output-state、actual-current、actual-voltage、temperature-1、pd-data、current-setting 和 bluetooth-state。电流单位为 mA,电压单位为 mV,温度单位为摄氏度。
如果你希望自己运行这些命令,请查看 gcli 命令参考。
Skill 如何执行状态变更
laser-on、laser-off、set-current、蓝牙开关和 self-test 都属于设备状态变更。Skill 只会在请求明确授权对应操作时执行。
开启输出
开光前,Agent 应先查询 info 和 state,使设备序列号与变更前输出状态可见。变更命令只执行一次,然后再次查询 state,确认实际 output_enabled 状态。
关闭输出
对于紧急或明确的关光请求,Agent 应先发送 laser-off,再进行可选诊断,最后查询 state 并确认 output_enabled 为 false。
设置电流或切换蓝牙
设置电流后查询 current-setting 与 output-state;切换蓝牙后执行 bluetooth get。命令退出成功但没有后续状态证据,不足以证明变更已经生效。
超时、失败与不确定结果
- 成功的设备命令通常向 stdout 写入一个紧凑 JSON 值;Agent 只在退出码为
0后解析或报告它。 - 参数解析错误返回退出码
2;设备、传输或运行时错误返回退出码1。Agent 应保留具体错误文本。 - 状态变更命令超时或结果不明确时,设备可能已经执行操作。Agent 不会盲目重试,而是先查询当前状态;若目标状态仍不确定,再征求你的确认。
events请求必须包含有限的数量和单次等待超时,避免 Agent 无限等待。- 退出 AI 客户端、结束
gcli或断开串口都不等同于关闭激光输出。
结果报告应包含已选串口、已知时的设备序列号、命令结果,以及用于确认状态的后续查询。只看到命令构造完成、回执存在或测量值为零,都不能单独作为成功证据。
