新闻详情

新闻详情

首页 / 资讯中心 / 详情

WaLiOffice 意图识别实战:System Prompt 工程与“规则优先、LLM 兜底“的意图分析引擎

发布时间:2026/9/26 15:45:43来源:尧图网络
WaLiOffice 意图识别实战:System Prompt 工程与“规则优先、LLM 兜底“的意图分析引擎
文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载在《WaLiOffice - AI Agent 智能办公平台》中ReAct 循环解决了LLM 能思考、能调用工具的问题但用户一句话背后究竟是想要 PPT、Word 还是 Excel 产物ReAct 循环本身无从判断。本文围绕 第2-6节System Prompt 工程与意图识别 展开完整讲解 WaLiOffice 基于规则引擎优先、LLM 兜底策略的意图识别Intent Analysis设计14 种意图类型的分类体系、基于关键词权重的规则分类器、时序意图检测与指代消解以及build_intent_context_addition系统提示词注入策略。读完你将掌握一套不消耗 LLM token、毫秒级完成、且能精准命中办公场景的意图分析方案并理解它如何在chat_stream链路中与 ReAct 循环无缝衔接。一、为什么 ReAct 循环之外还需要意图识别在 第2-5节ReAct 循环核心实现 中WaLiOffice 跑通了for turn in 0..max_turns的 Agent 主循环LLM 思考Thought→ 调用工具Action→ 观察结果Observation→ 继续思考最多循环 8 轮。但很快暴露出一个核心问题LLM 在决策工具之前需要先知道用户的真实意图是什么。三个典型场景可以说明问题用户说帮我做个汇报——是 PPT 汇报Word 报告还是 Excel 数据汇报用户说先帮我写提示词——这是文本意图不能直接跳到图片/视频生成。用户说先做 PPT再生成流程图——这是时序意图要分步执行不能一起做。直觉上似乎可以让 ReAct 循环里的 LLM 自己判断意图、自己决定用哪个工具。但 WaLiOffice 的设计明确否定了这个方案原因有三维度规则引擎意图识别LLM 自行判断速度纯规则计算毫秒级需要一次 API 调用数百毫秒到数秒成本不消耗 LLM token节省 API 调用费用每次判断都要消耗 token精确性关键词可精准命中如帮我做个 PPT→ PPT对简单意图属于杀鸡用牛刀所以 WaLiOffice 采用了规则引擎优先、LLM 兜底的策略先用确定性规则把绝大多数意图在毫秒级识别出来识别不出的Unknown再交给 LLM 兜底处理。这也解释了为什么意图识别要放在用户发消息后、ReAct 循环启动前执行——它是 Agent 调度链条的第一道关卡。二、意图识别流程设计2.1 五步流水线从用户消息到 IntentResult意图识别在用户发消息后、ReAct 循环启动前执行整体是一个五步流水线用户消息输入 ↓ ① 时序意图检测先做X再做Y ↓ 命中 → 返回 Compound 意图 子意图 ② 文本优先检测先写/先构思 ↓ 命中 → TextGenerate 或具体子意图 ③ 指代消解这个/那个/继续 ↓ 替换为实际内容 ④ 关键词规则分类权重匹配 ↓ ⑤ 降级兜底fallback ↓ 返回 IntentResult含置信度 工具建议① 时序意图检测匹配先做 X 再 Y先 A 然后 B这类表达。命中后直接返回Compound意图同时拆分出子意图序列交给 Agent 分步执行——这是后续 第2-7节后端Chat路由与SSE端点 中IntentAnalyzer.analyze(message, session_id, has_image)返回结果的重要组成部分。② 文本优先检测当用户表达先写/先构思时优先判定为TextGenerate意图避免跳到图片/视频生成等重工具。③ 指代消解处理这个/那个/继续等代词与承接语结合会话上下文把指代内容替换为实际内容再做后续分类。④ 关键词规则分类核心环节基于关键词权重做匹配打分详见下文。⑤ 降级兜底规则全部未命中时进入 fallback最终返回Unknown意图交由兜底处理。最终输出IntentResult其中携带置信度confidence与工具建议tool suggestion供上层 Agent 配置与 Prompt 注入使用。2.2 14 种意图类型IntentTypeWaLiOffice 将用户意图划分为 14 种类型每一类都有明确的关键词触发集、对应的工具与执行约束意图类型触发关键词示例对应工具备注Pptppt、演示文稿、幻灯片ppt_plan → ppt_generate必须两步Docword文档、报告、PRD、方案书doc_generateMarkdownmarkdown、readme、知识库、会议纪要md_generateSheetexcel、表格、数据分析、排期sheet_generateChart图表、可视化、柱状图、折线图chart_generate非PPT/Excel场景Drawiodraw.io、流程图、架构图、UMLdrawio_generateImage生成图片、海报、封面、logoimage_promptVideo生成视频、短视频、动画片video_generateWebSearch最新、官网、搜索一下web_searchTextGenerate写提示词、写脚本、构思方案md_generate文本优先ImageUnderstanding这是什么、识别、OCR无工具直接识图回答Chat日常对话、问答无工具纯文本回复Compound先做X再Y、先A然后B多个工具时序分步Unknown未能识别兜底处理这张表是意图识别系统的核心分类词典观察其中几处关键设计Ppt必须两步PPT 生产在 WaLiOffice 中是ppt_plan规划大纲→ppt_generate渲染幻灯片双工具协作这在 第2-4节工具Trait定义与注册表机制 的 10 工具注册表中可以看到对应关系——意图识别不仅告诉 Agent用户要什么还附带怎么执行的流程约束。TextGenerate文本优先凡是写提示词、写脚本、构思方案这类诉求直接落到md_generate不占用图像/视频等重资源。ImageUnderstanding与Image分离识别类意图这是什么/OCR无工具、直接识图回答生成类意图才走image_prompt。这一区分保证了看图说话与文生图两条链路互不混淆对应 walioffice.md 中图像能力附件理解与图生图的设计。Chart限定非 PPT/Excel 场景图表意图在 PPT/Excel 场景内会被更高优先级的Ppt/Sheet拦截避免工具选择冲突。三、System Prompt 工程build_intent_context_addition注入策略意图识别本身是确定性规则但它的结果必须传导给 LLM否则 ReAct 循环里的模型仍然不知道自己在干什么。这正是本节标题中System Prompt 工程的含义。在 第2-7节后端Chat路由与SSE端点 的chat_stream完整流程中可以清晰看到这一注入点POST /api/chat/stream (AuthUser ChatRequest) ↓ ① 意图识别 — IntentAnalyzer.analyze(message, session_id, has_image) ↓ ... ⑦ 构建意图注入 — build_intent_context_addition → AgentConfig.system_prompt ↓ ⑧ 启动 Agent 循环 — run_agent_loop(history, message, config)关键链路是IntentAnalyzer 分析出意图 →build_intent_context_addition把意图结论拼装进AgentConfig.system_prompt→run_agent_loop带着增强后的 System Prompt 启动 ReAct 循环。也就是说意图识别结果不会停留在后端逻辑层而是以追加系统提示词context addition的方式注入到 LLM 的上下文中让 LLM 在每一轮思考时都知道自己正在完成哪个意图、该选哪个工具、该按什么顺序执行。这套工程化设计的价值在于意图结果显式化Ppt意图会让 System Prompt 明确提示用户需要 PPT必须先调用 ppt_plan 规划大纲再调用 ppt_generate 生成从提示词层面约束 LLM 的工具决策。Compound 意图的分步约束时序意图拆分出的子意图序列会被注入提示词要求 LLM 按顺序完成而不是并行乱序。无工具意图直接应答Chat/ImageUnderstanding意图在提示词中明确无需调用工具直接回复避免 LLM 为了完成任务而强行调用工具。这套思路与 第2-5节ReAct循环核心实现 中的OFFICE_AGENT_PROMPT系统提示词一脉相承System Prompt 不是一段静态文案而是基础规则 动态意图上下文的组合体让 LLM 在 ReAct 循环中按规则出牌。四、意图识别的三个关键设计点4.1 时序意图检测Compound先做 X再做 Y是办公场景中的高频表达。意图识别流水线的第一道工序就是检测时序结构检测到连接词先…再…先…然后……再…与两个以上独立意图时返回Compound意图同时把子意图序列一并返回如Ppt → Drawio后续build_intent_context_addition会把该序列注入 System Prompt驱动 ReAct 循环分步执行——先完成 PPT再生成流程图而不是一次并行调用。这在多产物交付场景walioffice.md 中一句话生成 PPT、Word、Excel、Draw.io、图片、视频的产品定位下尤其重要一个对话可以产出多种产物意图识别必须把复合诉求正确拆解为执行序列。4.2 指代消解上下文追踪这个/那个/继续/把它做成表格这类指代表达脱离上下文无法分类。意图识别的第 3 道工序负责在分类之前先做指代消解结合会话历史与上一轮产物将代词替换为实际指代对象替换后的消息再进入关键词规则分类保证它能正确命中Sheet等具体意图。值得注意的是IntentAnalyzer.analyze(message, session_id, has_image)的签名——session_id与has_image两个参数正是为这类上下文依赖设计的session_id用于回溯历史消息完成指代消解has_image用于在图片附件场景下区分ImageUnderstanding识图与Image生图。4.3 降级兜底fallback规则引擎的边界是未被关键词覆盖的表达。当五步流水线全部未命中时返回Unknown意图交由兜底处理fallback而不是让 Agent 在缺少意图指引的情况下盲目决策。这保证了系统在冷启动、新表达、模糊输入等场景下的鲁棒性——宁可承认没识别出来也不给 LLM 一个错误的意图约束。五、意图识别在 Agent 调度链中的位置把第 2 部分的各节串联起来可以看清意图识别在整个 Agent 链路中的枢纽地位用户消息 ↓ 意图识别IntentAnalyzer build_intent_context_addition ← 本节 ↓ AgentConfig.system_prompt携带意图上下文 ↓ run_agent_loopReAct 循环默认 max_turns8 ← 第2-5节 ↓ OfficeTool.call10 个工具经 ToolRegistry 调度 ← 第2-4节 ↓ AgentEvent → SSE Event思考/工具调用/产物实时推送 ← 第2-7节 ↓ 前端流式渲染打字机效果 产物面板 ← 第2-8节与 第2-8节前端对话界面与流式渲染 对照可见意图识别的成果最终体现在前端事件流中——用户看到 Agent思考事件后紧跟的是正确的工具调用如ppt_plan这正是意图注入 System Prompt 后对 ReAct 决策施加约束的直观表现。六、小结本节围绕 WaLiOffice 的意图识别引擎讲清了四件事为什么需要意图识别ReAct 循环解决怎么执行意图识别解决要做什么前者需要 LLM 推理后者可以用确定性规则以更低成本、更快速度、更高精度完成。五步流水线时序意图检测 → 文本优先检测 → 指代消解 → 关键词权重分类 → 降级兜底最终产出携带置信度与工具建议的IntentResult。14 种意图类型覆盖办公全场景的分类词典其中Ppt双工具约束、TextGenerate文本优先、ImageUnderstanding与Image分离、Chart场景限定等设计细节直接对应 第2-4节 的工具注册表与 walioffice.md 的产品能力矩阵。System Prompt 注入build_intent_context_addition将意图结论拼入AgentConfig.system_prompt让规则引擎的分析结果真正成为 LLM 决策的上下文是规则引擎优先、LLM 兜底策略闭环的关键一环。这套确定性规则前置过滤 提示词动态注入 LLM 决策兜底的架构是 Agent 类产品降低延迟与成本的通用范式——意图识别得越准LLM 的推理负担越轻用户的等待越短产物与诉求的匹配度越高。赞分享文档教程后端【免费下载链接】CodeGuide:books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总旨在为大家提供一个清晰详细的学习教程侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助请给予支持(关注、点赞、分享)项目地址https://gitcode.com/gh_mirrors/code/CodeGuide点击查看免费下载相关推荐Higress AI 意图识别插件ai-intent实战指南基于 LLM 的请求意图分类与路由决策Higress AI 意图识别插件ai intent实战指南基于 LLM 的请求意图分类与路由决策 导读 ai intent 是 Higress 提供的一API网关后端云原生LLM 网关人工智能MCP 服务mcp-agent Intent Classifier 工作流实战指南基于嵌入与 LLM 双路意图识别mcp agent Intent Classifier 工作流实战指南基于嵌入与 LLM 双路意图识别 意图分类Intent Classification人工智能AI AgentAgent 框架MCP ClientsAgent 工作流5分钟提升LLM响应质量NebullVM意图识别评估实战指南5分钟提升LLM响应质量NebullVM意图识别评估实战指南 你是否遇到过LLM模型输出与用户真实需求脱节的问题客户反馈AI完全没理解我的意思的投诉是否AI 应用模型优化LLMOps创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

TIA Portal V18从下载安装到仿真失败排查与Openness进阶 2026/9/27 4:18:58

TIA Portal V18从下载安装到仿真失败排查与Openness进阶

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
性能三问 —— 「快 6 倍」与语言无关 2026/9/27 4:18:58

性能三问 —— 「快 6 倍」与语言无关

系列:gdev-master(NVIDIA/nouveau 用户态 GPGPU 运行时)从 C/C 到 Rust 的移植工程 上一篇主问题「能」已答完,但留了三个方面问题:①有数据为零的情况;②分析性能提升 6 倍原因;③多次测试验证…

阅读更多 →
电子信息专业嵌入式与芯片方向四年学习路线规划 2026/9/27 4:18:58

电子信息专业嵌入式与芯片方向四年学习路线规划

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
FPGA进阶路线:从UART到PCIe,多Die与高速接口实战指南 2026/9/27 4:18:51

FPGA进阶路线:从UART到PCIe,多Die与高速接口实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
宁波seo快速排名哪家好?3家实战团队拆解,新手避坑指南 2026/9/27 4:18:51

宁波seo快速排名哪家好?3家实战团队拆解,新手避坑指南

宁波seo快速排名哪家好?3家实战团队拆解,新手避坑指南 很多宁波老板想给公司做个官网,心里最慌的就是: 自己完全不懂代码,怕被坑,又怕花钱做了个死站。…

阅读更多 →
Deep-Leafsnap实战:基于Python与Keras的植物叶片识别系统解析 2026/9/27 4:18:51

Deep-Leafsnap实战:基于Python与Keras的植物叶片识别系统解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉