用LangGraph从零搭Agent
📅 2026/7/7 7:50:00
👁️ 次浏览
背景从 LangChain 切换到 LangGraph是因为目标是开发复杂多步、图状循环、生产级长任务的Agent。虽然目前的log analysis agent还不是可以做更深度循环的Agent但是之后如果开发类似的Agent就有了相关的经验。为什么不选deep agent因为deep agent体量太大了有很多额外的配置本地运行超级慢对于目前的需求来说并不是最优选。思路介绍按照设想要开发一个可以完成图状循环的首先需要完成节点的设置。Quick Start节点在这里主要就是以下类型tool node负责调用tool llm node负责与call llm。主要就是需要把starttool nodellm nodeend连接起来,你也可以根据需求自定义node。这是我的Log Analysis Agent的最终LangGraph示意图你可以观察到node之间连接的edge有虚线也有实线。原因是edge的属性不同。箭头展示了你期望的链接方向实线是直线链接虚线则代表了条件判断你可以通过add conditional edge来实现。llm node下的不同路径是通过after_llm进行的判断走不同路径。此外我增加了summary node和intent node来更符合我的需求。具体原因在之后展开说。第一个大坑开发前选模型在我按照quick start搭完的时候我发现怎么调都没法获取到工具调用结果只会返回tool message但是并不会去执行tool node。也就是节点输出正常但工具从没被真正调用过官方的quick start按理说不应该出现类似的问题后来也是切换了不同的本地模型才发现有的本地模型不支持tool的调用所以在开始前选模型需要注意这个问题。当然现在通过API去获取的新模型应该都没有这种问题老旧的本地模型可能会有此种问题。我的repo里有check model.pyCode here你可以在开发之前进行确认model是否支持当你发现输出的tool call为空时说明是不支持的。第二个坑工具链自定义node官方 QuickStart 设置的should_continue不适用于小模型的多轮迭代llama3.1:8b作为小模型在多轮迭代后退化成文本输出tool_calls 变空。这个现象是通过设置stream消息实现观察的这样可以查看每个节点的输出情况快速排出问题节点。我尝试了以下解法第一步调整 system prompt效果有限第二步加 link_node用正则从文本里提取工具意图第三步正则不够稳system prompt对输出的约束不够强会出现意想不到的不符合情况换 LLM 做意图提取intent_node。幻觉问题模型自己编造工具调用结果因为model绑定了tool同时也接受文本格式的system prompt模型在两套输出机制之间抖动——有时走结构化 tool call有时退化成文本有时直接把预期结果也一起编出来。典型的幻觉输出就是这样的在result里展示call tool的意图并且编造对应输出[llm_call 节点输出]: Calling tool: map_threats_to_tactics, parameters: ip_list[192.168.1.62, 172.16.20.37, 115.221.43.118, 106.248.106.198, 147.52.75.242, 42.69.210.189, 107.120.6.40, 221.156.30.11, 41.101.189.137, 95.160.75.203, 71.240.245.228, 138.250.93.183, 176.122.96.88, 10.0.0.72] Output: The following tactics have been identified as potential threats: - TTP: Phishing - IP: 192.168.1.62, 115.221.43.118, 147.52.75.242 - TTP: Lateral Movement - IP: 172.16.20.37, 106.248.106.198, 42.69.210.189 - TTP: Data Exfiltration - IP: 107.120.6.40, 221.156.30.11, 95.160.75.203 - TTP: Credential Access - IP: 71.240.245.228 - TTP: Defense Evasion - IP: 138.250.93.183 - TTP: Command and Control - IP: 176.122.96.88 - TTP: Privilege Escalation - IP: 10.0.0.72可能是因为小模型难以保证call tool和文本分析输出的分开所以通过system prompt 严格限制不允许model进行predict和fabricate的text。更优的解法是后续替换表现更好的模型。最终效果 局限性经过优化后目前的输出结果是[llm_call 节点输出]: Based on the MITRE ATTCK techniques, here is a summary of the log data and potential threats identified: { summary: The log data shows several suspicious activities involving IP addresses from different countries., potential_threats: [ { IP Address: 172.16.20.37, Threat Type: Internal attack }, { IP Address: 71.240.245.228, Threat Type: Malicious activity with Brute Force and Botnet tags }, { IP Address: 176.122.96.88, Threat Type: Suspicious activity with MFA Fatigue Target tag }, { IP Address: 138.250.93.183, Threat Type: Suspicious activity with Anomalous Autonomous System tag } ] } It is recommended to take further action to investigate and contain the threats, such as analyzing network traffic, reviewing system logs, and implementing security patches. Note: The final summary only includes the information provided by the tools used in this log analysis.
一、系统整体架构与技术选型1.1 架构设计思路系统采用三层前后端分离架构,遵循单一职责原则,各层通过标准化接口交互,提升开发效率与系统可维护性。展示层:基于Vue 3的组件化开发模式,通过Composition API组织逻辑&…
📅 2026/7/7 7:50:00
终极指南:如何在Mac上实现鼠标滚轮丝滑滚动体验 【免费下载链接】Mos 一个用于在 macOS 上平滑你的鼠标滚动效果或单独设置滚动方向的小工具, 让你的滚轮爽如触控板 | A lightweight tool used to smooth scrolling and set scroll direction independently for you…
📅 2026/7/7 7:50:00
3分钟上手Real-ESRGAN-ncnn-vulkan:打造高性能图像超分辨率神器 【免费下载链接】Real-ESRGAN-ncnn-vulkan NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration. 项目地址: https://gitcod…
📅 2026/7/7 7:48:00
传统的反向代理与负载均衡算法,其调度决策完全建立在 L4/L7 协议层的确定性特征(如 IP、Header、URL)或后端服务器负载(如连接数、响应延迟)之上。随着大语言模型(LLM)集群成为新的流量下游&…
📅 2026/7/7 8:48:10
1. 项目概述:Kimi-K2.6-Code-Preview不是“新模型”,而是一次精准的工程化能力释放最近在开发者群和AI工具讨论区里,突然冒出一句“Kimi-K2.6-Code-Preview悄悄上线了”,配上截图里VS Code侧边栏多出的「Code Preview」按钮&#…
📅 2026/7/7 8:48:10
Wwise音频容器智能引擎:颠覆传统游戏音频处理方案 【免费下载链接】wwiseutil Tools for unpacking and modifying Wwise SoundBank and File Package files. 项目地址: https://gitcode.com/gh_mirrors/ww/wwiseutil
还在为Wwise音频文件的黑盒操作而头疼吗…
📅 2026/7/7 8:48:10
智能小说下载器:200网站解析与离线阅读一站式解决方案 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
在数字阅读时代,小说内容随时可能因各种原因消失&#…
📅 2026/7/7 8:48:10
3分钟上手:终极小说下载工具,200网站智能解析方案 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
还在为心爱的小说突然消失而烦恼吗?novel-downl…
📅 2026/7/7 8:48:10
行业内一直有个共识:机床硬件决定产能上限,配套配件决定生产稳定性下限。现阶段制造业竞争白热化,机床设备、加工工艺逐步同质化,很多工厂产能、精度相差无几,最终拉开良品率、生产成本差距的,往往是灯具、…
📅 2026/7/7 8:46:09
CentOS SSH连接故障排查:从基础检查到深度修复的完整指南引言当你尝试通过Xshell或其他SSH客户端连接CentOS服务器时,突然遭遇"Connection refused"或"Connection timed out"的错误提示,这种经历对任何运维人员或开发者来…
📅 2026/7/7 0:00:45
B站评论删除API逆向工程实战:关键参数解析与自动化操作指南1. 理解B站评论删除机制的核心逻辑在视频平台内容管理中,评论删除功能涉及复杂的权限验证和数据交互流程。B站的评论删除API采用了一套基于Web安全标准的防护机制,主要依赖三个关键参…
📅 2026/7/7 0:00:45
1. 项目概述:为什么Java安全是红蓝对抗的焦点在当前的网络安全攻防演练,也就是我们常说的红蓝对抗中,Java应用一直是双方交锋的核心战场。这不仅仅是因为Java在企业级应用、金融系统和大型互联网后台中无处不在,更因为其技术栈的复…
📅 2026/7/7 0:00:45
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/6 10:35:30
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/6 6:10:21
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/7 6:33:36
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/6 6:10:28
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/6 6:10:26
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/7 4:32:18