1. 先把这件事拆明白:AI智能体Office套件到底是个什么东西
1.1 从"给Office装个AI"到"让AI自己用Office"
先说结论:这个项目表面上叫"AI智能体Office套件设计与实现",但内核上它干的事情是——把大语言模型从"聊天框里的对话机器"变成"一个能自己打开Word写文档、拉Excel算数据、翻PPT改版式的数字员工"。
很多人拿到这个题目,第一反应是"哦,做一个有AI功能的Office插件,用户选中一段文字,点个按钮,让AI帮忙润色或者生成摘要"。这种理解不能说错,但方向偏保守了。智能体(Agent)和传统AI功能插件的本质区别在于,前者具备任务自主规划能力:你给它一个目标,比如"帮我整理三季度销售数据并生成一份带图表的分析报告",它需要自己决定先做什么、后做什么、调用哪些工具、生成哪些中间产物、最后产出什么格式的交付物。这中间涉及任务分解、工具调用、结果校验、异常回退,整个链路远超"套个大模型API"的范畴。
从计算机科学与技术的学科角度,这个题目恰好把三门核心课的功力串在了一起:人工智能(规划、推理、自然语言理解)、软件工程(模块化设计、接口定义、异常处理)、人机交互(意图识别、结果呈现、用户控制权)。所以它经常被当作毕设题目或者课程项目,不是偶然——能在一个小项目里同时体现算法设计能力和系统工程能力,这是很划算的选题。
1.2 为什么是Office套件,而不是别的载体
选Office三件套作为智能体的"工作环境",有一个容易被低估的理由:它是办公场景里结构化程度最高的工具群。Word有文档层级,Excel有单元格和公式,PowerPoint有幻灯片模板和母版,这些结构为智能体的工具接口提供了清晰的切分点。相比之下,如果你让智能体去操作一个通用桌面软件,比如打开Photoshop做图,图像编辑的操作空间是连续的、非结构化的,工具接口极难定义。而Office文档天然是"对象模型"——段落、表格、单元格、图表都是可枚举、可读写的对象,这正好是程序化操作的理想土壤。
另外一个现实考量是,Office套件的自动化生态已经足够成熟。微软提供了完整的COM组件接口和Office JavaScript API,Python生态里有python-docx、openpyxl、python-pptx这些久经考验的开源库,.WPS也开放了JS宏能力。这意味着做这个项目的人不需要从零造轮子去操作Office文件,而是把精力集中在"怎么让智能体正确地指挥这些轮子"上。这一点对整个项目的落地难度影响非常大——我见过不少同类毕设死在了演示环节,不是因为AI不聪明,而是因为文档操作都靠自己写底层解析代码,写了一学期连个带格式的Word都没生成出来。
1.3 项目价值与目标定位
做这个项目之前,先把目标定清楚,能避免后面三个月反复改方向。我认为它的核心目标应该是:搭建一个能理解办公任务、自主调用Office组件完成文档处理的智能体系统,并且做到"看得见的过程、可干预的执行、能复用的能力"。
所谓"看得见的过程",就是智能体在规划任务和执行工具调用的时候,每一步都有日志和中间产物展示,用户随时能看出它在干嘛、干到哪一步了。所谓"可干预的执行",就是用户在智能体开始写文档之前,能对生成计划做删改,而不是让它闷头一口气跑到底。所谓"能复用的能力",就是文档模板、数据清洗流程、图表样式这些沉淀下来之后,换个任务还能继续用。
把这三条定成验收标准之后,整个项目的架构方向就清晰了。下面我把完整的设计思路、实现过程、踩坑记录都梳理一遍,这部分内容不光是给做毕设的同学参考,想在企业内部搭一个"文档处理中台"或者"办公自动化智能体"的朋友,同样能直接拿过去用。
2. 总体架构设计:智能体怎么"长出手脚"去操作Office
2.1 底座选型:ReAct模式的智能体主循环
智能体的核心是一个循环决策系统,业内目前最主流、也最适合Office这种工具型场景的范式,是ReAct模式——推理(Reasoning)与行动(Action)交替进行。它的运作方式可以简单理解为:
- 智能体接收用户的任务描述,结合当前会话上下文,先想一步:"这个任务需要哪些信息,我下一步要做什么?"
- 它输出一个"动作意图",比如调用某个工具函数或者查询某份文档内容。
- 系统执行这个动作,把返回结果放回上下文。
- 智能体基于新结果继续推理,直到认为任务完成,输出最终交付物。
这个循环和人的工作方式其实很像。你写一份项目总结报告,不是一口气写完全文才叫完成,而是先搭框架、再填内容、中间查数据、核对格式,每步都要看反馈。ReAct模式的价值就在于,它把"思考"和"行动"分离,工具调用的结果能实时反哺给模型,让它在下一步决策中参考真实数据,而不是凭空生成。
在具体实现上,我建议不要自己从零写这个主循环,直接使用LangChain或Dify这类框架,它们已经把任务规划、工具注册、模型调用这些底层逻辑封装好了。当然这有个权衡:框架越重,后面调试工具调用链路的自由度越低。我个人的选择是,用LangChain做底层的Agent运行框架,用Dify或Coze完成一部分流程的可视化编排演示,因为毕设答辩环节里,现场可视化地展示工作流是很有说服力的加分项。
2.2 大模型接入层与工具注册机制
Office套件的智能体,大脑部分可以接入国内主流的大模型,比如通义千问、DeepSeek、智谱GLM这些,都开放了兼容OpenAI格式的接口。选择模型的考量点有这几个:
- 上下文长度:Office文档处理任务经常要携带大量文本内容,比如让智能体读一份30页的Word文档并提取要点,这需要至少32K以上的上下文窗口,建议选支持128K的模型。
- 函数调用能力:这是硬指标。智能体要调用Office工具,必须依赖模型在推理时输出结构化的工具调用参数。不同模型在函数调用上的准确率差异很大,我实测的经验是,DeepSeek和通义千问在这块的表现都足够稳定。
- JSON结构化输出:很多中间步骤需要模型输出严格格式的JSON,比如"生成文档大纲"。模型对JSON格式的遵循程度,直接影响后面解析流程的健壮性。
工具注册机制是整个系统设计的核心。Office套件所有的能力,都要通过一个统一的函数接口暴露给智能体。例如注册一个"创建工作簿"的工具,它的描述信息是这样定义的:工具名称、工具作用说明、参数列表(每个参数的类型、是否必填、含义)、返回值结构。这些描述会作为系统提示词的一部分送给模型,模型根据任务判断该调用哪个工具、填什么参数。
有个实操细节很容易被忽略:工具描述一定要写清楚使用边界和失败条件。比如"创建工作簿"这个工具,你得在描述里写清楚"如果目标路径已存在同名文件,返回错误码ERR_FILE_EXISTS"。模型看到了这个错误码之后,才能在下一步决策中决定是覆盖文件还是换个路径。如果工具描述里没有这些边界信息,模型遇到异常就会傻掉,要么反复调用同一个失败工具,要么瞎编一个成功结果。
2.3 Office能力封装层:把桌面软件变成函数
这是把"智能体"和"Office"真正粘合起来的一层。我的方案是,通过Python库封装Office文件格式处理能力:
- Word文档用python-docx操作.docx文件,支持段落读写、样式设置、表格插入、页眉页脚、目录生成。
- Excel表格用openpyxl操作.xlsx文件,支持单元格读写、公式计算、图表生成、数据筛选、条件格式。
- PowerPoint演示文稿用python-pptx操作.pptx文件,支持幻灯片增删、文本框操作、图片插入、主题和模板套用。
把这些操作封装成一个个独立的工具函数,比如:
create_word_document(sections, style_template):按大纲创建Word文档excel_calculate_summary(file_path, range):对表格区域做统计计算ppt_generate_slide(template_path, title, content):按模板生成一页幻灯片
这里有一个关键设计原则,我是在做完第一版之后痛定思痛总结出来的:工具函数必须是"粒度适中"的。如果工具粒度太细,比如"插入一个段落""设置一个字体",那智能体完成一篇文档可能需要调用几十次工具,中间任何一步出错都会让后面的依赖全部崩掉,执行效率和稳定性都很差。如果粒度太粗,比如"生成一份完整标书",模型的规划能力根本负担不了这种一步到位的大任务。正确的做法是折中:工具的执行单元是"完成一个语义完整的子任务",比如"根据数据生成销售趋势图表并插入到指定位置"。
2.4 上下文与记忆机制:让智能体不"失忆"、不跑偏
Office套件智能体会遇到的另一个典型问题是:任务长、中间产物多,而大模型的上下文窗口是有限的。用户上午让它分析了销售数据,下午问"刚才那个图表能换成折线图吗",智能体得能回忆起上午的操作。这就要靠会话级记忆和工作流级记忆两层机制。
会话级记忆记录用户与该智能体的对话历史、任务上下文、最近生成的文档信息,这部分直接存到向量数据库或关系数据库里。工作流级记忆则沉淀"这类任务通常怎么做"的经验,比如"生成周报的固定结构是:本周工作概述、核心指标变化、问题与风险、下周计划",这个知识可以从特定场景的专用提示词组件里读取。
实现上我是用Redis缓存短期会话状态,用SQLite存储长期任务记录。每次用户发起新任务时,智能体先从长期记忆里检索相似的历史任务,把可复用的经验注入到本次任务的提示词中。这个机制带来的直接收益是,用户不用每次都把需求从头描述一遍,第二次说"跟上周一样的格式,数据更新一下"就能被理解。
3. 核心模块实现全记录:从文档生成到图表分析
3.1 自然语言任务到结构化工作流的转换
智能体理解用户输入之后,第一件事是把模糊的自然语言任务转换为明确的结构化工作流。这部分是整个系统里规划能力最集中的体现。以"帮我根据第三季度的订单表生成一份销售分析报告"为例,智能体内部会经历这些解析步骤:
- 意图识别:识别出这是一个"数据分析+报告生成"复合任务,不是简单的问答。
- 信息抽取:提取关键参数——数据源是"第三季度的订单表"、交付物是"销售分析报告"。
- 任务拆解:把复合任务拆成子任务序列——定位文件、读取数据、统计分析、生成图表、编写报告、导出文档。
- 风险预判:检查是否有信息缺口。比如用户没说明第三季度的订单表存在哪个目录下,智能体需要先调用"文件搜索"工具,或者主动向用户澄清。
这个转换过程实现时,我推荐的做法是让大模型输出一个JSON格式的任务规划书,包含task_list数组,每个元素有task_id、task_type、task_description、depends_on(依赖的前置任务ID)。系统拿到这个规划书后,会做一次合法性校验:检查是否存在循环依赖、是否缺少必要参数、是否有无法识别的任务类型。校验通过后才真正开始执行。
为什么我不让模型直接生成答案,而是要它先生成规划书?因为任务规划书是可审计、可干预的。用户在智能体开始执行前,能在界面上看到这份任务清单,删掉不想要的步骤,调整执行顺序。这个设计在答辩演示的时候特别有用,因为评审老师可以清晰地看到"智能体不是瞎写的,它是按逻辑来干活的"。
3.2 文档智能生成模块实战
文档模块我分成三个能力逐步实现:模板化生成、基于现有文档的改写、多文档内容聚合。
模板化生成是最好入手的。我在系统里预置了一批Office文档模板,比如项目周报模板、会议纪要模板、技术方案模板。每个模板本质上是一个带占位符的.docx文件,占位符形式是{{project_name}}、{{completion_rate}}这种。智能体负责做两件事:一是根据用户需求选择或拼接模板,二是解析语义提取填充内容。比如用户说"帮我生成一份项目周报,项目是智慧园区物联网平台,这周完成了网关调试,下周开始部署传感器",智能体就把这些信息填入模板的对应字段。
基于现有文档的改写能力用到了RAG(检索增强生成)。用户上传一份《产品需求说明书》,要求"把里面所有跟硬件相关的描述提取出来,重新组织成一页纸的硬件需求清单"。智能体的处理流程是:先调用工具把Word文件转成纯文本并切片,对切片做向量化存储,然后检索硬件相关内容,再调用模型生成改写结果。这里我的实操心得是,Office文档转纯文本的时候,一定要保留标题层级信息和表格结构标记,否则检索出来的是散乱的句子片段,重组出来的文档逻辑会非常跳跃。
多文档内容聚合这个场景,是毕设答辩时最容易出彩的演示功能。用户可以说"我的目录下有十几份调研报告,帮我汇总成一份800字的摘要"。实现层面核心思路是Map-Reduce:先把每份文档分别摘要成100字左右的要点,再把所有要点聚合送到模型做二次归纳,生成最终摘要。直接拿着全部文档内容去做汇总,上下文窗口大概率装不下,而且会因为信息过载导致输出质量急剧下降。
3.3 表格数据处理与分析模块:公式、图表、数据透视
Excel处理是Office套件里技术含量最高的部分,因为表格数据本身就是结构化的,对精确性的要求远高于文字生成。
我在表格模块实现了三类代表性的能力:
第一类是自然语言生成公式。用户输入"算一下这个表里华东区各门店的平均销售额,取两位小数",智能体需要做到的不只是算出结果,而是要生成excel可用的公式写入单元格。这部分的实现思路是,先让模型判断目标区域和统计方式,再套用预设的公式模板生成=ROUND(AVERAGE(C2:C12), 2)这样的表达式。有一个坑我特别提醒:大模型在涉及行列坐标的时候容易数错格子,明明C2到C12有11个数据,它可能写成C2:C13。我的解决办法是在工具函数里增加一步坐标校验,把模型生成的公式解析出来,对引用区域的边界做一个含值判断,如果发现区域尾部是空单元格,自动修复区间。
第二类是数据清洗。原始Excel表格里经常有重复行、空值、错乱格式的日期。我封装了统一的数据清洗管道,智能体拿到数据后,先执行一次自动检查,输出一份数据质量报告:发现3个空值、5条重复记录、日期格式不一致。然后智能体会询问用户或按预设规则自动处理。这个功能非常实用,实测比让模型直接处理原始数据要可靠得多,因为清洗逻辑是可复用的,不需要每次重新让模型"临场发挥"。
第三类是图表自动生成。用openpyxl或者直接读写Excel图表XML的方式,我封装了柱状图、折线图、饼图、散点图的生成函数。用户指定"按季度展示销售额变化趋势",智能体根据数据维度特征推荐折线图,自动完成图例、坐标轴标题、数据标签的配置。这里有个重要的经验:图表类型推荐规则不要交给模型拍脑袋,用确定性规则效果更好——时间序列数据默认折线图,类别占比数据默认饼图,类别对比数据默认柱状图,相关关系数据默认散点图。模型只需要负责理解用户意图,把参数提取正确。
3.4 演示文稿自动生成:从大纲到成品的完整链路
PPT生成的完整流程链条长、环节多,是最能体现系统工程能力的模块。我把它拆成了五个阶段:
阶段一:内容理解与大纲生成。用户输入主题,比如"给我做一份关于大学生外卖消费行为分析的PPT,大概12页左右"。智能体先输出一个结构化大纲,每页包含标题、核心观点、需要的数据。大纲本身是JSON格式,方便后面各环节按规则渲染。
阶段二:模板匹配。系统内置了几套不同风格的PPT模板——简洁商务风、渐变科技风、学术汇报风。根据主题语义和语气,智能体推荐模板。如果用户有指定的模板文件,直接导入。
阶段三:内容填充与文案润色。每一页的内容由大模型根据大纲生成,但要注意,不能让模型一次生成全部页面内容,那会失控。正确做法是逐页生成,每生成一页就写入实际PPT文件,再做下一轮。这样即使中途某页失败,也不影响已完成的部分。
阶段四:排版与格式优化。生成的文字可能过长或过短,导致文本框溢出或大片留白。我在这个环节加了一套启发式校验规则:标题不超过两行、正文要点每条不超过50字、页面文字总量控制在合理区间。超长内容自动缩写,太短的内容自动补充。
阶段五:图表联动与最终渲染。如果PPT的前置任务里有数据分析,生成的图表会被自动插入到对应页面。所有页面填充完成后,系统调用python-pptx重新计算版面布局,统一调整字体、颜色、间距,输出最终文件。
我在测试中发现一个高频问题:模型生成的内容风格非常"AI腔"——喜欢喊口号、堆排比句。后来我在文案生成的提示词中加入了"示例化改写"要求,规定正文文案必须以具体数据和事实支撑观点,避免空泛形容词,输出质量明显好转。
4. 系统联调与优化:把"能跑"变成"跑得稳"
4.1 大模型输出不一致的应对策略
大模型天生具有随机性,同样的输入,两次生成的基本框架可能一致但细节不同。在Office套件场景中,这种不一致会带来非常现实的问题:第一次生成文档的格式是段落式,第二次生成同样的内容变成了项目符号列表。要解决这个问题,不能只靠提示词"请保持格式一致",那是赌概率,正确的做法是分层约束。
第一层是工具函数输出结构约束。所有工具函数的返回值必须是固定的JSON结构,比如{status: "success", data: {...}}或{status: "error", error_code: "..."}。这样模型读到的工具执行结果是稳定结构,后续推理不会因为返回格式变化而走偏。
第二层是内容生成的抽文框架约束。文档正文、PPT文案、邮件内容这些纯文本生成全部走"先抽框架、再填内容"的流程。模型先输出章节结构JSON,系统按JSON渲染出文档骨架,然后逐段填充内容。骨架是结构性、确定性的,模型只负责在骨架内发挥。
第三层是温度参数控制。内容生成类的任务把温度设置在0.3到0.5之间,保持一定多样性但不过度发散。工具调用类的任务温度直接设为0,让模型尽量输出确定性最高的工具参数。
这套三层约束跑下来,同一任务反复执行的结果一致性已经稳定到可接受的水平。做毕设答辩演示的时候,可以现场先后执行两次同样的任务给评委看,两次生成的文档结构和内容质量不会有肉眼可见的落差。
4.2 长文档处理的上下文窗口管理
处理长文档最实用的方法是分治策略。我封装了一个"长文本处理器",内部实现包括章节切分、贪婪Token预算分配、摘要压缩、关键信息保留标记。
具体执行流程:文档按标题层级切块,每块做Token计数。系统根据剩余上下文预算,决定哪些块全量进入模型、哪些块压缩成摘要、哪些块只保留关键实体和数字。这个分配策略是动态的,模型在处理前面章节时发现预算不够了,会自动对后续内容做摘要降级。
这个机制的引入让系统能处理的文档体量从几千字扩展到几万字,代价是后面章节的细节会丢失一部分。所以我在界面上增加了透明度提示——告诉用户系统当前是在全量阅读还是摘要阅读模式。用户一旦发现关键信息被压缩掉了,可以手动指定重点章节,系统会动态调整预算分配,把重点章节恢复为全量模式。
4.3 执行效率优化与失败重试机制
智能体的单次任务执行链路长,一步模型推理可能耗时5到10秒,工具执行可能再花几秒。做一个12页的PPT,整体耗时可能要几分钟。这个延迟在演示场景下非常劝退。我做了两个层面的优化:
并行化做得比较克制,只在数据清洗和表格统计这些无依赖步骤上做并行。生成任务比如逐页生成PPT,前后是有依赖的,不能简单并行。另一招是模型速率的取舍——规划环节用小参数模型快速搞定,内容生成环节用大参数高质量模型。这样既不牺牲最终质量,又能把规划阶段的耗时砍掉一半以上。
失败重试机制的细节容易被忽视。工具调用失败之后直接让大模型重新推理,是成本非常高的做法,因为模型可能不确定刚才哪里出了问题,来回试错好多次。我的策略是给每次工具调用加上一个轻量的"失败分类器":错误类型、建议动作一步到位。比如文件路径不存在,失败分类器直接返回"检查路径是否拼写正确或文件是否已移动",模型基于这个明确的指引决定下一步,重试次数从平均四次降到了最多一次。
4.4 深度测试与用户体验改进记录
系统开发后期,我花了大量时间做边界测试,重点测那些"用户随便说一句话就希望它能懂"的场景。测试中发现了很多预期之外的问题,举几个有代表性的:
用户说"把第二个sheet里的数据放到报告里"。这句话里指代关系复杂,"第二个sheet"和"报告"都需要解析。我的系统第一版会直接把这句话当成完整需求去执行,结果自然是失败。后来我在意图解析模块里增加了指代消解功能:先把句子中的指代词标记出来,然后从上下文和历史会话中查找对应的实体对象,如果找到多个候选或找不到,就触发用户确认。这个改进虽然不大,但是对实际使用的亲切感提升非常明显。
还有一个交互层面的改进:保留人工确认的"最后一道防线"。智能体在删除文件、覆盖已有文档、批量修改数据这些不可逆操作前,必须弹窗让用户确认。最初我觉得这样会打断流畅度,但实际使用下来,这个确认机制反而让用户更愿意放心地把任务交给智能体。系统越强大,用户越需要控制感,这个道理被验证得很彻底。
5. 常见故障排查与项目演进建议
5.1 高频异常场景速查表
我把开发过程中踩过的坑和对应的解决方案整理成了表格,这些问题几乎每个做类似项目的人都会遇到。
| 异常现象 | 可能原因 | 排查与解决方案 |
|---|---|---|
| 智能体反复调用同一个工具不换策略 | 工具返回的错误信息没有给模型足够引导 | 在错误返回中追加"建议动作"字段,明确告知模型下一步应该做什么 |
| 生成的Excel公式计算结果与预期不符 | 模型在行列坐标计算上出错 | 增加公式区域自动校验,检查引用区间是否有空值并自动修正 |
| Word文档段落层级混乱 | 模型不理解样式层级概念 | 将样式设置封装为文档模板级别,模型只负责选择模板而非定义样式 |
| PPT生成过程中某页内容超长溢出 | 模型输出的内容量估算错误 | 加入启发式规则校验,超长内容自动缩写或拆分到多页 |
| 上了上下文窗口的长文档处理时内容丢失 | 分治策略中摘要压缩过狠 | 调整预算分配策略,增加关键信息保留标记,允许用户手动指定重点章节 |
| 用户说"刚才那个"但系统不知道指代哪个对象 | 缺少指代消解机制 | 增加实体记忆和指代消解模块,多候选时触发用户确认 |
| 智能体在非确定性任务上输出风格不稳定 | 温度参数设置不当 | 工具调用类任务温度设为0,内容生成类控制在0.3-0.5 |
| 工具执行成功但模型误判为失败 | 返回数据格式过于复杂模型解析出错 | 简化工具返回值结构,同时返回"执行成功"摘要文本和原始数据 |
| 系统整体响应过慢用户等得不耐烦 | 全链路串行执行 | 无依赖步骤并行化,规划阶段用小参数模型提速 |
| 用户上传的Office文件版本不兼容 | 早期的格式判断逻辑只用扩展名 | 增加文件格式内容嗅探,真实识别文件类型后再选择解析库 |
5.2 从毕设项目走向产品化的演进路径
如果你的目标不只是交一份毕设,而是想把系统打磨成可以实际使用的工具,我建议按这个顺序迭代:
第一阶段,把办公场景覆盖做宽。Office三件套之外,加上邮件撰写、PDF解析、日程管理等常用办公能力。这个阶段重点不是加技术深度,而是把"常用办公任务"的覆盖名单拉长,让它配得上"套件"这个名字。
第二阶段,做多智能体协作。目前系统是单智能体完成所有任务,能力上限受限于单一上下文和单一规划。演进方向是拆出"文档智能体""数据智能体""演示智能体"和"主管智能体":主管负责任务分发和结果汇总,各专业智能体负责各自的专项动作。这个架构的容错性和并行度都会更好。
第三阶段,沉淀行业模板库。比如针对高校办公场景,沉淀奖学金评定表、教学大纲、开题报告模板;针对电商场景,沉淀竞品分析周报、商品详情页方案、直播复盘模板。模板库的质量决定了智能体的下限,下限高,用户体感才稳。
5.3 个人实操总结几条心得
这个项目我做下来,最大的体会是,AI智能体项目的复杂度不在"AI"而在"体"。模型的能力是现成的,真正的工程量在"工具怎么封装、编排怎么设计、失败怎么恢复、用户怎么干预"。很多选这个题目的同学一开始都在对比模型、调提示词,结果做着做着发现文档格式处理、工作流状态管理、异常分支处理才是真正的深坑,这个认知反转越早发生,项目进度越顺利。
第二点经验是,Office智能体项目的开发必须坚持"工具先行"的节奏。先把所有要用的Office操作封装成工具、写好测试用例、确认每个工具本身输出稳定,然后再去搭智能体的编排逻辑。反过来做,先搭大框架再去补工具,后面每开发一个新能力都会被迫重构编排层,返工量非常大。
最后一个小建议:给系统做一个简单的图形化界面,哪怕是Web页面或者本地GUI都行,不要停留在纯命令行交互。用户能直观看到智能体的计划、执行、产出全过程,这个感知价值比任何技术指标都更能让人相信系统是有智能的。答辩的时候,与其讲三分钟"我的系统用了ReAct模式加RAG",不如现场演示让智能体分析一张Excel表并生成PPT,评委的眼前亮起来,项目就成功了一大半。