- 博客(115)
- 收藏
- 关注
原创 day_1
计算机不能直接理解 Python 源代码。Python 解释器负责读取代码,并按照 Python 语法执行。创建数值15.8,让变量price指向它。创建数值2,让变量quantity指向它。读取两个变量并进行乘法计算。让变量total指向计算结果。调用print()显示结果。31.6终端是输入和执行命令的工具。PowerShell命令提示符 CMD终端本身并不直接执行 Python 语法,而是启动 Python 解释器,再由解释器执行 Python 代码。
2026-11-07 07:30:00
302
原创 Agent Skills
本篇对应原拆分版第 13 篇。Skills 机制解决"领域知识如何可插拔注入"的问题,是 DeepAgents 四大工程能力(审批、存储、权限、技能)的收尾一块。技能市场参考:https://skillsmp.com/zh。
2026-11-06 15:07:43
182
原创 工程篇:审批、存储与权限
本篇合并原拆分版三篇内容:HITL 人工审批、Backends 后端存储、Permissions 文件权限控制。这三块加上《05-技能篇》的技能包,共同构成从"Demo"走向"生产"的分水岭。
2026-09-29 08:00:00
310
原创 子智能体篇
本篇合并原拆分版三篇内容:子智能体基础(字典配置)、进阶(CompiledSubAgent 与结构化输出)、高级(嵌套子 Agent)。子智能体是 DeepAgents 区别于普通 Agent 的核心机制,本篇从"为什么拆"讲到"怎么嵌套"。
2026-09-28 08:30:39
320
原创 Deep Agent快速上手与执行控制
DeepAgents 需要通过工具与外部世界交互。我们先单独验证搜索工具本身可用。"""测试1:deepagents的第一个测试例子"""import os# 加载.env环境配置,如果在环境变量中配置了,就不会加载.env文件# 创建TavilyClient对象# 定义一个联网搜索工具函数):"""使用 Tavily 进行联网搜索"""print(f"正在搜索:"""测试1:deepagents的第一个测试例子。
2026-09-25 08:00:00
305
原创 从 LLM 到 DeepAgents 框架
构建能够规划、使用子代理并利用文件系统处理复杂任务的代理(深度智能体)官方文档:https://docs.langchain.com/oss/python/deepagents/overviewDeepAgents是构建由大型语言模型(LLM)驱动的代理和应用的最简单方式——内置任务规划功能、用于上下文管理的文件系统、子代理生成和长期记忆,可以用它完成复杂、多步骤、自主规划的任务。关键词对应的痛点DeepAgents 的解法任务规划Agent 面对复杂任务"走一步看一步",容易迷失目标内置。
2026-09-24 14:25:44
368
原创 第4章 节点 Node 详解
节点是图的基本计算单元。本章讲清节点的完整输入输出契约:它能接收哪些参数(state / config / runtime)、返回值必须遵循什么规则(增量更新);再介绍两个生产级能力——节点缓存(CachePolicy)与节点重试(RetryPolicy),以及 START / END 这两个特殊节点的本质。学完本章,你写的节点就能达到生产代码的标准:依赖可注入、输出可预期、失败可重试、重复调用可缓存。
2026-09-23 08:00:00
322
原创 第1章 LangGraph 概述与快速入门
LangGraph 是一个低级编排框架和运行时环境,用于构建、管理和部署长期运行的有状态智能体(Agents)。它出自 LangChain 团队之手,但设计哲学和 LangChain 截然不同:LangChain 追求「开箱即用的高级抽象」,LangGraph 追求「细粒度的执行流程控制」。将 Agent 工作流建模为图(Graph)。要素英文职责节点Nodes计算单元,可以是 LLM 调用、工具执行或任何自定义逻辑边Edges定义节点之间的转换逻辑,决定执行流程走向状态State。
2026-09-22 08:00:00
215
原创 第6章 边 Edges 与循环控制
边决定「下一步去哪」。本章讲清边的本质(其实是通道订阅关系)、两种边类型(普通边 / 条件边)、条件边的路由映射技巧,最后讲图模型最有威力也最危险的能力——循环:如何用条件边构建 ReAct 式循环,以及如何用递归限制兜底防止死循环。学完本章,你就集齐了「状态 + 节点 + 边」三要素,能独立搭建任意拓扑的智能体工作流。
2026-09-21 08:00:00
405
原创 第3章 状态持久化与 Pregel 运行机制
前两章的图都是「一次性的」:每次 invoke 都从空状态开始。本章解决状态的——如何把执行过程的状态存下来,实现会话记忆与故障恢复;并深入 LangGraph 底层的 Pregel 算法,理解状态到底是在什么时机、以什么粒度被保存的。本章内容对应四个问题:为什么需要存状态、怎么存(Checkpointer)、怎么恢复(thread_id + invoke(None))、怎么查看历史(get_state_history)。
2026-09-19 09:42:55
234
原创 第2章 状态 State 详解
State Schema(状态模式)可以通过三种方式定义:TypedDict、Pydantic BaseModel 和 Dataclass。自定义 Reducer 函数接收两个参数# ★ 自定义 Reducer:合并左右两个消息列表print("正在执行add_message")print('左边的', message_list_left)print('右边的', message_list_right)# 给 messages 键挂上自定义 reducer。
2026-09-18 08:00:00
610
原创 Agents
通过原生 SDK 定义工具时需要使用 JSON 来描述工具,比较繁琐。模块下提供了tool装饰器,在函数上使用@tool的方式,就可以将一个函数创建成工具。工具说明的两种来源@tool装饰器内传参,或者定义函数的文档字符串(docstring)。参数说明:没有强制限制,但可以通过 Pydantic 的BaseModel来定义入参的具体描述信息,传递到 tool 装饰器内(通过通过 LangChain 定义好工具之后,调用方法,得到一个新的 llm 对象;
2026-09-17 08:00:00
129
原创 Retrieval
RAG =,检索增强生成。核心思想:把"生成"和"实时检索"解耦 —— 用户提问时,先去外部知识库捞回相关片段,再把这些片段作为上下文交给 LLM 生成最终回答。相当于给 LLM “开卷考试”。用户提问 → [检索器] → 从向量库/全文索引中捞 Top-K 片段 → 拼接成 Prompt → [LLM] → 回答LangChain 的定位。
2026-09-16 08:00:00
560
原创 Model I/O —— 与大模型交互的核心组件
输入提示(Prompt Template):把动态变量填充进模板,构造出结构良好的提示词;调用模型(Model):通过统一的接口调用在线或本地大模型;输出解析(Output Parser):把模型返回的自然语言文本,解析成程序可用的结构化数据(如 JSON、列表等)。简单来说,就是输入、处理、输出用户输入 ──► Prompt Template(组装提示词)│▼Model(调用大模型,支持在线 API / 本地 Ollama)│▼。
2026-09-15 08:00:00
339
原创 LangChain 入门
LangChain 是 2022 年 10 月由哈佛大学的 Harrison Chase 发起的开源框架,用于开发由大语言模型(LLM)驱动的应用程序。通过可组合的组件,把 LLM 接到真实应用里。
2026-09-14 08:00:00
165
原创 位图、HyperLogLog、GEO 与持久化、主从、哨兵、集群高可用实战
Redis 的所有数据保存在内存中,对数据的更新会异步地保存到硬盘上,从而做到持久存储:即便断电或重启,数据也不会丢失。快照:某一时刻数据的完整备份。例如 MySQL 的 Dump、Redis 的 RDB。写日志:把每一次操作记录下来,恢复时重放日志即可。例如 MySQL 的 Binlog、Redis 的 AOF。RDB:快照持久化;AOF:日志持久化;混合持久化:RDB + AOF 结合。
2026-09-02 08:00:00
333
原创 慢查询优化、Pipeline 事务与发布订阅实战
我们配置一个时间阈值,如果某条命令的执行时间超过这个阈值,就认为它是慢查询。Redis 把慢命令记录到一个先进先出(FIFO)的队列拿到一个固定长度、保存在内存中的队列。通过设置慢查询阈值,以后超过时间的命令就会被放入这个队列。后期查询这个队列,过滤出慢命令,针对性优化。Pipeline(管道)把多条命令一次性发到 Redis,减少网络往返(RTT),提升吞吐。redis-cli命令行本身没有 pipeline,但 Redis 支持此功能,且各语言客户端都有对应实现。
2026-09-01 08:00:00
410
原创 有序集合 ZSet 排行榜,高并发下的悲观锁、乐观锁与 Django 事务
悲观锁、乐观锁都是人定义出来的概念/思想,与语言无关。当程序出现并发问题时,需要保证并发情况下数据的准确性。确保当前用户和其他用户一起操作时,得到的结果和他单独操作时的结果一致,这种手段就叫并发控制。没有做好并发控制,就可能导致数据错乱。之前“多线程同时操作一个变量”加互斥锁,就是一种并发控制。
2026-08-31 08:00:00
173
原创 String、Hash、List、Set 四大数据结构与通用命令
IPC是 Inter-Process Communication(进程间通信)的缩写。之所以需要进程间通信,是因为进程之间数据是隔离的。同一台机器上的两个进程通信(如同一个程序开启的多个进程,Python多进程)。不同机器上的两个进程通信(跨主机通信)。方式说明共享内存 / 共享变量线程间变量天然共享,进程间需借助共享内存队列 / 管道如 PythonPipe消息队列Redis、RabbitMQ、Kafka 等Socket 套接字。
2026-08-30 08:00:00
408
原创 Redis并发概念、Docker 部署、安装启动与通用命
是一个用于管理多个 Docker 容器的容器编排工具,主要面向单机场景。则是面向多机场景的容器编排系统。几乎所有主流开源软件都提供部署方案,方便一条命令启动全栈服务。字段作用versioncompose 文件版本,通常写"3"services定义一组服务(容器)image指定镜像build通过 Dockerfile 构建镜像(可用contextdockerfile指定)指定容器名称ports宿主机端口 -> 容器端口映射expose仅暴露给容器网络内其他容器(不映射到宿主机)
2026-08-29 09:52:41
211
原创 Vue 3 工程实践:响应式解构、Axios 封装、路由与 Pinia 状态管理
toRefs适合解构整个响应式对象,toRef适合保持单个属性的响应式连接。axios 实例和拦截器可以统一基础地址、token、超时和错误处理;让异步流程更清晰。Vue Router 4 使用和组合式 API,路由守卫可以控制前端导航,但不能替代后端权限。Pinia 是 Vue 3 推荐的状态管理库,按业务拆分 store,避免把所有状态都放到全局。Element Plus 与 Vue 3 配套,Element UI 与 Vue 2 配套,选择组件库时要先确认项目版本。
2026-08-28 09:33:32
271
原创 Vue 3 核心进阶:组合式 API、响应式系统与 <script setup>
Vue 3 组合式 API 通过refreactivecomputedwatch和生命周期函数组织逻辑。ref适合值类型,reactive适合对象和数组;在 JavaScript 中注意.value的使用。计算属性用于派生值,watch和用于副作用;不要把三者混为一谈。会自动暴露变量和组件,父子通信使用和。定时器、请求和 DOM 操作要结合生命周期管理,并在组件卸载时清理资源。
2026-08-26 08:00:00
652
原创 Vue 高级开发:状态管理、路由系统、插件与登录权限控制
Vuex 适合管理跨组件、跨页面的共享状态,状态修改应通过 mutation/action 进行。和 Cookie 的生命周期不同,保存 token 时要结合 XSS、CSRF 和过期策略。Vue Router 通过渲染页面,使用 query 或 params 携带路由参数。嵌套路由适合后台布局,路由守卫可以改善登录跳转,但不能替代后端权限校验。建议实现一个带登录保护的后台管理页面:登录后进入嵌套路由,刷新仍能恢复 token,退出后所有受保护路由都跳回登录页。
2026-08-25 08:00:00
236
原创 Vue 前后端实战:组件通信、JWT 登录与接口权限控制
<p>子组件传来的内容:{{ message }}</p>data() {},methods: {
2026-08-24 08:00:00
212
原创 Vue 工程化开发:组件复用、插槽、项目结构与 ES6 模块化
全局组件使用方便但容易产生命名和维护问题,业务组件优先局部注册。动态组件负责切换,keep-alive负责缓存;插槽负责让父组件注入可变内容。Vue 项目通过main.js启动,页面组件放在views,可复用组件放在components,路由配置集中在router。letconst、解构、展开和模块化是 Vue 工程中高频使用的 ES6 语法。建议完成一个带选项卡、可缓存表单、具名插槽卡片和路由页面的综合练习,体会组件拆分和数据复用。
2026-08-23 08:00:00
446
原创 Vue 组件化进阶:计算属性、生命周期、组件通信与动态组件
子组件通过$emit触发事件并传递数据,父组件使用@事件名监听。这样可以保持数据流向清晰。< div id = " app " > < p > 父组件收到:{{ message }} </ p > < child-editor @submit-message = " receiveMessage " > </ child-editor > </ div > < script > Vue . component('child-editor' , {data() {return {
2026-08-22 09:41:16
224
原创 Vue 进阶实战:事件修饰符、表单控制、购物车与 Ajax 请求
箭头函数适合回调,重点理解它没有自己的this;Vue 的方法本身不要随意改成箭头函数。for...in遍历键,for...of遍历值,数组还可以使用forEachmapfilter等方法。事件修饰符负责冒泡、默认行为和触发次数;按键修饰符让键盘交互更直观。复选框的v-model可以绑定布尔值或数组,购物车应使用唯一key、计算属性和清晰的全选逻辑。axios 适合 Vue 项目中的接口请求,跨域问题需要由后端 CORS 配置配合解决。
2026-08-21 08:00:00
257
原创 Vue 进阶基础:动态样式、条件列表渲染与表单双向绑定
uni-app 以 Vue 语法为基础,目标是使用一套代码构建 Web、Android、iOS 和各种小程序。它能减少重复开发,但不同平台的权限、组件和性能仍有差异,发布前必须在目标平台测试。使用 HBuilderX 或其他支持的工具创建项目。在浏览器中运行,快速验证页面和逻辑。连接 Android 真机时开启开发者模式和 USB 调试,并准备 Android SDK 的adb工具。根据平台要求进行本地构建或云端打包。ES6 对象简写可以减少重复代码,但要区分基本类型复制和对象引用。
2026-08-20 08:00:00
173
原创 Vue 入门基础:响应式原理、模板语法与常用指令详解
Vue 的核心是响应式数据和声明式渲染,先理解“改数据即可更新页面”。插值适合文本,v-text和v-html用于内容指令,v-show和v-if用于条件显示。使用@事件绑定行为,方法统一写在methods中;使用:属性绑定动态属性。v-html存在 XSS 风险,只渲染可信内容;用户输入应使用默认插值转义。旧项目可能使用 Vue 2,新项目通常使用 Vue 3,启动方式和 API 风格应保持一致。
2026-08-19 08:00:00
189
原创 Django 用户认证与安全机制:CSRF、Auth 模块及自定义用户模型详解
CSRF Token 用于确认修改请求来自本站页面,Ajax 请求需要通过表单字段或请求头主动携带。Auth 模块负责安全的密码哈希、认证、Session 登录状态和权限管理;创建用户必须使用。使用login()logout()管理登录流程,用判断状态。使用保护页面,使用和修改密码。自定义用户模型应尽早建立,并通过获取当前用户模型。
2026-08-18 08:00:00
714
原创 Django 状态管理与请求处理:Cookie、Session、CSRF 和中间件详解
现代 Django 推荐编写一个接收的可调用对象。下面的例子记录请求耗时,并把结果写入响应头。.4f会继续调用下一个中间件或最终视图。必须返回一个响应对象,否则 Django 无法完成请求。中间件应保持职责单一,避免在其中堆积具体业务逻辑。路径必须写成“应用名.模块名.类名”。修改MIDDLEWARE后应重启开发服务器,并确认该类可以被 Django 正常导入。Cookie 存在浏览器端,Session 数据主要存在服务器端;二者通常通过一个 Session Cookie 联系起来。
2026-08-17 08:00:00
424
原创 Django Form 组件详解:从表单生成到 ModelForm 数据校验
username = forms.CharField(max_length=8, min_length=3, label="用户名")label="密码",email = forms.EmailField(label="邮箱")代码中的每个字段都会对应一个 HTML 控件。max_length和min_length限制的是用户提交到表单中的字符长度;它们与模型字段的数据库长度约束不是同一个概念。ModelForm是Form的扩展。
2026-08-16 08:00:00
230
原创 Django Ajax、批量操作与分页实践
本章介绍不刷新整页的异步请求、文件上传、批量写入、JSON 序列化和分页。它们共同服务于更流畅的交互体验,但仍必须遵循 HTTP 方法、CSRF、防护、数据校验和数据库性能等基本规则。
2026-08-15 08:00:00
821
原创 Django ORM 表达式、事务与模型字段设计
本章关注 ORM 中三个容易影响正确性的问题:如何在数据库中直接比较或计算字段值,如何保证多步写入要么全部成功要么全部撤销,以及如何选择合适的模型字段与约束。掌握这些内容后,可以减少并发更新丢失、数据半写入和字段设计不当等问题。
2026-08-14 08:00:00
370
原创 DOM 操作、事件处理与 jQuery 选择器
jQuery 是封装了 DOM 操作、事件、动画和 Ajax 的 JavaScript 类库,其口号是 “Write less, do more”。在需要兼容旧项目或维护已有 jQuery 代码时,它仍然很常见;新项目通常优先采用原生 DOM API,或使用 React、Vue 等框架管理复杂界面。要使用 jQuery,需要先加载库文件,且加载顺序必须在依赖$()的自定义脚本之前。-- 使用完整版本;
2026-08-13 08:00:00
230
原创 Django 模板复用、ORM 查询与多对多关系
当多个页面共享一小块结构,但显示的数据不同,例如公告栏、推荐商品、分页器或广告位,可以使用 inclusion tag。它由 Python 函数准备上下文,再渲染一个指定的局部模板;比复制 HTML 更易维护。当关系本身需要额外数据(例如作者在一本书中的署名、排序、加入时间)时,应显式定义中间模型。这个方案最灵活,但不会自动得到这类多对多管理器。),代码说明:中间模型是正常的数据表,能保存关系的额外属性。防止同一作者被重复关联到同一本书。表示删除图书或作者时,相关中间记录也会删除;这不是“级联更新”。
2026-08-12 08:00:00
692
原创 Django 模板语法:变量、过滤器与控制标签
Django 模板负责展示数据,而不是承载复杂业务逻辑。视图准备上下文数据,模板使用变量、过滤器和标签将数据渲染为 HTML。保持这一边界可以让页面更安全、更易维护,也能避免模板中出现难以测试的 Python 逻辑。
2026-08-11 08:00:00
372
原创 Django 响应对象、文件上传与类视图
的内容应是字符串或字节。字典不是 JSON,不能直接作为业务数据返回;若要返回 JSON,应先序列化,或直接使用更合适的。告诉浏览器如何解释响应内容。返回 HTML 常用text/html,返回纯文本常用text/plain,下载文件时可配合指示浏览器作为附件处理。
2026-08-10 08:00:00
407
原创 Django 路由组织、名称空间与虚拟环境
自定义转换器需要提供regex和to_url()。前者定义 URL 中允许出现的文本,将匹配结果转为视图使用的值,to_url()则在反向解析时把 Python 值转为 URL 字符串。return f"int04d# order/views.py from django . http import HttpResponse def report(request , report_year) : return HttpResponse(f"报告年份: {
2026-08-09 12:11:38
412
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅