字段名不一致会导致表单为空、提交失败或报错cannot read property 'xxx' of undefined;需确保config.json中form_fields的key与接口返回字段严格匹配,推荐用api_key映射或handler.js重命名响应字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在AionClaw中新增或修改技能后,前端页面显示的字段名与后端接口实际返回的字段名不一致,会导致表单为空、数据无法提交或控制台报错Cannot read property 'xxx' of undefined。这种情况在自定义技能配置、对接内部系统API或复用社区模板时高频出现。
确认技能配置中定义的字段名
打开AionClaw安装目录下的skills/your-skill-name/config.json文件,找到form_fields数组。每个字段对象必须包含key字段,该值将作为前端表单项的绑定标识和默认提交键名。
例如:"key": "customer_id" → 前端输入框会以customer_id为变量名收集值,提交时也以该名作为JSON键发送。
⚠️注意:【key值必须全小写、仅含字母数字下划线,且不能与JavaScript保留字冲突】。若填成CustomerID或user-name,前端无法正确映射。
抓包验证接口实际返回字段
启动AionClaw → 进入对应技能页面 → 打开浏览器开发者工具(F12)→ 切换到Network标签页 → 操作触发接口请求(如点击“获取客户列表”)。
找到目标请求 → 点击查看Response → 观察返回JSON结构中的顶层字段名。
若接口返回{"customerId": "C1001", "userName": "张三"},但config.json中form_fields里写的"key": "customer_id",则必然不匹配。
这一步必须做,因为很多内部API沿用驼峰命名,而AionClaw前端默认按蛇形命名解析。
强制同步字段名的两种方法
方法一:改前端映射(推荐用于临时适配)
在skills/your-skill-name/config.json中,为对应字段添加api_key字段。例如:
{ "key": "customer_id", "api_key": "customerId", "label": "客户编号" }
这样前端仍显示并收集customer_id,但提交时自动将值赋给customerId字段发往接口。
方法二:改后端响应(推荐用于长期维护)
在技能的handler.js中,于return前对响应数据做字段重映射:
response = { customer_id: data.customerId, user_name: data.userName };
确保返回JSON的键名与form_fields中所有key完全一致。
执行字段一致性校验脚本
第一步:进入AionClaw安装根目录 → 找到tools/field-checker.js文件。
第二步:用Node.js运行该脚本:node tools/field-checker.js --skill your-skill-name。
第三步:脚本会自动比对config.json中全部key是否在最近一次接口Response样本中存在,缺失项将以红色标出。
第四步:检查输出结果中的⚠ mismatched keys区块,逐条修正config.json或handler.js。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!







