PROJECT 05

Agent 应用开发
从概念到落地

Coze/Dify 零代码可视化搭建 + LangGraph 代码级 Agent,理解架构设计,做出能自动干活的智能体应用。

2
开发方式
低代码
到纯代码
完整
架构解析
PART 04
Agent 应用

Agent = LLM + 工具 + 记忆 + 规划。RAG 让 AI "知道更多",微调让 AI "说得更像",Agent 让 AI "能做事"。本指南使用 Coze + Dify + LangGraph 方案。

10 Agent 概念与架构

什么是 AI Agent?它和 RAG、微调有什么不同?

RAG vs 微调 vs Agent
对比RAG微调Agent
本质检索知识 + 生成回答修改模型记忆LLM 自主决策 + 调用工具
类比查字典的回答者背过书的回答者会用工具的助理
核心能力回答"知道什么"风格/格式定制执行"能做什么"
能否行动只能回答只能回答能调 API、查数据、发邮件
Agent 核心架构

Agent 的核心是一个循环:理解任务 → 选择工具 → 调用工具 → 观察结果 → 判断是否完成。四个核心组件:

  • LLM(大脑):负责理解、推理和决策。推荐 Qwen2.5-7B-Instruct(硅基流动 API)
  • Tools(工具):知识库检索、API 调用、搜索、代码执行、时间查询等
  • Memory(记忆):保留对话上下文,支持多轮对话连贯性
  • Planning(规划):ReAct 思维链,先思考再行动,边观察边调整
Agent 平台对比
平台类型特点国内访问
Dify可视化工作流 + Agent,API 发布,可本地部署云端需梯子 / 本地部署不需要
Coze(扣子)可视化字节出品,插件生态强,发布到飞书/微信直接访问
FastGPT可视化有简单工作流编排能力本地已部署
LangGraph代码LangChain 官方,图状态机,最灵活需要写 Python 代码
CrewAI代码多 Agent 协作,角色分工需要写 Python 代码
Agent 设计原则
原则说明
工具要专一每个工具只做一件事
描述要清晰工具描述决定 Agent 何时调用
给工具加限制危险操作要先确认
设置终止条件防止 Agent 无限循环
提供示例在提示词中给使用示例

11 Coze/Dify Agent 实操

用可视化平台搭建 Agent,零代码完成。

方案 1:Coze(扣子)搭建 Agent

地址coze.cn · 国内直接访问

操作步骤:

  1. 注册登录 coze.cn(手机号注册)
  2. 点击「+ 创建」→ 选择「创建智能体」
  3. 填写名称和功能描述 → 点击确认
  4. 在左侧「人设与回复逻辑」面板输入提示词(系统角色设定 + 回答规则 + 限制条件)
  5. 在中间「技能」区域配置:
    • 知识库:添加 → 上传 PDF/Word 文档 → 自动切片向量化
    • 插件:添加联网搜索、图片识别、代码执行等
    • 工作流:编排采集 → 改写 → 发布的自动化流程
  6. 配置检索策略:混合检索 + 显示来源 + 无召回自定义回复
  7. 在右侧预览区测试 3 种场景:知识问答、工具调用、多轮对话
  8. 点击「发布」→ 选择渠道:Web 链接 / 飞书 / 微信公众号 / 抖音 / API
# 提示词示例
# 角色
你是网站备案智能助理,专门解答网站备案相关问题。

## 回答规则
- 只基于知识库内容回答,不确定时说"我不确定"
- 回答简洁,先给结论再补充说明
- 语气礼貌专业

## 限制
- 不要编造知识库中没有的信息
- 涉及操作类问题,引导用户到系统操作
方案 2:Dify 本地部署 + Agent 搭建

云端版dify.ai(国内需梯子)
本地部署:Docker 一键启动,不需要梯子

本地部署步骤:

# 1. 下载 Dify(用 GitHub 代理)
cd D:\
curl.exe -L -o dify.zip https://gh-proxy.com/https://github.com/langgenius/dify/archive/refs/heads/main.zip
Expand-Archive -Path dify.zip -DestinationPath D:\
Rename-Item dify-main dify

# 2. 启动
cd D:\dify\docker
cp .env.example .env
docker compose up -d

# 3. 访问 http://localhost
#    首次创建管理员账号(邮箱 + 密码)

配置模型:

进入 Dify → 设置 → 模型供应商 → 找到 SiliconCloud → 填入 API Key:

API Key: sk-你的硅基流动key
# 自动拉取 Qwen2.5-7B-Instruct、BAAI/bge-m3 等模型

创建 Agent:

  1. 首页 → 「创建空白应用」→ 选择「Agent」
  2. 配置提示词(Instructions):定义角色、能力、原则
  3. 选择模型:Qwen/Qwen2.5-7B-Instruct,Temperature: 0.3
  4. 添加工具:Dify 知识库、时间、计算器、自定义 HTTP API
  5. 关联知识库:上传文档 → 配置混合检索 + 重排
  6. 设置记忆:对话历史 10 轮
  7. 测试 3 种场景 → 发布为 Web App 或 API

自定义工具(OpenAPI Schema):

Agent 最强大的能力是调用外部 API。在 Dify → 工具 → 自定义工具,创建 OpenAPI Schema:

{
  "openapi": "3.0.0",
  "info": { "title": "备案查询工具", "version": "1.0.0" },
  "paths": {
    "/api/record/query": {
      "get": {
        "summary": "查询网站备案进度",
        "parameters": [{
          "name": "id_card",
          "in": "query",
          "required": true,
          "schema": { "type": "string" }
        }],
        "responses": {
          "200": {
            "description": "查询成功",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": { "type": "string" },
                    "estimated_date": { "type": "string" }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

Agent 会自动判断何时调用这个工具——用户问"我的备案到哪了"时,Agent 会主动调用查询接口。

Dify 工作流编排

除了 Agent 模式,Dify 还支持工作流(Workflow)——固定步骤的自动化流程:

开始 → 知识库检索 → LLM 生成回答 → 发送通知 → 结束

# 适合需要确定性流程的场景
# 如:采集 → 改写 → 发布的自动化流程

12 LangGraph 代码 Agent

用 Python 代码搭建 Agent,最灵活、最可控。适合进阶学习。

安装 LangGraph
# 在虚拟环境中安装
cd D:\llm-finetune
.\venv\Scripts\Activate.ps1
pip install langgraph langchain-openai
最小 Agent 示例

用 LangGraph 创建 ReAct Agent,接入 FastGPT 知识库 + 自定义 API 工具:

from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
import requests

# 1. 定义工具
def search_knowledge(query: str) -> str:
    """搜索网站备案知识库"""
    resp = requests.post(
        "https://cloud.fastgpt.cn/api/core/dataset/searchTest",
        headers={"Authorization": "Bearer fastgpt-你的key"},
        json={
            "datasetId": "你的知识库ID",
            "text": query,
            "limit": 5,
            "similarity": 0,
            "searchMode": "embedding"
        }
    )
    data = resp.json()
    contexts = [item.get("content", "") for item in data.get("data", [])]
    return "\n".join(contexts[:3])

def query_progress(id_card: str) -> str:
    """查询备案进度"""
    # 调用业务系统 API
    return f"身份证 {id_card} 的备案状态:审核中,预计3个工作日完成"

# 2. 创建 Agent
model = ChatOpenAI(
    model="Qwen/Qwen2.5-7B-Instruct",
    base_url="https://api.siliconflow.cn/v1",
    api_key="sk-你的硅基流动key"
)

agent = create_react_agent(model, [search_knowledge, query_progress])

# 3. 运行
result = agent.invoke({
    "messages": [{
        "role": "user",
        "content": "网站备案要多久?另外帮我查一下"
               "身份证110101199001011234的备案进度"
    }]
})

for msg in result["messages"]:
    print(f"{msg.type}: {msg.content}")

# Agent 会自动:
# 1. 调用 search_knowledge 回答备案时间
# 2. 调用 query_progress 查询进度
# 3. 汇总两步结果回复用户
多 Agent 协作(进阶)

用 CrewAI 或 AutoGen 实现多 Agent 分工协作:

# CrewAI 示例:多角色协作
from crewai import Agent, Task, Crew

# 角色 1:信息收集员
researcher = Agent(
    role="备案信息研究员",
    goal="收集和分析网站备案相关政策信息",
    backstory="你是备案领域的专家,擅长搜集信息",
    llm=model
)

# 角色 2:报告撰写员
writer = Agent(
    role="报告撰写员",
    goal="将研究结果整理成清晰的报告",
    backstory="你是技术文档专家,擅长结构化表达",
    llm=model
)

# 分配任务
research_task = Task(
    description="研究网站备案的最新政策和流程",
    agent=researcher,
    expected_output="详细的备案政策和流程分析"
)

write_task = Task(
    description="将研究结果整理成用户友好的报告",
    agent=writer,
    expected_output="结构化的备案指南报告",
    context=[research_task]  # 依赖研究结果
)

# 执行
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task])
result = crew.kickoff()
Agent vs 工作流:什么时候用哪个
对比Agent(自主决策)工作流(固定流程)
决策方式LLM 自己决定调什么工具预先定义好步骤
灵活性高,能处理意外情况低,按固定路径走
可控性低,可能走偏高,行为可预测
适合场景开放式问答、复杂决策自动化流程、批量处理
示例智能客服、个人助理采集→改写→发布

13 总结与建议

完整学习路径回顾与后续建议。

学习路径回顾
  1. RAG 搭建:FastGPT 本地部署 + Ollama 本地模型 + 硅基流动重排模型 → 完整知识库问答系统
  2. 线上微调:阿里云百炼 + LoRA 高效训练 → 零代码完成模型定制
  3. 本地微调:LLaMA-Factory WebUI + QLoRA 4bit 量化 → 本地可视化微调
  4. 评测体系:LLM-as-Judge + FastGPT 搜索接口 + 硅基流动裁判模型 → 量化评估 RAG 效果
  5. Agent 应用:Coze 可视化 Agent + Dify 本地部署 + LangGraph 代码 Agent → AI 自主决策与工具调用
后续进阶方向
  • 扩充微调数据:从 92 条扩充到 200~500 条,提升训练效果
  • 从零写微调脚本:用 Transformers + PEFT + TRL 写代码,深入理解原理
  • 多模态微调:支持图片理解的模型微调(Qwen-VL 系列)
  • RAG + 微调结合:用微调让模型输出特定格式,用 RAG 提供实时知识
  • 多 Agent 协作:用 CrewAI / AutoGen 搭建多 Agent 协作系统
  • Agent 工作流自动化:将 Agent 接入业务系统,实现自动化流程