前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
返回 AI 情报前线
All News · 全部资讯8655
  • 手动重新输入 LLM 代码能有效规避认知债务
  • 让 Prompt 质量衰退无处遁形:evalgate CI 工具
  • Agent 架构设计:IP 变化下的寻址方案
  • AI API 已弃用陷阱与稳定性应对
  • 树莓派 NAT 环境下 Agent 的远程访问架构
  • AI 搜索优化框架:审计 360 站点的四层模型
  • 多租户 AI 聊天系统的架构演进:硬编码到 BYOK
  • AI 模型网关融资热背后的多模型架构趋势
  • AI agents为达目标会撒谎和欺骗——安全风险深度分析
  • 单 API 密钥多模型网关
  • 阿里千问3.8-Max:2.4万亿参数MoE模型发布
  • 语义缓存:40 行代码省半费用
  • AI Agent 安全防护:模型窃取与密钥泄露风险
  • 代码库 AI 检索的性能边界:向量 vs 图谱实测
  • 企业级 AI Agent 的真实成本:从演示到生产
  • 8月AI模型周榜:千问3.8-Max跻身前五,国产模型齐头并进
  • Agent 验证陷阱:200 状态码掩盖的错误答案
  • PNG渲染黑化六次修复:测量优于猜测
  • 长期运行AI Agent的上下文债务问题
  • 2025年AI Agent五大趋势:端侧与协作新范式
  • 用 LangGraph 打造个人 AI 智能助手:文件搜索工程实践
  • LLM推理冷启动问题深度解读
  • Cogent VR-1:企业安全推理模型正式发布
  • AI Agent平台选型:购买vs自研决策框架
  • 多Agent自主编程流水线:SideButton Portal
  • AI时代开发瓶颈转移:从编码到审查
  • GPT-Live低延迟语音AI系统:六月从零到一
  • Agent本地化浪潮——三个改变部署形态的项目
  • Mistral 7B推理成本降400倍:$4/月VPS完整部署方案
  • LobeChat 开源项目深度评测:多模型支持和部署方案
  • MCP 和 Skills 架构对比:AI Agent 集成最佳实践
  • 深度调试案例:五层根本原因分析一个神秘 Bug
  • MCP Agent 生产化:Docker + Kubernetes + 可观测性完整方案
  • AI 代理开发如何改变程序员工作流:从编码转向审查
  • Kimi K3 发布:百万 token 长上下文与强编程能力
  • 开源自媒体工具链:跨 10+ 平台内容发布全自动化
  • Qwen3.8-Max:2.4T参数如何改变开发工具选择
  • IBM 报告:AI 攻击占数据泄露 1/4,防御需加速漏洞修复
  • LLM 总成本对比:自托管 Llama vs 云 API 真实成本
  • AI 编码助手的设计系统赋能:从通用到专业
  • 网络爬虫工程实战:反爬虫对抗的完整方案
  • Rust 高性能 AI 代码审查工具:系统编程最佳实践
  • Ops Agent 的安全漏洞:提示注入即远程代码执行
  • 80% 降价反而成本上升:AI 账单的 Jevons 悖论
  • Google Gemini Robotics 2发布,人形机器人控制API开放
  • Qwen3.8-27B仅需17GB显存运行验证
  • 通义千问 3.8-Max 模型通过 OpenAI 兼容 API 可用
  • AI Agent 误删 45 个文件的真实事故复盘
  • Qwen3.8-Max官宣:全模态创作力对标顶级模型
  • 在 Next.js 中架构 AI 异步处理:避免请求阻塞的完整方案
  • MCP新规范正式版:一键审计服务器兼容性
  • 已加载 51 / 8655
8.0
热点
AI SCORE
编程提效2026-08-03 15:39

用 LangGraph 打造个人 AI 智能助手:文件搜索工程实践

dev.to · AI#LangGraph#Agent#向量搜索
Editor brief · 编辑速览

开发者用 LangChain/LangGraph 构建了一个日常可用的桌面 Agent,能通过自然语言查询本地文件。完整展示了从学习框架到实际工程的完整过程,包括状态管理、工具集成、向量库应用。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

注:这篇文章讲的是该项目的 V1 版本。这是一个真实、可用的助手,我每天都在用——不是一个完成品。V2 正在开发中,我很希望听到你对它的想法(文末会更多涉及)。

我开始学习 agentic AI 的方式可能跟大多数人一样——看课程,逐个学习 LangChain 和 LangGraph 的基础概念:state、nodes、edges、tools、memory、human-in-the-loop、guardrails。在能真正构建东西之前,有很多基础工作要做,到某个时刻,教程项目的驱动力就消退了。我不想再做另一个"spec-to-API agent"演示项目,然后再也不打开它。我想做一个我真正会用的东西。

所以我选了一个自己真正面临的问题:太多文件散布在 Downloads、Desktop 和 Documents 里,完全记不得什么东西放在哪儿。结果就是 my-assistant——一个永远置顶的桌面小部件,我可以用纯英文问"我写过什么关于 TaskFlow 审批流的东西?"或"打开我上周的时间表",它就能找到。

实际功能

在底层,它是一个 AI agent(不是多个 agent 的群组,下面会详细说)——用 LangChain 和 LangGraph 构建,由本地向量数据库(Qdrant)支持语义搜索,由 Groq 托管的模型进行实际推理。它有六个工具:按内容搜索、按文件名搜索、打开文件或文件夹、统计已索引文件数、列出已索引文件夹、索引新文件。一个基于 Flet 的 UI 把所有功能包装成一个小的、永远置顶的聊天小部件,放在我的桌面上。

我最骄傲的部分不是搜索功能——而是索引可以自动保持活跃。后台文件系统监察器会注意到我何时下载了新东西、编辑了现有文档或删除了文件,然后自动更新索引,我无需运行任何手动命令。告诉它"索引我的新 PDF",它就会这么做,或者就在后台默默地工作。

一个 agent,而不是多个——以及我为什么花了这么久才真正理解这一点

早期,我假设"一个包含很多步骤的长流程"——扫描文件夹、提取文本、分块、嵌入、存储——意味着我需要多个 agent 协同工作。其实不是,弄明白为什么不是的过程是这个项目中更有用的一课。

真正决定你是否需要一个 agent 的,不是流程有多少步——而是是否有某个步骤需要对模糊输入进行判断。从 PDF 提取文本每次都只有一种正确的方式。分块、嵌入和写入向量存储也是如此。这些都不需要 LLM 的推理能力——它们需要确定性的管道。真正的模糊性只出现在最前面:解释我在聊天框里输入的内容真正是什么意思。这就是整个 agentic 的表面积。之后的一切都是管道工作。

这个重新框架化改变了我对何时真正需要多 agent 设计的理解——不是"这有很多步骤",而是"某个子任务是否需要与其他部分截然不同的判断类型或角色"。更多关于这个在 V2 中可能真正适用的地方会在下面提到。

教会我最多的调试故事

在这个过程中,一些事情出错了,最终教会了我比那些一次就成功的部分更多的东西。

悄悄吞掉我自己虚拟环境的索引。 我的排除逻辑检查的是字面上名为 venv 或 .venv 的文件夹——直到我找到一个名为 venv_rag 的,突然出现了数百个来自不相关项目的 site-packages 文件在我的搜索结果里。修复方法不是添加更多精确的名称检查;而是通过检查 pyvenv.cfg 的存在来结构性地检测虚拟环境,这样无论有人给它起什么名字都没关系。

"存储文件夹已被另一个实例访问"。 一旦我添加了独立于聊天 agent 运行的后台监察器,两者就开始偶尔在同一时刻尝试打开各自与同一个本地 Qdrant 数据库的连接——这对于单个顺序 agent 来说没问题,但一旦有两个独立的线程接触同一个嵌入式数据库就会崩溃。修复方法是使用共享的单例连接,而不是每次调用都创建一个新的。

不肯停止折腾的 agent。 我问了一个埋在 Word 文档里的表格,agent 对第一次搜索的结果不满意,开始调用不相关的工具——试图重新索引文件、试图在 Word 中物理地打开文档——在它们之间循环,而不是直接告诉我找不到。实际的根本原因一旦我用原始数据库查询深入挖掘,几乎有点滑稽:内容一直都在那里。它只是没有在该特定措辞的前 3 个搜索结果中排名。真正的修复是收紧系统 prompt,让 agent 停止并告诉我,而不是折腾;还有扩大它每次搜索拉取的结果数量。

一个答案在技术上看似不陈旧,但背后的推理被编造了。 问一个文件夹的内容,agent 给了我正确的文件计数,但用编造的解释说为什么它无法显示子文件夹——一个其实根本不存在的限制。这是个很好的提醒:技术上正确的答案仍然可能带有自信但错误的推理,值得两者都检查。

Windows Explorer 创建了一个"删除的"文件,它从未被索引过。 创建一个新的空白文本文件似乎触发了一条"已从索引移除"的消息,甚至在文件有内容之前。原来 Explorer 的文件创建流程在底层触发为一个重命名事件,我的删除处理器无条件地打印成功消息,无论是否有任何东西真正被删除。一个小 bug,但那种会损害一个工具日志可信度的 bug,如果你不捕捉它的话。

这些都不是奇异的问题。它们是真正构建某样东西而不是跟随教程的常见摩擦——这正是为什么拥有它们是值得的。

接下来(以及我想听你的想法的地方)

这是 V1。它能工作,我每天都用,但不是最终状态。我在考虑 V2 的几个方向,特别是我认为多个专业化 agent 真正能发挥价值、而不仅仅是增加复杂性的地方:

一个写作 agent,可以从文件 agent 检索的文档中草拟摘要或邮件——一个与"查找和打开文件"完全不同的技能和声音。

一个用于截图和扫描文档的 vision agent,如果对图像的推理需要真实的判断而不仅仅是单个 API 调用的话。

一个主动模式,可以注意到杂乱或重复文件并建议清理,而不是仅仅对我的询问做出反应。

将其打包为真正的独立 Windows 应用,这样就不需要后台开着终端窗口。

如果你构建过类似的东西,或有你真正想从个人文件助手那里得到的功能,我很想听听——留下评论或联系我。仍然很大程度上是在进行中,这也是重点所在。

GitHub:- https://github.com/IsaacNatarajan/My-Assistant/tree/main

关于后续行动,你可以考虑屏蔽此人和/或举报滥用

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
2025年AI Agent五大趋势:端侧与协作新范式
下一篇
LLM推理冷启动问题深度解读