摘要
Hey Noah 作为面向创始人场景的自主式 AI 执行助理(Executive Assistant, EA) ,在产品定义上与 Claude、GPT 等传统对话式大模型形成本质技术代差:Claude 属于被动触发、指令响应型 LLM 聊天系统 ,类比汽车定速巡航(ACC),仅在用户主动输入指令后完成文本生成;而 Hey Noah 是目标驱动、主动感知、自主决策、跨渠道执行闭环的 L4 级自主智能体,对标特斯拉 FSD 全自动驾驶,无需持续人工指令输入,主动接入 Email、SMS 短信、WhatsApp 全社交通讯链路,自主完成日程规划、人脉关系图谱沉淀、商务跟进任务闭环、会议后勤全流程自动化,实现 7×24 小时常驻短信侧的数字化高管助理能力。
本文完全剥离商业营销话术,从系统分层架构、多渠道消息网关适配、自主 Agent 核心运行回路、长短时记忆混合架构、人脉知识图谱构建、日程任务规划引擎、工具调用执行层、异常容错与安全沙箱、工程部署落地、性能瓶颈优化、与传统对话模型技术差异量化对比、源码级伪代码实现、生产环境踩坑总结12 个纯技术维度,完整拆解 Hey Noah 底层工程逻辑,适合 AI Agent 架构师、后端工程、LLM 应用开发者、RAG 落地工程师阅读参考。
一、引言:产品定位背后的核心技术命题
1.1 产品形态对应的技术边界
官方产品描述核心特征拆解(纯技术转译,剔除营销词):
- 交互范式差异:Claude = 用户主动发起对话→LLM 文本回复(Reactive 被动式);Hey Noah = 主动扫描用户全社交信息流(邮件、短信、WhatsApp)→自主识别商务事件→拆解任务→调用工具执行→结果回填通讯渠道(Proactive 主动式)。
- 运行形态:常驻 SMS 短信链路守护进程,无前端交互依赖,事件驱动持续运行。
- 业务闭环:日程管理、人际关系资产沉淀、商务线索跟进、会议后勤事务端到端自动化,无人工二次介入。
- 智能等级类比 :定速巡航(传统 LLM)vs 全自动驾驶(自主 Agent),核心差异为环境感知、全局状态建模、长期目标规划、自主纠错、无指令触发执行五大技术能力。
传统对话式 LLM(Claude/GPT)技术短板(也是 Noah 需要解决的核心工程问题):
- 上下文窗口受限,无跨会话长期记忆,无法留存数月商务人脉、历史沟通细节;
- 无环境感知模块,只能接收用户输入文本,无法主动读取邮件、短信等外部事件;
- 无任务规划引擎,仅支持单次工具调用,无法拆解 "邀约客户 - 确认时间 - 发送会议链接 - 会前提醒 - 会后跟进" 多步骤长流程;
- 无状态持久化,对话结束后任务状态全部销毁,无法跟进跨天、跨渠道的持续商务事项;
- 无多渠道消息归一化能力,无法将 WhatsApp 私聊、企业邮件、手机短信统一映射到同一个联系人实体。
1.2 本文技术分析边界说明
本文聚焦Hey Noah 自主执行 Agent 底层工程架构、算法模块、落地难点、代码实现、运维方案,不涉及产品定价、商业化模式、用户使用体验、品牌宣传;所有架构设计基于 2026 年主流生产级自主 Agent 工程范式、多渠道 IM 对接方案、LLM Agent 框架落地实践推导,匹配 Hey Noah 产品功能实现逻辑,具备工程复现价值。
1.3 全文结构总览
- 自主 Agent 与被动 LLM 底层技术差异量化对比
- Hey Noah 整体分层架构全景(七层架构)
- 第一层:多渠道统一消息网关(Gateway)适配层技术实现
- 第二层:消息归一化与事件抽取流水线(NLP 预处理链路)
- 第三层:混合式长短时记忆系统(短期上下文 + 向量 RAG 长期记忆 + 图谱事实记忆)
- 第四层:联系人知识图谱(人脉 Graph)构建与推理引擎
- 第五层:自主 Agent 核心决策循环(FSD 级规划 - 执行 - 反思闭环)
- 第六层:工具调用执行层(日程、邮件、短信、会议工具集)
- 第七层:安全沙箱、权限管控、异常自愈与可观测性
- 端到端业务场景技术实战:创始人商务会议全流程自动化拆解
- 生产环境部署架构(云原生容器化、自托管私有化两种方案)
- 核心性能瓶颈与工程优化方案
- 伪代码工程实现:最小化 Hey Noah 核心 Agent Demo
- 落地痛点、幻觉抑制、可靠性提升方案
- 总结与技术展望
- 文末互动引导(点赞、收藏、关注)
二、Hey Noah VS Claude 底层技术架构量化对比(核心分水岭)
为直观区分被动对话 LLM 和主动式执行 Agent的技术鸿沟,以表格形式完成全维度量化对比,也是 Noah 架构设计的核心出发点:
| 对比维度 | Claude(纯对话式 LLM) | Hey Noah(自主执行 EA Agent) | 技术影响 |
|---|---|---|---|
| 运行触发方式 | 用户显式 Prompt 触发,无事件自动唤醒 | 事件驱动触发(新邮件、新短信、联系人互动)+ 定时轮询主动巡检 | Noah 需要事件总线、消息队列、守护进程常驻服务架构 |
| 记忆体系 | 仅窗口内上下文记忆,无持久化存储 | 三级混合记忆:滑动窗口短期记忆 + 向量库 RAG 长期对话记忆 + 图数据库人脉事实记忆 | Noah 必须配套 PostgreSQL+PgVector+Neo4j 混合存储架构 |
| 决策逻辑 | 单次推理,无任务拆解、无步骤回溯 | 分层任务规划(长期商务目标→中期事项→单次执行动作)+ 执行反思修正 | 采用 ReAct/Plan-and-Solve 自主推理循环 |
| 外部感知能力 | 仅用户输入文本作为唯一数据源 | 多源异构数据接入:IM、邮件、日历、通讯录、历史交互日志 | 多渠道 Gateway 适配器是基础基建 |
| 动作输出形式 | 纯文本返回至对话窗口 | 结构化工具调用指令→外部 API 执行→结果回写到原始通讯渠道 | 标准化 Tool Calling 协议 + 通道反向渲染适配器 |
| 状态管理 | 无全局任务状态,对话销毁即状态丢失 | 全局任务状态机(待规划→执行中→已完成→需跟进→已搁置) | Redis 状态持久化 + 任务调度队列 |
| 主动性 | 0 主动性,完全被动应答 | 主动识别商机、主动逾期跟进、主动日程冲突检测、主动人脉维护 | 意图事件主动挖掘模型,而非用户意图分类 |
| 运行形态 | 按需 API 调用,无常驻进程 | 7×24 常驻后台服务,断点续跑、异常重启自愈 | 容器化进程守护、健康检查、故障转移设计 |
| 类比自动驾驶等级 | L2 辅助驾驶(定速巡航) | L4 全自动驾驶(FSD) | 环境感知→建图→路径规划→控制执行→环境反馈修正闭环 |
| 依赖组件 | LLM 推理服务 + 对话会话存储 | LLM 推理 + 网关 + 事件总线 + 向量库 + 图数据库 + 任务调度 + 工具网关 + 安全沙箱 | 系统复杂度提升 3~5 倍,属于分布式系统工程而非单纯 LLM 调用 |
核心结论:Hey Noah 的技术核心不在于使用更强的基础大模型 ,而是在通用 LLM 之上搭建一套完整的自主智能体运行时(Agent Harness),这套运行时实现了环境感知、记忆建模、世界状态构建、自主规划、工具执行、结果反馈闭环,是实现 "主动执行助理" 的全部工程核心。
三、Hey Noah 七层整体分层架构全景设计
采用自上而下分层解耦架构,每层职责单一、接口标准化、可独立扩容、可灰度迭代,整体架构自上而下依次为:
- 多渠道接入网关层(Channel Gateway):WhatsApp、SMS 短信、IMAP/SMTP 邮件三大渠道适配器,统一消息接入、鉴权、限流、链路保活;
- 消息归一化 & 事件抽取层(Event Pipeline):异构消息结构标准化、冗余内容清洗、商务事件结构化抽取、联系人实体对齐;
- 混合记忆引擎层(Memory Orchestrator):短期上下文记忆、对话向量长期记忆、人脉事实图谱记忆三层联动检索;
- 人脉知识图谱层(Contact Graph Engine):联系人实体融合、关系权重计算、互动时序链路、商务价值打分;
- 自主 Agent 决策核心层(Agent Core Loop):目标规划→工具决策→执行反思→状态更新核心闭环(FSD 核心逻辑);
- 工具执行网关层(Tool Executor Gateway):日程、邮件、短信、会议第三方 API 封装、结构化调用、结果归一化;
- 安全管控 & 可观测底座层(Safety & Observability):操作权限沙箱、高危动作二次确认、日志全链路追踪、异常自愈、数据隐私加密。
整体数据流流向: 多渠道原始消息 → Gateway 接入 → 消息归一化清洗 → 事件检测触发 Agent 唤醒 → 记忆引擎加载全局上下文 + 人脉图谱 → Agent 核心循环做任务规划与工具选择 → Tool Gateway 执行实际操作 → 执行结果写入记忆库 + 人脉图谱 → 适配原始渠道格式推送结果 → 任务状态落库闭环。
反向主动数据流(无新消息触发的主动动作):定时巡检任务队列 → 加载人脉 / 日程状态 → Agent 生成主动跟进动作 → 工具层发送短信 / 邮件跟进 → 交互记录回流知识库。
四、第一层:多渠道统一消息网关(Channel Gateway)技术实现
4.1 网关核心设计目标
- 渠道异构屏蔽:WhatsApp 商业 API、手机 SMS 短信网关、邮件 IMAP/SMTP 三者协议、消息结构、鉴权方式、消息推送模式完全不同,网关输出统一结构体,上层业务完全无感知渠道差异;
- 链路稳定性保障:WhatsApp 长连接保活、短信 Webhook 重试、邮件轮询增量拉取,避免消息漏收(核心业务诉求:创始人商务消息零遗漏);
- 安全前置:渠道接入鉴权、API 密钥隔离、请求限流、恶意消息过滤、附件病毒前置扫描;
- 双向通信支撑:不仅接收上行消息,同时支持下行结构化消息适配各渠道格式(Agent 生成的回复要适配短信纯文本、WhatsApp 富文本、邮件 HTML 格式)。
4.2 三大渠道适配器技术细节拆解
4.2.1 WhatsApp 渠道适配器实现
主流技术方案基于Baileys 开源桥接 + Meta WhatsApp Cloud 商业 API 双路冗余:
- 商业 API 链路:Meta 官方 Webhook 接收上行消息,REST API 实现下行消息发送,适合正式生产环境,稳定性高;
- Baileys 桥接链路:基于 Node.js Baileys 实现账号登录、长连接 WebSocket 保活,作为备用通道,规避官方 API 限流;
- 消息特征适配:WhatsApp 支持图文、表情包、回复引用消息、群聊 @提及,适配器需要提取引用父消息 ID、群标识、提及联系人、媒体附件元数据存入统一消息结构体。
关键工程难点:WhatsApp 会话线程 ID 持久化,同一个联系人的私聊消息需要聚合为同一个 thread_id,避免对话上下文割裂。
4.2.2 SMS 短信适配器实现
分为两种接入模式:
- 运营商短信网关 Webhook 模式:Twilio、Plivo 等短信服务商配置上行短信 Webhook,网关直接接收 JSON 格式短信内容、手机号、收发时间;
- 本地 SIM 卡设备对接:通过 Android ADB 对接手机短信数据库增量拉取,适合私有化部署场景,直接读取本机收发短信。
短信特殊处理逻辑:
- 手机号作为联系人唯一主键,用于和邮件地址做实体融合;
- 短信无富文本,全部归一化为纯文本消息体;
- 上行短信触发优先级最高(产品定义:常驻 SMS 助理,短信事件优先调度 Agent)。
4.2.3 Email 邮件适配器(IMAP+SMTP)
邮件是商务场景最高价值数据源,结构最复杂,适配器需要处理多层冗余内容:
- 上行拉取:IMAP IDLE 长连接实时监听新邮件,相比定时轮询延迟更低;
- 内容清洗核心逻辑 :使用
email-reply-parser剥离历史回复引文、邮件签名、法律免责声明、广告页脚,仅保留本次新增正文内容(直接决定事件抽取准确率); - 实体提取:发件人邮箱、收件人、抄送、密送、主题、附件列表、邮件线程 Message-ID(用于串联整封邮件往来会话);
- 下行发送:SMTP 标准化发送,支持 HTML 商务邮件、附件挂载、邮件主题智能生成。
4.3 统一消息结构体(UnifiedMessage)核心 Schema
所有渠道消息经过适配器后,输出完全一致的结构化数据,上层所有模块直接使用该结构体,实现渠道解耦,Schema 核心字段定义:
{
"global_msg_id": "全局唯一雪花ID,用于消息幂等去重",
"channel_type": "WHATSAPP/SMS/EMAIL",
"channel_original_id": "渠道原生消息ID",
"thread_id": "会话线程唯一ID(私聊/邮件会话唯一标识)",
"sender": {
"identity_key": "实体融合主键(邮箱/手机号)",
"name": "发送人名称",
"channel_account": "渠道账号"
},
"receivers": ["接收方身份数组"],
"content_plain": "清洗后纯文本正文(核心NLP输入)",
"content_raw": "原始未处理消息",
"attachments": "附件元数据数组",
"send_time": "UTC时间戳",
"msg_type": "TEXT/MEDIA/QUOTE/REPLY",
"metadata": {} // 渠道私有扩展字段
}
该 Schema 是整个系统的数据流基石,实现 "一次适配,全链路复用"。
4.4 Gateway 内部组件划分
- 适配器注册中心:插件化注册各渠道适配器,支持动态启停渠道;
- 消息归一化转换器:原始消息→UnifiedMessage 结构体映射;
- 幂等去重组件:基于 global_msg_id Redis 布隆过滤器,防止重复消息触发 Agent 重复执行;
- 事件总线发射器:归一化消息投递至 Kafka/RabbitMQ 事件总线,下游事件消费服务解耦;
- 下行消息路由器:Agent 生成的回复消息,根据 thread_id 绑定的渠道,反向调用对应适配器完成发送。
五、第二层:消息归一化 & 商务事件抽取流水线(Event Pipeline)
网关输出标准化消息后,进入流式 NLP 处理流水线,核心目标:从非结构化聊天 / 邮件文本中,结构化提取可被 Agent 理解的商务事件、意图、时间实体、任务实体、风险实体,把自然语言转化为结构化事件对象,作为 Agent 的环境感知输入。
流水线采用流式串行处理 + 旁路异常分支架构,步骤依次为:
5.1 步骤 1:文本降噪与标准化
- 全角字符转半角、换行符压缩、特殊表情符号过滤、URL 占位符替换;
- 长文本分段(邮件正文超过 2000token 做分段切片,防止后续实体抽取溢出);
- 旁路:过滤系统通知、验证码、垃圾广告消息,直接终止流水线,不触发 Agent 运算。
5.2 步骤 2:命名实体识别(NER)多类型实体抽取
基于 LLM Few-Shot 结构化输出实体,抽取业务核心实体:
- 时间实体:绝对时间(2026-08-10 15:00)、相对时间(下周三、后天下午)、时间段、会议时长;
- 联系人实体:人名、公司名称、职位、手机号、邮箱(用于人脉图谱实体对齐);
- 事务实体:会议邀约、合同沟通、拜访预约、款项对接、资料索要、日程变更、会议取消、逾期跟进;
- 地点实体:线下会议室、线上会议链接、Zoom / 腾讯会议地址;
- 优先级实体:紧急、重要、常规、可延后(用于 Agent 任务优先级排序)。
输出结构化实体 JSON,避免自由文本实体歧义。
5.3 步骤 3:商务事件分类(Event Classify)
采用多分类模型将消息归类为固定事件类型,事件类型直接决定 Agent 唤醒逻辑:
- EVENT_MEETING_INVITE:会议邀约
- EVENT_MEETING_CONFIRM:会议时间确认
- EVENT_MEETING_CANCEL:会议取消 / 改期
- EVENT_FOLLOW_UP_REQUIRED:需要商务后续跟进
- EVENT_INFO_REQUEST:资料、信息索取
- EVENT_SCHEDULE_CONFLICT:日程时间冲突
- EVENT_RELATIONSHIP_MAINTENANCE:人脉日常维护(节日问候、闲聊)
- EVENT_NORMAL_CHAT:无业务价值闲聊(低优先级处理)
分类置信度低于阈值时,标记为 UNCERTAIN,交由 Agent 做模糊推理,不做硬规则拦截。
5.4 步骤 4:联系人实体融合对齐
核心解决问题:同一个商务联系人,同时存在手机号(SMS)、WhatsApp 账号、企业邮箱三个身份标识,系统需要判定为同一个人脉实体,实现全渠道交互记录聚合。 融合规则:
- 精准匹配:手机号、邮箱完全一致直接融合;
- 模糊匹配:姓名 + 公司交叉匹配、历史交互关联匹配;
- 融合后生成唯一
contact_global_id,作为人脉图谱主键,回流至统一消息 sender 字段,完成实体归一化。
5.5 步骤 5:结构化事件对象输出
流水线最终输出BusinessEvent结构体,作为 Agent 的感知输入源,示例结构:
{
"event_id": "事件唯一ID",
"source_msg_id": "关联上游归一化消息ID",
"event_type": "EVENT_MEETING_INVITE",
"confidence": 0.94,
"time_entities": ["2026-08-06 14:00", "60分钟"],
"contact_ids": ["C00123(客户A全局ID)"],
"location_info": "Zoom会议链接xxx",
"event_summary": "客户A邀约8月6日下午2点进行60分钟线上商务沟通",
"priority": "HIGH",
"raw_text": "原始清洗文本"
}
当事件为高优先级业务事件时,触发 Agent 核心循环启动;低优先级闲聊事件,仅写入记忆库,不主动执行动作。
六、第三层:混合式长短时记忆引擎层(Memory Orchestrator)
自主 Agent 区别于普通对话机器人的核心基建是可跨会话、跨月份持久化的记忆系统 。Hey Noah 采用业界成熟的三级混合记忆架构,分层承载不同生命周期、不同访问频次的记忆数据,兼顾检索速度、存储成本、上下文精准度。
6.1 三层记忆整体架构分工
| 记忆层级 | 存储介质 | 数据内容 | 生命周期 | 检索方式 | 核心作用 |
|---|---|---|---|---|---|
| 短期工作记忆 | Redis 内存数据库 | 当前会话最近 10 轮交互、本次事件临时上下文、任务中间状态 | 会话周期(72 小时过期) | Key 精准读取 | 维持单轮对话连贯性,替代 LLM 滑动窗口 |
| 中长期对话记忆 | PostgreSQL+PgVector 向量数据库 | 历史全渠道聊天、邮件往来、沟通纪要向量化分片 | 永久存储 | ANN 向量相似度检索 | 长周期沟通细节回溯,避免 LLM 遗忘历史对话 |
| 事实型永久记忆 | Neo4j 图数据库 | 联系人固定属性、关系、历史事件、商务成果、关键约定 | 永久存储 | 图遍历精准查询 | 人脉硬事实精准调取(如 "去年和该客户敲定的合作条款") |
6.2 短期工作记忆实现(Redis)
- 以
thread_id为 Redis Key,存储会话对话列表,设置 TTL 过期(72h); - 存储结构化对话记录(角色:用户 / 联系人 / AI、内容、时间);
- Agent 单次推理时,直接拼接短期记忆作为上下文前缀,减少长向量检索开销;
- 会话结束后,将短期记忆切片向量化,批量写入向量长期记忆,完成记忆下沉。
6.3 中长期对话记忆(RAG 向量记忆核心实现)
6.3.1 记忆写入流程
- 单次交互结束后,将对话 / 邮件文本按照 512token 滑动窗口切片;
- 使用 text-embedding-3-large / 本地 BGE-M3 生成向量 Embedding;
- 向量 + 原始文本 + 关联
contact_global_id、thread_id存入 PgVector 向量表; - 增加时间、联系人索引,用于定向检索某个人的全部历史沟通。
6.3.2 记忆检索逻辑(Agent 推理前触发)
当处理某条客户消息时,执行定向检索:
- 以当前联系人
contact_global_id做过滤,限定仅检索该客户历史交互; - 使用当前事件摘要做向量相似度 Top-K 检索(K=4~6);
- 将检索到的历史沟通片段格式化注入 Agent Prompt,实现 "AI 记得和这个客户半年前的沟通细节"。
6.3.3 记忆衰减策略
引入记忆重要性打分机制:
- 商务合同、会议决议、价格约定:重要分 10 分,永久保留,禁止压缩;
- 日常闲聊、客套话术:重要分 3 分,超过 90 天自动归档压缩向量;
- 无效广告消息:重要分 1 分,直接丢弃不入库。 通过重要性得分平衡向量库存储体积与关键信息留存。
6.4 事实型图谱记忆(Neo4j)
专门存储不可模糊、必须精准调用的事实数据,不做向量模糊检索,采用图查询精准命中,例如:
- 联系人基础属性:姓名、公司、职位、主营业务、对接人上下级关系;
- 关键历史事实:2026 年 3 月签订合作、客户预算区间、忌讳事项、过往会议决议;
- 互动时序事实:最后一次沟通时间、上一次跟进动作、未了结待办事项。 该层记忆直接供给人脉图谱推理引擎使用。
6.5 记忆融合调度逻辑
Agent 推理上下文组装顺序(优先级从高到低): 短期 Redis 会话记忆 → 图谱精准事实记忆 → 向量 RAG 相似历史记忆 → 当前业务事件 三层记忆融合,实现 "近期对话连贯 + 硬性事实不出错 + 长期历史有参考" 的上下文效果,彻底解决原生 LLM 长上下文遗忘问题。
七、第四层:人脉知识图谱层(Contact Graph Engine)
Hey Noah 核心业务价值是创始人的人际关系资产管理,因此独立构建联系人知识图谱引擎,基于上游实体融合结果、记忆事实数据,动态构建、更新人脉网络图,同时提供人脉价值评分、关系亲密度计算、待跟进线索挖掘能力,是 Agent 主动跟进任务的核心数据源。
7.1 图谱节点与关系定义
节点类型
- User 节点:创始人主账号(根节点);
- Contact 节点:外部商务联系人(主键
contact_global_id); - Company 节点:所属企业;
- Event 节点:历史商务事件(会议、合作、拜访)。
核心关系类型
KNOWS:创始人与联系人的认识关系,附带权重属性(亲密度 score 0~100);WORKS_FOR:联系人任职公司;HAS_EVENT:联系人关联历史商务事件;CO_WORK_WITH:联系人之间的同僚关系;LAST_CONTACT:最后互动时间、渠道、内容摘要。
7.2 关系权重(亲密度)动态更新算法
每次产生新的交互(短信、邮件往来)后,自动更新KNOWS关系权重,计算公式:
new_score = old_score + base_increment * event_weight * time_decay_factor
参数说明:
- base_increment:基础增量固定值;
- event_weight:事件权重(签约事件 = 5,正式会议 = 3,闲聊 = 0.5,节日问候 = 1);
- time_decay_factor:时间衰减系数,距离上次交互越久,本次增量越低,长期无互动权重缓慢衰减。
通过权重量化人脉价值,Agent 优先对高价值、长期未互动联系人生成主动维护任务。
7.3 图谱下游应用场景
- 主动跟进线索挖掘:定时图谱遍历,筛选「score≥60 且 距离上次互动 > 30 天」的高价值联系人,生成主动问候跟进任务;
- 会议背景预加载:即将和客户开会时,图谱一键查询该客户全部历史合作、过往矛盾、关键诉求,注入会议助理 Prompt;
- 人脉链路挖掘:查询两个联系人是否存在共同交集,辅助商务引荐;
- 联系人画像生成:结构化输出客户画像,用于邮件、短信话术个性化生成。
图谱数据会实时同步至记忆引擎,作为事实记忆的核心数据源。
八、第五层:自主 Agent 决策核心层(Agent Core Loop,FSD 核心闭环)
本章节是 Hey Noah 区别于普通 LLM 工具调用产品的最核心技术模块 ,对标特斯拉 FSD 的「感知→规划→车辆控制→路况反馈修正」闭环,自主 Agent 采用经典Plan-Act-Reflect(规划 - 执行 - 反思)循环架构,实现无人工干预的长流程任务自主完成。
8.1 自主 Agent 循环整体四步闭环
-
Step1:全局状态感知与目标规划(Planning) 输入:当前业务事件 + 三层融合记忆 + 人脉图谱状态 + 创始人日程全局状态 输出:分层任务计划(长期商务目标→中期子任务→单次可执行原子动作列表)
-
Step2:工具动作决策与结构化调用(Act/Tool Calling) 输入:规划任务列表 输出:标准化工具调用 JSON(指定工具名称、入参、执行优先级、超时阈值)
-
Step3:工具执行与结果回填(Execution) 调用第六层工具网关完成真实操作(发邮件、创建日程、发送跟进短信),采集执行成功 / 失败结果。
-
Step4:执行反思与状态修正(Reflection) 基于执行结果判断任务完成度:
- 任务闭环:写入记忆与人脉图谱,标记任务完成;
- 执行失败:生成重试策略(参数修正、切换工具、人工兜底告警);
- 任务未完结:更新任务状态,设置定时再次触发跟进; 循环回到 Step1,基于最新环境状态重新规划,直至整体任务闭环。
8.2 Step1 分层任务规划实现
采用两级任务拆解,避免单次规划粒度太粗或过细:
- 主任务(MainTask):对应一个完整商务目标,例如「完成客户 A 的合作邀约敲定」;
- 原子子任务(SubTask):不可拆分的单次动作,例如「发送会议确认短信」「创建日历会议」「会前 1 小时发送提醒邮件」。
规划层 LLM 强制输出结构化 JSON 任务列表,禁止自由文本,保证机器可解析。 规划约束规则:
- 不能生成冲突日程(调用日程工具做时间校验);
- 高优先级任务前置执行;
- 依赖型任务串行执行(必须先邀约,再确认时间,再创建日程)。
8.3 Step2 标准化工具调用协议
兼容 OpenAI Function Calling、Anthropic Tool Use 双协议,内部统一封装工具描述 Schema,所有工具具备标准化定义:
{
"tool_name": "calendar_create_event",
"tool_desc": "创建日历会议日程",
"params": {
"title": "会议标题",
"start_time": "开始时间戳",
"end_time": "结束时间戳",
"attendee_emails": "参会人邮箱数组",
"reminder_minutes": "会前提醒分钟数"
},
"timeout": 10000,
"required_params": ["title","start_time"]
}
Agent 根据子任务匹配对应工具,填充入参,输出结构化调用指令,杜绝自然语言工具调用带来的解析错误。
8.4 Step4 反思(Reflection)模块关键逻辑
反思是自主 Agent 具备自愈能力的核心,分为两种反思场景:
场景 1:工具执行失败反思
失败原因分类:API 超时、参数错误、权限不足、外部接口异常 反思动作:LLM 分析失败日志,修正调用参数,最多自动重试 2 次,仍失败则推送短信告警给创始人人工处理。
场景 2:任务阶段性结果反思
例如发送邀约短信后,客户回复 "下周没空",Agent 读取回复事件,反思原有计划作废,重新规划「改期邀约」子任务,实现动态任务调整。
反思结果会更新全局任务状态机 ,任务状态机存储在 Redis,状态枚举: PENDING规划中→RUNNING执行中→COMPLETED已完成→PENDING_FOLLOWUP待跟进→FAILED失败兜底
8.5 常驻主动任务触发机制(无事件触发自主运行)
除了消息事件触发 Agent,系统内置定时任务调度器(基于 Airflow/Redis Cron),周期性唤醒 Agent 执行主动动作:
- 每日凌晨:全量日程巡检,生成次日会议提醒任务;
- 每周一:人脉图谱高价值沉睡客户巡检,生成维护跟进任务;
- 会议结束后 1 小时:自动生成会后复盘邮件发送给客户; 这是实现 "全自动执行助理" 的关键定时驱动能力。
九、第六层:工具执行网关层(Tool Executor Gateway)
工具网关是 Agent 逻辑和外部业务系统的隔离层,负责统一封装第三方 API、参数校验、请求重试、结果归一化、调用日志留存,上层 Agent 无需感知第三方接口细节。 按照业务域划分四大工具集,覆盖 Hey Noah 全部执行能力:
9.1 日程管理工具集(Calendar Tools)
对接 Google Calendar、Outlook Calendar、Apple Calendar 官方 API:
- create_event:创建会议日程、设置多重提醒;
- check_time_conflict:时间段冲突检测(核心前置校验工具,防止重复排期);
- update_event:会议改期、取消;
- get_upcoming_schedule:获取创始人近期日程,用于对外邀约时间推荐。
9.2 邮件工具集(Email Tools)
基于 IMAP/SMTP 封装:
- send_email:结构化发送商务邮件,支持附件、模板;
- draft_email:生成邮件草稿存入邮箱;
- fetch_latest_thread:拉取某条邮件完整会话。
9.3 短信 & WhatsApp 消息工具集(IM Tools)
基于 Gateway 下行通道封装:
- send_sms:手机短信发送;
- send_whatsapp_msg:WhatsApp 富文本消息发送;
- recall_msg(可选):消息撤回适配渠道能力。
9.4 会议后勤工具集(Meeting Tools)
- generate_meeting_link:自动生成 Zoom / 腾讯会议链接;
- send_meeting_reminder:会前定时提醒推送;
- generate_meeting_minutes:会后基于聊天 / 邮件记录生成会议纪要。
9.5 网关通用能力
- 参数强校验:前置校验时间格式、邮箱格式、手机号合法性,避免无效 API 调用;
- 熔断降级:第三方接口连续失败触发熔断,切换备用通道;
- 调用审计:每一次工具调用落地日志,包含入参、出参、耗时、状态,用于可观测性排查。
十、第七层:安全管控 & 可观测底座层
面向创始人商务敏感数据(客户联系方式、商业合同、日程),安全是底层硬性要求,同时全链路可观测保障 7×24 小时稳定运行。
10.1 三级权限沙箱管控
- 基础权限白名单:配置可调用工具白名单,禁止高危操作(批量删除邮件、批量群发营销短信);
- 高危动作二次确认:单笔大额商务相关发送、全员群发消息,Agent 先推送确认短信给创始人,确认后再执行;
- 数据访问权限隔离:多账号部署场景下,联系人、日程数据租户隔离,禁止跨租户数据读取。
10.2 数据隐私安全
- 传输链路:全部 API 通信 TLS 1.3 加密;
- 存储加密:手机号、邮箱等 PII 敏感数据落库 AES 加密存储,向量库、图库仅存储加密索引;
- LLM 推理隐私:支持本地私有化 LLM 部署,敏感业务不调用公有云 LLM API,数据不出内网。
10.3 全链路可观测体系
- 链路追踪:OpenTelemetry 埋点,从原始消息接入→事件抽取→Agent 推理→工具调用全链路 TraceID 串联;
- 指标监控:Agent 触发量、工具调用成功率、LLM 推理耗时、消息处理延迟、内存队列堆积告警;
- 日志中心:ELK 聚合结构化日志,支持按联系人、事件、时间段检索;
- 告警通道:异常失败、队列积压、渠道断连通过短信 + 企业微信告警运维。
10.4 故障自愈机制
- 渠道适配器异常:自动切换备用通道;
- Agent 进程崩溃:Docker 容器健康检查自动重启,任务基于状态机断点续跑;
- 消息队列堆积:自动扩容消费节点削峰。
十一、端到端业务场景技术实战:客户邀约会议全流程拆解
以「客户通过 WhatsApp 发起会议邀约→Noah 全自动完成全流程处理」为例,串联七层架构完整数据流,直观验证架构落地逻辑:
- Gateway 层:WhatsApp 上行消息接入,归一化为 UnifiedMessage 结构体;
- 事件流水线:文本清洗→NER 提取时间、联系人→事件分类为 EVENT_MEETING_INVITE→联系人融合匹配已有图谱客户 ID;
- 记忆引擎:拉取该客户历史向量沟通记忆 + 图谱合作事实,拼装上下文;
- 人脉图谱:读取客户公司、历史对接记录、亲密度权重;
- Agent 核心循环
- 规划层:生成子任务「1. 校验创始人日程空闲 2. 回复客户确认时间 3. 创建日历会议 4. 生成会议链接 5. 会前提醒配置」;
- 工具决策:依次调用 check_time_conflict→send_whatsapp_msg→calendar_create_event→generate_meeting_link;
- 执行:工具网关完成日程创建、消息回复;
- 反思:全部工具执行成功,标记任务完成,交互记录写入记忆与人脉图谱;
- 安全 & 观测:全链路日志记录,无高危动作直接放行;
- 后续主动动作:定时任务触发会前 1 小时短信提醒、会后自动跟进邮件。 全程零人工介入,实现商务会议端到端自动化,完整体现自主 Agent 相较于被动 LLM 的业务价值。
十二、生产环境部署架构(两种落地模式)
12.1 公有云容器化部署(SaaS 版本,官方产品部署模式)
基础设施:K8s 集群 + 对象存储 + 托管中间件 组件部署拆分:
- 无状态服务:Channel Gateway、Event Pipeline、Agent Core、Tool Gateway(K8s Deployment 水平扩容);
- 有状态存储:Redis Cluster、PostgreSQL+PgVector、Neo4j 集群(云原生托管数据库);
- 消息队列:Kafka(事件总线);
- 调度服务:Airflow(定时主动任务);
- LLM 推理层:公有云 LLM API 负载均衡(Claude/GPT-4o 动态路由);
- 监控运维:Prometheus+Grafana+ELK。
优势:弹性扩容、运维成本低、支持多租户 SaaS 交付。
12.2 私有化自托管部署(企业本地部署,数据内网留存)
基于 Docker Compose 一键编排部署,全部组件单机部署:
- 本地 LLM:Llama 3 / Qwen 72B 本地推理,杜绝外网数据出境;
- 存储:本地磁盘挂载 PostgreSQL、Neo4j、Redis;
- 短信接入:Android ADB 对接本地 SIM 卡设备;
- 网络:纯内网运行,仅对外出口为必要消息推送。 适合对商业数据隐私极高要求的创始人、企业客户。
十三、核心性能瓶颈与工程优化方案
13.1 瓶颈 1:LLM 推理耗时过高,消息处理延迟大
优化方案:
- 事件分级推理:高优先级业务事件使用高配 LLM,闲聊事件使用轻量化小模型;
- Prompt 缓存:固定场景 Prompt 模板缓存,减少 Prompt 拼接耗时;
- 向量检索前置过滤:先通过联系人 ID 过滤向量,再做相似度检索,减少向量计算量。
13.2 瓶颈 2:向量库数据量上涨,检索速度衰减
优化方案:
- 按联系人分表存储向量数据;
- 老旧记忆归档至冷存储,仅热点客户向量常驻内存;
- 使用 HNSW 索引优化 PgVector 检索性能。
13.3 瓶颈 3:Agent 循环多次 LLM 调用,Token 成本过高
优化方案:
- 规划 + 反思步骤合并推理,减少轮次调用;
- 结构化输出强制 JSON 格式,减少格式纠错重试;
- 主动任务做批量规划,单次推理生成多条跟进任务。
13.4 瓶颈 4:多渠道消息突增,队列拥堵
优化方案:
- 事件总线分区消费,按联系人 ID 分区,避免单消费者拥堵;
- 突发流量限流削峰,非紧急消息延迟处理。
十四、最小化 Hey Noah 核心 Agent 伪代码工程实现(Python)
以下为可运行的核心逻辑 Demo 代码,复现 Agent 自主循环、记忆检索、工具调用核心逻辑,基于 LangChain 框架快速验证原型:
# -*- coding: utf-8 -*-
"""
Hey Noah 核心自主Agent最小Demo
依赖:langchain, langchain-openai, redis, pgvector, neo4j
"""
import json
import redis
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.tools import tool
from pgvector.client import PgVectorClient
from neo4j import GraphDatabase
# ===================== 1.底层存储初始化 =====================
# 短期记忆Redis
redis_client = redis.Redis(host="127.0.0.1", port=6379, db=0)
# 向量长期记忆
vector_db = PgVectorClient(connection_string="postgresql://user:pwd@127.0.0.1:5432/noah_vector")
# 人脉图谱
neo4j_driver = GraphDatabase.driver("bolt://127.0.0.1:7687", auth=("neo4j", "password"))
# LLM核心模型
llm = ChatOpenAI(model="gpt-4o", temperature=0.1)
# ===================== 2.工具定义(日程、消息工具) =====================
@tool
def calendar_create(start_time: str, title: str, attendee: str) -> str:
"""创建日历日程工具
Args:
start_time: 日程开始时间
title: 会议标题
attendee: 参会人联系方式
"""
# 模拟日历API调用
return f"日程创建成功:{title} {start_time} 参会人:{attendee}"
@tool
def send_whatsapp(receiver: str, content: str) -> str:
"""发送WhatsApp消息工具"""
return f"消息发送至{receiver},内容:{content}"
tool_list = [calendar_create, send_whatsapp]
# ===================== 3.记忆融合检索函数 =====================
def get_agent_context(contact_id: str, event_summary: str) -> str:
"""融合三层记忆,生成上下文Prompt"""
# 短期会话记忆
short_mem = redis_client.get(f"session:{contact_id}") or ""
# 向量长期记忆Top4检索
long_mem = vector_db.similarity_search(event_summary, filter={"contact_id": contact_id}, k=4)
long_mem_text = "\n".join([doc.page_content for doc in long_mem])
# 图谱事实记忆
with neo4j_driver.session() as session:
graph_res = session.run(
"MATCH (c:Contact{id:$cid}) RETURN c.name,c.company,c.last_interact", cid=contact_id
).single()
graph_fact = f"客户信息:{graph_res[0]},公司:{graph_res[1]},上次沟通:{graph_res[2]}" if graph_res else "无历史客户资料"
# 拼接上下文
full_context = f"""
===近期会话记录===
{short_mem}
===历史沟通记录===
{long_mem_text}
===客户核心事实===
{graph_fact}
===当前业务事件===
{event_summary}
"""
return full_context
# ===================== 4.Agent自主循环初始化 =====================
prompt = ChatPromptTemplate.from_messages([
("system", "你是Hey Noah自主执行助理,根据上下文完成任务规划,调用工具完成商务动作,任务完成后输出执行总结"),
("placeholder", "{agent_scratchpad}"),
])
agent = create_tool_calling_agent(llm, tool_list, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tool_list, verbose=True)
# ===================== 5.事件触发执行入口 =====================
def handle_business_event(contact_id: str, event_summary: str):
context = get_agent_context(contact_id, event_summary)
# Agent执行循环
result = agent_executor.invoke({"input": context})
# 执行结果写入短期记忆
redis_client.setex(f"session:{contact_id}", 72*3600, result["output"])
print("Agent执行结果:", result["output"])
return result
# 模拟事件调用
if __name__ == "__main__":
handle_business_event(
contact_id="C00123",
event_summary="客户张三邀约8月6日14点开展业务沟通,请确认时间并回复客户,创建会议日程"
)
该 Demo 完整复刻事件触发、记忆加载、工具规划执行、记忆回流核心链路,可基于此扩展多渠道网关、事件抽取、定时主动任务模块完成完整原型搭建。
十五、落地痛点、幻觉抑制与可靠性提升方案
15.1 自主 Agent 核心痛点:LLM 幻觉导致错误任务执行
问题表现:AI 臆造客户时间、错误修改日程、虚构沟通内容发送消息,直接影响商务工作。 抑制方案:
- 事实类内容强制图谱校验:涉及客户关键信息、时间、约定,必须从 Neo4j 图谱取值,禁止 LLM 自由生成;
- 高危输出前置校验:对外发送消息前,用小模型做幻觉检测,高风险内容触发人工确认;
- 工具参数强格式校验:时间、联系方式等参数正则校验,非法参数直接阻断调用。
15.2 痛点 2:长周期任务断连(跨天跟进任务丢失)
解决方案:基于状态机持久化任务,Redis 定时轮询状态,实现断点续跑,不会因为服务重启丢失待跟进任务。
15.3 痛点 3:渠道消息格式多变导致事件抽取失败
解决方案:维护渠道异常消息规则库,针对邮件花式签名、WhatsApp 群聊特殊格式做规则兜底清洗,结合 LLM 异常 case 持续迭代 Few-Shot 样本。
十六、总结与技术发展展望
16.1 全文技术总结
Hey Noah 能够实现对标 FSD 的主动式 AI 执行助理,核心并不是基座大模型的能力碾压,而是一套工业化、分层解耦的自主智能体运行时架构:
- 通过多渠道归一化网关打破通讯渠道壁垒,实现全社交网络环境感知;
- 事件抽取将非结构化聊天文本转化为机器可理解的结构化业务事件;
- 三级混合记忆解决 LLM 短期记忆瓶颈,实现数年商务数据可回溯;
- 人脉知识图谱完成创始人数字化人脉资产建模与价值挖掘;
- Plan-Act-Reflect 自主闭环实现从被动应答到主动规划执行的质变;
- 工具网关、安全沙箱、可观测底座保障生产环境稳定可用。 对比 Claude 这类纯对话 LLM,Noah 完成了从 "语言生成模型" 到 "具备感知、记忆、规划、执行、反思完整链路的实体智能代理" 的工程跃迁,也是下一代个人 / 企业 AI 助理的标准技术架构范式。
16.2 技术演进展望
- 多模态感知升级:后续接入语音通话、线下会议录音,补充语音维度事件抽取;
- Agent 自我进化:基于历史任务执行成败数据,微调规划 Prompt,自主优化任务拆解策略;
- 多 Agent 协同:拆分日程 Agent、人脉 Agent、邮件 Agent 子智能体,协同完成更复杂的创始人运营工作。
文末互动引导
本篇文章完整拆解了 Hey Noah 主动式 AI 执行助理全栈底层技术架构,从网关接入、记忆系统、知识图谱、自主 Agent 核心循环到工程落地代码、部署优化全覆盖,适合 AI Agent 架构落地、LLM 应用工程化开发学习参考。 如果本文对你的 AI 智能体项目研发有帮助,欢迎点赞、收藏、转发,持续关注博主,后续会继续更新!