Skip to content

模块10:AI智能体深度实战

进阶 📅 第10周 ⏱️ 约8小时

说明: 本模块与模块9(AI自动化工作流)并行进行。模块9侧重"自动化流程搭建",本模块聚焦"AI Agent的深度设计和部署"。

本模块的定位

模块9教你搭建让AI自动干活的"流水线",模块10教你打造一个能独立思考和行动的"数字员工"。两者结合,你就能构建一个真正为你工作的AI团队。


学习目标

学完本模块,你将能够:

  • ✅ 理解AI Agent的四大核心组件:规划、记忆、工具使用、行动
  • ✅ 掌握Agent设计框架:ReAct、Plan-and-Execute、Multi-Agent
  • ✅ 为Agent设计高质量的System Prompt和工具调用指令
  • ✅ 搭建完整的RAG(检索增强生成)知识库系统
  • ✅ 将Agent发布到至少2个渠道(Web嵌入、飞书Bot、API端点)
  • ✅ 独立完成一个可上线运行的AI Agent

课前准备

准备项说明
平台账号Dify Cloud(dify.ai)或 Coze(coze.cn),二选一即可
API Key至少一个LLM的API Key(DeepSeek、通义千问、智谱GLM均可)
文档素材准备至少20份你自己的学习笔记、课程资料或项目文档(用于RAG知识库)
飞书账号如计划发布飞书Bot,需提前注册飞书开发者账号
预计时间学习约3小时 + 实操约5小时

第1课:Agent设计方法论

时长: 约90分钟 | 类型: 认知+实操

1.1 什么是AI Agent?

AI Agent(智能体)不是普通的聊天机器人。关键区别在于:

维度普通AI对话AI Agent
交互方式一问一答,被动响应主动规划、多步执行
能力边界仅靠模型知识回答可调用工具、搜索、读写文件
记忆能力单次对话上下文短期+长期记忆,跨会话
任务复杂度单步任务多步复杂任务,自动分解执行
典型场景"帮我写一段文案""每天早上8点搜索AI行业新闻,筛选Top 5,生成摘要推送到飞书群"

一句话理解:如果把AI模型比作"大脑",Agent就是给这个大脑装上"手脚"(工具)、"笔记本"(记忆)和"行动指南"(规划),让它能真正干活。

1.2 Agent的四大核心组件

┌─────────────────────────────────────────────┐
│                  AI Agent                    │
├──────────┬──────────┬──────────┬────────────┤
│ Planning │  Memory  │ Tool Use │   Action   │
│  规划    │  记忆    │ 工具使用  │   行动     │
├──────────┼──────────┼──────────┼────────────┤
│ 任务分解 │ 短期记忆  │ API调用  │ 执行决策   │
│ 自我反思 │ 长期记忆  │ 代码执行 │ 输出结果   │
│ 自我批评 │ 向量数据库 │ 搜索检索 │ 错误处理   │
│ 路径修正 │ 知识图谱  │ 文件操作 │ 结果验证   │
└──────────┴──────────┴──────────┴────────────┘

组件一:Planning(规划)

这是Agent最核心的能力——把一个复杂任务分解成可执行的步骤。

任务分解示例

用户输入:"帮我做一份关于2026年AI就业市场的分析报告"

Agent的规划过程:

Step 1: 搜索"2026年AI就业市场趋势"获取最新数据
Step 2: 搜索"2026年AI岗位薪资报告"获取薪资数据
Step 3: 搜索"2026年AI对各行业就业影响"获取行业分析
Step 4: 整合搜索结果,提取关键数据
Step 5: 撰写报告大纲
Step 6: 按大纲逐段撰写,引用数据来源
Step 7: 检查报告完整性和数据准确性
Step 8: 输出最终报告

自我反思(Self-Reflection)机制

Agent在执行过程中会不断检查自己的输出:

  • "我刚才搜索到的数据是否足够支撑结论?"
  • "这个分析逻辑是否有漏洞?"
  • "是否需要换个角度再搜索一次?"

这就是为什么Agent比"一次性Prompt"质量更高——它会自我纠错。

组件二:Memory(记忆)

记忆类型存储方式生命周期典型用途
短期记忆对话上下文窗口单次会话记住用户刚才说了什么
长期记忆向量数据库/知识库持久化记住用户偏好、历史对话摘要
工作记忆变量/状态存储单次任务暂存中间计算结果

实际应用

  • 短期记忆:用户说"我不喜欢太正式的语气",Agent记住并在后续回复中保持轻松风格
  • 长期记忆:Agent记住用户是"大二计算机专业学生",后续推荐内容自动适配
  • 工作记忆:多步计算中暂存上一步的结果

组件三:Tool Use(工具使用)

Agent通过调用外部工具突破自身能力边界:

工具类型具体能力示例
搜索工具获取实时信息Google Search API、Bing API、Tavily
代码执行运行Python/JS代码数据分析、图表生成、数学计算
API调用对接外部服务天气API、股票API、翻译API
文件操作读写文件读取PDF、生成Excel、保存图片
数据库查询结构化数据检索SQL查询、知识库检索

关键认知:Agent的能力上限 = 模型能力 + 可用工具的能力。工具越多,Agent越强大。

组件四:Action(行动)

Action是Agent将推理结果转化为实际行动的环节。它包含:

  • 执行决策:基于推理结果,选择执行什么操作
  • 输出格式化:将结果按用户期望的格式输出
  • 错误处理:执行失败时的重试、降级、报告机制
  • 结果验证:检查输出是否满足用户需求

1.3 Agent设计框架

目前业界主流的Agent设计框架有三种:

框架一:ReAct(Reasoning + Acting)

ReAct是2022年由Google DeepMind与普林斯顿大学联合提出的框架,至今仍是Agent设计的基础范式。

核心思想:推理和行动交替进行。

用户输入 → Thought(思考)→ Action(行动)→ Observation(观察)→ Thought → Action → ... → Final Answer

ReAct实战示例(查询"2026年诺贝尔物理学奖得主"):

Thought: 用户想知道2026年诺贝尔物理学奖得主,我需要搜索最新信息。
Action: search("2026 诺贝尔物理学奖 得主")
Observation: 搜索结果显示,2026年诺贝尔物理学奖授予了...

Thought: 我找到了得主信息,现在需要整理成清晰的回答。
Action: 不需要更多搜索,直接回答。
Final Answer: 2026年诺贝尔物理学奖授予了[姓名],表彰其在[领域]的贡献...

ReAct vs 普通Prompt对比

对比维度普通PromptReAct Agent
信息准确性依赖模型训练数据,可能过时实时搜索验证,信息更新
推理过程黑箱,不可追溯每步思考可见,可审查
复杂任务容易遗漏步骤逐步分解,不易遗漏
错误修正无法自我纠正观察到错误后可以重新搜索

框架二:Plan-and-Execute

先制定完整计划,再逐步执行。适合任务步骤明确、不需要频繁根据中间结果调整的场景。

用户输入 → 制定完整计划 → 逐步执行 → 汇总结果

适用场景:报告撰写、代码项目开发、数据分析流程

对比ReAct

  • ReAct:灵活,每一步根据上一步结果调整,适合探索性任务
  • Plan-and-Execute:高效,减少反复思考的token消耗,适合确定性任务

框架三:Multi-Agent(多智能体协作)

多个Agent分工协作,每个Agent专注一个子任务。

         ┌──────────┐
         │ 协调Agent │ (分配任务、汇总结果)
         └────┬─────┘
    ┌─────────┼─────────┐
    ▼         ▼         ▼
┌───────┐ ┌───────┐ ┌───────┐
│搜索Agent│ │分析Agent│ │写作Agent│
└───────┘ └───────┘ └───────┘

实际平台支持

  • Dify:支持"工作流"模式配置多个Agent节点协作
  • Coze(扣子):支持"多Agent模式",可设置不同Agent处理不同意图
  • AutoGen(微软):开源Multi-Agent框架,支持代码生成、执行、审查的Agent团队

1.4 Agent的Prompt Engineering

Agent的Prompt设计与普通对话Prompt有本质区别:

System Prompt设计模板

markdown
# 角色定义
你是一个[角色名称],专门帮助用户[核心任务]。

# 核心能力
1. [能力一]
2. [能力二]
3. [能力三]

# 工作流程
当用户提出请求时,请按以下步骤处理:
1. 分析用户意图
2. 制定执行计划
3. 调用必要的工具
4. 整合结果并输出

# 工具使用规范
- 需要实时信息时,使用 search 工具
- 需要计算或数据分析时,使用 code_executor 工具
- 需要读取文件时,使用 file_reader 工具

# 输出格式要求
- 使用Markdown格式
- 数据来源必须标注
- 不确定的信息标注"[需核实]"

# 约束条件
- 不编造数据
- 不回答涉及违法内容的问题
- 当无法完成任务时,诚实说明原因

工具调用指令设计

Agent需要明确的工具调用格式。以Dify的Function Calling格式为例:

yaml
# 搜索工具定义
- name: web_search
  description: 在互联网上搜索实时信息。当需要获取最新数据、新闻、或模型训练数据之外的信息时使用。
  parameters:
    - name: query
      type: string
      description: 搜索关键词,使用中文或英文
      required: true
    - name: num_results
      type: integer
      description: 返回结果数量,默认5,最大10
      required: false

# 代码执行工具定义
- name: code_executor
  description: 执行Python代码进行数据分析、计算或图表生成。
  parameters:
    - name: code
      type: string
      description: 要执行的Python代码
      required: true

输出格式控制

markdown
# 输出格式规范
每次回复必须包含以下结构:

## 思考过程
简述你的推理路径(让用户了解你的思路)

## 执行步骤
列出实际调用的工具和参数

## 最终结果
以清晰、结构化的方式呈现结果

## 数据来源
列出所有引用数据的来源链接

1.5 Agent评估体系

如何判断一个Agent好不好?

评估维度指标目标值
任务完成率成功完成任务的比例> 90%
响应时间从接收到完成的时间< 30秒(简单任务)
准确性输出信息的正确率> 95%
工具调用效率完成任务所需的工具调用次数越少越好
用户满意度用户评分(1-5分)≥ 4.0
容错能力遇到错误时能否自动恢复恢复率 > 80%

1.6 实操:单次Prompt vs ReAct Agent对比

任务:查询"2026年高考全国报名人数,并与2025年对比分析"

方式一:单次Prompt(直接问ChatGPT)

Prompt: 请告诉我2026年高考全国报名人数,并与2025年对比分析。

典型问题:
- 如果模型训练数据截止到2025年,它无法知道2026年的数据
- 即使能回答,也无法验证数据来源
- 分析深度有限,因为没有搜索最新报道

方式二:ReAct Agent(在Dify中配置)

在Dify中创建Agent应用,配置搜索工具,使用以下System Prompt:

markdown
你是一个数据分析Agent。当用户询问需要最新数据的问题时,你必须:
1. 先使用web_search工具搜索相关信息
2. 验证至少2个不同来源的数据
3. 对数据进行对比分析
4. 标注所有数据来源

Agent执行过程

Step 1 (Thought): 用户需要2026年高考报名人数,我需要搜索最新数据。
Step 1 (Action): web_search("2026年高考全国报名人数")

Step 2 (Observation): 教育部公布2026年全国高考报名人数为[具体数字]
Step 2 (Thought): 获得了2026年数据,现在需要搜索2025年数据做对比。
Step 2 (Action): web_search("2025年高考全国报名人数")

Step 3 (Observation): 2025年全国高考报名人数为[具体数字]
Step 3 (Thought): 两个数据都获取到了,现在做对比分析。
Step 3 (Action): 无需更多搜索,直接输出分析结果。

Final Answer: 
- 2026年:XXX万人
- 2025年:XXX万人  
- 变化:增长/下降X%,主要原因是...
- 数据来源:教育部官方公布

质量差异一目了然:Agent能获取实时数据、多源验证、深度分析,而普通Prompt只能依赖模型训练数据。


第2课:RAG(检索增强生成)实战

时长: 约90分钟 | 类型: 实操为主

2.1 为什么需要RAG?

RAG(Retrieval-Augmented Generation,检索增强生成)是让AI能够基于你的私有知识回答问题的基础技术。

痛点没有RAG有RAG
知识截止日期模型训练数据截止后的事件无法回答知识库实时更新,随时可查
私有数据无法访问企业内部文档上传文档即可问答
幻觉问题模型可能编造不存在的信息基于真实文档回答,幻觉大幅减少
可追溯性不知道答案从哪来可以追溯到具体文档段落
领域深度泛泛而谈基于你的专业文档深入回答

通俗理解:RAG就像是给AI装了一个"专属图书馆"。每次回答问题前,AI先去这个图书馆里找相关资料,然后基于找到的资料来回答,而不是凭空编造。

2.2 RAG完整链路

┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
│ 文档加载  │ → │ 文本分割  │ → │ 向量嵌入  │ → │ 向量存储  │ → │ 检索召回  │ → │ 增强生成  │
└──────────┘    └──────────┘    └──────────┘    └──────────┘    └──────────┘    └──────────┘
  上传PDF/       切成小段        每段转成        存入向量         根据用户        把检索到
  Word/网页      便于检索        向量数字        数据库           问题找到         的文档和
                                                                最相关段落       问题一起
                                                                                送给LLM

步骤一:文档加载(Document Loading)

支持的文档格式和工具:

文档格式推荐工具说明
PDFPyPDFLoader / Dify内置支持文字型PDF,扫描版需OCR
Word (.docx)Docx2txtLoader / Dify内置支持表格和图片中的文字
MarkdownTextLoader最干净,分割效果最好
网页WebBaseLoader / Dify内置输入URL自动抓取内容
CSV/ExcelCSVLoader / Dify内置结构化数据按行处理
飞书文档Dify飞书集成直接授权读取飞书文档

步骤二:文本分割(Text Splitting)

这是RAG中最容易被忽视但极其关键的环节。分割策略直接影响检索质量。

分割策略原理适用场景优点缺点
按段落分割\n\n为分隔符结构化文档、报告保持段落完整性段落过长时检索精度下降
递归字符分割按优先级 \n\n\n → 字符通用文本适应性最强可能切断句子
按句子分割以标点符号为分隔符对话记录、FAQ粒度细,精确匹配失去上下文
语义分割计算句子间相似度,在语义变化处切分学术论文、技术文档保持语义完整性计算成本高

分割参数建议(以Dify默认配置为参考):

参数推荐值说明
分割块大小(chunk_size)500-1000 tokens中文约300-600字
重叠大小(chunk_overlap)50-100 tokens防止关键信息落在边界上
分割符\n\n, \n, , , 优先级从高到低

实战建议:先用默认参数跑一遍,然后用几个测试问题检验检索效果。如果检索到的段落不完整,调大chunk_size;如果检索到的段落无关内容太多,调小chunk_size。

步骤三:向量嵌入(Embedding)

将文本转换成向量(一串数字),语义相近的文本向量距离更近。

2026年主流嵌入模型

模型提供方维度中文效果价格
text-embedding-3-smallOpenAI1536良好$0.02/1M tokens
text-embedding-3-largeOpenAI3072优秀$0.13/1M tokens
bge-large-zh-v1.5BAAI(智源)1024优秀(中文专用)开源免费
bge-m3BAAI(智源)1024优秀(多语言)开源免费
m3e-large社区1024优秀(中文优化)开源免费
text2vec-large-chinese社区1024良好开源免费

中文场景推荐:bge-m3 或 m3e-large,两者都是开源模型,对中文语义理解非常好。

步骤四:向量存储(Vector Database)

2026年主流向量数据库对比

数据库类型特点适用场景免费额度
Chroma开源/轻量零配置,Python原生,适合开发本地开发、小规模项目完全免费
Pinecone云服务全托管,高性能,全球部署生产环境、大规模应用1个索引免费
Weaviate开源支持混合搜索(向量+关键词)需要精确关键词匹配的场景开源免费/云有免费层
Qdrant开源Rust编写,性能极高,支持过滤高性能需求、复杂过滤条件开源免费/云有免费层
Milvus开源分布式架构,10亿级向量企业级、海量数据开源免费/云有免费层
阿里云ADB PG云服务向量+结构化数据混合查询生产环境、需要SQL分析试用额度

新手推荐路径

  1. 入门:直接用Dify内置的向量存储(无需配置)
  2. 进阶:Chroma(本地部署,零门槛)
  3. 生产:Pinecone或Qdrant Cloud(全托管,省心)

2.3 实操:搭建"课程知识库Agent"(Dify版)

以下步骤基于Dify Cloud(dify.ai),2026年6月最新版本。Dify免费版支持创建知识库和Agent。

Step 1:创建知识库

  1. 登录 Dify Cloud,进入控制台
  2. 点击顶部导航栏「知识库」→ 「创建知识库」
  3. 填写知识库信息:
    • 名称:AI竞争力课程知识库
    • 描述:包含所有课程模块的学习资料、笔记、项目文档
    • 权限:仅自己可见(团队版可共享给团队)
  4. 点击「创建」

Step 2:上传文档

  1. 在知识库页面,点击「上传文档」
  2. 上传你的课程资料(支持批量上传):
    • 模块1-4的学习笔记(Markdown格式最佳)
    • 课程项目文档
    • 收集的AI行业资料
    • 至少上传20份文档,建议50+份以获得更好的问答效果
  3. Dify会自动处理文档:分段 → 嵌入 → 索引
  4. 等待处理完成(约1-2分钟,取决于文档量)

Step 3:配置检索参数

  1. 进入知识库「设置」页面
  2. 分段设置
    • 分段最大长度:500 tokens
    • 分段重叠长度:50 tokens
    • 分段规则:自动分段与清洗
  3. 索引模式
    • 选择「高质量」模式(调用嵌入模型进行向量化,检索精度更高)
    • 可选「经济」模式(使用关键词索引,不消耗嵌入token,但精度低)
  4. 检索设置
    • 检索方式:混合检索(向量检索 + 关键词检索,推荐)
    • TopK:3(每次检索返回最相关的3个段落)
    • Score阈值:0.5(低于此分数的段落不返回)
  5. 点击「保存」

Step 4:创建Agent应用

  1. 点击顶部导航栏「工作室」→ 「创建应用」
  2. 选择「Agent」类型
  3. 填写基本信息:
    • 名称:AI课程助手
    • 图标:选择一个合适的emoji或上传图标
    • 描述:基于AI竞争力课程的智能问答助手
  4. 点击「创建」

Step 5:配置Agent

  1. 选择模型

    • 推荐:DeepSeek-V3 或 通义千问-Max(中文效果好,性价比高)
    • 如使用Coze:推荐豆包大模型(免费额度慷慨)
  2. 编写System Prompt

markdown
你是「AI竞争力课程助手」,专门帮助大学生解答关于AI学习和应用的问题。

## 你的知识范围
- 你主要基于「AI竞争力课程知识库」中的内容回答问题
- 知识库包含从AI基础认知到Agent开发的全套课程资料

## 回答规则
1. 先检索知识库,基于知识库内容回答
2. 如果知识库中有相关内容,引用具体的模块和章节
3. 如果知识库中没有相关内容,诚实说明并提供获取该信息的建议
4. 使用友好的语气,像学长/学姐一样帮助同学

## 回答格式
- 先给出简洁的核心答案
- 再展开详细说明
- 最后给出进一步学习的建议
  1. 添加知识库

    • 在「上下文」设置中,添加刚才创建的「AI竞争力课程知识库」
  2. 添加工具(可选):

    • 网页搜索:Dify内置的SerpAPI或Tavily搜索(需要配置API Key)
    • 代码执行:Dify内置的Python代码执行器
  3. 设置对话开场白

你好!👋 我是AI课程助手,可以帮你解答关于AI学习、Prompt技巧、AI工具使用、Agent开发等任何问题。你可以问我:
- "如何写好一个Prompt?"
- "AI对就业市场有什么影响?"
- "怎么搭建一个RAG知识库?"
直接提问吧!

Step 6:测试与调优

  1. 在右侧预览窗口测试问答效果
  2. 测试问题示例:
    • "模块2讲了什么内容?"(测试知识库检索准确性)
    • "如何用AI写一份商业分析报告?"(测试跨模块综合能力)
    • "2026年AI就业市场有什么趋势?"(测试是否需要搜索工具)
  3. 根据测试结果调整:
    • 如果回答不准确 → 调高TopK值,或降低Score阈值
    • 如果回答太啰嗦 → 在System Prompt中限制回答长度
    • 如果检索不到相关文档 → 检查文档是否上传成功,调整分段参数

2.4 RAG高级技巧

技巧一:HyDE(假设文档嵌入)

原理:先让LLM根据用户问题生成一个"假设性答案",再用这个假设答案去检索,而不是直接用问题检索。

为什么有效:用户问题通常很短(如"AI怎么帮我学习?"),而文档内容很长。用LLM生成的假设答案(会包含更多细节和术语)去检索,命中率更高。

在Dify中的实现:目前需要自定义工作流实现,在检索节点前加一个LLM节点生成假设答案。

技巧二:多路召回(Multi-Recall)

原理:同时用多种方式检索,然后合并去重排序。

          ┌──────────────┐
          │   用户问题    │
          └──────┬───────┘
     ┌───────────┼───────────┐
     ▼           ▼           ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│向量检索  │ │关键词检索│ │语义检索  │
└────┬────┘ └────┬────┘ └────┬────┘
     └───────────┼───────────┘

          ┌──────────┐
          │ 合并去重  │
          └────┬─────┘

          ┌──────────┐
          │ Rerank   │
          └──────────┘

Dify中的实现:检索设置中选择「混合检索」即可,Dify会自动融合向量检索和关键词检索的结果。

技巧三:Rerank(重排序)

原理:初始检索返回TopK个段落(如10个),再用一个更精确的排序模型重新打分,选出最相关的Top3。

2026年常用Rerank模型

模型提供方特点
bge-reranker-v2-m3BAAI(智源)开源,多语言,效果好
Cohere Rerank v3Cohere商业API,效果最佳
Jina Reranker v2Jina AI开源,多语言,速度快

Dify中的实现:在检索节点中开启「Rerank」选项,Dify已内置Cohere Rerank集成。

技巧四:查询改写(Query Rewriting)

原理:用户输入的问题可能很口语化或不完整,先让LLM把问题改写得更适合检索。

用户输入:"上次讲的那个写Prompt的技巧还有吗"
       ↓ 查询改写
改写后:"Prompt Engineering中关于角色设定和输出格式的技巧"
       ↓ 检索
获得更精确的结果

Dify中的实现:在工作流中,检索节点前加一个LLM节点,用于改写用户查询。


第3课:Agent发布与分发

时长: 约90分钟 | 类型: 实操为主

3.1 Agent分发渠道全景

造好了Agent,怎么让别人用?2026年主流分发渠道:

渠道接入方式难度适用场景平台
Web嵌入JS代码片段个人网站、博客、作品集Dify / Coze / Typebot
API端点REST API⭐⭐App集成、自动化脚本调用Dify / Coze / 自建
飞书BotWebhook⭐⭐企业内部、团队协作Dify / Coze / 飞书开放平台
钉钉BotWebhook⭐⭐企业内部、团队协作钉钉开放平台
企微BotWebhook⭐⭐企业内部、客户服务企业微信开放平台
微信公众号被动回复API⭐⭐⭐对外服务、品牌建设微信公众平台 + Dify API
豆包Store一键发布个人品牌、分享豆包App
扣子商店一键发布个人品牌、流量变现扣子(Coze)

3.2 实操:发布"校园AI助手"到3个渠道

我们将创建一个"校园AI助手"Agent,帮助大学生解答校园生活、学习规划、选课建议等问题,并发布到3个渠道。

渠道一:Web嵌入(最简单)

适用平台:Dify

操作步骤

  1. 在Dify中,进入你的Agent应用
  2. 点击左侧「发布」按钮
  3. 选择「嵌入网站」
  4. 选择嵌入方式:
    • Chrome插件:安装Dify Chrome插件,可在任何网页使用
    • 气泡按钮:网页右下角出现对话气泡(推荐)
    • 全屏嵌入:整个页面嵌入聊天窗口
  5. 复制生成的JS代码片段:
html
<!-- Dify 聊天窗口嵌入代码 -->
<script>
 window.difyChatbotConfig = {
  token: 'YOUR_APP_TOKEN',
  baseUrl: 'https://cloud.dify.ai',
  // 可选配置
  inputs: {
   // 预填变量
  },
  openingStatement: '你好!我是校园AI助手,有什么可以帮你的?',
  suggestedQuestions: [
   '如何选课?',
   '期末复习有什么好方法?',
   '校园卡丢了怎么办?'
  ],
  // 样式配置
  isShowTitle: true,
  title: '校园AI助手',
  draggable: true,
  position: 'right'
 }
</script>
<script src="https://cloud.dify.ai/embed.min.js" defer></script>
  1. 将这段代码粘贴到你的个人网站、博客或作品集的HTML中
  2. 刷新页面,右下角会出现对话气泡

验证方法:在浏览器中打开你的网站,点击右下角气泡,测试几个问题。

渠道二:飞书Bot(最实用)

适用平台:Dify + 飞书开放平台

操作步骤

Part A:在Dify中获取Webhook

  1. 在Dify应用中,点击「发布」→ 「飞书Bot」
  2. 复制Dify提供的Webhook URL(格式:https://cloud.dify.ai/v1/...

Part B:在飞书开放平台创建应用

  1. 登录 飞书开放平台
  2. 点击「创建应用」→ 「企业自建应用」
  3. 填写应用信息:
    • 应用名称:校园AI助手
    • 应用描述:为大学生提供校园生活、学习支持的AI助手
    • 应用图标:上传一个图标
  4. 点击「创建」

Part C:配置事件订阅

  1. 在应用页面左侧菜单,点击「事件订阅」
  2. 配置请求网址:
    • 请求网址:粘贴Dify提供的Webhook URL
    • 验证方式:Dify会自动处理飞书的URL验证
  3. 添加事件(勾选以下事件):
    • im.message.receive_v1(接收消息)
    • 点击「批量添加」搜索并添加
  4. 点击「保存」

Part D:配置权限

  1. 在应用页面左侧菜单,点击「权限管理」
  2. 在「API权限」中搜索并开通以下权限:
    • 获取用户信息contact:user.id:readonly
    • 获取群组信息im:chat:readonly
    • 发送消息im:message:send_as_bot
    • 接收消息im:message:readonly
  3. 点击「批量开通」

Part E:发布应用

  1. 在应用页面左侧菜单,点击「版本管理与发布」
  2. 点击「创建版本」
  3. 填写版本号(如 v1.0.0)和更新说明
  4. 点击「保存」→ 「申请发布」
  5. 等待管理员审核通过(企业自建应用通常很快)

Part F:在飞书中使用

  1. 审核通过后,在飞书搜索框中搜索你的应用名称
  2. 找到应用,点击进入对话
  3. 发送消息测试,Agent应该能正常回复

验证方法:在飞书中向Bot发送"推荐一门适合大一的通识选修课",检查回复质量。

渠道三:API端点(最灵活)

适用平台:Dify

操作步骤

  1. 在Dify应用中,点击「发布」→ 「访问API」

  2. 生成API密钥:

    • 点击「API密钥」→ 「创建密钥」
    • 复制生成的密钥(只显示一次,请妥善保存)
  3. API调用方式:

bash
# 使用curl测试
curl -X POST 'https://cloud.dify.ai/v1/chat-messages' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "inputs": {},
    "query": "推荐3个适合大学生参加的AI竞赛",
    "response_mode": "blocking",
    "user": "student-001"
  }'
  1. 使用Postman测试:

    • 打开Postman,新建请求
    • Method:POST
    • URL:https://cloud.dify.ai/v1/chat-messages
    • Headers:
      • Authorization: Bearer YOUR_API_KEY
      • Content-Type: application/json
    • Body(raw JSON):
    json
    {
      "inputs": {},
      "query": "推荐3个适合大学生参加的AI竞赛",
      "response_mode": "blocking",
      "user": "student-001"
    }
    • 点击Send,应该返回Agent的完整回答
  2. 编写API使用文档(示例):

markdown
# 校园AI助手 API 文档

## 基本信息
- 接口地址:https://cloud.dify.ai/v1/chat-messages
- 认证方式:Bearer Token
- 请求方式:POST

## 请求参数
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| query | string | 是 | 用户问题 |
| user | string | 是 | 用户标识 |
| response_mode | string | 否 | blocking(同步) / streaming(流式) |
| inputs | object | 否 | 额外变量 |

## 响应示例
{
  "answer": "这里是Agent的回答...",
  "conversation_id": "xxx",
  "message_id": "xxx"
}

## 使用示例(Python)
import requests

url = "https://cloud.dify.ai/v1/chat-messages"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
data = {
    "query": "推荐3个适合大学生参加的AI竞赛",
    "user": "student-001",
    "response_mode": "blocking"
}

response = requests.post(url, headers=headers, json=data)
print(response.json()["answer"])

3.3 Agent监控与迭代

Agent上线后不是终点,而是持续优化的起点。

监控指标

维度监控项工具
使用量日活用户、对话次数、消息数Dify控制台「监控」页面
质量用户点赞/点踩比例、反馈内容Dify「日志与标注」
性能响应延迟、Token消耗Dify「监控」→「性能」
错误错误率、超时次数Dify「监控」→「错误日志」

A/B测试不同Prompt

Dify中的A/B测试方法

  1. 复制当前应用,创建一个变体版本
  2. 在变体版本中修改System Prompt
  3. 两个版本同时发布,分配不同用户组
  4. 对比关键指标:用户满意度、任务完成率、回复质量
  5. 选择表现更好的版本作为主版本

A/B测试示例

测试项版本A(原版)版本B(变体)
回答风格正式、详细轻松、简洁
System Prompt"你是一个专业的AI助手""你是一个随和的AI学长"
测试指标用户满意度 3.8用户满意度 4.2 ✅
结论-变体B更受欢迎,替换为主版本

迭代优化清单

  1. 每周检查:查看用户高频问题,补充知识库
  2. 每月迭代:根据用户反馈优化System Prompt
  3. 持续更新:当课程内容更新时,同步更新知识库文档
  4. 边界处理:收集Agent回答不好的case,针对性改进

产出物

1. Agent设计文档

提交一份完整的Agent设计文档,包含:

章节内容要求
Agent定位Agent名称、目标用户、核心价值主张(一句话)
核心功能列出Agent能完成的3-5个核心任务
架构设计选择的设计框架(ReAct/Plan-and-Execute/Multi-Agent),说明理由
System Prompt完整的System Prompt文本
工具配置配置了哪些工具,每个工具的用途
知识库知识库的文档数量、覆盖范围
分发渠道发布了哪些渠道,每个渠道的访问方式

2. 一个可运行的Agent

要求:

  • Agent已发布到至少2个渠道(如Web嵌入 + 飞书Bot,或API + 豆包Store)
  • 提交各渠道的截图或录屏,展示Agent在真实对话中的表现
  • 至少测试5个不同类型的问题,验证Agent的覆盖范围

3. RAG知识库

  • 知识库包含至少50份文档(可以是课程笔记、收集的资料、自己的项目文档等)
  • 提交10个测试问答,展示知识库能准确回答相关问题
  • 每个问答需要标注:用户问题 → Agent回答 → 是否正确 → 如果不正确,分析原因

课后作业

基础版(必做)

作业:搭建你的第一个AI Agent

选择以下任一平台,完成一个Agent的搭建和发布:

选项A:用Dify搭建「课程知识库Agent」

  1. 按照第2课实操步骤,完成知识库搭建和Agent配置
  2. 发布到Web嵌入渠道
  3. 提交Agent链接和3个测试问答截图

选项B:用Coze搭建「校园AI助手」

  1. 在Coze(coze.cn)创建Bot
  2. 配置人设、知识库、插件
  3. 发布到豆包Store或飞书Bot
  4. 提交Bot链接和3个测试截图

进阶版(选做)

挑战:Agent多渠道分发

将你搭建的Agent发布到3个不同渠道

  1. 完成Web嵌入、飞书Bot、API端点的发布
  2. 为每个渠道写一份简短的使用说明(2-3句话即可)
  3. 提交所有渠道的访问方式和测试截图

提交方式

  • 作业模板链接:将在课程正式开始前通过微信群/课程群公布
  • 收集表链接:将在课程正式开始前通过微信群/课程群公布
  • 截止时间:第10周周日 23:59

模块10检查清单

在完成第三阶段所有内容之前,请确认你完成了以下所有事项:

  • [ ] 学习了第1课,理解了Agent的四大核心组件
  • [ ] 掌握了ReAct、Plan-and-Execute、Multi-Agent三种设计框架的区别
  • [ ] 能够为Agent编写高质量的System Prompt和工具调用指令
  • [ ] 学习了第2课,理解了RAG的完整链路
  • [ ] 完成了「课程知识库Agent」的搭建(必做)
  • [ ] 学习了第3课,了解Agent的分发渠道和发布流程
  • [ ] 将Agent发布到了至少2个渠道
  • [ ] 完成了Agent设计文档、RAG知识库的产出物要求

延伸阅读

平台文档

论文与博客

工具与资源


常见问题FAQ

Q1:Dify和Coze应该选哪个?

A:两者都是优秀的Agent搭建平台,选择取决于你的需求:

对比维度DifyCoze(扣子)
开源✅ 开源,可私有部署❌ 闭源
免费额度200次对话/月免费额度较大
模型选择支持多种模型(DeepSeek、通义千问等)主要使用豆包模型
知识库功能完善,支持多种检索策略功能完善,操作简单
分发渠道Web嵌入、API、飞书等飞书、豆包、微信等
适合人群喜欢开源、自定义模型、技术探索追求简单上手、生态整合

建议:两个都试试,花1小时在Dify上,1小时在Coze上,然后选你觉得更顺手的。

Q2:知识库需要多少文档才够?

A:最低20份,建议50份以上。但更重要的是文档的质量覆盖范围,而非数量。10份高质量、覆盖全面的文档,远胜于100份重复的低质量文档。

Q3:RAG检索出来的内容不准确怎么办?

A:按优先级排查:

  1. 文档质量:原始文档是否包含准确信息?
  2. 分段参数:chunk_size是否过大或过小?
  3. 检索参数:TopK是否太小?Score阈值是否太高?
  4. 嵌入模型:是否用了适合中文的嵌入模型?
  5. 查询改写:用户问题是否太口语化,需要改写?

Q4:Agent的System Prompt写了很长,但效果还是不好?

A:System Prompt不是越长越好。检查以下问题:

  1. 指令是否冲突?两个矛盾的要求会让Agent困惑
  2. 是否过于模糊?"尽量好地回答"这种指令对Agent没有帮助
  3. 是否包含具体示例?在Prompt中加入1-2个Q&A示例,效果远超长篇描述
  4. 是否限制了Agent的工具使用?确认没有禁止Agent使用必要的工具

Q5:飞书Bot配置后收不到消息怎么办?

A:常见原因和解决方法:

  1. 事件订阅URL未验证通过:检查Dify中生成的Webhook URL是否正确
  2. 权限未开通:确认已开通im:message:readonlyim:message:send_as_bot权限
  3. 应用未发布:确认应用已创建版本并通过审核
  4. 网络问题:如果Dify是私有部署,检查飞书能否访问你的服务器

Q6:Agent的响应太慢怎么办?

A

  1. 减少Tool调用:检查是否每次对话都调用了不必要的搜索
  2. 简化System Prompt:过长的Prompt增加Token消耗
  3. 使用响应更快的模型:DeepSeek-V3和通义千问-Turbo比大杯模型快很多
  4. 开启流式输出:在API中设置response_mode: "streaming",让用户边等边看

← 上一模块:AI自动化工作流 | 下一模块:终身学习体系 →

AI竞争力提升计划 · 面向所有专业大学生的零门槛AI实战课程