AI Agent从无到有66: 基于 LangGraph 的提示词生成助手

LangGraph中的消息迷宫:解密Pregel模型在AI Agent工作流中的消息路由策略 本文深入探讨了LangGraph如何利用Pregel模型优化AI Agent工作流中的消息路由策略。通过分析Pregel的核心机制、通道类型与Combiner优化策略,展示了如何提升分布式AI系统的消息传递效率和资源利用率,适用于多轮对话、工具调用链等复杂场景。 阅读详情

纲要

  • LangGraph 核心概念
    • StateGraph 与 MessagesState
    • 节点 (Node) 与边 (Edge)
    • 条件路由 (Conditional Edges)
    • 检查点 (Checkpointer) 与持久化
  • 系统架构与工作流
    • 多节点协作模式
    • 状态路由与循环逻辑
  • 核心实现解析
    • 状态管理 (MessagesState)
    • 需求收集节点 (info_node)
    • 工具结果处理 (add_tool_message)
    • 提示词生成节点 (prompt_node)
    • 条件路由函数 (get_state)
  • 完整可运行项目
    • 项目结构
    • 环境配置与依赖
    • 主程序实现
  • API 速览

项目背景

编写高质量的提示词(Prompt)是充分发挥大模型能力的关键环节。然而,许多用户难以清晰、完整地表达自己的需求。借助 LangGraph 框架,可以构建一个提示词生成助手,通过多轮对话引导用户明确目标、变量、约束和要求,最终自动生成结构化的提示词模板。该流程模拟了“需求分析师”与“提示词工程师”的协作模式。

LangGraph 是一个用于构建状态化、多角色应用的低级编排框架,提供持久化执行、流式传输、人机交互和时光回溯调试等能力。其核心是 StateGraph,一种通过共享状态进行节点间通信的图结构。

系统架构

工作流由三个主要节点构成,通过条件路由实现智能跳转:

  • info_node:与用户对话,收集提示词的目标、变量、约束和要求。若信息不完整则继续追问;若收集完毕则触发工具调用。
  • add_tool_message:处理工具调用的结果,为生成节点准备上下文。
  • prompt_node:根据收集到的全部需求,调用大语言模型生成最终的提示词模板。

信息不完整

调用工具

用户退出

开始

info_node 收集需求

add_tool_message 处理工具结果

prompt_node 生成提示词

结束

核心实现

状态设计

工作流的状态直接使用 MessagesState。这是 LangGraph 预置的状态类,专门为对话历史与工具调用场景设计,其内部包含一个使用 add_messages 归约器(Reducer)的 messages 键,用于自动合并消息列表。

节点实现

info_node:需求收集节点
该节点向用户提问,收集提示词的目标、变量、约束和要求。使用 with_structured_output 方法将 LLM 的输出解析为 PromptRequirements Pydantic 模型,从而结构化地提取用户回复中的关键信息。当所有字段均被成功提取后,节点会构造一个包含 generate_prompt 工具调用的 AIMessage,以触发后续流程。

add_tool_message:工具结果处理节点
当 info_node 触发工具调用后,路由函数会将流程导向此节点。该节点模拟工具的成功执行,构造一个 ToolMessage 并注入消息流,为 prompt_node 准备上下文。

prompt_node:提示词生成节点
该节点从消息历史中提取 info_node 收集到的需求信息,将其填入提示词模板,调用 LLM 生成最终的提示词模板,并将结果以 AIMessage 的形式返回。

条件路由

get_state 函数根据最新消息的类型和内容决定路由:

  • 若 AI 消息包含工具调用,路由至 add_tool_message。
  • 若最新消息为 ToolMessage,路由至 prompt_node。
  • 若用户消息内容为退出指令(如 “q”),路由至 END。
  • 否则,继续在 info_node 循环。

完整可运行项目

项目结构

prompt_assistant_demo/
├── prompt_assistant.py
├── .env
└── requirements.txt

环境配置与依赖

依赖安装

pip install langgraph langchain-openai python-dotenv pydantic

环境变量 (.env)

OPENAI_API_KEY=sk-xxxx

主程序 (prompt_assistant.py)

import os
import uuid
from typing import Literal
from dotenv import load_dotenv
from langgraph.graph import StateGraph, END, MessagesState
from langgraph.checkpoint.memory import MemorySaver
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, AIMessage, ToolMessage
from langchain_core.prompts import ChatPromptTemplate
from pydantic import BaseModel, Field

load_dotenv()

# ----- 1. 定义结构化输出模型 -----
class PromptRequirements(BaseModel):
    goal: str = Field(description="提示词的目标")
    variables: str = Field(description="传入模板的变量,用逗号分隔")
    constraints: str = Field(description="输出的约束条件")
    requirements: str = Field(description="输出必须遵循的要求")

# ----- 2. 初始化 LLM -----
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
structured_llm = llm.with_structured_output(PromptRequirements)

# ----- 3. 提示词模板 -----
INFO_SYSTEM_PROMPT = """你是一个提示词需求收集助手。你的任务是与用户对话,收集他们想要创建的提示词的以下信息:
1. 目标:提示词要完成什么任务?
2. 变量:哪些变量会被传入模板?
3. 约束:输出不应该包含什么?
4. 要求:输出必须遵循什么规则?

如果你无法从用户的回答中辨别所有信息,请继续提问,直到信息完整。
当你认为信息已经完整时,调用 `generate_prompt` 工具来触发提示词生成。"""

PROMPT_GENERATION_TEMPLATE = """根据以下需求,编写一个高质量的提示词模板:
目标:{goal}
变量:{variables}
约束:{constraints}
要求:{requirements}

请生成一个完整的提示词模板,用花括号包裹变量名。"""

# ----- 4. 节点函数 -----
def info_node(state: MessagesState) -> dict:
    """收集用户需求,如果信息完整则调用工具"""
    messages = state["messages"]
    # 将系统提示作为第一条消息
    full_messages = [HumanMessage(content=INFO_SYSTEM_PROMPT)] + messages
    response = structured_llm.invoke(full_messages)

    # 判断是否所有字段都已填写
    if response.goal and response.variables and response.constraints and response.requirements:
        # 信息完整,构造一个工具调用消息
        tool_call_msg = AIMessage(
            content="信息已收集完整,正在生成提示词...",
            tool_calls=[{
                "name": "generate_prompt",
                "args": {
                    "goal": response.goal,
                    "variables": response.variables,
                    "constraints": response.constraints,
                    "requirements": response.requirements
                },
                "id": "call_prompt_gen"
            }]
        )
        return {"messages": [tool_call_msg]}
    else:
        # 信息不完整,生成追问
        follow_up = f"请提供更多信息。目标:{response.goal or '未知'},变量:{response.variables or '未知'},约束:{response.constraints or '未知'},要求:{response.requirements or '未知'}"
        return {"messages": [AIMessage(content=follow_up)]}

def add_tool_message(state: MessagesState) -> dict:
    """模拟工具执行,返回成功消息"""
    return {"messages": [ToolMessage(content="工具调用成功,正在生成提示词模板...", tool_call_id="call_prompt_gen")]}

def prompt_node(state: MessagesState) -> dict:
    """根据需求生成最终提示词模板"""
    # 从消息历史中提取需求
    requirements = None
    for msg in state["messages"]:
        if isinstance(msg, AIMessage) and hasattr(msg, "tool_calls") and msg.tool_calls:
            requirements = msg.tool_calls[0]["args"]
            break
    if not requirements:
        return {"messages": [AIMessage(content="未能提取到需求信息。")]}

    prompt = ChatPromptTemplate.from_template(PROMPT_GENERATION_TEMPLATE)
    chain = prompt | llm
    result = chain.invoke(requirements)
    return {"messages": [result]}

def get_state(state: MessagesState) -> Literal["add_tool", "prompt", "end", "info"]:
    """根据最新消息决定路由"""
    if not state["messages"]:
        return "end"
    last_msg = state["messages"][-1]
    # 如果 AI 消息包含工具调用
    if isinstance(last_msg, AIMessage) and hasattr(last_msg, "tool_calls") and last_msg.tool_calls:
        return "add_tool"
    # 如果工具执行完毕
    if isinstance(last_msg, ToolMessage):
        return "prompt"
    # 如果用户的最新消息是 "q" 或 "退出"
    if isinstance(last_msg, HumanMessage) and last_msg.content.lower() in ["q", "quit", "退出"]:
        return "end"
    # 否则继续收集信息
    return "info"

# ----- 5. 构建图 -----
builder = StateGraph(MessagesState)
builder.add_node("info", info_node)
builder.add_node("add_tool", add_tool_message)
builder.add_node("prompt", prompt_node)

builder.set_entry_point("info")
builder.add_conditional_edges("info", get_state, {
    "add_tool": "add_tool",
    "prompt": "prompt",
    "end": END,
    "info": "info"
})
builder.add_edge("add_tool", "prompt")
builder.add_edge("prompt", END)

memory = MemorySaver()
app = builder.compile(checkpointer=memory)

# ----- 6. 交互式测试 -----
if __name__ == "__main__":
    config = {"configurable": {"thread_id": str(uuid.uuid4())}}
    print("===== 提示词生成助手 =====")
    print("请描述你的需求,输入 'q' 退出。")

    # 模拟多轮对话
    test_inputs = [
        "我想生成一个写诗的提示词",
        "目标是写一首绝句,变量是标题和写作风格",
        "约束条件是不超过20个字",
        "要求是必须用绝句的格式,四句"
    ]

    for user_input in test_inputs:
        print(f"\n用户: {user_input}")
        result = app.invoke(
            {"messages": [HumanMessage(content=user_input)]},
            config
        )
        # 打印最新回复
        latest_msg = result["messages"][-1]
        if hasattr(latest_msg, "content"):
            print(f"助手: {latest_msg.content}")

        # 如果已生成最终提示词,退出循环
        if "模板" in str(latest_msg.content) or "提示词" in str(latest_msg.content) and len(result["messages"]) > 3:
            break

API 速览

API所属模块说明
StateGraphlanggraph.graph图构建器,用于定义具有共享状态的图。节点签名为 State -> Partial<State>。
MessagesStatelanggraph.graph预置的状态类,包含一个使用 add_messages 归约器的 messages 键,用于管理对话历史。
add_messageslanggraph.graph归约器函数,用于合并消息列表。默认追加新消息,若消息 ID 相同则更新。
MemorySaverlanggraph.checkpoint.memory内存检查点保存器,用于在开发与测试阶段持久化图状态。
START / ENDlanggraph.graph图的入口与出口常量。
add_nodeStateGraph向图中添加节点。
add_edgeStateGraph添加普通边,定义确定性的节点流转。
add_conditional_edgesStateGraph添加条件边,根据状态动态路由。
compileStateGraph编译图构建器为可执行图,支持 invoke、stream 等方法。

参考文档

官方文档

参考链接

总结

本文完整呈现了基于 LangGraph 构建提示词生成助手的技术路径,覆盖了从状态设计、节点实现到条件路由与图编译的全过程。核心要点如下:

  • 状态管理:利用 MessagesState 预置状态类简化对话历史管理。
  • 结构化输出:通过 with_structured_output 将 LLM 输出解析为 Pydantic 模型,实现需求信息的精准提取。
  • 工具调用模拟:通过在 AIMessage 中构造 tool_calls 字段,触发条件路由,模拟工具调用流程。
  • 条件路由:使用 add_conditional_edges 根据消息类型动态决定工作流走向,实现智能跳转。
  • 持久化:通过 MemorySaver 检查点机制为图添加短期记忆,支持多轮对话。

这种“信息收集 → 工具调用 → 内容生成”的模式具有高度的可扩展性,可广泛应用于表单填写、问卷调研、需求分析等场景。通过调整节点逻辑与路由规则,开发者可以轻松定制各类智能助手。

LangChain 1.3 核心架构与智能Agent实战:从零构建数据分析助手 大语言模型(LLM)作为当前AI应用的核心,其强大的理解和生成能力为构建智能系统提供了基础。然而,LLM本身是“静态”的,缺乏与外部世界(如数据库、API、工具)交互和执行多步骤任务的能力。为了解决这一挑战,AI应用框架应运而生,其核心原理在于“编排”——通过一套标准化的接口和流程,将LLM、工具、记忆和业务逻辑高效组合,形成能够自主决策和执行的智能体(Agent)。这种技术架构的价值在于,它将大模型的通用认知能力与特定领域的工具和数据相结合,从而在数据分析、自动化办公、智能客服等复杂应用场景中创造实际业务 阅读详情

相关推荐

langgraph开发Deep Research智能体-项目搭建

大家都说2025年是AI Agent元年,自然agent智能体开发也非常热门。很多公司的所谓的智能体其实是通过扣子、dify这种平台配出来的。就像是通过低代码平台配置出来的web页面一样,虽然能用,但是如果你的需求很复杂,往往平台就无法满足你的需求。作为程序员所以我们还是得需要自己动手来实现智能体,这篇文章我们来讲讲如何使用langgraph搭建一个node.js项目来实现一个Deep Research智能体。加入欧阳的AI交流群。

jike007gt的博客 1093

LangGraph:构建状态化AI Agent工作流的核心引擎

AI Agent 工作流本质上是具备记忆、决策与容错能力的动态执行过程,其核心挑战在于突破传统线性调用范式,实现循环、条件分支、重试和共享状态等工程需求。LangGraph 以有向图(Directed Graph)为抽象模型,将节点(Node)作为原子执行单元,边(Edge)承载路由逻辑,State 实现跨节点共享状态,从而支撑真正可落地的 stateful orchestration。它并非替代 LangChain,而是为其提供生产级调度能力,广泛应用于金融分析、智能客服、自动化研报等需要多步推理与自主纠

weixin_34378969的博客 333

LangChain、RAG与Agent实战:从零构建企业级AI应用

大模型应用开发的核心在于如何将通用模型能力与特定业务需求有效结合。这涉及到模型调用、知识检索和工具执行三大基础技术环节。检索增强生成(RAG)技术通过向量化检索外部知识,解决了大模型知识实时性与准确性的问题,是构建知识密集型应用的关键。智能体(Agent)技术则赋予了大模型自主决策和调用工具的能力,使其能够执行复杂任务序列。LangChain作为一个开源框架,提供了标准化的组件和接口,将模型、数据源和工具高效串联,降低了应用开发门槛。本文以企业级问答助手为例,详细拆解了如何利用RAG和Agent技术,结合L

weixin_34054931的博客 466

基于LangChain与LangGraph构建具备长期记忆的AI Agent实战指南

AI Agent作为大模型应用的核心架构,通过赋予模型自主规划、工具调用与状态管理能力,解决了传统Prompt工程在复杂任务中的局限性。其工作原理基于“思考-行动-观察”的循环机制,使模型能够分解多步骤任务并协调外部资源。这一技术价值在于将大语言模型从单纯的对话接口升级为可执行复杂工作流的智能系统,显著提升了自动化任务的可靠性与扩展性。在实际应用场景中,AI Agent广泛用于自动化办公、数据分析、智能客服等领域,通过框架化的工具集成与状态持久化,实现稳定可复用的业务逻辑。本文以LangChain和Lang

weixin_30642869的博客 677

基于LangChain构建安全可控AI Agent:Guardrail与HITL实战指南

在AI应用开发中,大语言模型(LLM)的集成与部署面临核心挑战:如何确保AI输出的安全性、可靠性与合规性。其原理在于通过构建多层防护机制,在模型推理与执行的关键节点施加约束。这一技术价值在于将AI从单纯的对话工具升级为可嵌入业务流程的可靠智能体,有效防止生成有害内容、执行未授权操作或泄露敏感信息。应用场景广泛覆盖智能客服、数据分析工具、自动化流程等需要AI自主决策的领域。本文聚焦于利用LangChain框架,通过实现Guardrail(护栏)机制进行输入过滤与输出审查,并集成Human-in-the-Loo

weixin_34008784的博客 426

LangGraph:基于图与状态机构建企业级AI应用开发框架

在AI应用开发中,状态管理和流程编排是构建复杂智能系统的核心挑战。传统方法往往难以处理多轮对话、工具调用序列和条件分支等场景。LangGraph通过引入有向图(Graph)和节点(Node)的抽象,将AI工作流建模为可编程的状态机,使开发者能够以工程化的方式定义智能体的行为逻辑。这一技术方案显著降低了开发门槛,尤其适合需要集成大语言模型(LLM)与外部工具(Tools)的企业级应用,如客服对话机器人、自动化流程(RPA)和多智能体协作系统。通过清晰的状态(State)流转和条件边(Conditional E

weixin_34238633的博客 378

【图书介绍】《AI Agent智能体与MCP开发实践:基于Qwen3大模型》

随着人工智能技术的蓬勃发展,大语言模型与智能体技术正引领着新一轮的技术革新。本书聚焦于智能体技术前沿领域,系统阐述AI Agent智能体开发的技术栈及其示例,并剖析5个大型智能体项目案例,帮助读者深入掌握智能体开发方法。本书配套示例源码、PPT课件、配图PDF文件、读者微信技术交流群,所有代码经过测试,均能正确运行。

夏天又到了的专栏 1319

AI大模型:(三)3.8 LangGraph实现Agent

LangGraph是专注于智能体编排的底层框架,相比LangChain更适用于复杂、有状态的工作流。其核心由状态、节点和边构成,支持条件分支与循环。具备持久化检查点、失败容忍、流式处理及长短记忆管理等特性,支持子图模块化开发。它既能构建预定义路径的工作流,也能打造动态决策的智能体,适用于不可预测场景。通过构建客服邮件代理等案例,展示了其在分类、搜索、生成及人工审核中的灵活应用。LangGraph为需要长期运行、状态管理及高可靠性的复杂智能体提供了强大的编排能力,是实现故障恢复与人机协同的理想选择。

haylee的专栏 323

11.16 LangGraph百万级并发实战:大厂都在用的Agent线程管理与生产配置秘籍

摘要:本文探讨了LangGraph框架在高并发Agent开发中的工程实践,重点解析了线程管理、配置体系和状态持久化三大核心机制。LangGraph通过线程隔离实现多用户会话处理,采用三层配置体系(全局/线程/调用级)支持动态调参,并利用checkpointer机制实现对话状态持久化。文章包含SQLite存储实现、生产环境配置策略及差旅Agent案例,展示了如何构建支持百万级并发的生产级AI系统。这些方案已在GitHub Sentinel等项目中验证,为开发者提供了成熟的架构参考。

yonggeit的博客 4531

Obsidian + AI 自动知识管理:手把手教程

装完后,在命令面板(Ctrl+P)搜 "Generate Summary",AI 会在当前笔记末尾追加一段摘要。你一个月前写的、现在想快速回顾的笔记长篇笔记(三千字以上)开会记录这类信息密集的内容过度自动化。有人装上插件后,所有笔记都让 AI 打标签、写摘要、找关联。最后笔记库看起来整整齐齐,但全都是 AI 的链接,你自己完全没参与。这样做的后果是什么?你写过的笔记跟你没有"真实连接"。你还是记不住。你还是不知道自己的知识库里有什么。AI 推荐,你决策。

weixin_43571227的博客 748

RabbitMQ的使用(JAVA)

Java快速上手的MQ上线!

.............. 1万+

王晓华智能体开发入门书《AI Agent智能体与MCP开发实践:基于Qwen3大模型》全文试读~

《AI Agent智能体与MCP开发实践:基于Qwen3大模型》读者学习心得与案例重现-优快云博客内容简介、前言 【新书预告】《AI Agent智能体与MCP开发实践:基于Qwen3大模型》_ai agent智能体与mcp开发实践 基于qwen3大模型 电子书、-优快云博客 目录 《AI Agent智能体与MCP开发实践:基于Qwen3大模型》目录_ai agent智能体与mcp开发实践电子书-优快云博客 从大模型到自主智能体的能力跃迁_ai agent qwen3王晓华-优快云博客大模型工

夏天又到了的专栏 514

Unity动画状态机实战:Trigger和Bool参数到底怎么选?附5个常见场景解析

本文深入解析Unity动画状态机中Trigger和Bool参数的核心差异与应用场景。通过对比两者在描述瞬时事件与持续状态上的本质区别,并结合角色移动、攻击连招、跳跃落地、受击死亡及环境交互等5个实战场景,提供了清晰的选择逻辑与避坑指南,帮助开发者构建更健壮、易维护的动画逻辑。

weixin_29009501的博客 120

【LangGraph v1.0-01】LangGraph v1.0 全景解读:持久化 Agent 工作流引擎

摘要:LangGraph v1.0 作为首个生产级持久化 Agent 框架正式发布,提供三大核心能力: Durable State:自动状态持久化与故障恢复,支持同步/异步/退出三种持久化模式 Human-in-the-Loop:任意节点中断与人工介入控制,实现审批流程与状态修改 Pregel 图执行:基于 Google Pregel 的超步并行计算模型,优化复杂工作流执行效率 该版本与 LangChain 1.0 协同,已在 Uber、LinkedIn 等企业落地,实现零破坏性升级与生产级稳定性承诺。

模界 | AI工程化实践者 1849

告别复杂配置!5分钟在Vue/React项目中集成讯飞语音听写WebSocket API

本文详细介绍了如何在Vue/React项目中快速集成讯飞语音听写WebSocket API,实现高效语音识别功能。通过对比不同通信方案,突出WebSocket在实时语音交互中的优势,并提供框架适配、音频处理及性能优化等关键技术点,帮助开发者5分钟内完成专业级语音听写功能集成。

weixin_28730353的博客 274

uniapp:实现APP获取陀螺仪数据、加速传感器、线性加速传感器,uniApp实时监听陀螺仪【XYZ】数据及停止监听与资源释放等功能示例源码,根据需求做功能(完美兼容Android安卓、苹果ios)

uniapp陀螺仪,uniapp加速传感器,uniapp线性加速传感器,APP陀螺仪数据,uniapp app 端获取陀螺仪数据示例代码,手机中获取陀螺仪的数据,uniApp实时获取陀螺仪xyz数据,android陀螺仪方向,获得陀螺仪传感器,处理传感器数据,停止监听与资源释放,Android使用陀螺仪,uniapp苹果ios陀螺仪,uni-app设备之(加速计,罗盘,陀螺仪)插件安卓/IOS APP提供了获取陀螺仪数据的能力,手机陀螺仪传感器获得手机自身旋转的角度,陀螺仪获取旋转角度,陀螺仪、加速度传感器

✅ 精选推荐文章 4268

【新书预告】《多模态AI Agent开发实践》

邓立国,东北大学计算机应用博士,广东工业大学副教授。主要研究方向为数据挖掘、知识工程、大数据处理、云计算、分布式计算。以第一作者发表学术论文30多篇(26篇EI),主编科研著作5部,主持科研课题10项,多次获得省校级科研优秀奖。著有《LangGraph开发AI Agent实践》《AI Agent智能体开发实践》《Python大数据分析师的算法手册》《Python数据分析与挖掘实战》《Python大数据分析算法与实例》《数据库原理与应用(SQL Server 2016版本)》。

夏天又到了的专栏 628

pandas教程:2012 Federal Election Commission Database 2012联邦选举委员会数据库

里面包含了支持者的名字,职业和雇主,地址,赞助金额。我们可以已经能想到如何切割、整理数据,来提取赞助者的统计数据,或提取宣传活动的模式,这里我们展示一些不同的分析方法。可以看到有些职业是同一种工作类型,指代的是同一个东西。这两个连续操作是分别独立执行的,一个结束后,另一个才开始。上,这里我是把数据集压缩成了ZIP格式,解压后能正常导入)。我觉得也有必要好好了解一下,这个网站做了很好的讲解,),所以我们最好添加这样的信息。这样的情况,即把两个索引操作连在一起。,发现映射关系被正常执行了,所以这里的。

Cachel Wood的博客 349

AI学习-langgraph-2

是专门面向工具调用的运行时对象。工具函数中存在名为 runtime并且类型标注为 ToolRuntime的参数时底层运行时会在调用工具前自动注入 ToolRuntime实例。根据源码实现,某些不规范的写法也能注入运行时实例,但并不规范,不推荐。需要注意,ToolRuntime与图节点中使用的 langgraph.runtime.Runtime并不是同一个类型。前者额外提供了当前图状态、运行配置和工具调用 ID 等工具调用专属信息。当前版本,ToolRuntime@dataclass。

qq_62408075的博客 326

4、LTE无人机认证:保障通信安全的新方案

本文针对LTE网络中无人机通信存在的安全风险,提出了一种基于可信第三方GCS的新型认证协议。该协议通过非对称加密和哈希函数保护IMSI等敏感信息,防止身份泄露、中间人攻击、拒绝服务攻击和位置追踪等威胁。利用Scyther工具对协议进行形式化分析,验证了其在机密性、一致性和活性等方面的安全属性,证明该方案能有效提升无人机在LTE网络中的通信安全性与隐私保护能力。

pink的博客 61

点云去噪:基于点云拟合的方法

点云处理是计算机视觉中的重要任务之一,而点云去噪是点云处理的关键步骤之一。在实际应用中,由于采集设备的噪声、运动估计误差或者环境干扰等因素,点云数据中常常包含有噪声点,这些噪声点会对后续的点云分析和处理造成不良影响。一种简单的方法是计算点到拟合曲面的距离,并将距离超过某个阈值的点定义为噪声点,进行过滤。一种简单的方法是计算点到拟合曲面的距离,并将距离超过某个阈值的点定义为噪声点,进行过滤。该方法通过拟合点云数据的曲面模型,对噪声点进行识别和过滤,从而得到更加干净的点云数据。

AuSwift的博客 638

FastAPI LangGraph Agent Template API文档与接口测试全攻略

FastAPI LangGraph Agent Template是一个面向生产环境的AI代理应用开发框架,集成了FastAPI和LangGraph,为构建可扩展、安全且可维护的AI代理服务提供了坚实基础。本文将全面解析其API接口设计与测试方法,帮助开发者快速上手并高效使用这一强大工具。 ## 🌟 API接口概览:核心功能一网打尽 该模板的API接口采用模块化设计,主要分为认证授权与聊天交互

gitblog_01097的博客 1069

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

自定义工具开发(LangGraph框架)

当现有工具(如REST API工具、SQL工具)无法满足需求(如本地文件处理、自定义算法、第三方SDK调用)时,需开发自定义工具。LangGraph支持通过LangChain Tool基类或@tool装饰器快速开发自定义工具,核心是明确工具的输入输出、功能描述,确保LLM能正确调用。明确工具功能描述,让LLM知道何时调用。定义清晰的输入参数,以支持基础类型、列表、字典,需指定默认值和类型提示。处理异常,如参数错误、执行失败,返回友好提示。

夏天又到了的专栏 221

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LangGraph 判断节点实战:用条件路由打造智能天气查询 Agent

判断节点以消息状态为输入,调用大模型生成决策指令,对输出内容做轻量化清洗,保证指令纯净可解析,为路由环节筑牢基础。LangGraph 的判断节点,本质是将复杂分支逻辑图式化,以节点 + 条件边的方式,替代繁琐的条件嵌套代码。意图精准识别与流程动态调度工具调用与直接回答的自由切换可视化工作流与低耦合架构设计该模式可直接迁移至知识库问答、函数调用、多步骤任务编排等场景,是构建可靠、灵活 AI Agent 的核心方案。代码实现:123456789101112131415。

pDaV8KL0n的博客 208

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: AI Agent从无到有65: 使用 LangGraph 构建代码分析与生成助手
下一篇: AI Agent从无到有67: 多智能体实战——构建基于LangGraph的数字人客服助手
Wang's Blog
博客等级 码龄12年 7423粉丝 2412原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值