乐于分享
好东西不私藏

AI Agent 全链路落地方案

AI Agent 全链路落地方案

一、AI Agent 介绍

1. 定义

AI Agent(智能体) = 具备自主思考、记忆、规划、工具使用、自我反思能力的 AI 系统。它不是简单问答机器人,而是能独立完成复杂任务的自动化助手

2. 核心特点

  • ✅ 自主性:无需人工逐步干预
  • ✅ 记忆能力:短期上下文 + 长期知识库
  • ✅ 任务规划:自动拆解复杂目标
  • ✅ 工具调用:联网搜索、数据库、代码执行、API
  • ✅ 反馈迭代:执行失败自动重试 / 优化
3. 与普通 LLM 的区别
特性
普通大模型 (ChatGPT)
AI Agent
交互方式
被动一问一答
主动闭环执行
任务能力
单步简单任务
多步骤复杂任务
工具使用
有限 / 无
自由调用外部工具
记忆
短期上下文
长短记忆 + 经验学习
适用场景
聊天、问答
自动化办公、数据分析、研发助手
二、AI Agent 标准架构

1. 五大核心模块

  • 大脑(LLM)
    决策、推理、规划核心
  • 感知层
    接收用户输入 / 环境数据
  • 记忆层
    短期记忆 + 长期记忆
  • 规划层
    目标拆解、步骤生成
  • 执行 / 工具层
    调用外部能力(搜索、代码、数据库)
    2. 架构原理图
    3.标准架构图
    三、AI Agent 工作原理

    四、AI Agent 实现

    第一部分:完整版 Agent(联网+数据库+代码执行)

    核心目标:实现“自主感知→联网检索→数据库读写→代码执行→反馈迭代”全闭环,支持复杂任务(如“爬取行业数据→存入数据库→分析数据→生成可视化报告”),覆盖Python、Java、Go三种语言,对应主流框架。

    1. Python(LangChain)完整版 Agent

    集成:DuckDuckGo联网搜索 + SQLite数据库(读写) + Python代码执行(数据分析、绘图),可直接运行,需提前安装依赖。

    1.1 依赖安装

    pip install langchain langchain-openai langchain-community duckduckgo-search sqlite3 matplotlib pandas

    1.2 完整代码

    from langchain.agents import create_tool_calling_agent, AgentExecutorfrom langchain_community.tools import DuckDuckGoSearchRun, PythonREPLToolfrom langchain_community.utilities import SQLDatabasefrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplate# 1. 初始化核心组件# 1.1 LLM大脑(GPT-3.5/4均可,替换api_key即可)llm = ChatOpenAI(    model="gpt-3.5-turbo",    temperature=0,    api_key="你的OpenAI API Key"  # 替换为自己的API Key)# 1.2 联网搜索工具(DuckDuckGo,无需额外配置)search_tool = DuckDuckGoSearchRun()# 1.3 代码执行工具(Python REPL,支持数据分析、绘图、逻辑执行)python_repl_tool = PythonREPLTool()# 1.4 数据库工具(SQLite,本地文件数据库,无需部署,可替换为MySQL/PostgreSQL)db = SQLDatabase.from_uri("sqlite:///ai_agent_db.db")  # 自动创建数据库文件db_tool = db.as_tool()  # 转为LangChain可调用工具# 2. 整合所有工具tools = [search_tool, python_repl_tool, db_tool]# 3. 提示词(核心:引导Agent自主选择工具、闭环执行)prompt = ChatPromptTemplate.from_messages([    ("system""""你是一个具备自主能力的完整版AI Agent,拥有联网搜索、数据库读写、代码执行能力,核心任务是完成用户复杂需求,执行逻辑如下:1. 先判断是否需要联网:若需求涉及实时数据、最新信息,先调用搜索工具获取数据;2. 再判断是否需要数据库:若需存储、查询历史数据,调用数据库工具(增删改查);3. 最后判断是否需要代码执行:若需数据分析、绘图、复杂计算,调用Python代码执行工具;4. 执行过程中,若某一步失败,自动重试(更换工具或调整参数),无需人工干预;5. 完成所有步骤后,整理结果,输出清晰、易懂的最终答案,若有图表,保存为本地文件并提示路径。"""),    ("user""{input}"),    ("agent_scratchpad""{agent_scratchpad}")  # 保存Agent思考过程])# 4. 创建Agent并执行agent = create_tool_calling_agent(llm, tools, prompt)# 开启verbose=True,可查看Agent思考、工具调用全过程agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True, handle_parsing_errors=True)# 5. 测试复杂任务(可替换为任意需求,如"爬取2025年AI行业市场规模→存入数据库→分析同比增长率→生成柱状图")if __name__ == "__main__":    user_input = """完成以下任务:1. 联网搜索2024年和2025年全球人工智能行业市场规模(单位:亿美元);2. 将搜索到的数据存入SQLite数据库,表名设为ai_market_size,字段包括year(年份)、market_size(市场规模);3. 用Python代码计算2025年相对2024年的同比增长率;4. 生成柱状图(对比两年市场规模),保存为ai_market_chart.png;5. 输出最终结果(增长率+图表路径)。"""    result = agent_executor.invoke({"input": user_input})    print("\n==================== 最终结果 ====================")    print(result["output"])

    1.3 核心说明

    • 数据库:自动创建SQLite数据库(ai_agent_db.db),可替换为MySQL(修改连接URI:mysql+pymysql://user:password@host:port/dbname);

    • 代码执行:支持matplotlib绘图、pandas数据分析,生成的图表保存在本地;

    • 闭环能力:Agent会自主判断“是否需要工具→用哪个工具→工具执行失败如何重试”,无需人工干预。

    2. Java(Spring AI + LangChain4j)完整版 Agent

    企业级实现,集成:OkHttp联网搜索 + MySQL数据库 + Java代码执行(通过ScriptEngine),适配Spring Boot项目,可直接集成到企业系统。

    2.1 依赖(pom.xml)

    <!-- Spring Boot 基础依赖 --><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>    <version>3.2.0</version></dependency><!-- Spring AI 核心依赖 --><dependency>    <groupId>org.springframework.ai</groupId>    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>    <version>1.0.0</version></dependency><!-- LangChain4j 依赖(增强工具调用能力) --><dependency>    <groupId>dev.langchain4j</groupId>    <artifactId>langchain4j</artifactId>    <version>0.32.0</version></dependency><!-- 数据库依赖(MySQL) --><dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>8.0.36</version></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-jdbc</artifactId>    <version>3.2.0</version></dependency><!-- 联网工具(OkHttp) --><dependency>    <groupId>com.squareup.okhttp3</groupId>    <artifactId>okhttp</artifactId>    <version>4.11.0</version></dependency><!-- 代码执行工具(ScriptEngine) --><dependency>    <groupId>org.codehaus.groovy</groupId>    <artifactId>groovy-all</artifactId>    <version>3.0.17</version>    <type>pom</type></dependency>

    2.2 完整代码(Spring Boot项目)

    2.2.1 配置文件(application.yml)

    spring:  # OpenAI 配置  ai:    openai:      api-key: 你的OpenAI API Key      chat:        model: gpt-3.5-turbo        temperature0  # MySQL 数据库配置  datasource:    url: jdbc:mysql://localhost:3306/ai_agent_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC    username: root  # 替换为你的MySQL用户名    password123456  # 替换为你的MySQL密码    driver-class-name: com.mysql.cj.jdbc.Driver# 服务器配置server:  port8080

    2.2.2 工具类

    package com.ai.agent.tool;import dev.langchain4j.agent.tool.Tool;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.stereotype.Component;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;import java.io.IOException;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;/** * 整合三大工具:联网搜索、数据库操作、代码执行 */@Componentpublic class AgentTools {    // 1. 数据库工具(MySQL)    @Autowired    private JdbcTemplate jdbcTemplate;    // 2. 联网搜索工具(OkHttp)    private final OkHttpClient okHttpClient = new OkHttpClient();    // 3. 代码执行工具(ScriptEngine,支持Groovy/Java代码)    private final ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("groovy");    /**     * 工具1:联网搜索(输入搜索关键词,返回搜索结果)     */    @Tool(description = "用于获取实时、最新信息,输入搜索关键词,返回搜索到的文本内容")    public String webSearch(String keyword) throws IOException {        String url = "https://api.duckduckgo.com/?q=" + keyword + "&format=json&no_redirect=1";        Request request = new Request.Builder().url(url).build();        try (Response response = okHttpClient.newCall(request).execute()) {            assert response.body() != null;            return response.body().string();        }    }    /**     * 工具2:数据库操作(输入SQL语句,执行增删改查,返回执行结果)     */    @Tool(description = "用于操作MySQL数据库,输入合法SQL语句,返回执行结果(查询返回数据,增删改返回影响行数)")    public String dbOperation(String sql) {        try {            // 判断SQL类型,执行对应操作            if (sql.trim().toLowerCase().startsWith("select")) {                return jdbcTemplate.queryForList(sql).toString();            } else {                int rows = jdbcTemplate.update(sql);                return "执行成功,影响行数:" + rows;            }        } catch (Exception e) {            return "SQL执行失败:" + e.getMessage();        }    }    /**     * 工具3:代码执行(输入Groovy/Java代码,执行并返回结果,支持数据分析、计算)     */    @Tool(description = "用于执行复杂计算、数据分析,输入合法的Groovy或Java代码,返回执行结果")    public String codeExecute(String code) throws ScriptException {        Object result = scriptEngine.eval(code);        return "代码执行成功,结果:" + result.toString();    }}

    2.2.3 Agent核心类(Spring AI + LangChain4j整合)

    package com.ai.agent.service;import com.ai.agent.tool.AgentTools;import dev.langchain4j.memory.chat.MessageWindowChatMemory;import dev.langchain4j.model.openai.OpenAiChatModel;import dev.langchain4j.service.AiServices;import org.springframework.ai.chat.client.ChatClient;import org.springframework.ai.openai.OpenAiChatModel;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;/** * 完整版AI Agent(整合三大工具,支持闭环执行) */@Servicepublic class FullAgentService {    // 注入工具类    @Autowired    private AgentTools agentTools;    // 初始化LLM(Spring AI整合OpenAI)    private final OpenAiChatModel chatModel;    // 初始化Agent(LangChain4j提供工具调用能力)    private final Agent agent;    @Autowired    public FullAgentService(OpenAiChatModel chatModel) {        this.chatModel = chatModel;        // 配置Agent:LLM + 记忆 + 工具        this.agent = AiServices.builder(Agent.class)                .chatModel(chatModel)                .chatMemory(MessageWindowChatMemory.withMaxMessages(20))  // 长期记忆(保存20条上下文)                .tools(agentTools)  // 注入三大工具                .build();    }    // Agent接口(定义交互方法)    public interface Agent {        String executeTask(String task);    }    // 执行复杂任务    public String runFullAgent(String task) {        // 引导Agent自主调用工具,闭环执行任务        String systemPrompt = "你是企业级AI Agent,具备联网搜索、MySQL数据库操作、代码执行能力,执行逻辑:" +                "1. 先判断任务是否需要实时数据,需要则调用webSearch工具;" +                "2. 若需要存储/查询数据,调用dbOperation工具执行SQL;" +                "3. 若需要计算/分析,调用codeExecute工具执行代码;" +                "4. 执行失败自动重试,无需人工干预,最终输出清晰结果。";        // 整合系统提示词和用户任务        String finalPrompt = systemPrompt + "\n用户任务:" + task;        return agent.executeTask(finalPrompt);    }}

    2.2.4 测试接口(Controller)

    package com.ai.agent.controller;import com.ai.agent.service.FullAgentService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class AgentController {    @Autowired    private FullAgentService fullAgentService;    // 测试完整版Agent的接口(POST请求,接收任务指令)    @PostMapping("/agent/run")    public String runAgent(@RequestBody String task) {        return fullAgentService.runFullAgent(task);    }}

    3. Go(langchaingo)完整版 Agent

    高性能实现,集成:DuckDuckGo联网 + PostgreSQL数据库 + Go代码执行(通过exec包),轻量、高效,适合高并发场景。

    3.1 依赖安装

    go get github.com/tmc/langchaingogo get github.com/tmc/langchaingo/agentsgo get github.com/tmc/langchaingo/llms/openaigo get github.com/tmc/langchaingo/toolsgo get github.com/lib/pq  # PostgreSQL驱动go get github.com/duckduckgo/ddg-go  # 联网搜索

    3.2 完整代码

    package mainimport ("context""database/sql""fmt""os/exec""github.com/duckduckgo/ddg-go""github.com/lib/pq""github.com/tmc/langchaingo/agents""github.com/tmc/langchaingo/chains""github.com/tmc/langchaingo/llms/openai""github.com/tmc/langchaingo/tools")// 1. 联网搜索工具(DuckDuckGo)type WebSearchTool struct{}func(w *WebSearchTool) Name() string {return "web_search"}func(w *WebSearchTool) Description() string {return "用于获取实时、最新信息,输入搜索关键词,返回搜索到的文本内容"}func(w *WebSearchTool) Call(ctx context.Context, input string) (stringerror) {	results, err := ddg.Search(input)if err != nil {return "", err	}var resultStr stringfor i, res := range results[:5] { // 取前5条结果		resultStr += fmt.Sprintf("%d. 标题:%s\n内容:%s\n链接:%s\n\n", i+1, res.Title, res.Abstract, res.Link)	}return resultStr, nil}// 2. 数据库工具(PostgreSQL)type DBTool struct {	db *sql.DB}funcNewDBTool(connStr string) (*DBTool, error) {	db, err := sql.Open("postgres", connStr)if err != nil {return nil, err	}return &DBTool{db: db}, nil}func(d *DBTool) Name() string {return "db_operation"}func(d *DBTool) Description() string {return "用于操作PostgreSQL数据库,输入合法SQL语句,返回执行结果"}func(d *DBTool) Call(ctx context.Context, sql string) (stringerror) {// 判断SQL类型if len(sql) >= 6 && sql[:6] == "SELECT" {		rows, err := d.db.QueryContext(ctx, sql)if err != nil {return "", err		}defer rows.Close()		cols, err := rows.Columns()if err != nil {return "", err		}var resultStr stringfor rows.Next() {			values := make([]interface{}, len(cols))			valuePtrs := make([]interface{}, len(cols))for i := range values {				valuePtrs[i] = &values[i]			}if err := rows.Scan(valuePtrs...); err != nil {return "", err			}for i, col := range cols {				resultStr += fmt.Sprintf("%s: %v ", col, values[i])			}			resultStr += "\n"		}return resultStr, nilelse {		result, err := d.db.ExecContext(ctx, sql)if err != nil {return "", err		}		rowsAffected, err := result.RowsAffected()if err != nil {return "", err		}return fmt.Sprintf("执行成功,影响行数:%d", rowsAffected), nil	}}// 3. 代码执行工具(Go代码执行)type CodeExecuteTool struct{}func(c *CodeExecuteTool) Name() string {return "code_execute"}func(c *CodeExecuteTool) Description() string {return "用于执行Go代码,输入合法的Go代码片段,返回执行结果"}func(c *CodeExecuteTool) Call(ctx context.Context, code string) (stringerror) {// 将代码写入临时文件	tmpFile := "temp.go"if err := os.WriteFile(tmpFile, []byte(code), 0644); err != nil {return "", err	}defer os.Remove(tmpFile)// 执行代码	cmd := exec.CommandContext(ctx, "go""run", tmpFile)	output, err := cmd.CombinedOutput()if err != nil {return fmt.Sprintf("代码执行失败:%s", err.Error()), nil	}return fmt.Sprintf("代码执行成功,结果:%s"string(output)), nil}// 主程序:创建完整版Agent并执行任务funcmain() {	ctx := context.Background()// 1. 初始化LLM	llm, err := openai.NewChat(		openai.WithModel("gpt-3.5-turbo"),		openai.WithAPIKey("你的OpenAI API Key"),	)if err != nil {panic(err)	}// 2. 初始化三大工具	webSearchTool := &WebSearchTool{}// PostgreSQL连接字符串(替换为自己的数据库信息)	connStr := "user=postgres password=123456 dbname=ai_agent_db host=localhost port=5432 sslmode=disable"	dbTool, err := NewDBTool(connStr)if err != nil {panic(err)	}	codeExecuteTool := &CodeExecuteTool{}// 3. 整合工具	toolList := []tools.Tool{webSearchTool, dbTool, codeExecuteTool}// 4. 创建Agent	agent := agents.NewOpenAIFunctionsAgent(llm, toolList)	executor := agents.NewExecutor(agent, toolList)// 5. 测试复杂任务	task := `完成以下任务:1. 联网搜索2024年和2025年中国AI行业从业人员数量(单位:万人);2. 将数据存入PostgreSQL数据库,表名ai_employee,字段year(年份)、employee_count(从业人员数量);3. 用Go代码计算2025年相对2024年的同比增长率;4. 输出最终结果(增长率)。`	result, err := chains.Run(ctx, executor, task)if err != nil {panic(err)	}	fmt.Println("==================== 最终结果 ====================")	fmt.Println(result)}

    第二部分:前端界面的可视化 Agent 系统

    核心目标:实现“前端可视化操作 + 后端Agent执行”的完整系统,支持用户输入任务、查看Agent执行过程(思考、工具调用)、查看最终结果(文本+图表),前端采用Vue3+Element Plus,后端复用第一部分的Agent接口,可直接部署。

    1. 系统架构

    前端(Vue3) ←→ 后端(Spring Boot/Flask/Gin) ←→ Agent核心(LangChain/Spring AI/langchaingo) ←→ 工具(联网+数据库+代码执行)

    2. 前端实现(Vue3 + Element Plus)

    直接复制代码,安装依赖后运行,支持任务输入、执行日志、结果展示、图表预览。

    2.1 依赖安装

    # 创建Vue项目npm create vue@latest ai-agent-frontendcd ai-agent-frontend# 安装依赖npm install element-plus axios echarts

    2.2 完整代码(核心页面)

    2.2.1 主页面(src/views/AgentView.vue)

    <template>  <divclass="agent-container">    <el-page-headercontent="AI Agent 可视化系统" />    <!-- 任务输入区域 -->    <el-cardclass="input-card"shadow="hover">      <el-form-itemlabel="任务指令">        <el-input          type="textarea"          v-model="taskInput"          placeholder="请输入复杂任务(如:爬取2025年AI市场规模→存入数据库→分析增长率→生成图表)"          rows="4"          class="task-input"        />      </el-form-item>      <el-buttontype="primary" @click="runAgent":disabled="isRunning">        {{ isRunning ? '执行中...' : '运行Agent' }}      </el-button>      <el-buttontype="default" @click="clearAll"style="margin-left: 10px">清空</el-button>    </el-card>    <!-- 执行日志区域 -->    <el-cardclass="log-card"shadow="hover">      <el-page-headercontent="Agent执行日志" />      <divclass="log-content"v-if="logList.length > 0">        <divv-for="(log, index) in logList":key="index"class="log-item">          <spanclass="log-time">{{ log.time }}</span>          <spanclass="log-type":class="log.type">{{ log.typeText }}</span>          <spanclass="log-content-text">{{ log.content }}</span>        </div>      </div>      <divclass="empty-log"v-else>暂无执行日志,点击“运行Agent”开始执行任务</div>    </el-card>    <!-- 结果展示区域 -->    <el-cardclass="result-card"shadow="hover">      <el-page-headercontent="执行结果" />      <divclass="result-content"v-if="result">        <el-dividercontent-position="left">文本结果</el-divider>        <divclass="result-text"v-html="result.text"></div>        <el-dividercontent-position="left"v-if="result.chartPath">图表预览</el-divider>        <el-image          v-if="result.chartPath"           :src="result.chartPath"           class="chart-image"          preview-src-list="[result.chartPath]"        />      </div>      <divclass="empty-result"v-else>暂无执行结果,等待Agent执行完成</div>    </el-card>  </div></template><scriptsetup>import { ref } from 'vue';import axios from 'axios';import { ElMessageElPageHeaderElCardElFormItemElInputElButtonElDividerElImage } from 'element-plus';import 'element-plus/dist/index.css';// 状态管理const taskInput = ref('');const isRunning = ref(false);const logList = ref([]); // 执行日志:time, type, typeText, contentconst result = ref(null); // 执行结果:text, chartPath// 格式化时间const formatTime = () => {  const date = new Date();  return date.toLocaleString('zh-CN', { hour12false });};// 新增日志const addLog = (type, content) => {  const typeMap = {    info: { text'信息'class'log-info' },    tool: { text'工具调用'class'log-tool' },    error: { text'错误'class'log-error' },    success: { text'成功'class'log-success' }  };  logList.value.push({    timeformatTime(),    type: typeMap[type].class,    typeText: typeMap[type].text,    content  });  // 滚动到底部  const logContent = document.querySelector('.log-content');  if (logContent) {    logContent.scrollTop = logContent.scrollHeight;  }};// 运行Agentconst runAgent = async () => {  if (!taskInput.value.trim()) {    ElMessage.warning('请输入任务指令');    return;  }  // 重置状态  isRunning.value = true;  logList.value = [];  result.value = null;  addLog('info'`开始执行任务:${taskInput.value}`);  try {    // 调用后端Agent接口(替换为你的后端接口地址)    const response = await axios.post('http://localhost:8080/agent/run', taskInput.value, {      headers: { 'Content-Type''text/plain' }    });    // 解析结果(假设后端返回JSON:{text: "结果文本", chartPath: "图表路径"})    const resData = response.data;    addLog('success''任务执行完成');    result.value = {      text: resData.text || resData, // 兼容不同返回格式      chartPath: resData.chartPath || ''    };  } catch (error) {    addLog('error'`任务执行失败:${error.message}`);    ElMessage.error('任务执行失败,请检查后端服务或任务指令');  } finally {    isRunning.value = false;  }};// 清空所有内容const clearAll = () => {  taskInput.value = '';  logList.value = [];  result.value = null;};</script><stylescoped>.agent-container {  padding20px;  max-width1200px;  margin0 auto;}.input-card {  margin-bottom20px;}.task-input {  width100%;  margin-bottom10px;}.log-card.result-card {  margin-bottom20px;}.log-content {  height300px;  overflow-y: auto;  padding10px;  background-color#f8f9fa;  border-radius4px;}.log-item {  margin-bottom8px;  line-height1.5;}.log-time {  color#909399;  font-size12px;  margin-right10px;}.log-type {  padding2px 6px;  border-radius4px;  font-size12px;  margin-right10px;  color: white;}.log-info {  background-color#409eff;}.log-tool {  background-color#67c23a;}.log-error {  background-color#f56c6c;}.log-success {  background-color#1f9d58;}.empty-log.empty-result {  text-align: center;  padding20px;  color#909399;}.result-content {  padding10px;}.result-text {  line-height1.8;  white-space: pre-wrap;}.chart-image {  max-width100%;  margin-top10px;  border-radius4px;}</style>

    2.2.2 路由配置(src/router/index.js)

    import { createRouter, createWebHistory } from 'vue-router';import AgentView from '../views/AgentView.vue';const routes = [  {    path'/',    name'Agent',    componentAgentView  }];const router = createRouter({  historycreateWebHistory(import.meta.env.BASE_URL),  routes});export default router;

    2.2.3 主入口(src/main.js)

    import { createApp } from 'vue';import App from './App.vue';import router from './router';import ElementPlus from 'element-plus';import 'element-plus/dist/index.css';import axios from 'axios';const app = createApp(App);app.use(router);app.use(ElementPlus);app.config.globalProperties.$axios = axios;app.mount('#app');

    2.3 前端部署

    # 打包前端项目npm run build# 部署方式1:本地测试(使用serve)npm install -g serveserve -s dist# 部署方式2:部署到Nginx(复制dist目录到Nginx的html目录,修改nginx.conf)# nginx.conf配置示例:server {    listen 80;    server_name localhost;    location / {        root html/dist;        index index.html;        try_files $uri $uri/ /index.html;    }    # 跨域配置(若前端和后端不在同一端口)    location /agent {        proxy_pass http://localhost:8080;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;    }}

    2.4 后端适配(以Spring Boot为例)

    修改第一部分的Spring Boot Agent接口,返回JSON格式结果(包含文本和图表路径),示例:

    // 修改AgentController.java@PostMapping("/agent/run")public ResponseEntity<Map<StringString>> runAgent(@RequestBodyString task) {    String result = fullAgentService.runFullAgent(task);    Map<StringString> response = new HashMap<>();    // 假设Agent执行后生成图表,路径为本地静态资源目录    response.put("text", result);    response.put("chartPath""/static/ai_market_chart.png"); // 前端可访问的图表路径    return ResponseEntity.ok(response);}// 配置静态资源访问(application.yml)spring:  resources:    static-locationsclasspath:/static/,file:./static/

    第三部分:企业级多智能体(Multi-Agent)架构

    核心目标:设计企业级多智能体系统,支持“多Agent协作、任务拆分、角色分工、负载均衡”,适配复杂业务场景(如企业自动化办公、多维度数据分析、全流程研发辅助),基于主流框架实现,可横向扩展。

    1. 企业级多智能体核心架构

    架构设计遵循“高内聚、低耦合”原则,分为5层,支持动态扩展Agent数量、灵活分配任务,具备容错、监控能力。

    1.1 架构图

    1.2 架构原理图

    2. 多智能体协作流程

    以“企业月度经营分析报告生成”为例,展示多Agent协作全流程:

    3. 多智能体实现(基于LangChain Multi-Agent)

    以Python LangChain为例,实现简化版企业级多智能体,包含主控Agent、执行Agent、调度逻辑,可直接扩展为生产级系统。

    3.1 依赖安装

    pip install langchain langchain-openai langchain-community pymilvus python-dotenv kafka-python

    3.2 部分代码

    from langchain.agents import create_tool_calling_agent, AgentExecutorfrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_community.tools import DuckDuckGoSearchRun, SQLDatabaseToolfrom langchain_community.utilities import SQLDatabasefrom kafka import KafkaProducer, KafkaConsumerimport jsonimport timefrom dotenv import load_dotenvimport osimport matplotlib.pyplot as pltimport requests  # 用于调用ERP/CRM接口from typing import ListDict# 加载环境变量(API Key、数据库地址等)load_dotenv()# 1. 初始化通用组件# 1.1 LLM大脑(GPT-4,企业级推荐使用)llm = ChatOpenAI(    model="gpt-4",    temperature=0,    api_key=os.getenv("OPENAI_API_KEY"))# 1.2 工具池(所有Agent共享)db = SQLDatabase.from_uri(os.getenv("DATABASE_URI"))  # 企业MySQL集群地址db_tool = db.as_tool()search_tool = DuckDuckGoSearchRun()# 新增:ERP/CRM接口调用工具(适配协作流程中的子任务1、2)class ERPAPITool:    """ERP系统接口工具,用于获取企业营收数据"""    def __init__(self):        self.erp_api_url = os.getenv("ERP_API_URL")        self.erp_api_key = os.getenv("ERP_API_KEY")    def call(self, month: str, year: str) -> Dict:        """调用ERP接口获取指定年月的营收数据"""        headers = {"Authorization"f"Bearer {self.erp_api_key}"}        params = {"year": year, "month": month}        response = requests.get(self.erp_api_url, headers=headers, params=params)        response.raise_for_status()  # 接口调用失败抛出异常        return response.json()class CRMAPITool:    """CRM系统接口工具,用于获取用户数据"""    def __init__(self):        self.crm_api_url = os.getenv("CRM_API_URL")        self.crm_api_key = os.getenv("CRM_API_KEY")    def call(self, month: str, year: str) -> Dict:        """调用CRM接口获取指定年月的用户数据"""        headers = {"Authorization"f"Bearer {self.crm_api_key}"}        params = {"year": year, "month": month}        response = requests.get(self.crm_api_url, headers=headers, params=params)        response.raise_for_status()        return response.json()# 初始化业务工具erp_tool = ERPAPITool()crm_tool = CRMAPITool()# 1.3 消息队列(Kafka,用于Agent间通信)producer = KafkaProducer(bootstrap_servers='localhost:9092', value_serializer=lambda v: json.dumps(v).encode('utf-8'))consumer = KafkaConsumer('agent_tasks', bootstrap_servers='localhost:9092', value_deserializer=lambda v: json.loads(v.decode('utf-8')))# 新增:结果反馈队列(用于执行Agent返回结果给主控Agent)result_consumer = KafkaConsumer('agent_results', bootstrap_servers='localhost:9092', value_deserializer=lambda v: json.loads(v.decode('utf-8')))# 1.4 图表生成工具(适配子任务2生成折线图需求)def generate_line_chart(data: Dict, save_path: str = "user_growth_chart.png") -> str:    """生成用户增长趋势折线图,返回保存路径"""    months = list(data.keys())    user_counts = list(data.values())    plt.figure(figsize=(106))    plt.plot(months, user_counts, marker='o', linestyle='-', color='#409eff')    plt.title('用户增长趋势图', fontsize=14)    plt.xlabel('月份', fontsize=12)    plt.ylabel('用户数量(万人)', fontsize=12)    plt.grid(True, alpha=0.3)    plt.savefig(save_path, dpi=300, bbox_inches='tight')    plt.close()    return save_path# 1.5 OA系统推送工具(适配结果交付流程)def push_to_oa(report_content: str, chart_path: str = None) -> bool:    """将报告和图表推送至企业OA系统"""    oa_api_url = os
    基本 文件 流程 错误 SQL 调试
    1. 请求信息 : 2026-07-11 07:01:31 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/632952.html
    2. 运行时间 : 0.231236s [ 吞吐率:4.32req/s ] 内存消耗:4,918.38kb 文件加载:145
    3. 缓存信息 : 0 reads,0 writes
    4. 会话信息 : SESSION_ID=c79d0f35703ba17f2c572d91d94f511f
    1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
    2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
    3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
    4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
    5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
    6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
    7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
    8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
    9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
    10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
    11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
    12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
    13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
    14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
    15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
    16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
    17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
    18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
    19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
    20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
    21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
    22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
    23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
    24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
    25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
    26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
    27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
    28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
    29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
    30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
    31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
    32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
    33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
    34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
    35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
    36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
    37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
    38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
    39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
    40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
    41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
    42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
    43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
    44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
    45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
    46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
    47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
    48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
    49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
    50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
    51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
    52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
    53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
    54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
    55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
    56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
    57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
    58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
    59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
    60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
    61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
    62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
    63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
    64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
    65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
    66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
    67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
    68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
    69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
    70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
    71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
    72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
    73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
    74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
    75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
    76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
    77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
    78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
    79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
    80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
    81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
    82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
    83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
    84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
    85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
    86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
    87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
    88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
    89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
    90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
    91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
    92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
    93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
    94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
    95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
    96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
    97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
    98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
    99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
    100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
    101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
    102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
    103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
    104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
    105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
    106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
    107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
    108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
    109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
    110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
    111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
    112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
    113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
    114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
    115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
    116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
    117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
    118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
    119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
    120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
    121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
    122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
    123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
    124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
    125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
    126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
    127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
    128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
    129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
    130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
    131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
    132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
    133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
    134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
    135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
    136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
    137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
    138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
    139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
    140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
    141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
    142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
    143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
    144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
    145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
    1. CONNECT:[ UseTime:0.001017s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
    2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001441s ]
    3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000631s ]
    4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000653s ]
    5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001274s ]
    6. SELECT * FROM `set` [ RunTime:0.000421s ]
    7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001217s ]
    8. SELECT * FROM `article` WHERE `id` = 632952 LIMIT 1 [ RunTime:0.008234s ]
    9. UPDATE `article` SET `lasttime` = 1783724491 WHERE `id` = 632952 [ RunTime:0.050248s ]
    10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000814s ]
    11. SELECT * FROM `article` WHERE `id` < 632952 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001021s ]
    12. SELECT * FROM `article` WHERE `id` > 632952 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.005932s ]
    13. SELECT * FROM `article` WHERE `id` < 632952 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003333s ]
    14. SELECT * FROM `article` WHERE `id` < 632952 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001376s ]
    15. SELECT * FROM `article` WHERE `id` < 632952 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002484s ]
    0.234895s