如何构建一个 Agent 应用?大模型开发实战指南
同时课程详细介绍了。
本文详细介绍了如何构建Agent应用,核心公式为Agent Application = Application + Agent + MCP。内容涵盖从基础应用搭建、Agent集成设计(智能化、交互、MCP设计)到开发流程,包括Task Splitter和Task Executor设计实现。文章强调Agent应用质量取决于基础应用质量和MCP质量,并提供完整开发流程与实际应用示例。
是时候准备实习和面试了。
不同以往的是,当前职场已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。
最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解惑答疑,分享技术面试中的那些弯弯绕绕。
本文档介绍如何构建 Agent 应用。首先,给出 Agent 的核心定义是:
Agent Application=Application+ Agent+ MCP
其中,Application 表示应用的基本功能,Agent 表示智能体的能力,MCP 是 Application 和 Agent 之间的桥梁。
由上述可知,Agent 应用并非单纯的 AI 应用,其核心是围绕 Application 的基础功能,并辅以 AI 手段(如 RAG,MCP 等技术),其目的是提升 Application 的能力。
故而可知,评价 Agent 应用的好坏,最终还是要看其所依赖的 Application 的质量以及 Application 能提供给 Agent 的 MCP 的质量。
01
Set up
首先,需要准备一个功能丰富且齐全的应用程序作为基础。这里以一个简单但功能齐全的任务调度系统作为例子。
(1)任务调度系统
任务调度系统的核心功能包括:
- VFS(虚拟文件系统):提供文件的统一管理和访问接口。
- 上下文管理:支持任务的上下文信息管理,包括输入、输出、状态等。
- 任务管理:支持任务的创建、调度、执行和监控。
- 权限隔离:支持用户、项目的权限隔离。
任务调度系统的主流程如下:
- 登录并创建项目
- 在项目中创建目录及文件
- 通过临时运行任务确保任务高效运行
- 将任务提交至调度系统,并确认 cron 以及上下文
- 通过监控查看周期任务执行情况
02
Agent 集成设计
在集成 Agent 之前,需要考虑以下几个方面:
- 智能化设计:如何提升 Agent 的智能化水平,实现更复杂的任务处理和决策能力。
- 交互设计:Agent 的交互应如何实现使得最大化用户体验。
- MCP 设计:Application 可以为 Agent 提供怎样的 MCP 以提高 Agent 的能力。
(1)智能化设计
根据 AI 应用的三大核心中提到的核心观点:AI 应用的质量取决于模型质量,上下文质量和提示词质量。
因此,需要从模型质量、上下文质量和提示词质量三个方面来提升 Agent 的智能化水平。
模型质量:一般来说,选择能推理,会思考的模型会更好。或者考虑用自研的模型,这里可以根据具体需求进行定制。
上下文质量:通常来说,提升上下文质量需要靠 Context Engineering 来实现。
但这次,我们除了借助 Context Engineering 的方式来实现,同时也借助 Multi-Agent 的方式来提升上下文质量。
将 Agent 根据任务的职责进行区分,分为 Splitter 和 Executor(根据实际情况进行拆分,复杂的 Agent 系统可能会有更多的角色,比如:Conclusion、Reviewer 等)。
需要注意的是,并不是越多角色越好,根据 Claude Code 的实践经验来看,Keep it Simple and Stupid 是最好的。
提示词质量:在 Multi-Agent 中,为每一个 Agent 提供高质量的提示词是至关重要的。提示词的质量直接影响到 Agent 的理解和执行能力。
通常来说,提供 System Prompt 应包含以下方面:
- 角色描述,用于明确 Agent 的身份和职责。
- 任务描述,用于清晰地定义 Agent 需要完成的任务目标和要求。
- 上下文信息,用于提供任务相关的背景知识和信息支持。
- 约束条件,用于限制 Agent 的行为和决策范围。
- 回答格式,用于规定 Agent 的回答方式和输出格式。
- 例子,一些具体的示例,用于帮助 Agent 理解任务。
(2)交互设计
传统的 AI 应用,通常仅限于你问我答的形式。更进一步的交互设计,也仅仅是将 LLM 的回答结果以更友好的方式呈现给用户。
为了提升可靠性和准确性,在交互设计中,我们将通过某种方式把人为监督介入到交互流程中。
同时,借助后端缓存,将 LLM 的回答和 Application 的能力结合,实现动态响应。
Human in the loop By @LangChain
(3)MCP 设计
MCP(Model Context Protocol)的概念不再赘述。其核心在于为 Agent 提供丰富的上下文信息和操作接口,以便更好地完成任务。
基于传统的 MCP 架构设计,我们需要建立一个 MCP 服务端,然后将任务调度系统的后端作为 MCP 的客户端,以此来调用 MCP 的能力。
但这种方式存在的问题是:
- 需要额外建立并且管理服务器,是以增加系统的维护成本。
- 考虑到实际系统运行的情况下,MCP 工具需要动态新增和移除,但从目前的 MCP 架构设计来看,缺乏灵活性和扩展性。
- 在 LLM 调用 MCP 的时候缺乏 HITL(human-in-the-loop) 的支持,无法实现更人性化的交互。
因此,在真正的实现过程中,我们并不会依赖传统的 MCP 架构设计。而是基于 Context Engineering 的理念,仅为 LLM 提供 MCP 工具的含义即调用方法,而实际的调用过程则没有 LLM 的介入。
理论情况如下:
System:
03
Agent 开发
考虑具备如下完整的流程场景:
System:
上述流程中,在用户提问「Build a weather forcast for Shanghai.」之时,系统会将提问发送给 Splitter,并且在上下文中提供 System Prompt。
Splitter 在这一步的作用是将用户的诉求进行拆分,根据系统能力将其拆分成多个可执行的任务。
(1)Task Splitter System Prompt 的基础设计
在上下文中需要告知任务调度系统的核心功能:
<context>
在角色描述及职责中阐明当前角色的功能和任务:
你是一个任务调度平台的开发助手
在执行限制中说明 Agent 需要遵循的规则和约束:
<constraints>
(2)Response Format 设计
考虑到在 Assistant 的回答后,需要用户进行进一步的确认。因此需要定义固定的回答格式,以便于用户理解和确认。
这里,我们考虑用 XML 的格式进行定义:
<response_format>
举个例子:
<response>
事实上你也可以考虑让 LLM 用 JSON 格式定义任务。但在 Prompt 中,建议用 XML 对语义进行标记,因为根据 Claude Code 的实现,AI 对于 XML 的理解会更好。
XML To metadata
考虑到传输的过程是以流的形式进行的,Application 需要在流中,将 XML 数据转换为 JSON 格式,并将其进行持久化存储。
同时,将该数据传给前端,以便其在页面上可以展示任务拆分细节及确认按钮。
大致流程如下:
到这里,前端再根据返回的 metadata 信息进行渲染,并支持确认按钮。
显然,用户点击确认后,需要新增一条信息以保留用户的确认操作,同时上一条信息的状态需要修改,以确保用户在确认操作过后,不支持再次修改。
前者,可以新增标识符来表示用户操作,例如 <confirmed>Confirmed</confirmed>
这里用 XML 标签,并将确认文案放在标签内,是考虑到前端可以借助 rehype 的能力对其进行解析和渲染。
后者来说,单条信息的状态除了 loading
和 finished
之外,还需要新增一个状态。 hitl
,表示当前信息需要用户确认的状态。
事实上,状态的命名并不重要,重要的是状态背后的语义能够准确传达信息。
传统上来说,尽管区分 loading
和 finished
两者状态,但通常只会用一个 boolean
类型的变量做标识。但新增了一个状态后,状态值的类型就需要修改为枚举。
(3)Task Executor 设计
在用户点击确认后,用户将确认后的 metadata 数据发送至后端,后端需要根据这些信息,拼接整理出 Executor 需要的上下文信息。
和 Splitter 上下文不同的是,在 Executor 的上下文中,需要提及工具的定义及相关的调用方法和规则。
tool_calling:
<tool_calling>
tools:
<tools>
即然当前的系统存在 VFS 的能力,那么显然 tools 可以读取当前系统中的一些固定格式的文件,并解析其相关描述,从而动态的将 tools 的定义提供给 LLM。
例如,满足后缀名是 .mcp
,并且其内容是存在默认导出的函数,并且不依赖其他文件的,语言是 TypeScript 的任务。
则将其获取出来,并借助 JSDoc 或者 ts-morph 的能力,将其转换为工具定义的 XML 格式。
Invoke
在上下文中说明了提供的工具后,同时还需要规范 LLM 如何调用工具。
<constraints>
通过定义 invoke 标签,并提供相关例子,LLM 可以知道如果需要调用工具可以按照如下方式执行:
<invoke>
解析 XML 的原理同上述一致。
Tool Called
在识别到 invoke 标签,并且用户点击确认调用之后,系统应根据 metadata 数据,借助调度的能力,执行该任务并获取其日志。
在获取日志后,我们需要将日志通过某种形式给 LLM,让 LLM 继续工作。
在用户确认后,我会调用工具并将结果告诉你。
LLM 通过解析日志信息,获取到执行结果后,会继续重复调用直到当前任务执行完成。
Success
当任务执行完成后,LLM 需要返回 <success>
标签以通知系统当前任务完成,同时系统需要根据当前信息整理出上下文,给到 Task Splitter 以继续后续任务。
如果你发现指定的任务已经圆满完成了,你可以针对这次任务做一个总结文案,并将其放在<success>标签中。
Task Splitter 会重复拆分任务,直到任务全部完成,从而结束整个任务。
04
流程图
Send Message:
Task Submit:
Invoke
事实上,Task Submit 和 Invoke 的流程是类似的,区别在于, - Task Submit 需要整理 Context。
而 Invoke 则需要执行任务然后发送日志信息 - Task Submit 的 Response Text 从理论上来说不会出现 <success>
标签,而 Invoke 可能出现 <success>
标签。
零基础如何高效学习大模型?
你是否懂 AI,是否具备利用大模型去开发应用能力,是否能够对大模型进行调优,将会是决定自己职业前景的重要参数。
为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和鲁为民博士系统梳理大模型学习脉络,这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️
【大模型全套视频教程】
教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。
从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。
同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!
深耕 AI 领域技术专家带你快速入门大模型
跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!
【精选AI大模型权威PDF书籍/教程】
精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。
【AI 大模型面试题 】
除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。
【大厂 AI 岗位面经分享(92份)】
【AI 大模型面试真题(102 道)】
【LLMs 面试真题(97 道)】
【640套 AI 大模型行业研究报告】
【AI大模型完整版学习路线图(2025版)】
明确学习方向,2025年 AI 要学什么,这一张图就够了!
👇👇点击下方卡片链接免费领取全部内容👇👇
抓住AI浪潮,重塑职业未来!
科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。
行业趋势洞察:
- 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
- 人才争夺战: 拥有3-5年经验、扎实AI技术功底和真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
- 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。
与其观望,不如行动!
面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。
01 为什么分享这份学习资料?
当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。
因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!
我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。
*02 这份资料的价值在哪里?*
专业背书,系统构建:
-
本资料由我与鲁为民博士共同整理。鲁博士拥有清华大学学士和美国加州理工学院博士学位,在人工智能领域造诣深厚:
-
- 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇。
- 拥有多项中美发明专利。
- 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
-
目前,我有幸与鲁博士共同进行人工智能相关研究。
内容实用,循序渐进:
-
资料体系化覆盖了从基础概念入门到核心技术进阶的知识点。
-
包含丰富的视频教程与实战项目案例,强调动手实践能力。
-
无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考,助力你提升技术能力,向大模型相关岗位转型发展。
抓住机遇,开启你的AI学习之旅!
更多推荐
所有评论(0)