Datawhale Easy Data × AI:构建知识与记忆驱动的 Agent笔记2 已重做
Easy Data × AI构建知识与记忆驱动的 Agent笔记2 D1 演进速览从能调用模型到能自主做事六个文件一步步走完 Agent 能力进阶d1_1 基础调用 LangChain init_chat_model 一问一答 d1_2 多轮对话 手动维护消息历史 记住上下文 d1_3 流式输出 stream() 用户体验 d1_4 Tool Use Mock tool 手动编排 tool_calls 流程 模型会调用工具 d1_5 Tool Use Real TF-IDF 真实向量检索 接入真实数据 d1_6 Agent 循环 create_agentLangGraph 感知→推理→行动→观察d1_6 亮点模型面对Agentic RAG 和传统 RAG 有什么区别“时自主换了 3 次关键词、调了 4 次检索——第一轮结果不够自己判断换个关键词再查”这是 chatbot 做不到的。 pyseekdb 在 Windows 上的适配问题pyseekdb.Client()embedded 模式依赖pylibseekdb原生库官方只支持 Linux macOS arm64。方案创建轻量适配层code/D1/d1_vecdb.py用TF-IDF 余弦相似度numpy scipy替代接口完全对齐dbVectorDB(db_path./kb)db.create_or_get_collection(my_kb)db.add_docs(documents[...],ids[...])resultsdb.query(query_texts[用户问题],n_results3)三个后端自动 fallbackpyseekdb原生可用→ ChromaDB → TF-IDF兜底秒开零下载。 D1 核心代码摘录摘录 1Tool Use 从 0 到 1d1_4 —— tool bind_tools 手动编排为什么值得记这是 Agent 能力树的第一个分叉点——从模型自己答到模型会调工具核心就是下面这四步fromlangchain_core.toolsimporttool# ---------- Step 1: 定义工具 ----------# 函数名 工具名docstring 工具描述参数类型注解 工具 Schematooldefquery_knowledge_base(query:str)-str:从知识库中检索与用户问题相关的内容。当用户的问题涉及产品功能、技术文档时使用。# ... 这里是工具的实际逻辑可以是 mock 数据d1_4也可以是真实向量检索d1_5return检索到的相关文档内容# ---------- Step 2: 把工具绑定到模型 ----------llm_with_toolsllm.bind_tools([query_knowledge_base])# ---------- Step 3: 模型返回 tool_calls手动执行 ----------responsellm_with_tools.invoke(messages)ifresponse.tool_calls:# ← 关键判断模型决定要不要调工具tool_callresponse.tool_calls[0]resultquery_knowledge_base.invoke(tool_call[args])# ← 执行工具messages.append((user,f知识库结果{result}))# ← 把结果传回模型# ---------- Step 4: 第二次调用模型基于工具结果生成最终回答 ----------finalllm.invoke(messages)四步走的本质模型判断 → 模型返回 tool_calls → 人/程序执行工具 → 把观察结果喂回模型 → 模型再推理。这就是 F2 讲的感知→推理→行动→观察循环——只不过 d1_4 是手动写的循环体。关键变化手动版d1_4create_agentd1_6自己写if tool_calls分支LangGraph 自动处理循环只能查一次就完模型可以自主换关键词、查多次工具写死在循环里可以挂多个工具模型自主选d1_6 的亮点输出模型被问Agentic RAG 和传统 RAG 有什么区别“时自主换了 3 次关键词、调了 4 次检索——第一轮结果不够自己判断换个关键词再查”。这是 chatbot 永远做不到的。 P1 产品篇 · 学习笔记核心金句“90% 的 AI 功能失败不是模型不行而是立项时没人问’数据在哪’。”哪些场景不需要Agent场景更好方案判断依据固定答案的 FAQFAQ 页面 / 搜索框答案固定、无推理结构化数据查询BI 看板精确意图、SQL 搞定精确计算公式 / 程序实现大模型不是计算器三维度可行性评估立项 Checklist优先级数据可得性 → 任务可定义性 → 流程编排选择维度一数据可得性最关键最容易被低估立项会列 10 个典型问题找答案数据在哪6/10 找不到 →先建数据别做 AI维度二任务可定义性LLM 引入新挑战输出是概率生成的同一事实多种表述有事实锚点可验证 vs无事实锚点主观评估难定义的任务先用 10 个人工 baseline 建立评估标准维度三流程编排Agent vs Workflow光谱模型完全自主 Agent ←→ 人机协作 Workflow ←→ 传统软件首次做 AI 项目优先 Workflow不要直接 AgentWorkflow 更可控、对数据要求更低、错误容易定位Agent 的三个甜区适合做的场景语义理解用户意图模糊“去美国出差需要办什么”外部工具调用需要调用 API / 数据库 / 外部系统持续交互多轮对话逐步澄清需求同时命中 2-3 个 → 值得考虑 Agent 进步之前以为现在理解AI 项目瓶颈在模型选型瓶颈在数据层论坛小助手答非所问不是 GPT-4o 不够强是知识库过时Agent ChatGPT 记忆Agent 数据 模型 工具 循环 记忆先做 Agent 再想流程先 Workflow 验证价值再逐步增加自主性幻觉 LLM 天生不靠谱80% 源于知识库缺内容或检索不准

相关新闻

价值投资如何融入宏观分析:利率、周期与估值实战框架

价值投资如何融入宏观分析:利率、周期与估值实战框架

价值投资做到后期,大家会发现一个尴尬的事实:自下而上选中的好公司,往往被自上而下的宏观环境在某个阶段里“错杀”或“拔高”。我最早纯看财报,觉得宏观研究是宏观基金的事,直到手上一只现金流极其健康的消费龙头&…

2026/10/11 13:36:38 阅读更多 →
SpringBoot项目的启动

SpringBoot项目的启动

Spring是什么 Spring 是一个 Java 框架。它解决的核心问题是:Java 代码里到处都是 new 对象,导致类和类之间紧紧耦合在一起,改一个地方要动十个地方 IoC(控制反转)是什么 public class OrderService {// 不自己 new&am…

2026/10/11 12:47:05 阅读更多 →
深度学习图像识别系统开发实战:从数据准备到模型部署

深度学习图像识别系统开发实战:从数据准备到模型部署

技术博客 Python PyTorch torchvision ONNX Runtime 在人工智能快速发展的今天,图像识别已经不是什么遥不可及的黑科技。从手机相册自动识别人脸,到工厂流水线检测产品缺陷,再到智能安防、自动驾驶,背后都离不开计算机视觉和…

2026/10/11 11:47:41 阅读更多 →

最新新闻

Boss直聘数据采集与可视化:Python爬虫实战指南

Boss直聘数据采集与可视化:Python爬虫实战指南

简介:基于Python的Boss直聘岗位数据采集与分析可视化项目,面向计算机相关专业的学生及需要实战练习的Python学习者,由导师指导完成、评审99分,代码完整可运行,适合作为课程设计、期末大作业或毕业设计参考,…

2026/10/11 13:36:02 阅读更多 →
Zephyr中国跨国并购数据清洗实战:Python处理字段、币种与去重

Zephyr中国跨国并购数据清洗实战:Python处理字段、币种与去重

简介:这份资源为Zephyr数据库导出的中国跨国并购交易数据合集,时间跨度覆盖2000年至2024年,面向从事国际商务、产业经济、金融研究的高校师生与分析师,可用于跨国并购趋势分析、案例筛选与实证研究。压缩包共2个文件,以…

2026/10/11 13:36:02 阅读更多 →
C语言链表从入门到实操:指针、内存管理与增删实现

C语言链表从入门到实操:指针、内存管理与增删实现

写这篇文章的起因有点现实——我见过太多初学者把链表当成"面试背题",却在真正需要它的时候手足无措。链表是 C 语言里绕不开的核心数据结构,它和数组一起,构成理解更复杂数据结构(栈、队列、树、图)的两根拐…

2026/10/11 13:36:02 阅读更多 →
TLS 1.3配置审计、证书锁定绕过与中间人攻击实战全记录

TLS 1.3配置审计、证书锁定绕过与中间人攻击实战全记录

我们内部做了一次针对某业务系统的传输安全深度评估,范围限制在传输层,核心任务就三条:把 TLS 1.3 的配置翻个底朝天、试着绕过证书锁定、走一遍中间人攻击的标准套路。说实话,这类活儿在安全圈里不算少见,但真正跑完一…

2026/10/11 13:36:02 阅读更多 →
Unity UI形状与分辨率适配:从锚点到SafeArea

Unity UI形状与分辨率适配:从锚点到SafeArea

Unity开发里,自定义游戏界面形状/分辨率是个埋了很多暗坑的主题。我前阵子接手一个模拟项目X,美术给了一套圆形小地图、圆角按钮和不规则面板的设计稿,第一版是在固定模拟分辨率下做出来的,看着很正常。结果一上真机,长…

2026/10/11 13:36:02 阅读更多 →
Java 实现超大附件上传:分片、断点续传与合并校验实战

Java 实现超大附件上传:分片、断点续传与合并校验实战

很多做文件上传功能的同学,第一次接到“超大附件”需求时都以为只是加个参数、调大内存就能搞定。结果一跑真实文件,几百 MB 可能还能撑住,到了几个 GB 甚至十几个 GB,要么请求超时,要么服务端内存直接打满&#xff0c…

2026/10/11 13:35:01 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →