Multi-Agent架构实战全攻略(非常详细),从核心范式到LangGraph精通,收藏这一篇就够了!

Linux Swap 子系统:架构、内存管理与虚拟化 Swap Linux Swap机制通过将不活跃内存页移至磁盘或压缩内存,扩展系统有效内存容量,缓解内存压力。传统架构中,逻辑Swap槽与物理存储绑定,导致资源浪费,尤其在使用Zswap等压缩技术时。为此,Vswap与Xswap提出虚拟化方案:前者以XArray实现灵活映射,支持多后端迁移;后者采用稀疏映射,简化管理但容量固定。二者在架构设计、资源记账与动态扩展上各有权衡,反映了内核开发中对性能、可维护性与灵活性的深层考量。 阅读详情

开会前十分钟,你同事突然丢来一句:“我下周去北京,帮我把行程改一下——航班改签、旧酒店取消、换一家离新会议地点近的、再加个租车。”你脑子里已经开始自动列 checklist 了:先查余票,再看退改规则,再核对酒店取消政策,再对比新酒店位置和预算,还要确认租车取还车时间……而很多“传统对话式 AI”的尴尬就在这:它会聊天,但一遇到这种“多步骤 + 多工具 + 有风险操作”的组合任务,就容易把事情越办越乱。

这篇文章我想从“为什么单一智能体扛不住”讲到“怎么用 LangGraph 搭一个可中断、可委派的多智能体旅行系统”,最后给你一份可以直接跑的完整代码骨架(包含权限中断流程)。

一、当单一AI无法应对复杂旅行场景

1)痛点:复杂旅行规划不是“回答问题”,而是“执行流程”

想象这个场景:

用户:帮我改签航班,然后取消旧酒店,再订新酒店,最后租车。

这里面至少包含四类能力:

  • 搜索:查航班、查酒店、查租车(多为只读)
  • 策略:什么时候先改签、什么时候先取消(避免损失)
  • 规则:退改签/取消政策、时间冲突、预算约束
  • 执行:真正“改”“退”“订”(这类动作往往不可逆)

如果你用单一智能体硬扛,通常会变成这样:

  • 它必须同时掌握所有工具、所有规则、所有策略
  • 一会儿在算价格,一会儿又在做取消操作
  • 用户中途插一句“等等先别取消”,模型上下文更容易混乱

最终结果:要么不敢动(只给建议),要么动错(用户信任直接崩掉)。

2)解决方案:LangGraph 多智能体的核心设计

我更喜欢用一个类比:

  • 传统单体:像一个“全能客服”,什么都能聊,但高压场景容易手忙脚乱
  • LangGraph 多智能体:像“专业团队 + 智能调度中心”
  • 主智能体负责分派、兜底、把控全局
  • 子智能体各司其职:航班、酒店、租车、签证……

一句话概括这套系统的价值:

可中断的权限控制 + 可委派的专业分工

让系统既能自动化推进,又不会越权乱改。


二、架构核心:理解系统的“骨架”与“血液”

2.1 状态管理(State):全局记忆体

LangGraph 的关键不是“写几个 prompt”,而是你要认真设计 State:整个系统的记忆与控制面板。

一个典型的旅行系统状态可以这样定义(后面代码会给完整实现):

  • messages:对话历史
  • user_info:用户偏好、证件信息、常用城市等
  • agent_stack:对话状态栈(重点)
agent_stack:为什么它是“能委派、能返回”的关键

agent_stack 就像浏览器的历史栈:

  • 进入子智能体:push(记录“我从主助手进入航班助手”)
  • 子智能体完成:pop(返回上一级上下文)
  • 任何时候都能“回到主助手继续聊别的”

可视化一下栈变化(示意):

  • 初始:[main]
  • 主助手委派航班:[main, flights]
  • 航班助手又需要酒店信息:[main, flights, hotels]
  • 酒店完成返回:[main, flights]
  • 航班完成返回:[main]

这就是“多智能体协作但不丢上下文”的底层支撑。

2.2 工具分类机制:安全与敏感的“操作开关”

旅行系统里,工具大体分两类:

  • 安全工具(只读):可自动执行

    例如:search_flights、search_hotels

  • 敏感工具(修改/下单/取消):必须授权

    例如:cancel_hotel、update_ticket

设计意义很直白:

在“自动化效率”与“用户控制权”之间找到平衡。

你会发现,只要把敏感操作统一做成“可中断”,用户的信任感会明显提升:

系统不再是“擅自帮你取消”,而是“我准备这么做,你点头我再执行”。


三、智能体协作机制:系统如何“思考”与“流转”

3.1 主智能体:调度中心

主智能体的任务不是“专业处理一切”,而是:

  • 识别意图:航班?酒店?租车?签证?
  • 判断是否需要委派
  • 简单问题自己直接答(比如“改签一般有哪些费用”)
  • 遇到跨域任务时拆解顺序(例如先改签确认再取消酒店)

在代码层面,主智能体通常会有四类“委派工具”(本质是路由信号):

  • ToFlightAssistant
  • ToHotelAssistant
  • ToCarAssistant
  • ToVisaAssistant(扩展时加)

3.2 子智能体的专业化设计(以航班为例)

航班助手只需要关心航班相关工具:

  • 安全:search_flights(查余票、价格)
  • 敏感:update_ticket、cancel_ticket(触发授权)

专业化带来的好处很实际:

  • prompt 更短、更精准
  • 工具集更小,模型更不容易“拿错工具”
  • token 消耗更可控(尤其是多轮对话场景)

3.3 核心流转机制剖析

入口节点(Entry Node):智能体切换时的“上下文生成器”

你可以把 create_entry_node 理解为:

“当我把任务丢给子助手时,自动生成一段系统消息,交代背景和目标”。

它解决的问题是:主助手和子助手之间不需要靠“人肉复制粘贴上下文”,而是通过结构化状态自动串起来。

CompleteOrEscalate:子智能体的“完成/向上移交”协议

子智能体处理时会遇到两种情况:

  • 完成:需求满足,返回主助手
  • 移交:遇到策略冲突或超出权限(例如用户要求违反政策),需要回主助手统一协调

这相当于给多智能体协作定义了“收口协议”,系统不会在子助手里无限兜圈。


四、关键实现:如何构建“可中断”的权限流程

4.1 敏感工具的中断-授权流程

流程拆开看其实很清晰:

  1. 用户提出修改请求:“帮我取消酒店”
  2. 子智能体准备调用 cancel_hotel(敏感)
  3. LangGraph 触发 interrupt:暂停执行
  4. 系统把“待执行操作详情”展示给用户,请确认
  5. 用户确认:继续执行;用户拒绝:终止/返回

核心是:工具不是不能自动调用,而是调用前必须过“授权闸门”。

4.2 错误处理与回退

现实世界里工具会失败:

  • 酒店已过取消时间
  • 订单号不存在
  • 网络超时

好的体验应该是:

  • 给用户可理解的失败原因
  • agent_stack 不要乱(失败也要能回退到正确上下文)
  • 允许用户选择下一步(换方案/联系客服/只保留建议)

五、扩展性设计:如何添加新智能体(以签证为例)

扩展到“签证办理智能体”一般只需要增量:

  1. 定义新助手与工具(如 check_visa_requirements、prepare_visa_documents)
  2. 主助手新增一条委派路由 ToVisaAssistant
  3. 状态结构如需新增字段再加(多数情况下不需要)

这也是多智能体架构真正“能长期演进”的地方:

你不会因为加一个新模块,把整个系统 prompt 写崩。

六、完整代码示例(可运行骨架,包含中断授权)

下面这份代码是一个“可跑的最小系统骨架”:

  • 具备 State(messages/user_info/agent_stack)
  • 具备主助手 + 航班/酒店两个子助手
  • 具备敏感工具的 interrupt 授权流程
  • 用“伪工具实现”模拟真实 API(你接入自己的供应商接口即可)

依赖:langgraph、langchain-core、langchain-openai

环境变量:OPENAI_API_KEY

把下面保存为 multi_agent_travel.py:

from __future__ import annotations
import os
from dataclasses import dataclass
from typing import Any, Dict, List, Literal, Optional, TypedDict
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage, ToolMessage
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langgraph.graph import StateGraph, END
from langgraph.types import interrupt
# ----------------------------
# 1) State: 全局记忆体
# ----------------------------
class UserInfo(TypedDict, total=False):
name: str
loyalty_id: str
preferences: Dict[str, Any]
class TravelState(TypedDict):
messages: List[Any]
user_info: UserInfo
agent_stack: List[Literal["main", "flights", "hotels", "cars", "visa"]]
pending_action: Optional[Dict[str, Any]]  # 存放待授权的敏感操作
# ----------------------------
# 2) 工具:安全 vs 敏感
# ----------------------------
@tool
def search_flights(origin: str, destination: str, date: str) -> Dict[str, Any]:
"""安全工具:查询航班(只读)"""
# 真实场景接供应商 API;这里用模拟数据
return {
"origin": origin,
"destination": destination,
"date": date,
"options": [
{"flight_no": "MU123", "depart": "09:10", "arrive": "13:40", "price": 2100},
{"flight_no": "NH008", "depart": "12:00", "arrive": "16:30", "price": 2850},
],
}
@tool
def search_hotels(city: str, checkin: str, checkout: str) -> Dict[str, Any]:
"""安全工具:查询酒店(只读)"""
return {
"city": city,
"checkin": checkin,
"checkout": checkout,
"options": [
{"hotel": "Shinjuku Stay", "price_per_night": 980, "refundable": True},
{"hotel": "Ginza Business", "price_per_night": 1180, "refundable": False},
],
}
@tool
def cancel_hotel(order_id: str) -> Dict[str, Any]:
"""敏感工具:取消酒店(会修改订单)"""
# 真实场景:调用取消接口;这里模拟成功
return {"order_id": order_id, "status": "cancelled", "refund": 1200}
@tool
def update_ticket(ticket_id: str, new_flight_no: str) -> Dict[str, Any]:
"""敏感工具:改签机票(会修改订单)"""
return {"ticket_id": ticket_id, "new_flight_no": new_flight_no, "status": "rebooked"}
SAFE_TOOLS = [search_flights, search_hotels]
SENSITIVE_TOOLS = [cancel_hotel, update_ticket]
# ----------------------------
# 3) 委派信号(路由工具)
# ----------------------------
@tool
def ToFlightAssistant() -> str:
"""委派到航班助手"""
return "route:flights"
@tool
def ToHotelAssistant() -> str:
"""委派到酒店助手"""
return "route:hotels"
ROUTING_TOOLS = [ToFlightAssistant, ToHotelAssistant]
# ----------------------------
# 4) LLM
# ----------------------------
def make_llm() -> ChatOpenAI:
return ChatOpenAI(
model="gpt-4o-mini",
temperature=0.2,
)
# ----------------------------
# 5) Entry Node: 切换上下文
# ----------------------------
def create_entry_node(target: Literal["flights", "hotels"]) -> Any:
def _entry(state: TravelState) -> TravelState:
stack = state["agent_stack"]
stack.append(target)
background = (
"你是旅行系统里的专业助手。\n"
f"你现在负责:{target}。\n"
"你会收到主助手已有的对话上下文,请直接推进任务。\n"
"如果任务完成,返回 'CompleteOrEscalate' 工具并说明原因。\n"
"如果需要执行敏感操作(取消/改签),先触发授权流程,不要擅自执行。"
)
return {
**state,
"messages": state["messages"] + [SystemMessage(content=background)],
"agent_stack": stack,
}
return _entry
@tool
def CompleteOrEscalate(reason: str) -> str:
"""子助手完成或需要上移交时调用"""
return f"complete:{reason}"
# ----------------------------
# 6) 权限中断:敏感工具网关
# ----------------------------
def sensitive_tool_gateway(state: TravelState) -> TravelState:
"""
如果 pending_action 存在,则触发 interrupt 请求用户授权。
用户同意后继续执行;用户拒绝则清空并返回上级。
"""
pending = state.get("pending_action")
if not pending:
return state
# 触发中断,把将要执行的动作展示给用户
decision = interrupt(
{
"type": "approval_required",
"title": "需要确认敏感操作",
"action": pending,
"prompt": "请回复:确认 / 取消",
}
)
# decision 由外部 runner 注入(见 main 中的示例)
if isinstance(decision, dict) and decision.get("approved") is True:
tool_name = pending["tool"]
args = pending["args"]
# 执行真实敏感工具
if tool_name == "cancel_hotel":
result = cancel_hotel.invoke(args)
elif tool_name == "update_ticket":
result = update_ticket.invoke(args)
else:
result = {"error": f"unknown sensitive tool: {tool_name}"}
return {
**state,
"pending_action": None,
"messages": state["messages"] + [ToolMessage(content=str(result), tool_call_id=pending["tool_call_id"])],
}
# 用户拒绝:清空 pending_action,并回到主助手
stack = state["agent_stack"]
if len(stack) > 1:
stack.pop()
return {
**state,
"pending_action": None,
"agent_stack": stack,
"messages": state["messages"] + [AIMessage(content="好的,我不会执行该操作。我们回到主流程继续。")],
}
# ----------------------------
# 7) 各智能体:主/航班/酒店
# ----------------------------
def main_assistant(state: TravelState) -> TravelState:
llm = make_llm().bind_tools(ROUTING_TOOLS)
sys = SystemMessage(
content=(
"你是旅行规划系统的主助手(调度中心)。\n"
"职责:识别用户意图;必要时委派到子助手(航班/酒店);简单问题直接回答。\n"
"当用户提出需要取消/改签等修改动作时,引导到对应子助手处理,并强调需要用户确认。\n"
)
)
msgs = [sys] + state["messages"]
out = llm.invoke(msgs)
return {**state, "messages": state["messages"] + [out]}
def flight_assistant(state: TravelState) -> TravelState:
llm = make_llm().bind_tools([*SAFE_TOOLS, *SENSITIVE_TOOLS, CompleteOrEscalate])
sys = SystemMessage(
content=(
"你是航班助手。\n"
"你可以用 search_flights 查询;如果要改签(update_ticket)或退票等敏感操作,必须先走授权。\n"
"当你准备执行敏感工具时,不要直接调用工具;请在 state.pending_action 写入待执行信息,并让系统走授权网关。\n"
)
)
out = llm.invoke([sys] + state["messages"])
# 如果模型直接发起敏感 tool call:拦截并转 pending_action
if hasattr(out, "tool_calls") and out.tool_calls:
for tc in out.tool_calls:
name = tc["name"]
if name in {"update_ticket"}:
return {
**state,
"messages": state["messages"] + [out],
"pending_action": {
"tool": name,
"args": tc["args"],
"tool_call_id": tc["id"],
},
}
return {**state, "messages": state["messages"] + [out]}
def hotel_assistant(state: TravelState) -> TravelState:
llm = make_llm().bind_tools([*SAFE_TOOLS, *SENSITIVE_TOOLS, CompleteOrEscalate])
sys = SystemMessage(
content=(
"你是酒店助手。\n"
"你可以用 search_hotels 查询;如果要取消订单(cancel_hotel)等敏感操作,必须先走授权。\n"
"当你准备执行敏感工具时,不要直接调用工具;请在 state.pending_action 写入待执行信息,并让系统走授权网关。\n"
)
)
out = llm.invoke([sys] + state["messages"])
if hasattr(out, "tool_calls") and out.tool_calls:
for tc in out.tool_calls:
name = tc["name"]
if name in {"cancel_hotel"}:
return {
**state,
"messages": state["messages"] + [out],
"pending_action": {
"tool": name,
"args": tc["args"],
"tool_call_id": tc["id"],
},
}
return {**state, "messages": state["messages"] + [out]}
# ----------------------------
# 8) Graph:路由与返回
# ----------------------------
def route_from_main(state: TravelState) -> str:
last = state["messages"][-1]
if hasattr(last, "tool_calls") and last.tool_calls:
name = last.tool_calls[0]["name"]
if name == "ToFlightAssistant":
return "to_flights"
if name == "ToHotelAssistant":
return "to_hotels"
return "end_or_wait"
def route_after_child(state: TravelState) -> str:
# 如果有待授权敏感操作,先走网关
if state.get("pending_action"):
return "sensitive_gateway"
# 如果子助手显式 CompleteOrEscalate,则返回主助手
last = state["messages"][-1]
if hasattr(last, "tool_calls") and last.tool_calls:
for tc in last.tool_calls:
if tc["name"] == "CompleteOrEscalate":
# pop 子助手
stack = state["agent_stack"]
if len(stack) > 1:
stack.pop()
state["agent_stack"] = stack
return "back_to_main"
# 否则继续留在当前子助手
return "stay"
def build_graph():
g = StateGraph(TravelState)
g.add_node("main", main_assistant)
g.add_node("entry_flights", create_entry_node("flights"))
g.add_node("entry_hotels", create_entry_node("hotels"))
g.add_node("flights", flight_assistant)
g.add_node("hotels", hotel_assistant)
g.add_node("sensitive_gateway", sensitive_tool_gateway)
g.set_entry_point("main")
g.add_conditional_edges(
"main",
route_from_main,
{
"to_flights": "entry_flights",
"to_hotels": "entry_hotels",
"end_or_wait": END,
},
)
g.add_edge("entry_flights", "flights")
g.add_edge("entry_hotels", "hotels")
g.add_conditional_edges(
"flights",
route_after_child,
{"sensitive_gateway": "sensitive_gateway", "back_to_main": "main", "stay": "flights"},
)
g.add_conditional_edges(
"hotels",
route_after_child,
{"sensitive_gateway": "sensitive_gateway", "back_to_main": "main", "stay": "hotels"},
)
# 授权网关执行完:回到当前栈顶对应助手
def after_gateway_route(state: TravelState) -> str:
top = state["agent_stack"][-1]
return {"main": "main", "flights": "flights", "hotels": "hotels"}.get(top, "main")
g.add_conditional_edges(
"sensitive_gateway",
after_gateway_route,
{"main": "main", "flights": "flights", "hotels": "hotels"},
)
return g.compile()
# ----------------------------
# 9) 本地演示 Runner
# ----------------------------
def run_demo():
graph = build_graph()
state: TravelState = {
"messages": [],
"user_info": {"name": "Alex", "preferences": {"hotel_budget": 1200}},
"agent_stack": ["main"],
"pending_action": None,
}
print("输入 exit 退出。")
while True:
text = input("\n你:").strip()
if text.lower() == "exit":
break
state["messages"].append(HumanMessage(content=text))
# invoke 可能触发 interrupt;这里用 try/except 演示一个“简化版人工审批”
try:
state = graph.invoke(state)
except Exception as e:
# LangGraph 的 interrupt 在不同版本里表现略有差异;
# 这里用一个通用思路:检测到中断后,人工收集确认并继续。
# 如果你的版本提供更直接的中断捕获方式,可按官方文档替换。
print(f"\n[系统中断] {e}")
# 简化:读取 pending_action 来展示
pending = state.get("pending_action")
if pending:
print(f"待执行:{pending['tool']} args={pending['args']}")
decision = input("确认执行?(确认/取消):").strip()
approved = decision == "确认"
# 将 decision 以可被 interrupt 消费的形式写回(示例做法)
# 实战中建议用 checkpointer / stream API 处理更优雅
state["messages"].append(
HumanMessage(content=f"审批结果:{'同意' if approved else '拒绝'}")
)
# 这里直接调用网关节点
state = sensitive_tool_gateway({**state, "pending_action": pending})
state = graph.invoke(state)
# 打印最后一条 AI 输出
for m in state["messages"][-3:]:
if isinstance(m, AIMessage):
print(f"\n助手:{m.content}")
if __name__ == "__main__":
if not os.getenv("OPENAI_API_KEY"):
raise RuntimeError("请先设置环境变量 OPENAI_API_KEY")
run_demo()

运行方式:

pip install langgraph langchain-core langchain-openai
export OPENAI_API_KEY=你的key
python multi_agent_travel.py

你可以试试输入:

  • “帮我查一下长沙到北京,2026-01-10 的航班”
  • “把我的机票改签到 NH008”
  • “取消酒店订单 H10086”(会触发授权中断)

七、总结

多智能体系统听起来挺复杂,但本质就是"分工合作"这个古老智慧的数字化实现。LangGraph提供了很好的框架,让我们能够把这种协作逻辑优雅地表达出来。

这套“可中断、可委派”的多智能体旅行系统,核心优势很明确:

  • 专业化:每个子智能体只做一类事,提示词更准、工具更少、成本更可控
  • 权限控制:敏感操作统一中断授权,用户放心,系统也更安全
  • 模块化扩展:加一个“签证助手”就是加一组工具 + 一条路由,不用重写全局

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

西门子V90 PN伺服控制核心:FB284功能块详解与实战 在工业自动化中,伺服定位控制是运动控制的基础环节,其本质是PLC通过PROFINET协议与伺服驱动器实现高速、确定性数据交互。FB284作为西门子为V90 PN定制的标准化功能块,封装了GSD映射、状态机管理与周期性PDO同步机制,将底层寄存器操作抽象为高可靠调用接口。相比MOVE指令或MC_MoveAbsolute等通用方案,FB284显著降低时序错乱风险,提升多轴同步精度与故障响应能力。它广泛应用于包装、灌装、装配等中端产线,尤其适配S7-1200/1500平台下的快速部署与现场维护。本文聚焦V90 P 阅读详情

相关推荐

Frenet坐标系下动态街道场景的最优轨迹生成

本文详细解读了Lattice Planner

BigDavid123的博客 2392

告别“单体智能”:一文拆解Multi-Agent架构的核心范式与LangGraph实战

摘要 本文探讨了如何利用LangGraph构建多智能体旅行规划系统,解决传统单一AI在处理复杂旅行任务时的局限性。文章首先分析了多步骤旅行规划(如航班改签、酒店变更等)的痛点,指出单一AI难以兼顾工具调用、策略决策和权限控制。随后提出基于LangGraph的多智能体架构方案,通过专业化分工(主智能体调度+子智能体执行)和状态管理(agent_stack实现上下文追溯)实现高效协作。重点介绍了敏感操作的中断授权机制,确保用户对关键操作(如取消订单)的最终控制权,并提供了包含航班/酒店助手示例的完整代码框架。该

javatiange的博客 1191

玩转Zabbix智能告警:降噪、排班、认领、升级、IM协同

集成Zabbix告警到FlashDuty,获得告警降噪、智能排班、IM协同等能力

n9ecommunity的博客 1039

Multi-Agent全面爆发!一文详解多智能体核心架构及LangGraph框架

AI智能体正从单兵作战转向多智能体协同,通过专业化分工、标准化协作和持续进化构建复杂业务系统。文章以客户服务场景为例,展示了分层架构设计(前台接待/中台洞察/后台执行)和LangGraph编排框架的应用,说明如何实现意图分析、会话辅助、工单派发等功能的自动化闭环。多智能体系统的核心价值在于将复杂问题转化为可管理的协作流程,并通过状态管理、可视化编排和反馈机制确保系统稳定性和持续优化能力。

javatiange的博客 1170

蓝桥杯历年真题分类汇总(史上最全版本,一定不要错过)

天再高又怎样,踮起脚尖就更接近阳光。 满满的 题型总结​ 历年真题​ 视频讲解​ 比赛技巧 题型总结 2021 2020 2019 2018 2017 2016 2015 2014 2013 ...

m0_58367586的博客 11万+

避坑指南:PyCINRAD处理CINRAD雷达数据时遇到的5个典型报错及解决方案

本文针对使用PyCINRAD库处理CINRAD雷达基数据时常见的5个典型报错,提供了详细的解决方案。内容涵盖环境配置、数据读取、PPI可视化及性能优化等核心环节,重点解决了版本兼容性、数据异常处理和中文乱码等实际问题,帮助用户高效处理雷达基数据并生成准确的PPI图像。

cc789的博客 1068

AI客服不再“胡说八道”:我用多智能体+RAG+人工审核,实现了三重保险

本文介绍了一个基于多智能体和RAG技术的智能客服系统,主要用于处理旅行相关查询和电商服务。系统采用模块化架构,包含主助手和专业助手(航班、酒店、租车等),通过LangGraph实现状态管理。新增的安全功能包括越狱防护、相关性检查和人工审核流程(GoHumanLoop)。项目使用Qdrant向量数据库存储知识库,支持本地运行和Web界面交互。系统特点包括复杂问题拆解、敏感操作确认机制和对话状态维护,未来计划优化RAG工具和图架构。整体提升了AI客服的专业性、安全性和响应准确性。

edison4499的博客 865

Autodesk软件网络授权破解

Autodesk 全系列产品网络授权破解 此网络许可授权破解文件及方法适用Autodesk 绝大部分的产品, 安装网络许可证管理器Autodesk网络许可证管理器x64位官方下载地址( https://knowledge.autodesk.com/sites/default/files/file_downloads/nlm11.14.1.3_ipv4_ipv6_win64.msi ) Autod...

weixin_33919950的博客 8261

人工智能篇---RAG-LangChain-Agent

本文通过超级侦探团队&的比喻形象阐释了RAG、LangChain和Agent三者的关系与协作:RAG作为知识库管理员解决模型知识陈旧问题,LangChain作为调度中心串联工作流程,Agent则是自主决策的侦探。文章追溯了三者从2023年初至今的技术演进历程,揭示了从静态知识库到动态智能体的发展路径。在技术原理层面,详细剖析了RAG的检索增强机制、LangChain的组件化框架特性以及Agent的ReAct决策框架。

在你不想做的时候,正是应该做的时候。 1193

使用python中pypower进行电力潮流计算

使用python中pypower进行电力潮流计算

总裁余(余登武)博客 4862

046篇:数据统计:分组、求和、平均值、最大最小值

本文介绍了在RPA中实现数据分组统计的方法。通过字典+循环组合,可以完成按单字段或多字段的分组聚合操作,包括求和、计数、求平均值及最大/最小值等。文章详细讲解了分组统计的原理,并提供了单级分组、多级分组的具体实现步骤,最后通过销售数据按月分组的实战案例,演示了如何从原始数据到生成汇总报表的完整流程。这些方法可以灵活应用于各类数据统计分析场景。

weixin_59649563的博客 214

大模型Agent开发全攻略:架构拆解+生产级实战+90%开发者踩坑指南

用大模型写代码,它只能给你代码片段,没法自己调试、修复bug、跑通完整项目;让大模型做数据分析,它只能给你分析思路,没法自己连接数据库、取数清洗、生成可视化报表;让大模型做客户服务,它只能按预设话术回复,没法自主查订单、处理退款、跟进售后全流程。这些痛点的核心,就是普通大模型只有“大脑”,没有“手脚”,更没有自主规划和执行的能力——它能给你方案,但没法帮你把事情做完。而AI Agent,就是解决这个问题的终极答案,也是当下整个AI行业公认的「下一代AI应用的核心范式」。

命运舞者的博客 913

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

2026大模型智能体(Agent)面试全攻略

一、核心概念与架构篇 * Q1:请简述Agent的基本架构组成,并解释其与传统LLM Chain的区别。

m0_59163425的博客 695

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

高危工业场景人员定位系统设计:四类场景的架构选型与部署要点

本文由航飞光电一线工程团队整理,重点讨论高危工业场景下人员定位系统的架构选型思路。覆盖危化、矿山、港口、电力四类场景,拆解技术路线分工、融合引擎跨区切换实现,以及私有化/本地化部署中的工程难点,供架构师与技术负责人参考。

HF17513371855的博客 368

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

热管理系列之八:终局判断 - 浸没式冷却、混合架构与技术路线图

动力电池热管理三条路径的终局判断:液冷极致优化守住基盘,直冷在中高端渗透,浸没式冷却从概念到量产。附2026-2030技术路线图与关键产业信号分析。

weixin_54917114的博客 1169

【STM32】 ADC 完全指南:从模拟信号采样量化到五大架构原理

本文系统介绍ADC核心概念与五大主流架构。模拟信号具时间与幅值连续性,需经采样(满足奈奎斯特准则防混叠)、量化(引入±1/2LSB误差,SNR≈6.02N+1.76dB)、编码三步转为数字信号。重点解析Flash(并行高速但受限于比较器数量)、SAR(逐次逼近,低功耗适合MCU如STM32)、双积分(高精度抗工频,用于万用表)、流水线(高速吞吐)及Σ-Δ(高分辨率,靠过采样与噪声整形)五类架构原理、优缺点与应用场景。强调分辨率≠精度,选型本质是速度、精度、功耗与面积的权衡。

专注后端与底层技术,分享实战干货与学习笔记,梦想进入字节跳动,步履不停,热爱不止。 500

零信任架构实战:基于天远运营商三要素详版V即时版构建自动化线上授信身份核验网关

破解线上信贷身份核验痛点:从离散证件图片审查到运营商三要素详版数据穿透直连 在互联网消费金融、小额循环信用贷款以及各类纯线上数字化授信平台的业务演进过程中,移动端进件的身份真实性校验是构筑整体合规风控体系的第一道关键屏障。随着移动互联网的高度普及,个人信贷申请全面向移动端 App、微信小程序以及轻量级 Web 门户迁移,“秒级审批、免抵押、纯线上放款”成为了

2501_94041864的博客 161

AI高密度算力推动冷却架构升级,全球数据中心高功率CDU市场CAGR达23.0%

QYResearch调研显示,2025年全球数据中心高功率CDU市场规模大约为2.04亿美元,预计2032年将达到9.97亿美元,2026-2032期间年复合增长率(CAGR)为23.0%。未来几年,本行业具有很大不确定性,本文的2026-2032年的预测数据是基于过去几年的历史发展、行业专家观点、以及本文分析师观点,综合给出的预测。

QYR_11的博客 194

政务知识库AI架构选型:强合规约束下的架构决策与落地路径

政务知识库是典型的强合规导向场景,架构选型的第一原则是「合规一票否决」:安全优先级高于效果,可控性优先级高于体验,所有技术决策必须先通过等保、密评、信创、数据不出域四大硬性红线校验,再在此基础上优化检索准确率与用户体验。对应部署在互联网政务服务域、政务外网办公域、涉密内网核心域,三域物理隔离,数据仅能通过审批流程单向摆渡,禁止跨网调用模型与流转数据。• 放弃通用文档加载器,基于公文格式标准开发定制化结构化解析器,自动提取文号、标题、发文机关、成文日期、生效日期、密级、主题词等元数据,与分片内容绑定入库。

2401_89363342的博客 370

零信任架构实战:基于天远单人婚姻查询构建自动化智慧住房资格核验网关

破解公租房资格核查痛点:从传统纸质婚姻凭证抽检到权威民政数据穿透直连 在智慧城市公共租赁住房(公租房)、保障性租赁住房以及共有产权房等民生保障工程中,保障房资源的公平精准分配是住房保障管理中台的核心职责。按照现行住房保障准入政策,申请主体的家庭结构直接决定了配租资格准入与面积配给标准:单身家庭申请人通常享有特定的单人保障配额与独立的财产评估标准,要求申请人具

2501_94042197的博客 195

Qt网络编程实战指南:从底层Socket到现代异步架构的选型与避坑

本文梳理Qt网络编程的核心模块与演进路线,对比QTcpSocket与QNetworkAccessManager的使用边界,结合HTTP请求与TCP长连接的完整示例,说明信号槽、内存管理与事件循环的配合方式。重点记录连接池设计、证书校验、线程亲和性等实际开发中的关键决策点,帮助读者在C/S或跨平台项目中建立稳定的网络层基座。

2402_83344867的博客 293

“伪私有化”的技术甄别:模型API外调与本地推理的架构差异

企业采购AI Agent平台时,“支持私有化”几乎成了标配话术。但“私有化”三个字背后,可能藏着一条你看不见的出站链路:管理后台在你的内网,模型推理却调用了外部API。这不是私有化,是“伪私有化”。本文从网络层、进程层、数据层和审计层四个维度,拆解模型API外调与本地推理的架构差异,给出可落地的技术甄别方法,附代码示例、状态机设计和熔断机制。

2501_93684580的博客 108

斯坦福 AI Agent 开发课程指南:从底层架构、工程实践到自主智能体

Agent 开发正在从框架调用走向系统工程。早期学习 Agent,可能只需要掌握 Prompt Engineering、Function Calling,以及 LangChain 等框架。如何设计稳定的任务执行循环。如何管理上下文与长期记忆。如何组织工具、环境和多 Agent 协作。如何保证长时间任务执行的可靠性。如何科学评估 Agent 的效果。如何优化成本、延迟与资源利用。如何持续提升系统能力。因此,

hello! 240

RDIMM、LRDIMM、UDIMM深度对比:寄存器架构、容量上限与平台适配

UDIMM、RDIMM与LRDIMM虽外形相同,但电气架构差异决定其性能与容量上限。UDIMM无缓冲,延迟低但容量受限;RDIMM通过RCD缓冲命令/地址,提升容量;LRDIMM进一步用数据缓冲器(DB)全链路减负,实现超大容量。三者互不兼容,平台适配严格,选型必须“平台先行”,类型错误无法通过降频或混插弥补。核心逻辑:先确认平台支持类型,再优化容量与频率,类型正确才是性能发挥的前提。

JGTX2706的博客 268

蓝牙之通信架构

从应用、主机和控制器的分工入手,讲清 HCI、GAP、GATT、ATT、L2CAP 与安全协议如何配合,并通过一次温度读取理解蓝牙数据的完整传递过程。

2601_96393911的博客 214

Flux 架构:一个单向数据流库是怎么跑起来的

状态只有一份 + 数据单向流 + reducer 是纯函数 + 中间件链可组合 + 视图层声明式绑定。这 30 行就是这套思想的最小完整样本:两次useStore订阅、一次拿链式 dispatch、四个按钮对应四种 action(其中一种是 thunk 形态)。

sun_weitao的博客 113
上一篇: AI产品必懂的100个概念(非常详细),RAG、Agent全解析,收藏这一篇就够了!
下一篇: 大模型应用发展全景解析(非常详细),RAG、MCP、Agent从入门到精通,收藏这一篇就够了!
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值