我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
一、从灵感到行动为什么给 AI 搭法庭作为一个前端开发者我每天都在和代码打交道但最近我开始思考一个问题当多个 AI 模型对同一个问题给出不同答案时我们该如何判断谁更靠谱这个想法催生了一个有趣的项目——给 AI 搭一个「法庭」让不同的模型像律师一样陈述观点再由一个「法官」模型做出最终裁决。而实现这个想法的最佳工具就是 LangGraph。二、LangGraph 是什么LangGraph 是 LangChain 团队推出的一个用于构建有状态、多角色 AI 工作流的框架。它允许开发者定义多个节点Node每个节点可以是一个 LLM 调用、一个函数或一个决策逻辑节点之间通过边Edge连接形成有向图结构。对于我这个前端仔来说LangGraph 的「图」思维非常亲切——它就像前端的状态管理工具如 Redux、Zustand加上路由系统只不过节点里跑的是 AI 模型而不是 UI 组件。三、项目架构AI 法庭的三大角色我设计的 AI 法庭包含三个核心角色原告律师由一个 LLM 扮演负责从正面论证某个观点被告律师由另一个 LLM 扮演负责从反面提出质疑法官由第三个 LLM 扮演综合双方论点做出最终判断整个流程通过 LangGraph 的状态图来编排每个角色都是一个独立的节点节点之间通过共享状态传递信息。四、实战从零搭建 AI 法庭4.1 环境准备首先安装必要的依赖npm install langchain/core langchain/langgraph langchain/openai或者如果你使用 Pythonpip install langchain langgraph langchain-openai4.2 定义状态和节点在 LangGraph 中状态是一个 TypedDict用于在节点之间传递数据from typing import TypedDict, List from langgraph.graph import StateGraph, END class CourtState(TypedDict): question: str plaintiff_argument: str defendant_argument: str final_verdict: str messages: List[str]4.3 构建图结构接下来定义三个核心节点def plaintiff_node(state: CourtState) - CourtState: 原告律师节点生成正面论证 # 调用 LLM 生成论点 response llm.invoke(f请从正面论证{state[question]}) state[plaintiff_argument] response.content state[messages].append(f原告{response.content}) return state def defendant_node(state: CourtState) - CourtState: 被告律师节点生成反面质疑 response llm.invoke(f请从反面质疑{state[question]}) state[defendant_argument] response.content state[messages].append(f被告{response.content}) return state def judge_node(state: CourtState) - CourtState: 法官节点综合判断 prompt f 问题{state[question]} 原告观点{state[plaintiff_argument]} 被告观点{state[defendant_argument]} 请作为法官做出最终裁决。 response llm.invoke(prompt) state[final_verdict] response.content state[messages].append(f法官{response.content}) return state4.4 组装并运行# 创建图 builder StateGraph(CourtState) 添加节点 builder.add_node(plaintiff, plaintiff_node) builder.add_node(defendant, defendant_node) builder.add_node(judge, judge_node) 添加边 builder.add_edge(plaintiff, defendant) builder.add_edge(defendant, judge) builder.add_edge(judge, END) 设置入口 builder.set_entry_point(plaintiff) 编译图 graph builder.compile() 运行 result graph.invoke({ question: 前端开发者是否应该学习 AI, messages: [] }) print(result[final_verdict])五、踩坑与优化5.1 状态管理问题刚开始运行时我发现状态在节点之间传递时会出现数据丢失。后来才意识到LangGraph 的状态更新是「增量式」的——每个节点只返回自己修改过的字段其他字段会自动保留。但如果节点返回了不完整的 state未返回的字段会被重置。解决方案在每个节点中显式保留所有需要传递的字段或者使用add_node的reducer参数来合并状态。5.2 并发执行为了让原告和被告同时发言而不是串行我尝试了 LangGraph 的并行节点功能from langgraph.graph import add_parallel_edge 让原告和被告并行执行 add_parallel_edge(builder, [plaintiff, defendant], judge)这样两个律师节点可以同时调用 LLM大幅缩短了总执行时间。六、前端集成让 AI 法庭可视化作为一个前端仔我自然要给这个 AI 法庭加上一个漂亮的 UI。我用 React TypeScript 搭建了一个实时对话界面通过 Server-Sent EventsSSE流式展示每个节点的输出// React 组件示例 const CourtRoom: React.FC () { const [messages, setMessages] useStateMessage[]([]); const startTrial async (question: string) { const response await fetch(/api/trial, { method: POST, body: JSON.stringify({ question }), }); const reader response.body?.getReader(); // 流式读取每个节点的输出并更新 UI }; return ( div classNamecourt-room div classNamewitness-box {messages.map(msg ( div className{message ${msg.role}} strong{msg.role}/strong{msg.content} /div ))} /div /div ); };七、总结与展望通过这个项目我不仅深入理解了 LangGraph 的核心概念——状态图、节点、边和并行执行还亲身体验了多 Agent 协作的魅力。AI 法庭只是一个开始同样的架构可以扩展到更多场景代码审查助手多个模型分别检查代码的不同方面安全性、性能、可读性内容审核系统不同模型从不同角度评估内容质量决策支持系统多个 AI 专家给出建议由仲裁模型综合判断作为一个前端开发者我最大的感悟是AI 开发的门槛正在降低。LangGraph 这样的工具让复杂的多 Agent 工作流变得像搭积木一样简单。如果你也是前端开发者不妨试试用 LangGraph 搭建你的第一个 AI 应用——你会发现它比想象中要简单得多。

相关新闻

ejsExcel vs 其他Excel库:为什么选择这个轻量级模板引擎?

ejsExcel vs 其他Excel库:为什么选择这个轻量级模板引擎?

ejsExcel vs 其他Excel库:为什么选择这个轻量级模板引擎? 【免费下载链接】ejsExcel nodejs excel template engine. node export excel 项目地址: https://gitcode.com/gh_mirrors/ej/ejsExcel 在Node.js生态中,处理Excel文件的库琳琅…

2026/7/21 18:12:23阅读更多 →
DeepSeek这次招得太猛了,36个岗位,80%都要会Agent!

DeepSeek这次招得太猛了,36个岗位,80%都要会Agent!

一、DeepSeek大规模招聘:Agent能力成核心门槛近日,DeepSeek 发布了新一轮招聘信息,一口气放出 36 个技术岗位,覆盖算法、工程、产品等多个方向。最引人注目的是,其中超过 80% 的岗位明确要求候选人具备 Agent 相关能力…

2026/7/21 18:12:23阅读更多 →
gh高级技巧:如何用命令行管理GitHub Issues和Pull Requests

gh高级技巧:如何用命令行管理GitHub Issues和Pull Requests

gh高级技巧:如何用命令行管理GitHub Issues和Pull Requests 【免费下载链接】gh Fast GitHub command line client (deprecated). gh has been merged into https://github.com/github/hub, see https://github.com/github/hub/issues/475 for more info 项目地址…

2026/7/21 18:12:23阅读更多 →
对话式AI技术演进:从框架解构到动态人格建模

对话式AI技术演进:从框架解构到动态人格建模

1. 项目背景与核心定位解析"对话李笛:不是要做小冰,而是要走完小冰没走完的"这个标题背后,反映的是人工智能对话系统领域一个极具深度的技术演进路径。作为长期关注NLP技术发展的从业者,我认为这实际上揭示了当前对话式…

2026/7/21 22:36:43阅读更多 →
Buzz:终极隐私保护的免费离线音频转录工具完全指南

Buzz:终极隐私保护的免费离线音频转录工具完全指南

Buzz:终极隐私保护的免费离线音频转录工具完全指南 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz 在数字化办公和…

2026/7/21 22:36:43阅读更多 →
AI落地加速器:契约驱动的机器学习工程化实践

AI落地加速器:契约驱动的机器学习工程化实践

1. 这不是一堂“机器学习入门课”,而是一份面向真实业务场景的加速器操作手册“Accelerate innovation with machine learning”——这个标题里没有出现一个技术术语,却精准戳中了今天绝大多数企业技术负责人的核心焦虑:我们买了GPU、招了算法…

2026/7/21 22:36:43阅读更多 →
Linux应急响应实战:从日志分析入门到攻击链还原

Linux应急响应实战:从日志分析入门到攻击链还原

1. 项目概述:从靶场到实战的应急响应初体验 最近在安全圈里,“玄机靶场”的热度一直不低,很多朋友都把它当作提升实战能力的练兵场。我花了些时间,把第一章“应急响应-Linux日志分析”给啃了下来。这章内容非常扎实,它…

2026/7/21 22:36:43阅读更多 →
线上招聘平台AI技术与视频面试优化全解析

线上招聘平台AI技术与视频面试优化全解析

1. 线上招聘行业现状与趋势分析2023年第三季度的招聘市场数据显示,线上招聘平台用户规模已突破4亿,较去年同期增长23%。作为从业12年的人力资源领域观察者,我注意到这个行业正在经历三个显著变化:首先,视频面试功能使用…

2026/7/21 22:36:43阅读更多 →
如何快速构建银河恶魔城游戏:Metroidvania-System终极指南

如何快速构建银河恶魔城游戏:Metroidvania-System终极指南

如何快速构建银河恶魔城游戏:Metroidvania-System终极指南 【免费下载链接】Metroidvania-System General-purpose framework for creating metroidvania games in Godot. 项目地址: https://gitcode.com/gh_mirrors/me/Metroidvania-System Metroidvania-Sy…

2026/7/21 22:34:43阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 0:51:49阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 0:51:49阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 0:51:49阅读更多 →
Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

📌教程适配:OpenClaw v2.7.9 | 兼容 Windows10/11、macOS 双系统 📖前言 当下各类本地 AI 工具层出不穷,多数产品仅能完成文字问答交互,很难直接操控电脑执行实际操作。OpenClaw,业内常称小龙虾 AI&#…

2026/7/21 0:01:46阅读更多 →
Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

聊《一次Codex项目复盘,问题最后出在流程而不是模型》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做&…

2026/7/21 0:01:46阅读更多 →
手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

大家好,还是我。前几期带大家做了心情日记本和可视化大屏,后台有朋友留言:“能不能教点好玩的?我想做游戏,但一行代码都不会。”行,这期就安排。今天的目标:从零做一个五子棋游戏。 带AI对战、三…

2026/7/21 0:03:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/20 22:51:39阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/21 18:53:30阅读更多 →