- 博客(255)
- 收藏
- 关注
原创 Agent开发第10步:异常处理与测试
本文总结Agent开发十步曲的最后一步:异常处理与测试。针对LLM幻觉、工具报错、上下文爆炸等现实问题,提出安全执行、自我修正与系统防御策略。通过SafeToolRegistry实现参数校验与错误回传,使模型可自我调整;引入LLM-as-a-Judge评估机制,结合确定性断言与非确定性评判,有效验证Agent行为。最终构建出稳定、可测、可迭代的智能体框架,为迈向复杂多Agent系统奠定基础。
2026-09-09 11:16:33
97
原创 Agent开发第9步:持久化与 Checkpoint
进入生产阶段,需将临时的 InMemoryRunStore 替换为持久化存储,引入 Checkpoint 机制。通过在关键步骤保存状态快照至数据库(如 PostgreSQL/JSONB),实现任务中断后可恢复,保障长程推理任务的可靠性。结合分布式调度,支持高可用部署,使 Agent 具备工业级稳定性。
2026-09-09 11:14:33
95
原创 Agent开发第8步:开发简易客户端
已搭建后端引擎与接口(Agent Loop、Store、SSE、打断),现通过Python CLI与HTML/JS客户端验证链路畅通。客户端遵循统一交互流程:提交请求获取run_id,通过SSE流式接收text.delta(实现打字机效果)、tool_call.started(显示执行状态)及run.completed事件,支持中断取消。代码简洁,可快速集成至本地测试环境,确保全链路稳定可用。
2026-09-09 11:12:08
48
原创 Agent开发第7步:创建订阅与打断接口
通过解耦“运行”与“订阅”,引入异步任务、事件总线(Event Bus)和取消管理器,实现 Agent 任务的持久化执行与多端流式订阅。利用 asyncio.Queue 实现事件发布/订阅,结合 asyncio.Event 支持主动打断,确保网络闪断不中断任务,支持跨设备同步与实时终止,显著提升系统可靠性与用户体验。
2026-09-09 11:10:43
76
原创 Agent开发第6步:实现 SSE 编解码
本文介绍如何通过SSE(Server-Sent Events)实现Agent流式输出与前端实时通信。针对传统HTTP延迟和WebSocket过重的问题,SSE以轻量级单向推送方案,支持服务端持续向浏览器发送事件流。通过自定义编码器将BaseRunEvent对象转为标准SSE格式,并在FastAPI中使用EventSourceResponse返回流式响应。前端利用原生EventSource或fetch接收并解析事件,实现“打字机”般的实时交互体验。该方案为Agent应用提供了高效、低延迟的实时通信能力,为后续
2026-09-09 11:09:43
164
原创 Agent开发第5步:实现 Run Store (内存版)
本文介绍为支持多轮对话与状态追踪而设计的Run Store组件,用于记录对话历史、运行状态及事件日志。基于内存实现,通过RunSession模型管理run_id下的消息、状态与事件,支持创建、查询、更新与追加操作。结合Agent Loop,确保上下文可追溯。后续将引入SSE实现实时推送,支撑打字机效果。
2026-09-09 11:07:29
145
原创 Agent开发第4步:定义 RunEvent
通过定义标准化的 RunEvent 事件体系,将 Agent 执行过程透明化,实现“思考-调用工具-观察-回答”的实时状态反馈。利用事件驱动架构,支持前端流式展示、打字机效果与错误追踪,提升用户体验与调试能力。结合 Pydantic 强类型定义与 Generator 流式输出,构建可观测、可扩展的 Agent 运行时。
2026-09-09 11:06:21
155
原创 Agent开发第3步:实现 Agent Loop
Agent Loop 是 Agent 框架的核心,基于 ReAct 模式实现自主决策与行动。通过“思考—行动—观察—回答”的循环,结合 Model Adapter 与 Tool Registry,Agent 能拆解复杂任务,动态调用工具获取信息,并在限定步数内生成最终答案。代码实现中,通过上下文传递与工具调用机制,确保逻辑连贯性,支持如天气查询与计算等多步骤任务。该循环为后续可视化与事件驱动打下基础。
2026-09-09 10:58:02
195
原创 Agent开发第2步:定义工具抽象 (Tools)
本文介绍了为Agent赋予“手脚”的工具抽象机制。通过定义标准的BaseTool接口,实现工具的名称、描述、参数校验与执行逻辑,并借助ToolRegistry统一管理。结合Function Calling,Agent可动态调用天气查询、计算器等工具,获取实时信息或执行操作,形成“思考-调用-反馈”闭环,为构建强大智能体奠定基础。
2026-09-09 10:57:29
166
原创 Agent开发第1步:抽象模型接口 (Model Adapter)
为实现智能 Agent 对不同大模型的无缝兼容,核心在于引入模型适配器(Model Adapter)。通过抽象统一接口,可屏蔽 OpenAI、Anthropic 等厂商 API 差异。支持两种模式:一是手动维护上下文的 Chat Completion API,二是由服务端托管历史的 Threads API。前者适合灵活控制,后者提升效率与可扩展性。适配器使 Agent 核心逻辑与模型解耦,为后续集成工具能力奠定基础。
2026-09-09 10:56:53
573
原创 从参数对齐到多模型融合:一文搞懂AI应用中的“模型适配层”
<think>我们根据要求生成摘要,≤150字。需要从长文中提炼核心:模型适配层的必要性、作用、实现示例。语言简洁。注意字数限制。</think>模型适配层是解决AI应用被单一模型厂商锁定的关键,它统一不同大模型API的参数与响应格式(如temperature、max_tokens),将协议变更隔离在底层。通过抽象工厂模式可快速集成OpenAI、Claude等,实现业务代码无感切换模型,并支持策略降级与容错。摘要涵盖其核心职责、实战方案,强调“随时切换”的自由。
2026-09-07 19:08:03
193
原创 深度解析 OpenAI API:Chat Completions API 与 Responses API
2025 年,OpenAI 推出了新一代,官方明确表示这是未来 Agent 应用的核心方向。但与此同时,经典的依然是业界使用最广泛的标准。两者到底有什么区别?我该用哪个?代码怎么写?本文将用最直白的语言 + 可运行的 Python 代码,带你彻底搞懂这两代 API 的核心差异。对比点输入格式messages数组input字符串或数组响应解析output数组,按类型遍历状态管理手动维护messages列表工具调用自行处理tool_calls循环声明tools后平台自动执行流式处理历史轮次维护。
2026-09-04 15:09:24
297
原创 一个真正适合办公日常的在线图片工具网站:压缩、转换、改尺寸、SVG 处理一站搞定
本文推荐在线图片处理网站zhaition.com,其提供压缩、格式转换、改尺寸、SVG工具、画布等14个工具,批量处理且本地完成无需上传,免费额度够用,支持10元永久解锁全部功能,适合自媒体、运营、前端等日常快速处理图片人群。
2026-09-01 15:22:00
254
原创 NestJS Controller 参数接收与 DTO 完全指南
本文总结了NestJS中Controller接收参数的5种方式,重点介绍了DTO(数据传输对象)的作用和必要性。主要内容包括: Controller接收参数的5种方式: 路径参数(@Param) 查询参数(@Query) 请求体(@Body) 请求头(@Headers) 原生请求对象(@Req) DTO的核心作用: 提供类型安全 实现数据验证 支持代码提示 生成API文档 必须使用Class而非Interface的原因: Class在运行时保留元数据 支持装饰器验证 能被Swagger识别 完整实战示例:
2026-07-07 19:23:00
264
原创 nestjs/typeorm详细介绍
TypeORM 实战摘要(NestJS版) 本文是 TypeORM 在 NestJS 中的完整实战指南,涵盖核心关系映射与操作技巧: 核心关系速查 一对一:@OneToOne+@JoinColumn(外键在标注侧) 一对多:@OneToMany+@ManyToOne(外键在"多"方) 多对多:@ManyToMany+@JoinTable(中间表维护) 实战要点 一对一(如用户-资料):@JoinColumn必须加在外键持有方 一对多(如用户-文章):外键自动出现在@ManyToOne侧 多对多(如文章-标签
2026-07-07 11:53:54
322
原创 微信小程序云开发实战笔记:从零到一的核心经验
本文分享了微信小程序云开发的核心实战经验,重点介绍了云数据库权限管理、查询优化、云函数调用优化和云存储实用技巧。文章强调95%的场景应通过云函数操作数据库,提供了批量操作、事务处理等代码示例,并总结了冷启动、并发限制等常见问题解决方案。云开发降低了全栈开发门槛,但生产环境仍需注意权限设计、数据结构和性能优化。
2026-05-19 16:07:13
95
原创 影响力:读后感
书里讲了很多如何用原则影响别人,但西奥迪尼的道德立场是隐性的:他默认读者会用这些知识“防御”而非“操控”。他提出:现代生活节奏太快、信息太多,我们不可能每次都理性分析所有信息,因此大脑进化出了一套“自动化反应机制”——比如“贵的=好的”“专家说的=对的”“别人都做的=我也做”。:你喜欢某个人,或者对方让你感到熟悉、相似、外表有吸引力、夸赞你、与你有关联。:让你觉得“我们是一伙的”(共同身份、共同经历、共同血统、共同地域)→ 让你觉得“欠他的”“喜欢他”“和他是一伙的”社会文化中“有来有往”的规范。
2026-03-24 17:00:18
607
原创 《纳瓦尔宝典》核心复习手册
《纳瓦尔宝典》核心摘要 本书围绕"财富"与"幸福"两大主题展开: 财富篇 财富=专长+杠杆+判断力+复利 专长:发掘与生俱来的才能 杠杆:善用代码/媒体/资本放大效益 终极目标:产品化自己,实现指数增长 幸福篇 幸福=健康+欲望管理+活在当下 关键:降低期望、戒除攀比、专注当下 终极目标:摆脱外在束缚,回归本真 实践路径: 识别个人专长 选择适合的杠杆 审视内心欲望 培养当下意识 本书提供的是思维框架而非具体步骤,需要读者自行探索实践路径。
2025-11-21 15:15:26
1201
原创 PowerShell(PS)终端设置简短命令
本文介绍了在PowerShell中设置简短命令的两种方法:创建别名和自定义函数。临时别名使用New-Alias命令在当前会话中生效,而永久别名需要添加到PowerShell配置文件($PROFILE)中。文章详细说明了查找和创建配置文件的方法,并提供了添加永久别名和自定义函数的示例代码。通过这两种方式,用户可以简化常用命令的输入,提高工作效率。
2025-10-22 11:48:25
174
原创 React native Navigation 详解
React Navigation 提供了两种常用导航器:Tab Navigator 和 Stack Navigator。Tab Navigator 用于创建底部/顶部标签栏,支持自定义图标、徽章和样式,适用于主功能模块切换(如微信的四个主界面)。Stack Navigator 管理屏幕堆栈,支持参数传递、导航操作(push/pop)和动态头部配置,适合处理层级跳转关系(如首页→详情页)。两者可结合使用,Tab 作为主框架,Stack 处理子页面导航,共同构建完整的应用导航体系。
2025-08-19 11:21:38
378
原创 Electron 主进程与渲染进程之间交互方式
本文介绍了Electron中进程间通信(IPC)的基本实现方式。主进程通过ipcMain监听和响应渲染进程消息,预加载脚本使用contextBridge安全暴露API给渲染进程,渲染进程通过这些API与主进程通信。内容包括同步消息发送/接收、异步调用处理以及监听器的管理,展示了Electron中安全、高效的多进程通信方案。
2025-07-21 10:22:07
213
原创 微前端MicroApp框架
MicroApp是一款简单易用的微前端框架,具有高性能和强隔离性特点。它采用主-子应用架构,主应用负责整体布局和子应用管理,子应用可独立开发部署。安装仅需简单npm命令,主应用通过配置加载子应用,子应用需暴露生命周期函数。框架提供双向数据通信机制:主应用通过props传数据,子应用通过dispatch发事件;同时支持跨应用事件监听。该方案简化了微前端集成过程,实现了应用间的解耦与高效协作,适用于复杂前端系统的模块化管理。
2025-07-07 17:18:35
294
原创 Node.js 中 require 源码解析
Node.js的require函数通过Module._load实现模块加载,按照内置库→文件模块→node_modules模块的顺序解析。核心流程包括解析文件名、检查缓存、创建新模块并加载不同文件类型(.js/.json/.node)。模块加载后会缓存到Module._cache避免重复加载。该机制确保了Node.js模块系统的高效性和灵活性。
2025-05-29 10:15:24
574
原创 Node.js 的 child_process 模块详解
Node.js 的 child_process 模块提供了创建子进程的能力,使 Node.js 应用能够执行系统命令、运行其他程序或脚本。这个模块非常强大,可以帮助我们实现很多复杂的功能。
2025-05-07 17:01:35
486
原创 lerna 8.x 详细教程
需要注意的是输入package name时,不能直接输入core,因为这个包会被作为单独的npm包发布,core同名的包肯定会存在的。我们可以群组的形式创建,最终包名就是@lerna-demo/core,类似@vue/cli、@vue/composition-api。
2025-04-23 20:25:02
435
原创 前端监控体系搭建
前端监控是一个成熟业务线的标配,目前最多的场景是监控 JS 错误,接口请求和性能优化,然后根据日志信息进行分析分类的可视化展示,在发生异常的时候通知到相应的业务开发,监控的性能指标给页面的体验优化提供数据对比和优化的方向。
2025-03-05 09:21:29
225
原创 2025年前端技术革新趋势
前端技术的发展历程是一部持续创新与进化的史诗。从最初的简单静态网页到现今的复杂动态交互应用,前端技术经历了多次重要的转变。早期的网页主要依赖HTML和CSS,功能较为基础,主要目的是信息展示。随着JavaScript的引入,网页开始具备更丰富的交互性和动态效果。21世纪后,一系列前端框架如jQuery、AngularJS、React和Vue.js纷纷登场,显著提高了开发效率和用户体验。近年间,随着移动互联网的蓬勃发展,前端技术也迎来了新的发展方向,响应式设计和跨平台开发成为热门话题。
2025-01-21 14:34:34
413
原创 ECharts图表导出为svg文件
ECharts 渲染完成后,可以通过 chart.getDom() 获取 SVG 元素,然后使用 outerHTML 获取 SVG 的内容。你可以使用 JavaScript 的 Blob 和 URL.createObjectURL 来创建一个 SVG 文件的下载链接。在 ECharts 的配置中,可以通过设置 renderer 为 ‘svg’ 来启用 SVG 渲染。
2024-11-26 17:51:01
695
原创 GSAP 增添动画效果 (01)
GSAP (GreenSock Animation Platform) 是一个专业的动画框架,它具有强大的性能和灵活的功能。
2024-11-04 09:59:07
690
原创 Nuxt 项目安装时报错 fetch failed (详细)
在 Notepad 中,点击 “文件” 菜单,然后选择 “打开”。进行了 DNS 污染,这会导致你的请求在到达 DNS 服务器后解析到错误的服务器 IP 地址,从而无法正确连接到。在开始菜单中搜索 “Notepad”,右键点击 “Notepad” 并选择 “以管理员身份运行”在 Notepad(记事本) 中编辑完 Hosts 文件后,保存即可。再次创建Nuxt项目,就没问题了。
2024-10-30 10:17:35
732
原创 Google 高级搜索操作符
在 Google 搜索中,有些高级搜索操作符,它可以帮助你找到特定类型的文件。可以找到“机器学习”和“应用”之间的任意单词或短语的网页。可以找到所有在.edu域名下包含“人工智能”的网页。可以找到在 GitHub 上的开源项目相关的网页。可以找到所有包含“机器学习”的 Word 文档。可以找到所有包含“人工智能”的 PDF 文件。— 搜索标题中包含特定词汇的网页。可以找到标题中包含“数据分析”的网页。— 找到与某个网页相关的网页。可以找到网址中包含“教程”的网页。可以找到包含这个精确短语的网页。
2024-08-07 11:00:22
768
原创 OrangePi AIpro套装测评
我们可以参考以下官方提供的硬件规格参数:从资料来看我们发现这款开发板可以用于大学做比赛和毕设,例如,循迹小车主板,机械臂控制,等电子设计大赛一些项目开发。当然也可以用于一些项目的预研和算法的严证,例如智能家居,轨交消防行业模型等。当然也可以基于实用软件层面的应用服务,让它的物超所值。由于时间关系简单体验下,之后会逐步将SPI,IIC等接口测试完毕,上手总结一下,首先使用方便,不必像其他开发板需要单独5V电源,通用的Type-C接口使用非常方便,另外巴掌大小携带也十分方便。
2024-06-04 11:14:27
798
vue 弹窗,可拖动,可拖动改变大小,可重新定义样式!
2022-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1