LangChain 0.3手写Agent循环:工具记忆异常全解
当AutoGPT的自主循环在真实业务中频繁陷入死循环或工具调用幻觉时,我决定用LangChain 0.3.7从零手写一个仅200行代码的Agent内核。本文记录了在Python 3.11环境下,如何用Pydantic v2定义严格工具Schema、实现基于Message的滑动窗口记忆、通过try-except重构工具异常并注入ReAct循环。实测在10轮MaxStep限制下,工具调用成功率从Aut
RAG检索质量调优实录:chunk粒度、Embedding选型与Rerank排序的暴力对比
线上一个基于LangChain的RAG问答系统,在128个文档、2000+分块规模下,基础版Hit Rate仅67%,Top-5准确率惨不忍睹。本文记录了从Naive Chunk到固定大小窗口、再到语义分割的调整过程,同时对比了`text2vec-large-chinese`、`bge-large-zh-v1.5`和`m3e-base`三种Embedding模型,最后引入`bge-reranker
LangChain 0.3手写Agent:记忆管理与循环控制从零实现
本文基于 LangChain 0.3.1 与 AutoGPT 设计思路,从零实现一个具备工具调用、短期/长期记忆、错误重试与循环上限控制的 AI Agent。代码核心仅 280 行,支持自定义工具(天气查询、计算器、数据库查询),在 12 个真实任务上测试,工具调用准确率 91.7%,平均单轮响应延迟 1.8s(GPT-4o-mini)。文中会暴露一个典型坑:LangChain 0.3 中 `Ag
React/Vue项目从Context到Zustand/Pinia重构:迁移步骤与性能对比
在维护一个拥有60+页面、30+全局状态的中后台项目时,我们遇到了Context频繁re-render导致的性能瓶颈——某列表页滚动时FPS低至20。为此,我将React 18项目从useContext+useReducer迁移至Zustand 4.5,同时将Vue 3.4项目从Provide/Inject迁移至Pinia 2.1。本文记录了完整的迁移方案对比、步骤拆解以及迁移前后的性能数据:Re
Prompt模板迭代实录:从37%到89%的NER准确率提升
在实体识别任务中,我通过12组Prompt对比实验,发现模板中的标点符号与示例顺序能让准确率波动52%。最终方案引入角色锚定与结构化输出约束,token消耗仅增加18%,却将F1值从0.37提升至0.89。文中记录了完整的实验矩阵、失败案例与成本曲线,附赠一套可复用的Prompt评估脚本。
FastAPI接口耗时3700ms降至180ms:profile定位与三层缓存实战
线上订单列表API在QPS 200时P99延迟飙到3.7s,数据库CPU 92%。我通过cProfile+py-spy定位到N+1查询和JSON序列化两大瓶颈,用`selectinload`替代`lazy='subquery'`,再叠加Redis二级缓存和LRU本地缓存,最终P99降到180ms,QPS提升5.2倍。文章记录完整调优过程,含FastAPI+SQLAlchemy 2.0+Postgr
用asyncio重构Flask API,QPS从120飙升到2100的完整记录
一个内部报表接口,平均响应时间850ms,高峰期线程池被打满,CPU利用率却只有35%。排查发现80%的时间阻塞在第三方HTTP调用和数据库IO上。我用了三天时间,把Flask+requests同步栈改造成asyncio异步栈,配合uvloop和httpx,最终QPS从120提升到2100,P99延迟从2.3s降到380ms。本文不聊虚的,直接给出before/after代码、压测脚本、以及我在迁
用asyncio重构Flask API,QPS提升280%的完整记录
面对一个基于Flask 2.2.5 + Gunicorn的Web服务,在压测中发现其QPS仅为320,且CPU利用率不足40%。通过引入asyncio 3.11.4将阻塞式IO调用改为异步协程,并配合uvloop 0.19.0,最终将QPS提升至1210,P99延迟从890ms降至210ms。本文记录了一次真实的重构过程,包括代码改造、线程池调优、连接池复用等细节,以及过程中遇到的坑(如async
7B模型LoRA微调实录:显存8G下的QLoRA训练与推理对比
本文记录了一次完整的7B模型微调实践,使用QLoRA在单张RTX 3090(24G显存)上将基座模型显存占用压至8.2G,微调后模型在领域问答任务上的BLEU从0.21提升至0.67,而LoRA模块参数量仅占全模型的0.6%。文中包含从数据清洗到训练配置的完整代码,以及loss曲线和推理效果对比,重点解决量化后训练不稳定、中文分词器截断两个实际问题。如果你正在犹豫要不要上LoRA,这篇文能帮你少踩
FastAPI接口耗时1180ms降至90ms:Profile与缓存优化全记录
接手一个内部报表服务,发现核心聚合接口在100并发下P95耗时高达1180ms,数据库CPU直接飙到80%。本文记录一次完整的API性能调优过程:从cProfile和py-spy定位瓶颈,到SQLAlchemy懒加载陷阱,再到Redis缓存热点数据与SQL索引重建。优化后P95降至90ms,数据库CPU降到12%,单机QPS从210提升到2400。文章包含完整的Profiling命令、缓存策略代码
Git分支策略与Code Review流水线:支撑300人团队的协作体系
当团队从15人扩张到300人,主干开发模式导致的代码冲突和发布事故频发。本文基于Git 2.39.1和GitLab 15.11,详解我们落地的一套分支策略:trunk-based + 短期特性分支,配合强制Code Review流水线(MR Approval Rules + 机器人自动检查)和CI/CD门禁(Jenkins 2.414.2 + SonarQube 10.2)。通过这套体系,我们将特
LangChain 0.3手写AutoGPT式Agent:记忆与循环控制全拆解
当LangChain官方Agent在长任务中token浪费率达37%时,我决定手写一个轻量AutoGPT核心。本文基于langchain 0.3.1+Python 3.11,实现一个仅用236行代码的Agent,支持工具动态注册、双缓冲记忆管理、异常熔断与步数预算控制。在“查询数据库并生成周报”任务中,对比ReAct Agent,token消耗降低52%,任务成功率从79%提升至94%。全程附可运
RAG召回率从61%到89%:chunk重切、embedding换代与rerank落地的完整记录
两个月前,我们基于LlamaIndex搭建的RAG问答系统在200条内部技术文档测试集上召回率仅有61%,Top-5命中率惨不忍睹。经过对chunk粒度、embedding模型和检索后处理的三轮改造,最终将召回率提升至89%,Top-5命中率提升至93%。本文将完整记录这三步优化的决策依据、核心代码和踩坑细节,包含具体的版本号(LlamaIndex 0.10.43、BGE-M3、bge-reran
向量数据库选型实录:Milvus与Qdrant在2000万级数据下的性能对决
在电商以图搜图场景中,我们对比了Milvus 2.4.1与Qdrant 1.9.2在2000万条768维向量下的表现。Milvus在查询延迟上以P99 12ms领先Qdrant的18ms,但Qdrant在内存占用上仅为Milvus的1/3。本文记录了完整的部署参数、压测代码与调优细节,包含磁盘索引构建的踩坑过程,最终给出了不同业务规模下的选型建议。
asyncio重构Flask API:请求耗时从450ms降至120ms
某内部系统的用户详情接口,因串行调用三个独立上游服务,P99延迟飙升至860ms,严重影响前端体验。本文记录一次基于asyncio的并发改造全过程:引入`httpx.AsyncClient`配合`asyncio.gather`,将三次串行RPC改为并发请求,同时处理了连接池复用与超时熔断。改造后P95耗时从450ms降至120ms,吞吐量提升3.2倍,CPU占用反而下降。文中提供完整before/
向量数据库选型实测:Milvus与Qdrant在1亿级图片检索下的资源博弈
在广告风控场景中,我们将Milvus 2.4与Qdrant 1.9部署在相同硬件(4C16G)上,使用ResNet50提取的768维特征向量构建1亿级索引。实测结果显示:Qdrant在查询延迟(P99 23ms vs Milvus 41ms)和内存占用(8.2G vs 12.7G)上均占优,但Milvus在批量写入吞吐上领先40%。本文详细记录了两者的Docker部署步骤、HNSW参数调优过程,以
asyncio重构Flask接口:QPS从387到2106的完整调优记录
一次真实的Web API性能优化实战。某内部报表系统的`/api/summary`接口在高峰期频繁超时,单机QPS仅387,P99延迟高达3.2s。通过引入asyncio + aiohttp替代requests同步调用,配合信号量限流和连接池复用,最终将单机QPS提升至2106(+444%),P99延迟降至486ms。文章完整记录了从问题分析、方案设计、代码重构到压测对比的全过程,并详细说明了as
Git Flow与Trunk Based双轨制:团队协作与CI/CD集成方案
本文记录了我们团队从混乱的Git使用到建立规范工作流的全过程。针对12人研发团队、每周20+次合并的现状,我们设计了“Trunk Based为主、Git Flow为辅”的双轨制分支策略,配合基于GitLab的MR强制Code Review流程,以及Jenkins Pipeline自动化的CI/CD集成方案。通过引入pre-commit钩子、规范提交信息、自动化测试门禁,将代码冲突率从平均每周8次降
Docker Compose编排多服务容器化部署:网络、健康检查与依赖启动顺序实践
在微服务容器化部署过程中,服务启动顺序混乱、依赖服务未就绪导致应用崩溃是高频故障。本文基于Docker Compose 2.24.2与Docker Engine 24.0.7,分享一个包含Nginx网关、Spring Boot后端、PostgreSQL数据库及Redis缓存共4个服务的生产级编排配置。通过自定义bridge网络隔离、命名卷持久化、healthcheck健康检查及depends_on
LangChain 0.3手写Agent:工具注册与记忆隔离的7个实现细节
当AutoGPT式任务循环遇上LangChain回环陷阱,token成本直翻3倍。本文基于langchain 0.3.1+openai 1.52手写一个200行Agent,解决工具参数幻觉、记忆污染、死循环三大痛点。实测在金融新闻摘要场景下,错误重试率从41%降至12%,单轮任务token消耗稳定在2.3k±200。代码见GitHub仓库。