从零搭建 AI Agent:LLM Agent+Function Calling+Dify 本地部署 + Coze 实战全攻略

前言

随着大模型技术快速发展,LLM AgentFunction Calling 已成为 AI 应用落地的核心能力。传统 LLM 仅能处理文本生成,存在信息滞后、缺乏行动力、逻辑不精确三大痛点,而 Agent 通过自主规划、记忆、工具调用实现复杂任务,Function Calling 则打通大模型与外部世界的连接。

本文从基础概念讲起,覆盖Dify 本地部署、Ollama 本地大模型对接、Function Calling 代码实战、LangChain Agent 开发、Coze 低代码搭建全流程,小白也能跟着一步步实现 AI Agent 从 0 到 1 落地。


一、核心概念:LLM、Agent、Function Calling 彻底搞懂

1.1 LLM vs Agent:不是一回事!

  • LLM(大型语言模型):专注自然语言理解与生成,如文本创作、翻译、问答,是 **"只会思考的大脑"**。
  • Agent(AI 智能体) :具备自主性、目标导向、环境交互 能力,包含规划、记忆、工具使用、执行四大核心组件,是 **"能思考、能行动、能完成任务的完整系统"**。

一句话总结:LLM 是 Agent 的核心大脑,Agent 是包含 LLM 的完整智能实体

1.2 Agent 四大核心能力

  1. 规划(Planning):拆解复杂任务、反思执行过程、决定任务终止。
  2. 记忆(Memory):短期记忆(上下文)、长期记忆(向量数据库知识库)。
  3. 工具使用(Tools):调用计算器、搜索、代码执行器、API 等与现实世界交互。
  4. 执行(Action):根据规划与记忆完成具体操作,输出结果。

1.3 Function Calling:大模型的 "手脚"

大模型天生缺陷:

  • 信息滞后:知识截止固定时间,无实时数据。
  • 缺乏行动力:无法调用外部工具、执行实际操作。
  • 无真逻辑:依赖统计规律,精确场景易出错。

Function Calling 是让 LLM 输出结构化函数调用指令 ,由外部系统执行后返回结果,再由 LLM 整合回答,实现大模型与外部系统的无缝对接

1.4 Agent vs Function Calling:关系理清

  • Function Calling轻量级工具调用能力,模型直接调用预定义函数,像 "瑞士军刀"。
  • Agent自主决策智能体,可规划任务、组合多个工具(含 Function Calling),像 "熟练工人"。

二、Dify 本地部署:一站式 LLM 应用开发平台

2.1 Dify 简介

开源 LLM 应用开发平台,提供Agent 构建、工作流编排、RAG 检索、模型管理能力,比 LangChain 更易用,支持本地部署,隐私性更强。

2.2 本地部署完整步骤

2.2.1 环境准备
  1. 安装Docker Desktop(Windows/Mac/Linux 通用)。

  2. 配置 Docker 镜像加速(解决拉取慢问题):

    {
    "registry-mirrors": [
    "https://do.nark.eu.org",
    "https://docker.m.daocloud.io",
    "https://docker.mirrors.ustc.edu.cn"
    ]
    }

2.2.2 Dify 部署
  1. 下载 Dify 源码(推荐 1.8.0 版本):https://github.com/langgenius/dify/releases

  2. 解压进入docker目录,将.env.example重命名为.env

  3. 命令行执行启动命令:

    docker-compose up -d

  4. 访问http://localhost/install初始化管理员账号,完成部署。

2.3 Ollama 本地大模型对接

  1. 安装 Ollama:https://ollama.com/

  2. 命令行下载本地模型:

    ollama run deepseek-r1:1.5b

  3. Dify 配置 Ollama:

  • 修改.env添加:

    CUSTOM_MODEL_ENABLED=true
    OLLAMA_API_BASE_URL=host.docker.internal:11434

  • Dify 后台添加 Ollama 模型,完成关联。

2.4 Dify 五大应用类型快速上手

  1. 聊天助手:简单配置即可搭建对话机器人,支持变量、知识库接入。
  2. Agent:具备自主规划、工具调用能力的智能助手,可自动完成复杂任务。
  3. Chatflow:支持记忆的复杂多轮对话工作流。
  4. 工作流:面向单轮自动化任务的编排工作流。
  5. 文本生成:专注文本生成任务的 AI 助手。

三、Function Calling 代码实战:从零实现工具调用

3.1 核心工作流程

  1. 工具注册:定义函数元数据(名称、描述、参数)。
  2. 意图解析:LLM 判断是否需要调用工具。
  3. 生成调用:输出结构化 JSON 函数指令。
  4. 外部执行:应用层调用真实函数获取结果。
  5. 结果整合:LLM 基于结果生成自然语言回答。

3.2 实战:加法器 Function Calling

复制代码
import json
from openai import OpenAI

# 初始化客户端
client = OpenAI(api_key="你的API_KEY", base_url="模型地址")

def get_completion(messages, model="qwen-plus"):
    """带Function Calling的对话请求"""
    response = client.chat.completions.create(
        model=model,
        messages=messages,
        tools=[
            {
                "type": "function",
                "function": {
                    "name": "sum",
                    "description": "加法器,计算一组数的和",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "numbers": {"type": "array", "items": {"type": "number"}}
                        },
                        "required": ["numbers"]
                    }
                }
            }
        ]
    )
    return response.choices[0].message

# 测试提示词
prompt = "桌上有2个苹果,4个桃子,一共有几个水果?"
messages = [{"role": "user", "content": prompt}]

# 第一次调用:获取函数调用指令
response = get_completion(messages)
messages.append(response)

# 解析并执行函数
if response.tool_calls:
    tool_call = response.tool_calls[0]
    args = json.loads(tool_call.function.arguments)
    result = sum(args["numbers"])
    # 将结果返回模型
    messages.append({"role": "tool", "name": "sum", "content": str(result)})
    # 第二次调用:生成最终回答
    final_response = get_completion(messages)
    print(final_response.content)

四、LangChain Agent 开发:自主智能体实战

4.1 LangChain Agent 核心:ReAct 范式

思考(Thought)→ 行动(Action)→ 观察(Observation) 循环,让 LLM 交替推理与执行,提升可解释性、减少幻觉。

4.2 实战:文本长度计算 Agent

复制代码
from langchain import hub
from langchain.agents import create_structured_chat_agent, AgentExecutor
from langchain.memory import ConversationBufferMemory
from langchain.tools import BaseTool
from langchain_openai import ChatOpenAI

# 1. 初始化大模型
model = ChatOpenAI(model="deepseek-r1:1.5b", base_url="http://host.docker.internal:11434/v1")

# 2. 自定义工具
class TextLengthTool(BaseTool):
    name = "text_length"
    description = "计算文本的字符长度"
    def _run(self, text: str) -> int:
        return len(text)

tools = [TextLengthTool()]

# 3. 加载ReAct提示词
prompt = hub.pull("hwchase17/structured-chat-agent")

# 4. 初始化Agent与记忆
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
agent = create_structured_chat_agent(llm=model, tools=tools, prompt=prompt)
agent_executor = AgentExecutor.from_agent_and_tools(
    agent=agent, tools=tools, memory=memory, verbose=True
)

# 5. 执行任务
result = agent_executor.invoke({"input": "'我是AI助手'这句话的长度是多少?"})
print(result["output"])

五、Coze 低代码搭建 AI Agent:零代码快速上线

5.1 Coze 平台简介

一站式 AI Bot 开发平台,零代码 / 低代码搭建 Agent,支持发布到抖音、微信、飞书等平台,默认集成豆包、DeepSeek等大模型。

5.2 快速搭建步骤

  1. 注册登录:https://www.coze.cn/
  2. 创建智能体:设置名称、功能介绍、人设提示词。
  3. 配置插件:添加天气、搜索、代码执行等工具。
  4. 工作流编排:可视化组合节点,实现链接总结、数据同步等复杂任务。
  5. 调试发布:预览测试后发布到目标平台。

5.3 标准 Prompt 模板(以投资大师为例)

复制代码
# 角色
你是巴菲特,极具影响力的投资大师,通过Function Call解答经济问题、提供投资策略。

## 技能
1. 解答经济学问题:调用工具获取资料,通俗讲解专业知识。
2. 提供投资策略:结合用户风险承受能力,给出资产配置建议。
3. 分析经济趋势:收集最新数据,解读趋势与影响。

## 限制
- 仅讨论经济、投资相关内容。
- 回答逻辑清晰、基于可靠理论。

六、总结与避坑指南

6.1 核心知识点回顾

  1. Agent = 规划 + 记忆 + 工具 + 执行,是完整智能系统。
  2. Function Calling 是 LLM 连接外部世界的桥梁,解决信息滞后、无行动力问题。
  3. Dify 本地部署灵活,适合隐私敏感场景;Coze 低代码快速上线,适合业务落地。
  4. LangChain 适合自定义开发,ReAct 范式是 Agent 核心逻辑。

6.2 实战避坑

  1. Function Calling 工具描述必须清晰,否则 LLM 无法正确调用。
  2. Dify 对接 Ollama 时,API 地址需用host.docker.internal而非localhost
  3. Agent 工具不宜过多,避免 LLM 决策混乱,优先保留核心工具。
  4. 本地部署确保 Docker 正常运行,镜像加速配置到位。

结语

AI Agent 是大模型应用的未来,Function Calling 则是 Agent 能力的基石。本文覆盖理论 + 部署 + 代码 + 低代码全流程,无论你是开发者、产品经理还是 AI 爱好者,都能快速上手搭建自己的 AI 智能体。

后续可深入多 Agent 协作、RAG 增强、企业级私有化部署等方向,让 AI 真正落地业务、创造价值。

本文为实战教程,代码与步骤均亲测有效,欢迎点赞、收藏、留言交流!

相关推荐
数据智研1 小时前
【数据分享】中国第三产业统计年鉴(1991-2025)(1993-1994、2001-2005末出版)
大数据·人工智能·信息可视化·数据分析
HyperAI超神经1 小时前
在线教程丨单卡即可爆改,面壁智能等开源MiniCPM-V-4.6,1.3B端侧模型支持图像理解/视频理解/OCR/多轮多模态对话
人工智能·ai·ocr
科技测评-阿博2 小时前
律师案源开发指南:精准获客方法,附实操模板
大数据·人工智能
Wanderer X2 小时前
【入门】搜索
人工智能
TG_yunshuguoji2 小时前
云代理商:Hermes Agent如何通过技能沉淀降低长期算力消耗
人工智能·云计算·ai 智能体·hermes agent
WangN22 小时前
【SONIC】Isaac Lab 系统入门指南
人工智能·python·机器人·自动驾驶·仿真
沫儿笙2 小时前
库卡机器人二保焊混合气节气装置
网络·人工智能·机器人
SelectDB技术团队2 小时前
强行拍平?全表扫描? AI Agent 动态 JSON 的观测分析
数据库·人工智能·json·apache doris
大模型最新论文速读2 小时前
EvoLM:8B 模型自写评分标准,RL 后超越 GPT-4
人工智能·深度学习·算法·机器学习·自然语言处理