本文系统阐述了在Agentic AI技术发展背景下,如何构建可靠、高效且可落地的AI Agent应用。随着LLM和工具调用标准化,核心竞争力已转向提示词工程、工作流设计和知识库构建三大领域。文章详细介绍了提示词设计方法、工作流DSL描述技术、知识库构建(包括RAG和关系型数据库应用)、安全防护措施以及AI项目确定方法,为开发者提供了全面的AI Agent构建指南。


本文系统阐述了在当前 Agentic AI 技术快速发展的背景下,如何构建一个可靠、高效且可落地的 AI Agent 应用。随着 LLM 和工具调用的标准化,开发的核心竞争力已转向 提示词工程(Prompt Engineering)、工作流设计(Workflow)和知识库构建(RAG) 三大领域。

一、Agent核心架构定义

Agent系统由五个关键组件构成:

  • 大语言模型(LLM)
  • 提示词(Prompt)
  • 工作流(Workflow)
  • 知识库(RAG)
  • 工具(Tools)

LLM和工具调用已经形成了相对标准化的技术栈。LLM方面,无论选择云端大模型(如阿里百炼平台、IdeaLab)还是本地部署(如Ollama),都有成熟的解决方案;工具调用方面,MCP协议的普及让工具集成变成了配置问题而非开发问题。因此,业务开发的核心竞争力在于提示词 + 工作流 + 知识库上。

二、Prompt工程:给AI写"需求文档"

提示词分为系统提示词和用户提示词,用户提示词就是我们的问题。系统提示词,是agent的背景/角色,设置了agent需要完成什么类型的任务。系统提示词主要包括:身份(Role)+ 上下文(Context)+ 例子(Examples) + 输出规范(Output Format)。

现在已经有了很多帮助我们生产提示词的工具,如:

  • https://prompt.always200.com/
  • https://prompts.chat/

我们可以使用工具简单生成初版,再进行后续优化。

以下是https://prompt.always200.com/的系统提示词,可以直接拿过来构建一个自己的系统提示词生成agent,简单场景可以直接使用生成结果。

提示词优化的系统提示词

你是一个专业的AI提示词优化专家。请帮我优化以下prompt,并按照以下格式返回:

生成效果

我在Cherry Studio(一款功能强大的多模型 AI 客户端软件)中就创建了很多agent,满足我在不同场景下的需求。

在提示词中,对于一些重要的内容,可以使用XXXX标记(markdown的加粗语法);对于一些特殊说明,可以使用统一的特殊符号如“”进行标记。这些标记都可以增强agent对于重要或特殊内容的识别精度和执行优先级。

这里以ideaLab(阿里巴巴集团内部的一个专注于 AI 应用方向的平台)的使用举例:

1.创建一个智能助手

2.粘入提示词,就可以按照需求生成专业的提示词,可以满足日常大部分场景。

接下来,我会列举一些Prompt实际使用时的一些个人经验。

2.1. Role/System

若使用agent不是发散性场景(如创作、讨论)或答疑场景,而是严格按照workflow执行任务,那么在角色中,就不要说是“架构师”,“专家”这类更偏向于人类的角色,而是“机器”,“pipeline”这类更偏向执行流水线步骤的角色。

若使用agent是学习场景,可以设置角色为“善于深入浅出的教学者”,在提问时说“我现在要学习某知识,我对这方面的知识一窍不通,你向我提问n个问题,当我搞懂这n个问题后就可以完全掌握某知识”。通过提问的方式,带着目的的学习,效果非常好。

2.2. Examples

设置少量examples(few-show Learning)可以极大保证agent的回答质量,特别是需要agent按照某种指定格式(如JSON)生成答案的场景。

few-show Learning:小样本学习是一种机器学习框架,在该框架中,AI 模型通过使用极少量的标记示例进行训练来学习作出准确的预测。它通常用于在缺乏合适的训练数据时训练分类任务的模型。

设置examples时,要尽量遵循规范,即:

  1. 保证示例的质量;

  2. 示例是否正确需要标注清楚,不要模棱两可的示例,不要把对的说成错的;

  3. 示例要乱序,不要把正确的回答放一起,错误的回答放一起;

  4. 示例格式要统一;

  5. 正确回答和错误回答的数量要均衡,通俗说就是数量一致;

  6. 设置相似的示例,只有非常小的差别,但是回答的结果却不一样;

  7. 尽量保证示例覆盖全面;

examples可以先只设置成Q&A形式,若效果不好,可以添加过程解释,但尽量不要使用自然语言描述过程,因为自然语言的描述很可能不符合指定的workflow,造成歧义。

2.3. Output Format

我们可以在提示词中指定agent的输出规范,但仅仅只有输出规范,agent也不是一定会按照规范输出,所以通常还需要约束条件(Constraints)约束。

在工程结合agent时,通常要求agent返回标准JSON,在工程中进行后续的解析处理。如何要求agent一定返回符合要求的JSON是一个问题。以下提供一个思路:

  1. 结合Role的内容,给agent的角色定位远离人类的角色,减少其解释与输出废话的概率;

  2. 提示词中增加Constraints,并在提示词开头和结尾反复强调;

  3. 增加badcase,把agent不符合预期的输出直接写到提示词中;

  4. 工程保障:拿到agent的结果时,可以截取第一个"{“和最后一个”}"之间的内容。

# System: JSON Processing Pipeline

三、工作流:选择DSL描述而非自然语言

自然语言描述的工作流程,往往会携带一些口语习惯,并且对于复杂的流程难以描述清楚。DSL(Domain-Specific Language,领域特定语言)通过结构化语法,能比自然语言更准确地描述业务流程。Mermaid就是一种非常适合的绘制流程图的语言,并且与Markdown完美集成。不会写或者觉得麻烦?没关系,使用上述的提示词优化工具制作一个mermaid agent,将工作流程描述给他,让agent生成流程图。我们只需要简单了解基础语法,对生成的结果进行简单修改即可。

Mermaid 是一个用于绘制图表的 JavaScript 工具库,它允许你使用类似 Markdown 的文本语法来创建和修改图表。

这个能力也非常适合在提问后,让agent输出自己对于问题理解或解答方式的思维流程,这就是一种COT(Chain-of-thought)。通过查看流程,可以快速定位到agent理解不到位的地方并修正。

我的建议是,先用自然语言描述流程。如果agent执行效果不佳,或者流程难以描述,那么就考虑使用mermaid。

提问举例:

“我的问题巴拉巴拉”

请重新梳理用户的问题,使问题更加的清晰和明确,如果问题有多个细节和要求,需要全部梳理出来,使用mermaid清晰列出问题的所有细节,然后再回答的问题。

使用举例

四、知识库:关系型数据库的妙用

4.1. RAG与向量数据库

4.1.1. 背景

首先介绍一下RAG。大模型幻觉是指agent生成虚假、不准确或完全编造的信息的现象。在业务场景中,往往需要agent结合业务知识回答问题,但这些业务知识agent又通常不知道,那么直接把相关文档和问题一起发给agent不就好了?貌似没问题,但是随着文档越来越大,答案可能只是文档中的一小部分,agent看到庞大的输入,就很容易找不到重点。那么只把和问题相关的文档发给agent是不是就可以了?没错,这就是RAG(Retrieval-Augmented Generation)。

怎么判断用户的问题和文档的关系?这就需要Embedding模型了。Embedding模型的输入是一段文字,而输出是一段固定长度的数组,也就是向量。通过计算向量之间的距离,离得越近,相关性就越强。

对于文档过长的问题,需要对文档进行处理。首先对文档进行片段切分(Chunking),可以按照字数、段落、符号、语义等维度切分;切分完成后,对每个chunk都进行Embedding处理;最后,把向量结果和chunk保存到向量数据库中。

用户提问时,会先用相同的Embedding模型把问题转换成向量,然后从向量数据库中找到距离最近的几个内容,最后把检索到的内容和问题一起发给agent。在实际使用时,还需结合top-N、意图模型、reRank重排模型等部分功能提高检索的准确性,这就要求对知识库的内容要:

1.切的对:切分不要按字符切,要按语义切(难点,可以用agent辅助切文档);

2.排的准:不只靠相似度,还要加回答导向排序;

3.喂的巧:要引导模型引用内容,而不是召回了内容但不用;

4.1.2. 问题

RAG本身是也有许多问题的:

  1. 文章应该怎么分块?文章的结构五花八门,不能按照一种分块方式力大砖飞,并且可能会有关键的内容刚好被截断,比如“那头猪是佩奇,那头猪爱玩泥巴”,而这句话被拆成了“那头猪是佩奇”和“那头猪爱玩泥巴”这两部分,第二句的“那头猪”就失去了和“佩奇”的指代关系,当提问“佩奇爱干什么”时,问题和“那头猪爱玩泥巴”的向量距离可能变远而无法匹配。

  2. RAG缺乏全局视角。比如提问“文章中有多少个"我"字”,这种和每个chunk都沾边但又都不是特别相关的问题,RAG就没办法解决了。

4.2. 关系型数据库的一种使用思路

向量数据库中适合保存的内容是文档类型,如一本书、一个Q&A文档等。但对于一些映射关系较强的场景,就不太适合保存到向量数据库了。

我有遇到一个场景:要使用agent进行网页操作。通过配置一个定时任务,当任务触发时,若有要执行的网页子任务,就让agent使用Playwright MCP进行相应的网页操作,返回JSON结果。对于不同子任务,都要有不同的流程、补充信息以及结果格式,甚至为了保证结果质量需要给每个场景设置exemples(比如场景1的结果返回给同学A,场景2的结果返回给群B)。在这个场景下,若直接把子任务信息放到提示词中,随着子任务数量的增多,必然会造成提示词冗余;若配置子任务信息到向量知识库中,不同子任务的配置信息各不相同,无法解决合理分块的问题。这个场景的本质,就是精准找到子任务的所有信息,辅助agent完成任务,而关系型数据库就可以完美应用到这个场景中。

定义表结构如下,通过Postgres MCP,让agent在执行任务前,把用户的提问与表中的keywords进行匹配,找到符合场景的详细信息,就可以实现精准的“RAG”。(若使用ideaLab,可以在项目中提供查表接口,在ideaLab中封装成工具)

表数据

五、关于安全

提示词方面攻击,主要是提示词注入和提示词窃取两方面。我这里展开说说提示词注入。

如何系统学习掌握AI大模型?

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》*

1.学习路线图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果大家想领取完整的学习路线及大模型学习资料包,可以扫下方二维码获取
在这里插入图片描述

👉2.大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。(篇幅有限,仅展示部分)

img

👉3.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(篇幅有限,仅展示部分,公众号内领取)

img

👉4.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(篇幅有限,仅展示部分,公众号内领取)

img

大模型面试

**因篇幅有限,仅展示部分资料,**有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

**或扫描下方二维码领取 **

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐