
以人为本 AI从感知到行动的 6 层连接框架1. 为什么要聊“从感知到行动”这几年在搭建智能服务系统、机器人控制链路、多模态 Agent 应用时我有一个很明显的体会单独的 AI 能力越来越强但把它们拼成一套“能干活”的系统难度反而更大了。识别模型能认出人、语音模型能听懂话、大模型能写方案可一旦要让系统基于当前环境完成一个实际动作——比如帮用户拿下水杯、在厂房里巡检、根据用户情绪调整播报内容——整个链路就会暴露出各种连接问题。本文想和你系统梳理一套“以人为本 AI”的设计思路从感知到行动的 6 层连接框架。这套框架不是某个开源库也不是某个固定算法而是一种把 AI 系统拆成“感知、理解、记忆、决策、行动、反馈”六个环节的工程方法论。适合阅读本文的读者有三类正在做 AI Agent、智能助手、服务机器人项目的开发者想从“会调用模型 API”进阶到“能设计完整 AI 系统”的同学需要在团队内统一 AI 架构语言、做技术方案评审的工程师。学完本文你能掌握一套可落地的分层思路理解每一层的职责边界、输入输出、关键实现方式和常见坑点并且能照着文中的代码示例自己搭一个最小可运行的“感知—行动”闭环。2. 6 层连接框架是什么先理解一个核心问题什么叫“以人为本”传统 AI 系统的设计很多时候是以“模型”为中心的模型有什么能力系统就提供什么功能。而以人为中心的 AI设计起点是“人的需求、人的状态、人所处的环境”AI 系统需要主动感知这些信息再决定如何行动。举个例子传统智能音箱用户说“播放音乐”音箱播放音乐。以人为本的智能音箱设备感知到用户刚回家、情绪比较疲惫音乐列表自动切换到舒缓类型音量也调整到合适大小。前者是“指令—响应”后者是“感知—理解—行动”。后者需要的就不是单一模型而是一套完整链路。我把这条链路拆成 6 层层级名称核心任务典型输入典型输出L1感知采集层获取环境与用户数据图像、音频、传感器、日志结构化信号数据L2语义理解层把信号变成含义结构化信号数据场景描述、意图、实体L3记忆状态层保存上下文与用户画像历史交互、当前状态状态向量、记忆摘要L4决策规划层制定动作策略意图、状态、记忆任务计划、决策结果L5行动执行层调用工具或物理动作任务计划系统动作、API 调用结果L6价值评估层衡量行动效果并反馈行动结果、用户反馈评估指标、优化信号这 6 层合在一起就形成了一个完整的闭环AI 从环境中感知信息理解后形成状态记忆再基于记忆和当前目标做决策最终执行行动并根据行动结果反过来优化感知和理解策略。为什么要按 6 层来拆一个很重要的原因是可替换性。今天你可能用某厂的语音识别明天可能换成另一家今天用大模型做规划明天可能换更强的推理模型。如果所有逻辑耦合在一起任何替换都会牵一发动全身。分层之后每一层只依赖前一层的输出替换某层只要保证输入输出接口不变即可。3. 环境准备与技术选型本文后续的代码示例以 Python 为主因为 AI 生态里 Python 的感知、理解和工具调用库最全。下面先给出一个通用环境清单。3.1 运行环境操作系统Windows 10/11、Ubuntu 20.04 或 macOS 均可Python 版本建议 3.9 及以上包管理工具pip 或 condaIDEVS Code 或 PyCharm 都可以重点是要能方便调试 Python 脚本。示例项目结构如下human_centric_ai/ ├── main.py # 主程序入口 ├── requirements.txt # 依赖 ├── layers/ │ ├── __init__.py │ ├── perception.py # L1 感知层 │ ├── understanding.py # L2 语义理解层 │ ├── memory.py # L3 记忆状态层 │ ├── decision.py # L4 决策规划层 │ ├── action.py # L5 行动执行层 │ └── evaluation.py # L6 价值评估层 ├── tools/ │ └── tool_registry.py # 工具调用注册 └── config/ └── settings.py # 全局配置3.2 依赖库与版本注意事项由于大模型 API、语音识别、视觉模型更新速度较快我不写出固定版本号你安装时以当前最新稳定版为准。pip install pydantic # 数据结构定义与校验 pip install openai # 大模型 API 调用也可使用其他 SDK pip install requests # HTTP 工具调用 pip install python-dotenv # 环境变量管理如果你需要接入本地摄像头、麦克风或传感器可以按需添加pip install opencv-python # 图像感知 pip install sounddevice # 音频采集这里需要特别说明大模型 API 的接口、模型名称、鉴权方式差异较大真实项目请以你使用的服务文档为准。本文示例会尽量把模型调用封装成一个函数只预留接口方便你替换成自己的模型。4. 从 L1 到 L6每一层的设计与实现下面我们逐层拆解每一层都会给出核心设计思路和可运行的代码片段。为了让你看到完整链路我会用一个“智能环境助手”的场景贯穿始终系统需要感知用户状态、理解意图、记住偏好、决定动作、执行动作并评估效果。4.1 L1 感知采集层与世界的第一步接触感知层是 AI 系统的“眼睛”和“耳朵”。它的任务是把物理世界或数字世界中的原始信号转换成计算机可以继续处理的结构化数据。这里有一个容易犯的误区感知层不是简单的“调用一个识别 API”。你还需要考虑数据从哪里来、采样频率是多少、数据如何清洗、隐私如何处理。下面是一个模拟感知采集的示例# 文件路径layers/perception.py import json import random class PerceptionLayer: L1 感知采集层负责采集并结构化环境数据 def __init__(self, config: dict None): self.config config or {} # 在实际项目中这里可以初始化摄像头、麦克风、传感器客户端 self.sensors self.config.get(sensors, [camera, mic]) def collect(self) - dict: 模拟采集实际项目中可能返回图像帧、音频流、传感器读数。 这里用字典模拟一份结构化感知数据。 # 模拟图像采集结果 image_data { frame_id: random.randint(1000, 9999), width: 1280, height: 720, # 实际项目中这里是图像张量或 base64 编码 tensor_shape: [3, 720, 1280], } # 模拟音频采集结果 audio_data { duration_sec: 2.0, sample_rate: 16000, waveform_shape: [1, 32000], } # 模拟传感器采集结果 sensor_data { temperature_c: round(random.uniform(20.0, 28.0), 1), humidity: round(random.uniform(40.0, 60.0), 1), light_lux: round(random.uniform(100.0, 500.0), 1), motion_detected: random.choice([True, False]), noise_db: round(random.uniform(35.0, 60.0), 1), } return { timestamp: 2025-01-01 10:30:00, source: simulator, image: image_data, audio: audio_data, sensor: sensor_data, } if __name__ __main__: perception PerceptionLayer() data perception.collect() print(json.dumps(data, indent2, ensure_asciiFalse))设计要点感知层输出统一为字典或自定义数据结构方便后续处理不要在这一层做太重的业务判断比如“用户是否疲惫”不应该由感知层输出而是由理解层完成数据采集要考虑隐私合规涉及音视频数据时建议先脱敏或取得授权。4.2 L2 语义理解层从数据到含义感知层拿到了“房间温度 26 度、检测到人体运动、有语音输入”这些数据但这些数据本身没有语义。语义理解层的任务就是把这些信号翻译成“现在发生了什么、用户想要什么”。理解层可以包含多个子任务视觉理解图像中有人吗人的状态是什么语音识别与理解用户说了什么语气如何环境理解当前环境适合做什么这里我们用一个大模型接口来统一处理各类理解任务。为了演示方便我给出了一个简化的理解器。# 文件路径layers/understanding.py import json from typing import Dict class UnderstandingLayer: L2 语义理解层将感知数据翻译成结构化语义 def __init__(self, llm_clientNone): # 这里可以传入你的大模型客户端 self.llm llm_client def analyze(self, perception_data: Dict) - Dict: 简化实现根据感知数据拼装一段描述文本。 真实项目中可以调用视觉模型 语音模型 大模型组合分析。 sensor perception_data.get(sensor, {}) motion sensor.get(motion_detected) temperature sensor.get(temperature_c) noise sensor.get(noise_db) # 模拟场景规则判断 if motion and noise 50: scene active user_state busy elif motion and noise 50: scene static user_state calm else: scene empty user_state unknown # 模拟语音识别文本实际项目中来自 ASR 模型 asr_text self._mock_asr() # 模拟意图识别 intent self._predict_intent(asr_text) return { scene: scene, user_state: user_state, asr_text: asr_text, intent: intent, entities: { temperature: temperature, noise_db: noise, }, summary: f场景{scene}用户状态{user_state} f语音内容{asr_text}识别意图{intent}。, } staticmethod def _mock_asr() - str: 模拟语音识别输出 return 今天有点累想休息一下 staticmethod def _predict_intent(text: str) - str: 模拟意图识别实际可用文本分类模型或大模型 if 累 in text or 休息 in text: return need_rest if 播放 in text or 音乐 in text: return play_music if 空调 in text or 温度 in text: return adjust_temperature return chat设计要点语义理解层输出一定要是结构化、可存储的比如意图、实体、场景、状态摘要对规则判断和模型判断的边界要清晰简单状态用规则复杂语义用模型理解层不直接做动作决策它只负责把当前事实搞清楚。4.3 L3 记忆状态层让 AI 有“记性”很多 AI 系统做不好不是模型不够强而是没有记忆。用户上一句话说了“我有点累”下一次交互系统就忘了。记忆状态层的目标是让 AI 能跨越多次交互维护状态。记忆层通常需要管理三类数据短期记忆当前会话中的上下文长期记忆用户偏好、历史行为、画像世界状态环境的最新状态快照。这里给出一个简单的记忆管理示例# 文件路径layers/memory.py import json import os import time class MemoryLayer: L3 记忆状态层维护短期上下文与长期用户画像 def __init__(self, storage_path: str ./memory_store.json): self.storage_path storage_path self.short_term [] self.long_term self._load() def _load(self) - dict: if os.path.exists(self.storage_path): with open(self.storage_path, r, encodingutf-8) as f: return json.load(f) return {user_profile: {}, interaction_history: []} def _save(self): with open(self.storage_path, w, encodingutf-8) as f: json.dump(self.long_term, f, ensure_asciiFalse, indent2) def update_short_term(self, message: dict): 更新当前会话上下文 self.short_term.append({ time: time.strftime(%Y-%m-%d %H:%M:%S), message: message, }) # 限制短期记忆长度防止无限膨胀 if len(self.short_term) 20: self.short_term self.short_term[-10:] def update_user_profile(self, key: str, value): 更新长期用户画像 self.long_term[user_profile][key] value self._save() def get_context(self) - dict: 生成给决策层使用的上下文 return { short_term: self.short_term[-5:], user_profile: self.long_term[user_profile], preference: self._summarize_preference(), } def _summarize_preference(self) - str: 简化偏好摘要真实项目可用大模型压缩历史记录 profile self.long_term.get(user_profile, {}) if profile.get(energy_level, ): return f近期用户能量状态偏{profile[energy_level]} return 暂无明确偏好设计要点记忆层必须区分短期与长期两者生命周期不同长期记忆的写入要谨慎不是所有交互都值得永久保存上下文不是越长越好要设计压缩策略比如只保留最近 5 轮对话。4.4 L4 决策规划层从“理解”到“决定”有了当前状态、用户意图和历史记忆之后系统就需要决定下一步做什么。这是 6 层里最关键的一层也是很多人容易混淆的一层。决策规划层常见有两种实现方式规则决策如果意图是 A且环境满足条件 B则执行动作 C。模型决策把状态和意图输入大模型让模型输出动作序列或计划。真实系统中两者通常结合使用。比如我们可以通过大模型生成候选方案再用规则校验方案的安全性。下面是一个决策规划器的简化实现# 文件路径layers/decision.py import json from typing import Dict, List class DecisionLayer: L4 决策规划层基于意图与状态生成行动计划 def __init__(self, llm_clientNone): self.llm llm_client def plan(self, understanding: Dict, memory: Dict) - Dict: 输入理解结果和记忆上下文输出一个行动规划。 简化实现用规则 模板生成真实项目可接入大模型。 intent understanding.get(intent, ) user_state understanding.get(user_state, unknown) user_profile memory.get(user_profile, {}) energy_level user_profile.get(energy_level, normal) actions: List[Dict] [] if intent need_rest: actions.append({ tool: smart_home, action: adjust_light, params: {brightness: 30, mode: warm} }) actions.append({ tool: media, action: play_playlist, params: {playlist: relaxation, volume: 30} }) elif intent play_music: actions.append({ tool: media, action: play_music, params: {genre: pop, volume: 50} }) elif intent adjust_temperature: actions.append({ tool: smart_home, action: set_temperature, params: {target_c: 24} }) else: actions.append({ tool: chat, action: reply, params: {message: 好的我收到了你的需求。} }) return { intent: intent, priority: 1, actions: actions, reason: f基于用户状态 {user_state} 与能量水平 {energy_level} 生成动作计划, }设计要点决策层输出必须是可执行的行动计划而不是笼统的“回复一句话”每个动作要指明调用哪个工具、执行什么操作、参数是什么在真实系统中安全性校验应该加在决策层与执行层之间防止系统执行危险动作。4.5 L5 行动执行层把计划变成现实执行层的任务很直接把决策层给出的动作计划转换成真实世界的 API 调用、数据库操作或物理动作。这里有一个工程关键点工具注册与统一调用。执行层不应该针对每个动作写死代码而应该维护一个“工具注册表”每个工具实现统一接口动作计划直接按名字查找工具。# 文件路径layers/action.py from typing import Dict, Callable class ActionExecutor: L5 行动执行层根据行动计划调用具体工具 def __init__(self): # 工具注册表 self._tools: Dict[str, Callable] {} self._register_default_tools() def _register_default_tools(self): self.register(smart_home, self._smart_home_action) self.register(media, self._media_action) self.register(chat, self._chat_action) def register(self, name: str, handler: Callable): 注册新的工具处理函数 self._tools[name] handler def execute(self, plan: Dict) - Dict: 执行决策计划中的动作序列 results [] actions plan.get(actions, []) for action in actions: tool action.get(tool) handler self._tools.get(tool) if handler is None: results.append({ status: error, action: action, message: f未找到工具: {tool}, }) continue try: result handler(action.get(action), action.get(params, {})) results.append({status: success, action: action, result: result}) except Exception as e: results.append({status: error, action: action, message: str(e)}) # 只要有一个动作失败就可以认为本次执行部分未完成 overall success if all(r[status] success for r in results) else partial_failure return {overall_status: overall, results: results} def _smart_home_action(self, action: str, params: Dict): # 真实项目中这里会调用智能家居平台 API print(f[智能家居] 执行动作: {action}, 参数: {params}) return {called: fsmart_home.{action}, params: params} def _media_action(self, action: str, params: Dict): print(f[媒体系统] 执行动作: {action}, 参数: {params}) return {called: fmedia.{action}, params: params} def _chat_action(self, action: str, params: Dict): print(f[对话系统] 执行动作: {action}, 参数: {params}) return {called: fchat.{action}, params: params}设计要点工具注册机制让系统具备很强的扩展性新增一个能力只需注册一个新函数执行层要有异常捕获和重试策略不能因为一个动作失败就导致整个流程崩溃涉及物理动作或外部系统操作时建议先走模拟执行或人工确认通道。4.6 L6 价值评估层让系统越用越准闭环的最后一层是价值评估。很多系统做到执行完就结束了但“以人为本 AI”最重要的一点是系统必须知道自己的行动产生了什么效果用户是否满意下一次应该如何调整。价值评估层要做三件事收集行动结果数据计算效果指标把评估结果回传给记忆层和决策层用于下一次优化。# 文件路径layers/evaluation.py from typing import Dict class EvaluationLayer: L6 价值评估层衡量行动效果并生成回传信号 def __init__(self): self.metrics_history [] def evaluate(self, plan: Dict, execution_result: Dict, user_feedback: Dict None) - Dict: 评估一次完整执行的效果。 真实项目可接入用户显式反馈、行为隐式反馈、业务指标等。 # 基础指标执行成功率 success_rate 1.0 if execution_result.get(overall_status) success else 0.5 # 用户显式反馈比如用户点了赞、评了分 feedback_score user_feedback.get(score, 0.5) if user_feedback else 0.5 # 综合效果指标这里简化真实项目可根据业务定义加权公式 combined_score round(success_rate * 0.6 feedback_score * 0.4, 3) metric { intent: plan.get(intent, ), success_rate: success_rate, feedback_score: feedback_score, combined_score: combined_score, timestamp: 2025-01-01 10:31:00, } self.metrics_history.append(metric) return { metric: metric, signal: self._generate_signal(combined_score), } staticmethod def _generate_signal(score: float) - str: if score 0.8: return positive if score 0.5: return neutral return negative设计要点评估结果应该作为一条反馈写入记忆层比如“用户对放松音乐反馈良好”指标设计要结合业务不能只盯一个模型准确率还要看用户满意度、任务完成率反馈信号要能反向影响决策规则让系统具备持续进化能力。5. 完整实战搭一个最小闭环系统前面 6 层是分开讲的现在我们把它们串起来形成一个可运行的“感知—行动”闭环。入口文件是main.py。# 文件路径main.py from layers.perception import PerceptionLayer from layers.understanding import UnderstandingLayer from layers.memory import MemoryLayer from layers.decision import DecisionLayer from layers.action import ActionExecutor from layers.evaluation import EvaluationLayer class HumanCentricAI: 组装 6 层框架的顶层类 def __init__(self): self.perception PerceptionLayer() self.understanding UnderstandingLayer() self.memory MemoryLayer() self.decision DecisionLayer() self.executor ActionExecutor() self.evaluation EvaluationLayer() def run_once(self) - dict: print( 第 1 步L1 感知采集 ) perception_data self.perception.collect() print(f感知数据: {perception_data[sensor]}) print(\n 第 2 步L2 语义理解 ) understanding self.understanding.analyze(perception_data) print(f理解结果: {understanding[summary]}) print(\n 第 3 步L3 记忆状态更新 ) self.memory.update_short_term(understanding) self.memory.update_user_profile(energy_level, low) context self.memory.get_context() print(f上下文: {context}) print(\n 第 4 步L4 决策规划 ) plan self.decision.plan(understanding, context) print(f行动计划: {plan[actions]}) print(\n 第 5 步L5 行动执行 ) execution_result self.executor.execute(plan) print(f执行结果: {execution_result[overall_status]}) print(\n 第 6 步L6 价值评估 ) # 模拟用户反馈实际项目中来自用户评价或行为数据 user_feedback {score: 0.9} evaluation_result self.evaluation.evaluate(plan, execution_result, user_feedback) print(f评估结果: {evaluation_result}) return { perception: perception_data, understanding: understanding, plan: plan, execution: execution_result, evaluation: evaluation_result, } if __name__ __main__: system HumanCentricAI() system.run_once()运行方式cd human_centric_ai python main.py运行后你能看到完整链路依次执行。虽然这里的每一层都是简化实现但它已经具备了真实系统的骨架你可以把“模拟感知”换成摄像头真实数据把“规则决策”换成大模型规划把“打印执行”换成真实家居 API 调用逐步替换成生产级实现。这个闭环最关键的设计理念是每一层之间只通过标准数据结构通信。你可以在不修改其他层的情况下单独升级某一层。6. 常见问题与排查思路在实际落地过程中最常见的不是单层出问题而是层与层之间连接出问题。下面整理几个高频问题。问题现象常见原因解决思路感知数据量大处理延迟高感知层没有做压缩和过滤在感知层增加数据清洗、降采样、关键帧提取音视频数据尽量在边缘端预处理理解结果不稳定同一输入不同输出模型随机性或 prompt 不稳定固定采样参数增加规则兜底对关键场景使用更稳定的规则解析记忆不断膨胀上下文越来越大没有做记忆淘汰与压缩设计摘要机制定期用大模型压缩历史短期记忆限制保留轮数决策动作不安全或不合规缺少动作安全校验在决策层与执行层之间增加审批策略高风险操作必须人工确认工具调用失败整体流程中断执行层未做异常隔离每个工具独立 try-catch增加超时与重试机制失败时返回降级动作评估结果没有反哺系统缺少闭环回写逻辑把评估 signal 写入记忆层并让决策层读取形成完整闭环一个推荐的排查顺序是先确认感知层输出是否正常数据是否完整再确认理解层输出是否符合预期意图是否识别正确然后检查记忆层上下文是否更新是否拿到了该有的用户画像接着确认决策层是否生成合理动作最后查看执行层每个工具的返回结果和异常日志。7. 工程落地建议最后补充几条我在实际项目里沉淀下来的工程建议。7.1 不要追求“全链路大模型”很多团队一上来就想让大模型包揽感知、理解、决策、规划全部环节。大模型确实擅长语义理解和任务规划但在高实时、高可靠场景下纯大模型方案往往不稳定且成本高。更务实的做法是规则能做的用规则模型做规则做不了的大模型做生成与规划传统算法做实时控制。7.2 定义好层间数据结构层与层之间的通信格式是整个架构最容易忽略但又最重要的事。建议在项目开始前就定义好标准数据结构比如用 Pydantic 定义from pydantic import BaseModel from typing import List, Dict, Optional class PerceptionData(BaseModel): timestamp: str source: str sensor: Dict[str, float] image: Optional[Dict] None audio: Optional[Dict] None class UnderstandingResult(BaseModel): scene: str user_state: str intent: str entities: Dict[str, float] summary: str class ActionItem(BaseModel): tool: str action: str params: Dict class Plan(BaseModel): intent: str priority: int actions: List[ActionItem] reason: str这样每一层开发时都围绕同一个数据契约多人协作时也不容易出现“字段对不上”的问题。7.3 安全与权限是硬底线以人为本的 AI 系统通常涉及用户隐私数据和物理设备控制。在工程落地时务必注意音视频数据采集前要获得用户明确授权长期存储的个人数据要做加密和生命周期管理设备控制类动作要基于最小权限原则高风险操作要二次确认涉及支付、锁门、医疗等高风险动作系统必须有人工审核环节。7.4 日志与可观测性6 层框架里每一层的输入输出都应该记录日志。建议至少记录以下信息每条感知数据的来源与时间戳每个理解结果的置信度与摘要每次决策的动作列表与理由每次执行的工具、参数、耗时、返回码每次评估的指标与反馈信号。有了这些日志你才能快速定位问题也能基于历史数据做离线评估和策略优化。7.5 从小闭环开始逐步扩展不要想着一次性把所有层做到完美。建议先做一个串通所有层的“最小闭环”哪怕每一层都是模拟数据也要保证链路能完整跑通。然后再逐层替换成真实模块比如先替换感知层接真实摄像头再替换决策层接入大模型规划。每替换一层都验证一次整体链路是否正常。8. 总结与下一步方向本文详细拆解了“以人为本 AI”的 6 层连接框架感知采集、语义理解、记忆状态、决策规划、行动执行、价值评估。这 6 层并不要求你在每个项目里都严格照搬但它提供了一种非常实用的设计视角AI 系统不是“输入—模型—输出”的黑盒而是一条从环境到用户价值反馈的完整链路。接下来你可以从三个方向继续深入单体层深度比如深入多模态感知视觉、语音、传感器融合或深入大模型规划ReAct、Toolformer 等方法系统集成把框架融入实际业务系统比如服务机器人、智能家居中控、客服助手评估与进化研究如何基于用户反馈和业务指标让系统具备在线学习与自适应能力。如果你正在搭建一个 AI Agent 或智能硬件产品建议直接把文中的最小闭环代码跑一遍然后从你最熟悉的层开始替换。代码能跑通架构思维才算真正落地了。