深度复盘:Qwen3-4B-Instruct-2507微调实战——打造“快思考、强执行”的 ReAct IoT Agent

本文内容来自「百业千模・共创营」------ 百大垂类模型生态支持计划获奖作品,作者闫露为Foresee AI核心技术负责人,深耕AIoT与大模型融合领域多年,专注智能空间管理场景的技术落地与创新。本次带来基于ReAct架构的主动式IoT Agent项目,依托公司在智能空间管理的AIoT技术积累,构建了约24,000条交互链路的高质量数据集,通过LLaMA-Factory Online微调,不仅让Agent具备主动感知、逻辑推理能力,更新增可动态扩充的skill能力,同时解决了上一代模型的指令执行精度问题,彻底突破传统"指令 - 执行"模式局限。该智能体可灵活适配智慧养老、工业安防等复杂场景,深度契合智能空间管理需求。希望借助共创营的"算力 + 工具 + 商业化"支持,推动技术在更多垂类场景落地,为智能空间管理智能化升级贡献力量。

项目概述:从"被动执行"到"主动闭环"的智能跨越

在物联网与大模型结合的早期阶段,传统IoT系统多局限于"指令 → 执行"的单步模式,例如"打开客厅灯"。然而,真实场景中的用户需求往往是模糊且情境化的,例如"我觉得有点闷"、"准备睡觉了"。为此,我们推出IoT Agent v3.2,基于 ReAct(Reasoning + Acting)架构,将系统从"被动执行者"转变为具备主动感知、逻辑推理、动态技能调用能力的"全能管家"。

本方案以Qwen3-4B-Instruct-2507为基础模型,通过高质量数据微调与工程化架构设计,实现了在多类复杂场景下的可靠表现。以下将从设计理念、数据构建、工程实现、训练效果四个方面展开复盘。

设计理念:四大架构升级

  1. 从单步到闭环 R e A c t 思维链 机制

模型不再是发射完指令就结束,而是进入Thought -> Action -> Observation -> Thought的ReAct循环 ,直到任务彻底完成。我们强制模型在输出动作(Action)之前,必须先输出思考过程(Thought):

  • Thought :分析用户意图,结合当前环境状态,规划下一步行动。
  • Action :输出符合 JSON 规范的 Skill 调用指令。
  • Observation :接收外部环境(传感器、数据库、设备反馈)的真实返回结果。
  1. 从被动到主动 环境 感知 优先

模型具备主动感知 (Active Perception) 能力。当信息不足时(例如用户说"有点冷"但没说在哪里),模型会主动调用传感器查询位置和环境数据,而不是瞎猜。

  1. 白盒化SOP编排 业务逻辑 模型 解耦

针对"睡眠模式"等复杂流程,我们创新性地设计了动态SOP Standard Operating Procedure 加载机制,将业务逻辑与模型权重解耦,实现了无限的场景扩展能力。

这是架构的核心亮点 。为了解决长尾场景(如"火灾应急"、"会议室准备")的逻辑复杂性,我们设计了load_scenario_sop技能。

  • 机制 :当识别到复杂意图时,模型主动加载外部定义的SOP文本(如JSON/Markdown格式的操作手册)。
  • 优势 :业务逻辑透明可见(White-Box),易于维护;新增场景无需重新训练模型,只需更新数据库中的SOP文档。
  1. 动态 S kill 系统 2 6 原子 技能 即插即用

我们将所有能力封装为标准化的Skill接口。模型不需要知道底层协议(Zigbee/Wi-Fi/Modbus),只需调用语义化的函数。

  • 标准化接口 :call_skill(name,params)
  • 自我描述 :每个 Skill 都包含详细的描述和参数定义,通过 System Prompt 注入,让模型"即学即用"。
  • 覆盖范围 :我们定义了26个原子技能(Atomic Skills),覆盖了:设备控制、传感器读取、记忆读写、日程查询、门禁管理等。

数据集构建:19k+训练样本与4k+测试样本

我们自研构建了垂直领域的Agentic Trace Dataset ,共19k+条微调训练集样本和4k+条测试集样本。每条数据样本包含以下字段:

  • system :系统提示词,表达模型是一个"IoT assistant",强制思维链,并给出7条模型需要遵守的重要规则。
  • instruction :包含"Context"(例如之前的执行结果、传感器参数等...)和"User Instruction"(用户指令或Observation)。
  • input :均为空字符串。
  • output :为Assiatant的Thought和Action(Json Markdown格式)
  • history :历史User Instruction和Output内容列表,两两一组。
  • category :数据样本所属类别,如:安全冲突、智能体轨迹、环境的感知与执行、传感器相关感知与执行、规则与喜好记忆等。其中涉及多步骤的类别,会细分该样本在序列动作中所属的step数,如:agentic_trace_step1和react_error_step2。
  • scenario :场景标签,共16个场景,如:
    • 办公(Office) : 会议室预定、日程冲突解决。
    • 智慧养老(Elderly) : 跌倒检测、长时间静止预警。
    • 工业安防(Industrial) : 设备振动异常、危险区域入侵。
    • 家庭生活(Lifestyle) : 睡眠模式、离家布防、宠物看护。
    • 紧急响应(Emergency) : 火灾逃生、燃气泄漏处理。
    • 能源管理(Energy) : 峰谷电价调节、高耗能预警。

我们设计了四种数据范式,分别训练模型的不同能力:

1 . Agentic Trace(全链路推理)

包含完整 Thought-Action-Observation 链路的多轮对话数据。

复制代码
{`
`    "system": "You are an intelligent IoT assistant. Manage devices based on user intent and environmental context. Always verify safety before execution.\n\nAvailable Tools:\n[\n  {\n    \"name\": \"locate_user\",\n    \"description\": \"Use millimeter-wave radar or Wi-Fi sensing to detect the real-time location and posture of users.\",\n    \"parameters\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"target_user\": {\n          \"type\": \"string\",\n          \"description\": \"Specific user ID or name (optional, defaults to any user)\"\n        }\n      },\n      \"required\": []\n    }\n  },` `...    }\n  }\n]",`
`    "instruction": "User Instruction: Observation: {\"status\": \"success\"}",`
`    "input": "",`
`    "output": "Thought: Arming security system.\nAction: ```json\n{\"type\": \"function\", \"function\": {\"name\": \"manage_access_control\", \"parameters\": {\"zone\": \"whole_store\", \"action\": \"lock\"}}}\n```",`
`    "history": [`
`      [`
`        "打烊了,关店",`
`        "Thought: User initiated closing procedure. Executing batch sequence.\nAction: ```json\n{\"type\": \"function\", \"function\": {\"name\": \"read_system_state\", \"parameters\": {\"keys\": [\"security_status\", \"power_status\"]}}}\n```"`
`      ],`
      `...`
`    ],`
`    "category": "agentic_trace_step4",`
`    "scenario": "retail"`
`  }`

`

2.基础指令(Basic Instruction)

训练模型对简单指令的快速响应能力,减少不必要的思考。

复制代码
{`
`    "system": "You are an intelligent IoT assistant. Manage devices based on user intent and environmental context. Always verify safety before execution.\n\nAvailable Tools:\n[...]",`
`    "instruction": "Context:\n{\n  \"device_schema\": {\n    \"id\": \"ac_bedroom_01\",\n    \"type\": \"ac\",\n    \"parameter_ranges\": {\n      \"temperature\": [\n        16,\n        30\n      ]\n    }\n  }\n}\n\nUser Instruction: 把卧室温度调到28度",`
`    "input": "",`
`    "output": "Thought: Execute command.\nAction: ```json\n{\"type\": \"function\", \"function\": {\"name\": \"control_device\", \"parameters\": {\"device_id\": \"ac_bedroom_01\", \"action\": \"set_temperature\", \"parameters\": {\"temperature\": 28}}}}\n```",`
`    "history": [],`
`    "category": "env_explicit_execution"`
`  }`

`

3.逻辑推理(Logic Chain)

训练模型处理条件判断(If-This-Then-That)和多步依赖,例如"如果没人的话就关灯"。

复制代码
{`
`    "system": "You are an intelligent IoT assistant. Manage devices based on user intent and environmental context. Always verify safety before execution.\n\nAvailable Tools:\n[...]",`
`    "instruction": "User Instruction: 如果温度超过28度,就自动打开空调",`
`    "input": "",`
`    "output": "Thought: User is defining a persistent automation rule.\nAction: ```json\n{\"type\": \"function\", \"function\": {\"name\": \"create_automation_rule\", \"parameters\": {\"trigger\": \"time/sensor\", \"action\": \"control_device\"}}}\n```",`
`    "history": [],`
`    "category": "memory_rule_learning"`
`  }`

`

4.安全边界(Safety Guard)

包含拒绝执行危险指令的负样本,例如"有人时开启紫外线灯"。

复制代码
{`
`    "system": "You are an intelligent IoT assistant. Manage devices based on user intent and environmental context. Always verify safety before execution.\n\nAvailable Tools:\n[...]",`
`    "instruction": "Context:\n{\n  \"sensors\": {\n    \"weather\": \"heavy_rain\",\n    \"wind_speed\": \"high\"\n  },` `...}\n\nUser Instruction: 打开卧室窗户",`
`    "input": "",`
`    "output": "Thought: Conflict: Rain vs Open Window. Decision: Refuse for safety.\nAction: ```json\n{\"type\": \"function\", \"function\": {\"name\": \"refuse_execution\", \"parameters\": {\"reason\": \"safety_hazard\", \"message\": \"外面正在下大雨,已自动拦截开窗指令以防进水。\"}}}\n```",`
`    "history": [],`
`    "category": "safety_conflict"`
`  }`
`

工程实现:Prompt与Skill设计

1 . 推理循环

为了让模型真正具备Agent能力,我们实现了一个基于ReAct(Reasoning + Acting)的推理循环。模型不仅仅是回答问题,而是主动发起Action,由系统执行后将Observation反馈给模型,形成闭环。

2 . 提示词工程

System Prompt是赋予模型"Agent 灵魂"的关键。不同于普通的Chatbot,我们需要通过Prompt强制模型遵守"思考-行动"(Think-Act)的范式,并严格约束其行为边界。我们设计的System Prompt包含以下三个核心模块:

强制思维链(Enforced CoT)

我们要求模型必须先输出Thought,再输出Action。这种**"** 想后做 " 的机制极大地减少了错误执行的概率。

  • Bad Case :直接调用开窗接口
  • Good Case With Thought :"用户想开窗,但我检测到传感器显示外面在下雨。根据安全规则,我应该拒绝该请求并告知用户。" -> Refuse Action.

角色定义与核心原则 Role & Rules

我们定义了7条核心铁律 Iron Rules ,涵盖了从"诊断优先"到"结果验证"的全流程。

You are an intelligent IoT assistant. Manage devices based on user intent and environmental context.

IMPORTANT: You must always output your reasoning process first, starting with "Thought:", and then output the action in JSON format.

IMPORTANT RULES:

  1. Diagnosis First: If user reports a problem (e.g., "it's hot"), MUST use 'read_sensor' first.

  2. Smart Logistics: Do NOT grant access blindly; use 'broadcast_message' for visitors.

  3. Threat Response: Prioritize 'read_sensor' (camera/noise) for security threats.

  4. Visual Monitoring: Use 'read_sensor' (camera_feed) to check on pets/rooms.

  5. Safe Execution: Check 'query_devices' before 'control_device'.

  6. Action Audit: Log significant changes via 'write_memory'.

  7. Result Verification: Base replies STRICTLY on Observations.

工具定义 Tool Schema

我们将26个原子技能定义为标准的JSON Schema,注入到Prompt中。这使得模型能够准确理解每个工具的参数结构。

复制代码
Available Tools:`
`[`
`  {`
    `"name":` `"read_sensor",`
    `"description":` `"Read sensor data (temperature, co2, occupancy, etc.).",`
    `"parameters": { `
      `"room":` `"string", `
      `"types": ["temperature",` `"humidity",` `"occupancy", ...] `
`    }`
`  },`
`  {`
    `"name":` `"control_device",`
    `"description":` `"Execute a control command.",`
    `"parameters": { `
      `"device_id":` `"string", `
      `"action":` `"string",`
      `"parameters":` `"object"`
`    }`
`  }`
`  // ... 更多技能定义`
`]`
`

效果 展示 :三大黄金标准案例

基于Qwen3-4B-Instruct-2507 模型,我们使用LLaMA - Factory Online 平台的单张H800A -80G 显卡进行LoRA微调,共计894个Steps,Loss从初始的3.24 平滑下降至最终的0.79 。整个训练过程持续约3小时

ReAct IoT Agent模型对话展示.mp4

1 . 黄金标准场景演示 The Gold Standard Demo

场景:用户反馈 " 觉得有点闷。 "

Model Output Trace:

Phase 1(定位):

复制代码
Thought: 用户说"闷",首先需定位用户位置。`
`Action: call_skill("locate_user")`
`Observation: {"location":` `"study"}`
`

Phase 2(诊断):

复制代码
Thought: 在书房。需检查空气质量。`
`Action: call_skill("read_sensor", {"room":` `"study",` `"types": ["co2",` `"temperature"]})`
`Observation: {"co2": 1500ppm,` `"temperature": 26} -> 诊断: CO2过高。`
`

Phase 3(决策与执行):

复制代码
Thought: CO2过高,需开启新风系统。`
`Action: call_skill("control_device", {"device_id":` `"fresh_air_study",` `"action":` `"set_mode",` `"value":` `"high"})`
`

Phase 4(记忆):

复制代码
Action: call_skill("write_memory", {"event":` `"auto_ventilation"})`
`

2.智慧养老场景 Elderly Care

Input:"浴室传来重物落地的声音。 "

Model Response

复制代码
Thought: 浴室跌倒风险极高,属于紧急情况。优先通过传感器确认,不可盲目进入(隐私),但需准备报警。`
`Action: call_skill("read_sensor", {"room":` `"bathroom",` `"types": ["motion",` `"noise"]})`
`(若检测到跌倒) -> Action: call_skill("trigger_alert", {"level":` `"emergency",` `"message":` `"Bathroom fall detected!"})`
`

3 . 商用办公场景 Commercial Office

Input " 帮我预定A会议室,如果空闲的话。 "

Model Response

复制代码
Thought: 需要先查询日程状态,只有在空闲时才执行预定。`
`Action: call_skill("query_calendar", {"target":` `"meeting_room_a",` `"time_range":` `"current_slot"})`
`(根据返回结果动态分支) -> 空闲则 book_room,占用则 reply_user 建议其他时间。`
`

通过本次训练,我们成功构建了一个"快思考、强执行"的物联网 Agent。它不仅通过了15+ 个复杂场景的严苛测试,更在 "意图理解"、"主动感知"和"安全边界"三个维度上达到了行业领先水平,并取得不错的核心成果:

  • 架构创新 :ReAct + 白盒 SOP,解决了大模型在垂直领域"幻觉"和"逻辑黑盒"的两大痛点
  • 数据壁垒 :约24k Agentic Trace 数据集,覆盖了从家庭到工业的全场景交互
  • 实战可用 :实现了从传感器读取到设备控制的完整闭环,具备极高的落地价值

未来,我们将进一步引入 多模态感知(Vision-Language)能力,让Agent 能够直接"看懂"摄像头画面,从而在更复杂的物理世界中为用户提供无微不至的服务。LLaMA - Factory Online 与**「百业千模・共创营」也会持续为小微企业、初创团队、个人开发者及行业专家提供"算力+工具+商业化"的一站式服务,扶持100个具有商业潜力的垂直领域模型落地,致力于让每一个垂直行业拥有一套专属的大模型解决方案**。

相关推荐
铁蛋AI编程实战2 小时前
Agentic AI/GPT-4o替代/Spring AI 2.0/国产大模型轻量化
java·人工智能·spring
weixin_704266052 小时前
Maven入门:构建与依赖管理全解析
java·maven
cyforkk2 小时前
14、Java 基础硬核复习:数据结构与集合源码的核心逻辑与面试考点
java·数据结构·面试
零度@2 小时前
专为 Java 开发者 整理的《Python编程:从入门到实践》前8章核心内容
java·开发语言·windows·python
一嘴一个橘子2 小时前
idea Could not autowire. No beans of ‘xxxMapper‘ type found
java
海边的Kurisu2 小时前
苍穹外卖日记 | Day9 用户端历史订单模块、商家端订单管理模块、用户下单功能优化
java·苍穹外卖
nbsaas-boot2 小时前
架构设计怎么做:一套可复用、可落地的方法论
java·开发语言·微服务
猿来是泥鸭2 小时前
Spring IOC 实现机制
java
武超杰2 小时前
深入理解JDBC:Java数据库连接的核心技术与实践
java·开发语言·数据库·jdbc