LangChain智能体实战:从核心架构到Web应用部署
1. 项目概述从工具链到智能体上一部分我们搭建了基础的LangChain环境并实现了简单的RAG问答。但LangChain真正的魅力远不止于此它最核心的价值在于其“链”Chain和“代理”Agent的抽象能力。如果说RAG是给大模型装上了“记忆库”那么Agent就是为它赋予了“行动力”和“决策力”。这部分的实战我们将深入LangChain的智能体世界构建一个能自主调用工具、规划步骤、解决复杂任务的AI助手。想象一下你不再需要手动拼接多个API调用而是告诉AI“帮我查一下今天上海的天气然后根据天气推荐一个适合的户外活动最后用中文写一份简单的出行建议。” 一个设计良好的Agent就能理解这个多步骤任务自动调用天气查询工具、活动推荐逻辑并最终生成文本。这就是智能体开发要达成的目标。本教程将带你从零开始理解Agent的核心组件并动手构建一个具备联网搜索、代码执行、文件处理等能力的多功能智能体最终将其封装成一个可交互的Web应用。2. 智能体Agent核心架构深度解析在深入代码之前我们必须先厘清几个核心概念这决定了你构建的Agent是“玩具”还是“生产力工具”。2.1 智能体、工具与执行器的关系很多人容易混淆这些概念。你可以把智能体看作一个“大脑”它负责接收用户指令、进行思考规划和做出决策。工具Tools则是这个大脑可以调用的“手和脚”每一个工具都封装了一个特定的功能比如搜索网络、执行Python代码、查询数据库等。执行器Agent Executor则是协调大脑和手脚的“神经系统”或“流程控制器”它负责迭代运行将用户输入和当前状态交给大脑思考大脑决定下一步调用哪个工具或直接给出最终答案执行器则调用该工具将工具返回的结果连同历史记录再次交给大脑思考如此循环直到大脑认为任务完成。一个常见的误区是试图让一个Agent完成所有事情。更优雅的设计是遵循“单一职责原则”创建多个专注的Agent并通过更上层的元Agent或LangGraph来编排它们。例如一个数据分析Agent专门处理数据查询和图表生成一个文档处理Agent专门总结和提取PDF内容一个通用助手Agent负责回答日常问题并视情况调用前两者。2.2 关键组件选型与实战考量1. 语言模型LLM的选择Agent的核心是LLM它的推理能力直接决定了Agent的智能水平。对于开发我强烈建议从OpenAI的GPT-4系列开始特别是gpt-4-turbo或gpt-4o。它们在遵循指令、工具调用格式Function Calling和复杂推理上表现最为稳定。虽然成本较高但稳定的开发体验能让你更专注于逻辑而非调试模型本身的古怪行为。待核心流程跑通后可以尝试切换到Claude 3Haiku/Sonnet或开源的DeepSeek-V2、Qwen2.5等模型它们在某些场景下性价比更高。切勿在初期使用过于轻量的模型那会极大增加调试难度。注意使用OpenAI API时务必妥善保管你的API Key不要将其硬编码在客户端代码中。最佳实践是通过环境变量加载并在服务端进行调用。2. 工具Tools的设计哲学工具不是越多越好而是越“精准”越好。一个好的工具应该功能单一一个工具只做一件事并把它做好。例如search_web工具就只负责返回搜索摘要而不负责总结。描述清晰工具的description属性至关重要。Agent完全依靠这段描述来决定是否以及何时调用该工具。描述应明确说明工具的用途、输入格式和输出内容。例如“使用DuckDuckGo搜索互联网获取最新信息。输入应为搜索查询词。”就比“搜索工具”要好得多。返回结构化工具应尽可能返回结构化的数据如字典、列表而非冗长的自然语言。这有利于后续Agent或其他工具处理。例如天气查询工具应返回{“city”: “Shanghai”, “temp”: 22, “condition”: “Sunny”}而不是一段“上海今天晴气温22度...”的文本。3. 提示词Prompt的工程化LangChain提供了默认的Agent提示模板但对于复杂任务自定义提示词是必须的。你需要在提示词中明确Agent的角色例如“你是一个专业的数据分析助手擅长使用Python处理数据和绘制图表。”可用工具列表及其详细说明。输出格式的严格要求必须强调Agent需要输出一个包含action和action_input的JSON对象来调用工具或者输出Final Answer:来结束任务。任务分解的范例对于复杂任务在提示词中提供一两个多步思考的示例Few-shot Learning能显著提升Agent的规划能力。3. 构建多功能智能体从理论到代码接下来我们动手构建一个具备联网搜索、代码执行和文件读取能力的智能体。我们将使用gpt-4-turbo作为大脑并整合多个实用工具。3.1 环境准备与工具集成首先确保安装必要的库。除了langchain我们还需要一些工具库。pip install langchain-openai duckduckgo-search langchain-community python-dotenv然后在项目根目录创建.env文件存储你的OpenAI API Key。OPENAI_API_KEY你的密钥现在开始编写核心代码。我们创建一个新的Python文件advanced_agent.py。import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain.agents import AgentExecutor, create_openai_tools_agent from langchain.tools import Tool from langchain_community.tools import DuckDuckGoSearchRun from langchain_community.utilities import WikipediaAPIWrapper from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain.tools.render import render_text_description # 加载环境变量 load_dotenv() # 1. 初始化LLM # 使用gpt-4-turbo以获得更好的工具调用和推理能力 llm ChatOpenAI(modelgpt-4-turbo, temperature0, api_keyos.getenv(OPENAI_API_KEY)) # 2. 创建工具集 # 工具一联网搜索使用DuckDuckGo search DuckDuckGoSearchRun() search_tool Tool( nameWeb_Search, funcsearch.run, description使用DuckDuckGo搜索引擎在互联网上搜索最新信息。当问题涉及实时事件、新闻或未知领域知识时使用此工具。输入应为明确的搜索查询字符串。 ) # 工具二维基百科查询 wiki WikipediaAPIWrapper(top_k_results2, doc_content_chars_max1000) wiki_tool Tool( nameWikipedia, funcwiki.run, description查询维基百科获取关于人物、地点、历史事件、科学概念等的事实性摘要。输入应为具体的查询主题。 ) # 工具三Python代码执行谨慎使用 # 注意这是一个高风险工具仅用于演示。在生产环境中必须在严格的沙箱环境中执行。 from langchain_experimental.tools import PythonREPLTool python_repl_tool PythonREPLTool() python_repl_tool.description 执行Python代码并返回结果。用于数学计算、数据转换、字符串处理等。**警告**不要执行来自不可信来源的代码。输入应为一段有效的Python代码。 # 将工具放入列表 tools [search_tool, wiki_tool, python_repl_tool] # 3. 构建自定义提示词模板 # 这是提升Agent性能的关键步骤 prompt ChatPromptTemplate.from_messages([ (system, 你是一个功能强大的AI助手名为“智囊”。你可以通过调用工具来获取信息或执行任务。 你的核心能力包括网页搜索、查询维基百科、执行Python代码。 请严格按照以下规则行动 1. 首先理解用户的请求。 2. 如果需要实时信息或未知知识使用Web_Search工具。 3. 如果需要权威的事实性背景知识使用Wikipedia工具。 4. 如果需要计算、数据处理或文本分析使用Python_REPL工具。 5. 在最终回答前尽量综合所有工具获取的信息。 6. 你的最终输出必须是完整的、对人类友好的答案。 可用工具 {tools} 请严格按此格式响应 思考分析我需要做什么是否需要使用工具 行动json {{ action: 工具名称, action_input: 工具的输入参数 }}或者当你有最终答案时 最终答案你的答案文本历史对话记录 {chat_history}用户输入{input} ), MessagesPlaceholder(variable_namechat_history, optionalTrue), (human, {input}), MessagesPlaceholder(variable_nameagent_scratchpad), ])4. 创建Agent和Executor使用LangChain的新版create_openai_tools_agent它原生支持OpenAI的function callingagent create_openai_tools_agent(llm, tools, prompt) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue, handle_parsing_errorsTrue)print(多功能智能体初始化完成)### 3.2 运行与测试智能体 编写一个简单的测试函数来运行我们的Agent。 python def run_agent_query(query): 执行一次查询 print(f\n用户提问: {query}) print(- * 50) try: result agent_executor.invoke({input: query, chat_history: []}) print(f\n智能体回答: {result[output]}) except Exception as e: print(f执行出错: {e}) if __name__ __main__: # 测试1需要联网搜索的问题 run_agent_query(特斯拉最新的车型是什么有什么亮点) # 测试2需要事实性知识的问题 run_agent_query(爱因斯坦的相对论主要讲了什么) # 测试3需要计算的问题 run_agent_query(请计算3425乘以178等于多少) # 测试4复杂多步问题真正的挑战 run_agent_query(请搜索‘LangChain’的最新版本号然后用Python计算这个版本号假设是2.1.8的各个数字之和。)运行这个脚本你会看到verboseTrue模式下Agent详细的思考过程Chain of Thought它如何选择工具如何解析工具返回的结果并最终给出答案。例如对于最后一个复杂问题一个表现良好的Agent应该会思考需要最新版本号这需要实时信息调用Web_Search。行动搜索“LangChain latest version”。观察从搜索结果中提取出版本号比如“2.1.8”。思考现在需要计算数字之和这是一个计算任务调用Python_REPL。行动执行代码sum([int(d) for d in 2.1.8.split(.)])或类似逻辑。观察得到结果11。最终答案给出综合回答。这个过程完美诠释了智能体的“规划-执行-观察”循环。3.3 为智能体增加记忆能力上面的Agent是“无状态”的每次对话都是独立的。为了让Agent能进行多轮对话我们需要为其添加记忆。LangChain提供了多种记忆后端这里使用最简单的ConversationBufferMemory。from langchain.memory import ConversationBufferMemory # 创建带记忆的提示词模板 prompt_with_memory ChatPromptTemplate.from_messages([ (system, 你是智能助手智囊。你有工具和记忆。以下是对话历史。), MessagesPlaceholder(variable_namechat_history), (human, {input}), MessagesPlaceholder(variable_nameagent_scratchpad), ]) # 初始化记忆 memory ConversationBufferMemory(memory_keychat_history, return_messagesTrue) # 创建带记忆的Agent agent_with_memory create_openai_tools_agent(llm, tools, prompt_with_memory) agent_executor_with_memory AgentExecutor( agentagent_with_memory, toolstools, memorymemory, verboseTrue, handle_parsing_errorsTrue ) # 测试多轮对话 print(第一轮) result1 agent_executor_with_memory.invoke({input: 我的名字叫小明。}) print(fAgent: {result1[output]}) print(\n第二轮) result2 agent_executor_with_memory.invoke({input: 我刚才说我叫什么名字}) # Agent应该能记住 print(fAgent: {result2[output]})4. 高级主题RAG与Agent的融合Agentic RAG单纯的RAG是被动的问答而Agent是主动的规划者。将它们结合就能创造出更强大的“Agentic RAG”系统。其核心思想是让Agent来主导RAG的过程决定何时检索、检索什么、如何整合检索结果。一个典型的场景是复杂问答。用户问“对比一下LangChain和LlamaIndex在构建RAG系统方面的优缺点。” 传统RAG可能直接检索出两段分别介绍LangChain和LlamaIndex的文字然后拼接。而Agentic RAG可以这样做规划Agent分析问题认为需要分别获取LangChain和LlamaIndex在RAG方面的特点然后进行对比。执行-检索Agent可能发起两次检索查询“LangChain RAG 优点 缺点”、“LlamaIndex RAG 优点 缺点”或者更精细地拆解。观察与整合Agent收到多份检索结果后不是简单拼接而是主动提取关键点组织成对比表格或结构化摘要。最终回答生成一个清晰的对比报告。下面我们实现一个简单的Agentic RAG其中Agent负责生成优化的搜索查询。from langchain.agents import initialize_agent, AgentType from langchain.vectorstores import Chroma from langchain.embeddings import OpenAIEmbeddings from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.document_loaders import TextLoader # 假设我们已有一个关于AI框架的文档库 loader TextLoader(ai_frameworks.txt) # 你需要准备这个文件 documents loader.load() text_splitter RecursiveCharacterTextSplitter(chunk_size500, chunk_overlap50) docs text_splitter.split_documents(documents) # 创建向量库 embeddings OpenAIEmbeddings() vectorstore Chroma.from_documents(docs, embeddings) retriever vectorstore.as_retriever() # 创建一个自定义的RAG工具 from langchain.tools import BaseTool from typing import Type from pydantic import BaseModel, Field class RagQueryInput(BaseModel): query: str Field(description用于检索相关文档的查询语句) class CustomRagTool(BaseTool): name Knowledge_Base_Search description 从内部知识库中搜索与查询最相关的技术文档片段。用于回答关于AI框架、编程概念等特定领域知识。 args_schema: Type[BaseModel] RagQueryInput def _run(self, query: str) - str: 执行检索并返回相关文档内容 docs retriever.get_relevant_documents(query) content \n\n.join([doc.page_content for doc in docs[:3]]) # 返回前3个最相关片段 return f根据你的查询‘{query}’从知识库中找到以下相关信息\n{content} async def _arun(self, query: str) - str: raise NotImplementedError(此工具不支持异步) rag_tool CustomRagTool() # 创建一个专门用于技术问答的Agent它可以选择使用RAG工具或搜索工具 tech_tools [rag_tool, search_tool] # 结合内部知识库和外部搜索 tech_agent_prompt ChatPromptTemplate.from_messages([ (system, 你是一个技术专家助手。你拥有一个内部AI知识库和一个互联网搜索工具。 请遵循以下策略 1. 当问题涉及具体的AI框架如LangChain, LlamaIndex、库的API用法或已知技术概念时优先使用Knowledge_Base_Search工具从内部知识库查找精准信息。 2. 当问题涉及最新动态、版本发布、新闻或内部知识库没有的信息时使用Web_Search工具。 3. 综合分析所有获取的信息给出准确、全面的答案。 ), MessagesPlaceholder(variable_namechat_history), (human, {input}), MessagesPlaceholder(variable_nameagent_scratchpad), ]) tech_agent create_openai_tools_agent(llm, tech_tools, tech_agent_prompt) tech_agent_executor AgentExecutor(agenttech_agent, toolstech_tools, verboseTrue) # 测试 query LangChain的Chain和Agent有什么区别请结合知识库和最新信息回答。 result tech_agent_executor.invoke({input: query, chat_history: []}) print(result[output])这个Agent会先判断问题性质优先从本地向量库检索高质量文档如果不够再补充联网搜索从而提供更精准、信息量更丰富的答案。5. 使用FastAPI构建智能体Web服务一个命令行工具实用性有限。我们将使用FastAPI将智能体封装成RESTful API服务并提供一个简单的HTML前端进行交互。首先安装FastAPI和Uvicorn。pip install fastapi uvicorn创建app.py文件。from fastapi import FastAPI, HTTPException from fastapi.responses import HTMLResponse from pydantic import BaseModel from typing import List, Optional import json from advanced_agent import agent_executor_with_memory # 导入我们之前构建的带记忆Agent app FastAPI(title智囊AI助手API, description一个基于LangChain的多功能智能体服务) # 定义请求/响应模型 class ChatRequest(BaseModel): message: str session_id: Optional[str] None # 用于区分不同对话会话 class ChatResponse(BaseModel): reply: str session_id: str tool_calls: Optional[List[dict]] [] # 可选返回Agent调用的工具信息用于前端展示 # 简单的内存会话存储生产环境应使用Redis或数据库 sessions {} app.get(/, response_classHTMLResponse) async def read_root(): 提供一个简单的测试前端页面 html_content !DOCTYPE html html head title智囊AI助手/title style body { font-family: Arial; max-width: 800px; margin: 40px auto; } #chatbox { border: 1px solid #ccc; height: 400px; overflow-y: scroll; padding: 10px; margin-bottom: 10px; } .user { text-align: right; color: blue; } .bot { text-align: left; color: green; } input { width: 70%; padding: 10px; } button { padding: 10px 20px; } /style /head body h2 智囊AI助手 (LangChain Agent)/h2 div idchatbox/div input typetext idmessage placeholder输入你的问题... button onclicksendMessage()发送/button script const sessionId session_ Math.random().toString(36).substr(2, 9); function addMessage(sender, text) { const chatbox document.getElementById(chatbox); const msgDiv document.createElement(div); msgDiv.className sender; msgDiv.innerHTML strong${sender}:/strong ${text}; chatbox.appendChild(msgDiv); chatbox.scrollTop chatbox.scrollHeight; } async function sendMessage() { const input document.getElementById(message); const message input.value.trim(); if (!message) return; addMessage(你, message); input.value ; try { const response await fetch(/chat, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ message: message, session_id: sessionId }) }); const data await response.json(); addMessage(智囊, data.reply); if(data.tool_calls data.tool_calls.length 0) { addMessage(系统, 本次思考使用了工具: ${JSON.stringify(data.tool_calls)}); } } catch (error) { addMessage(系统, 请求出错: error); } } // 按Enter发送 document.getElementById(message).addEventListener(keypress, function(e) { if (e.key Enter) sendMessage(); }); /script /body /html return HTMLResponse(contenthtml_content) app.post(/chat, response_modelChatResponse) async def chat_with_agent(request: ChatRequest): 与智能体对话的主接口 try: # 这里为了简化我们直接使用全局的agent_executor_with_memory # 在实际生产中需要根据session_id管理不同的memory实例 result agent_executor_with_memory.invoke({input: request.message}) # 可以从result中提取工具调用历史用于前端展示verbose输出中的内容 tool_calls_history [] # 注意实际工具调用信息在result的中间步骤中这里做简化处理 if intermediate_steps in result: for step in result[intermediate_steps]: if len(step) 0: action, _ step tool_calls_history.append({tool: action.tool, input: action.tool_input}) return ChatResponse( replyresult[output], session_idrequest.session_id or default_session, tool_callstool_calls_history ) except Exception as e: raise HTTPException(status_code500, detailf智能体处理失败: {str(e)}) if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8000)运行这个应用python app.py然后在浏览器中打开http://localhost:8000你就可以看到一个简单的聊天界面可以与你的智能体进行多轮对话了。前端会展示对话内容如果Agent调用了工具也会在消息中显示出来。6. 生产环境部署与优化建议将原型投入生产需要考虑更多工程化问题。1. 性能与成本优化缓存对频繁且结果不变的查询如“爱因斯坦是谁”实施缓存。可以使用LangChain的LLMCache或外部缓存如Redis。限流与降级对API调用进行限流防止意外高频请求产生巨额费用。当主要LLM如GPT-4不可用时应有降级方案如切换到更便宜的gpt-3.5-turbo或本地模型。异步处理对于耗时的任务如处理长文档使用异步队列Celery Redis/RabbitMQ处理通过WebSocket或轮询向客户端返回结果。2. 可靠性提升错误处理与重试为LLM调用和工具调用添加完善的错误处理网络超时、API限额、无效响应和指数退避重试机制。验证与过滤对用户输入进行清理和验证防止Prompt注入攻击。对工具尤其是Python_REPL的输出进行过滤避免返回敏感信息或错误代码。日志与监控记录所有交互日志包括用户输入、Agent思考过程、工具调用、最终输出和延迟。这有助于调试和优化。3. 高级架构模式使用LangGraph对于需要复杂工作流、循环、分支的AgentLangChain的LangGraph库是更好的选择。它允许你以图Graph的形式定义Agent的工作流状态流转更清晰可控。多Agent系统如前所述设计多个专用Agent客服Agent、数据分析Agent、文档处理Agent并通过一个路由Agent或基于LangGraph的编排器来分发任务。RAG流水线优化对于Agentic RAG可以优化检索步骤例如引入重排序Re-ranking模型如Cohere的Rerank API或BGE Reranker对初步检索到的文档进行精排将最相关的文档排在前面提升后续生成质量。4. 安全与合规沙箱环境任何代码执行工具必须在完全隔离的沙箱如Docker容器、Firecracker微VM中运行并严格限制资源CPU、内存、网络、文件系统访问。内容审核对用户输入和Agent输出实施内容安全过滤防止生成有害、偏见或不合规的内容。数据隐私如果处理用户私有数据确保向量化、存储和传输过程加密并遵守相关数据保护法规。构建一个成熟可用的AI智能体系统是一个持续迭代的过程。从本文的入门实战出发理解其核心原理然后根据你的具体业务需求在可靠性、性能和成本之间找到最佳平衡点。记住最好的智能体不是功能最多的而是最理解用户需求、最稳定可靠的那一个。

相关新闻

高校计算机课程学习系统开发实践与优化

高校计算机课程学习系统开发实践与优化

1. 项目背景与核心价值这个计算机精品课程学习系统项目,本质上是一个面向高校计算机专业学生的移动端知识管理平台。我在实际开发中发现,当前计算机专业学生普遍面临三个痛点:一是优质课程资源分散在各大平台,缺乏统一入口&#x…

2026/8/12 13:35:37 阅读更多 →
Git核心概念与高效工作流实战指南:从原理到避坑

Git核心概念与高效工作流实战指南:从原理到避坑

1. 从“入土”到“重生”:为什么你需要一份不一样的Git命令指南 看到“从安装到入土”这个标题,你可能会心一笑。在程序员圈子里,这通常意味着一个教程试图覆盖从零基础到精通的全过程,但结果往往是开头详细,后面草草收…

2026/8/12 13:35:37 阅读更多 →
3步掌握Axure汉化:告别英文界面困扰,提升原型设计效率

3步掌握Axure汉化:告别英文界面困扰,提升原型设计效率

3步掌握Axure汉化:告别英文界面困扰,提升原型设计效率 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 你…

2026/8/12 13:35:37 阅读更多 →

最新新闻

Hadoop单节点集群搭建与性能优化实战

Hadoop单节点集群搭建与性能优化实战

1. Hadoop单节点集群搭建的核心价值第一次接触Hadoop的朋友往往会被官方文档里复杂的配置项吓退。我在2016年给某银行做数据平台迁移时,发现他们技术团队花了整整两周都没搞定一个能稳定运行的测试环境。这促使我总结出这套经过实战检验的单节点搭建方案——它不仅是…

2026/8/12 14:28:43 阅读更多 →
基于Agent架构的Elasticsearch智能运维:从自动化到智能协同

基于Agent架构的Elasticsearch智能运维:从自动化到智能协同

1. 项目概述:从“救火队员”到“智能协作者”的运维范式跃迁在数据驱动的今天,Elasticsearch 集群的稳定运行是许多业务的生命线。作为一名运维老兵,我经历过太多凌晨三点被监控告警叫醒,面对着一片飘红的集群状态图,凭…

2026/8/12 14:28:43 阅读更多 →
零代码AI开发FPS游戏:从概念到变现的全流程实践指南

零代码AI开发FPS游戏:从概念到变现的全流程实践指南

不写一行代码!0基础用AI开发FPS练枪定位游戏并接入广告变现全流程教学你是否曾梦想开发一款属于自己的游戏,却被复杂的编程语言和庞大的游戏引擎劝退?你是否羡慕那些独立游戏开发者,却苦于没有技术背景?今天&#xff0…

2026/8/12 14:28:43 阅读更多 →
2026国产语音芯片报价体系深度拆解:影响成本的核心维度、合规性判断标准及多行业选型避坑全指南

2026国产语音芯片报价体系深度拆解:影响成本的核心维度、合规性判断标准及多行业选型避坑全指南

随着国内智能硬件产业的升级,国产语音芯片的应用场景不断拓宽,从业者、开发者在选型时常会遇到不同主体提供的国产语音芯片报价差异显著的情况,多数人对报价的构成逻辑、合理性判断存在模糊认知。本文结合行业公开调研数据及实操经验&#xf…

2026/8/12 14:28:43 阅读更多 →
KMS智能激活终极指南:免费激活Windows和Office的完整教程

KMS智能激活终极指南:免费激活Windows和Office的完整教程

KMS智能激活终极指南:免费激活Windows和Office的完整教程 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 想要永久免费激活Windows和Office软件吗?KMS_VL_ALL_AIO智能激活…

2026/8/12 14:28:43 阅读更多 →
DM数据库单表查询:从基础语法到高级实战的全面指南

DM数据库单表查询:从基础语法到高级实战的全面指南

一、DM数据库单表查询基础:核心概念与语法结构 1.1 单表查询概述:理解数据检索的本质 在DM数据库中,单表查询是从一张数据表中检索所需数据的核心操作。无论是日常运维还是业务开发,DM数据库单表查询都是最基础且使用频率最高的SQ…

2026/8/12 14:27:43 阅读更多 →

日新闻

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

1. 为什么需要一个“目录树”工具?在Linux世界里,尤其是Ubuntu这样的发行版,命令行是很多人的主战场。我们每天都要和文件、目录打交道。ls命令是查看目录内容的首选,它简洁、高效,能列出文件名、权限、大小等关键信息…

2026/8/12 9:33:34 阅读更多 →
博思AI智能体:意图识别、思考链与性能优化的工程实践

博思AI智能体:意图识别、思考链与性能优化的工程实践

在AI应用从“能用”走向“好用”的进程中,系统的响应速度、决策透明度与高并发稳定性是决定用户体验的关键。博思AI智能体近期完成了一次重要的专项优化,聚焦于意图识别、思考链展示与全链路压测三大核心领域,将系统从功能实现推向了工程卓越…

2026/8/12 9:33:34 阅读更多 →
子代理架构:AI智能体任务分解与协同执行的核心原理与实践

子代理架构:AI智能体任务分解与协同执行的核心原理与实践

1. 项目概述:为什么我们需要“子代理”?最近在折腾各种AI应用和自动化流程时,我越来越频繁地遇到一个瓶颈:单个AI智能体(Agent)的能力边界。无论是处理复杂的多步骤任务,还是需要同时调用多个专…

2026/8/12 9:33:34 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/12 1:11:09 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →