- 博客(576)
- 收藏
- 关注
原创 081、开源模型部署:Ollama与vLLM
本文深入剖析Ollama与vLLM在开源模型部署中的显存管理、性能调优与适用场景。指出Ollama默认num_ctx过高易致OOM,需显式设置;vLLM虽有PagedAttention提升吞吐,但需合理配置max-model-len与gpu-memory-utilization。结合真实案例,建议:小规模原型用Ollama,生产高并发选vLLM,关键在参数可控、环境隔离与量化策略匹配。
2026-09-17 17:02:21
3
原创 080、模型选择:不同场景下的性价比
模型选择的核心是场景匹配而非盲目追求强大。在Agent工程中,应按任务类型拆分链路:高频低复杂度请求用小模型或规则处理(快路径),复杂推理才启用大模型(慢路径)。通过轻量网关路由、成本限流与上下文压缩,可显著降低延迟与开销。嵌入式端优先考虑能效与内存,云端则采用“本地粗筛+云端精排”策略,结合验证器提升可靠性。最终目标不是最高准确率,而是用户感知的响应速度与整体成本的最优平衡。
2026-09-17 16:50:15
71
原创 079、缓存机制减少API调用
本文分享了通过合理设计缓存机制有效减少第三方API调用的实战经验。核心在于:使用带TTL的内存缓存(如TTLCache),确保缓存键规范化(去空格、统一大小写),避免因键不一致导致缓存失效;将缓存逻辑下沉至HTTP客户端或封装为通用函数,提升复用性;同时防范缓存穿透、击穿与雪崩问题,通过缓存空值、加锁、随机过期时间等策略保障稳定性。最终强调监控命中率,以数据驱动优化,实现成本与性能的平衡。
2026-09-17 16:49:47
2
原创 078、Agent的成本控制:Token用量优化
Agent成本失控主因是上下文膨胀与无效调用。通过滑动窗口截断历史、用小模型摘要早期对话、精简工具返回字段、限制调用次数、优化系统提示词缓存、启用结构化输出及模型路由,可大幅降低Token消耗。结合监控计费与“小步快跑”生成策略,实现高效可控的Agent运行。
2026-09-17 16:49:15
2
原创 077、Agent数据隐私保护
本文剖析Agent系统中多维度数据隐私泄露风险,涵盖日志、Prompt上下文、工具调用、存储、记忆组件及审计日志等环节。通过实战案例揭示明文敏感信息暴露的严重后果,提出统一日志脱敏过滤、Prompt前PII识别替换、最小字段传输、权限隔离、加密存储与访问控制等系统性防护策略。强调应以数据流图为基线,落实“数据最小化”与“纵深防御”,并建议定期渗透测试,确保隐私保护贯穿Agent全生命周期。
2026-09-17 16:38:54
3
原创 076、提示注入攻击与防御
提示注入攻击利用模型对指令与上下文无边界认知的缺陷,通过恶意输入诱导其泄露系统提示或执行危险操作。防御需摒弃依赖模型“理解”安全的幻想,转而采用权限最小化、输入输出过滤、工具调用二次确认、双上下文隔离及审计日志等工程化手段,构建多层防护体系。真正安全的系统不依赖提示词保密,而是将敏感信息移出上下文,实现本质安全。
2026-09-16 17:02:28
4
原创 075、Agent的日志审计与安全护栏
Agent日志审计与安全护栏需从结构化日志、决策可追溯、副作用记录三维度入手,强制包含意图快照、决策依据与状态变化。结合预算墙、行为白名单、循环检测、输出过滤四类护栏,并将触发事件独立审计流存储,确保全量可回溯。关键在于日志与护栏联动,配置版本管理,异步上下文传递,以及装饰器自动埋点,实现每一步决策如银行流水般不可篡改、可追责,真正让Agent在可控轨道上运行。
2026-09-16 16:59:06
89
原创 074、API Key的安全管理与环境变量
本文分享API Key安全管理的实战经验:避免硬编码,优先使用环境变量或.env文件,并通过.gitignore防止泄露。强调配置持久化、IDE环境同步、最小权限原则及定期轮换密钥。提出“先建模板、再校验加载、严禁日志暴露”的三步铁律,确保在复杂部署中保持安全可控。
2026-09-16 16:57:23
180
原创 073、Agent访问业务系统:认证与授权
Agent访问业务系统需摒弃复用用户token的旧模式,避免因用户密码变更或并发刷新导致失效。应采用独立身份认证(如client credentials)与细粒度授权(RBAC/ABAC),Token仅内存缓存并原子刷新,禁止落库。权限判断必须由业务系统侧执行,显式传递用户上下文(如user_id),防止越权。关键操作须审计日志,记录“谁、代表谁、为何可调”。杜绝在Agent内做权限判断,确保安全边界清晰可控。
2026-09-16 16:56:50
37
原创 072、多路召回与融合排序
本文针对Agent在处理结构化查询时召回失效问题,提出多路召回与融合排序方案。通过向量、BM25、精确匹配及规则模板四路并行召回,弥补单一检索盲区;采用加权RRF融合排序,结合历史反馈动态调整权重,并引入人工重排确保关键结果优先。强调日志打标、异步超时控制与渐进式迭代,实现稳定高效召回,显著提升垂直领域问答准确率。
2026-09-16 16:56:25
208
原创 071、Reranker模型与精排
第二个是模型蒸馏,拿大模型给一个小模型打标签,让student学teacher的输出,改成一个小cross-encoder,速度能快3倍,但性能保留七八成。结果把召回top20挨个看,发现召回没问题,问题出在排序——我们当时压根没接精排,直接用向量相似度排序,结果“财报”这种词向量上跟“苹果”相关度太高,把真正的售后意图给压下去了。第二个是score的分布,不同训练好的模型,输出范围完全不一样,有的偏好大数,有的偏小数。召回管广,精排管准。代价就是慢,没法对全量文档跑,只能在召回的几百条里重新排。
2026-09-16 16:55:05
147
原创 070、混合检索:语义+关键词+过滤
夜间告警揭示混合检索深层陷阱:语义与关键词召回因过滤位置错误导致空集。核心教训:过滤须独立于打分,向量检索应将filter嵌入knn内,关键词用bool filter;两路召回后采用RRF融合,确保公平性;最终在融合后做业务过滤,避免误杀。关键原则:过滤条件不参与评分,两路数量对等,代码复用,警惕script_score污染分数。混合检索非拼接,而是“三明治”结构——双层过滤夹持双路召回与融合,方能稳定输出。
2026-09-16 16:50:53
101
原创 069、向量检索的相似度算法与索引:一场线上事故后的复盘
LSH 是另一条路线,用随机投影让相似向量有更大概率落到同一个桶里,适合文本指纹、去重这类二值化场景,对 dense embedding 的精度一般不如 HNSW/PQ,我很少在业务里单独用 LSH 做向量召回。很多预训练模型的 sentence embedding 没有归一化,有的开源代码甚至直接拿 pooler_output 做检索,这种向量模长和文本长度、语料频次都可能相关,不归一化直接用点积,等于给热门文档加了一个隐形的 bias。,它只做一次乘加,计算最快,结果却受向量模长影响。
2026-09-16 16:50:27
415
原创 068、知识库分块策略:大小与重叠
知识库分块策略需兼顾语义完整与效率:chunk_size应控制在embedding模型最大长度的80%以内(如512 token),避免截断;overlap宜设为块大小的10%-25%(如64-128),防止语义断裂又避免冗余。分块应结合文本结构动态调整,优先在段落、标题等语义边界切分,并预处理特殊字符。参数调优应先固定overlap,调size至人工可读的“舒适区”,再微调overlap。最终以用户问题召回效果为导向,通过脚本调试与观察分块质量,实现粒度与语义对齐。
2026-09-16 16:49:59
175
原创 067、对话式Agent中的用户意图识别
本文深入剖析对话式Agent中用户意图识别的核心挑战,指出单纯依赖BERT等模型在真实场景下易失效。作者基于嵌入式开发经验,提出“三层漏斗”架构:领域路由、意图判定与槽位校验,结合规则模板、轻量模型与状态机,实现高效、可解释的意图理解。强调上下文感知、情绪识别、修正词处理与本地低功耗推理的重要性,主张以系统工程思维替代单一模型依赖,尤其在控制实体设备时需兼顾实时性、鲁棒性与隐私安全。
2026-09-16 16:49:33
309
原创 066、LangChain的Memory模块详解
LangChain的Memory模块本质是Prompt拼接工具,非真正记忆。常见类型包括:ConversationBufferMemory(简单存储对话)、ConversationTokenBufferMemory(按Token限制历史)、ConversationSummaryMemory(LLM摘要历史,易丢细节)、ConversationSummaryBufferMemory(混合保留与摘要,兼顾效率与信息)。实战中需警惕Token爆炸、总结幻觉、实体误抽等问题。建议:短对话用缓冲+滑动窗口,长对话选摘
2026-09-15 17:24:48
6
原创 065、多策略融合:混合Agent架构
混合Agent架构通过动态融合Direct Response、ReAct与Plan-and-Execute策略,解决单一路径在复杂场景下的失效问题。核心在于智能调度器基于上下文实时决策策略选择,并通过统一工作记忆协议保障状态无损传递。引入两阶段路由(轻量预筛+LLM裁判)、交叉验证与熔断机制,提升鲁棒性;并行子Agent与加权融合器处理多任务依赖,避免结果污染。强调可观测性、可配置熔断与上下文隔离,最终实现“容忍模型愚蠢”的工程化秩序,显著降低线上错误率。
2026-09-15 17:24:28
41
原创 064、Agent的决策模型:LLM vs 规则
本文探讨Agent决策模型中LLM与规则引擎的协同之道:纯用LLM易致非确定性漂移,全靠规则则难覆盖长尾场景。核心观点是“规则做闸门,LLM做兜底”——以轻量规则处理确定性判断(如状态、关键词),复杂模糊意图交由LLM推理,并通过输出理由、置信度与校验机制实现可控融合。实战中,决策链分层设计、动态降级、规则驱动prompt等策略显著提升稳定性与效率。最终强调:成熟Agent应“规则保下限,LLM拉上限”,而非二选一,方能在生产环境中稳如嵌入式系统。
2026-09-15 17:19:48
92
原创 063、ReAct与Plan-and-Execute比较
ReAct与Plan-and-Execute各具优劣:ReAct适合探索性任务,灵活但易“目标遗忘”、上下文膨胀;Plan-and-Execute稳定高效,适合流程固定任务,但僵化难应变。实战中建议按任务类型选择——查询类用Plan-and-Execute,研究类用ReAct,或采用混合模式:先生成计划,关键步骤留出探索空间,兼顾效率与灵活性。
2026-09-15 17:19:22
49
原创 062、Chain-of-Thought进阶:CoT-SC与验证
本文分享了在数学问答中应用CoT-SC(Self-Consistency)与验证机制的实战经验。针对单条CoT推理不稳定、错误难以察觉的问题,提出多链采样+加权投票策略,引入验证器对推理链逐步打分,提升鲁棒性。强调温度设置、模板多样性、答案抽取格式化(如强制JSON输出)的重要性,并建议通过自洽性弱监督训练验证器,辅以“仲裁者”层进行最终决策。关键在于:错误类型驱动验证设计,避免盲目依赖多数投票,最终实现准确率显著提升。
2026-09-15 17:18:26
33
原创 061、Few-Shot提示工程:示例选择策略
Few-Shot提示工程中,示例选择策略直接影响模型性能。随机采样方差大,易导致偏差;聚类采样可提升覆盖度,但需合理设定簇数;困难样本挖掘最有效,能显著提升准确率。示例顺序、正反例搭配、带解释的标签及动态选例等策略同样关键。避免格式不一致与示例过多,控制在5-7条、每条≤30token为佳。核心原则:示例应教会模型“规则”而非“记忆”,以真实错误案例为核心,结合对照组验证效果,方能高效落地。
2026-09-15 17:17:55
141
原创 060 · Prompt版本管理与测试
昨晚线上又翻车了。一个用户反馈说AI客服突然开始用文言文回复,排查了半天,发现是半个月前某位同事在调试时直接改了生产环境的Prompt,加了一句“汝当以雅言应答”,然后忘了改回来。这已经不是第一次了——代码改了可以git回滚,Prompt改了连个历史记录都没有。我盯着那个长得像一坨屎山的Prompt文件,突然意识到我们根本没把Prompt当成正经代码来管。先说版本管理。很多人觉得Prompt不就是一段文字嘛,存个记事本不就完了。呵,你试试在团队里合作一个复杂的Agent系统,光“角色设定”就有十几个版本,每
2026-09-15 17:17:22
604
原创 059、日志与跟踪:LangSmith与Langfuse
本文深入探讨了在Agent工程中,日志已不足以应对复杂调用链的问题,强调“跟踪”(Tracing)的重要性。通过对比LangSmith与LangFuse,指出前者深度集成LangChain,适合快速调试与对比分析;后者则为多框架友好、支持人机标注与长期观测,适合作为生产级可观测平台。作者建议根据项目需求合理选型,并警惕双工具并行采样带来的性能风险。核心观点:真正的调试能力不在于工具本身,而在于提前构建清晰的“跟踪地图”,将关键节点结构化记录,实现从“猜谜”到“导航”的转变。
2026-09-15 17:16:55
184
原创 058_Agent错误处理与重试机制
本文分享了Agent系统中错误处理与重试机制的实战教训。核心观点:重试需基于错误分类(瞬时、永久、假失败),采用指数退避+随机抖动,避免压垮下游;关键前提为幂等设计,通过幂等键和执行日志防止重复操作;重试粒度应到步骤而非流程,配合状态机与熔断机制;超时分段设置,死信队列兜底,指标监控不可少。最终强调:重试不是万能解,精准判断“何时放弃”才是高手之道。
2026-09-15 17:16:28
291
原创 057、避免Agent的幻觉:事实核查机制
本文提出一套轻量级事实核查机制,应对LLM Agent的幻觉问题。通过提取可验证断言、结合结构化数据库与文档检索进行证据比对,并引入工具调用层强制依赖真实数据源。辅以自我一致性检查与多源交叉验证,确保输出可信。失败时拒绝生成,仅返回“无法确认”及追踪编号,杜绝自圆其说。核心思想:不信任模型的“合理推测”,只接受可追溯的事实。
2026-09-15 17:15:43
140
原创 056、为大模型设计高效的工具库
工具库不是一锤子买卖。你上线第一版,运行一周,然后去看Agent的调用日志,找出那些频繁出错、频繁重试、频繁被模型误解的工具,逐个优化描述和返回结构。这个过程叫“工具调优”,跟prompt调优同等重要,但被很多人忽略。我见过太多团队把工具库当REST API封装,写完就不管了,结果Agent智商被工具拖累成弱智。反过来,你把工具库打磨得足够“钝” —— 每条描述都像给实习生写的操作手册,每个返回都像客服话术 —— 你的Agent就会表现得像个老练的工程师。记住:模型很聪明,但它没见过你的业务;
2026-09-14 08:19:35
211
原创 055、结构化输出:JSON模式与工具调用
本文分享结构化输出实战经验:避免依赖模型“记住”格式,应通过JSON模式(如response_format、guided_json)实现硬约束,确保输出可直接解析。关键技巧包括:用字符串查找剥离markdown外壳、三阶段解析器提升成功率、工具调用需正确处理多调用与ID绑定、温度设为0或0.2以下以加速生成。提示词中加入正反例可显著提升格式一致性。建议先用简单方案跑通链路,再逐步引入严格约束,核心是让Agent“说人话、干实事”,而非追求代码优雅。
2026-09-14 08:19:18
265
原创 054、Agent的输出解析与结构化响应
Agent输出解析需应对自然语言与结构化数据的鸿沟。实战中,应构建四层容错机制:剥壳(去代码块、引导语)、宽松解析(用json5处理注释、裸键)、类型转换(清洗单位、统一布尔值)、递归重试(基于错误反馈自修复)。核心是不依赖LLM绝对守规,而以健壮解析器兜底,确保线上稳定。
2026-09-14 08:19:02
240
原创 053、多轮对话中的上下文管理
本文深入探讨多轮对话中的上下文管理难题,指出直接拼接全量对话历史会导致Token溢出、信息丢失与性能下降。提出三层记忆架构:短期完整记忆、中期摘要记忆、长期事实记忆,并设计“记忆管理器”动态组装消息,优先注入结构化事实与摘要,避免角色混淆。强调使用固定格式摘要、滑动窗口截断、工具结果压缩、角色顺序规范及状态快照等实践,结合token精准计算与日志回放调试,实现高效、稳定、可维护的上下文管理。核心理念是“主动遗忘”,让Agent如客服般只记关键点,而非录音带。
2026-09-14 08:18:26
329
原创 052 构建RAG Agent:从文档到问答助手
本文分享构建高效RAG Agent的实战经验:切分策略决定60%召回质量,需合理设置chunk_size与chunk_overlap;写入链路要清洗文本、避免语义断裂;嵌入模型与向量库必须同源,更换需重建索引;问答链路应设计“引用+总结”指令,防止照搬原文;通过工具封装实现智能检索决策,使Agent自主判断是否查文档;引入对话改写机制提升多轮问答准确率;最后强调评估的重要性,建议建立回归集量化召回效果。
2026-09-14 08:18:12
498
原创 051、LangChain Expression Language (LCEL) 入门
本文通过实战案例详解LangChain Expression Language(LCEL)入门要点:管道符|构建惰性可运行链,需调用invoke才执行;避免打印chain本身,应使用RunnableLambda调试中间过程;并行用RunnableParallel,注意变量名冲突与异常穿透问题;条件分支建议用RunnableLambda实现;流式输出需确保解析器不缓存数据。强调先写普通函数理清逻辑,再转LCEL,注重可维护性,调试时加探针,上线前清理日志。LCEL简洁但需理解其背后机制,方能畅通无阻。
2026-09-14 08:17:54
365
原创 050 异步编程在Agent中的应用——从一次“假死”说起
本文以一次Agent“假死”事件为切入点,揭示异步编程在Agent开发中的关键作用。作者通过亲身经历指出:同步IO(如requests.get())会阻塞事件循环,导致整个Agent瘫痪。解决方案包括使用httpx.AsyncClient实现异步HTTP请求、用asyncio.gather并行调用工具、通过return_exceptions=True隔离异常、控制并发数的信号量机制、设置超时保护(asyncio.wait_for),以及正确处理取消与资源释放。文章强调:所有外部IO必须异步化,超时与取消机制
2026-09-12 17:14:05
8
原创 049、使用Pydantic定义Agent数据结构
使用Pydantic定义Agent数据结构可显著提升稳定性与可维护性。通过显式声明输入输出模型,提前暴露类型错误与缺失字段问题,避免运行时“打地鼠”式防御。推荐将任务状态、思考步骤、工具调用等设计为继承自BaseModel的结构化模型,利用Literal、Union、TaggedUnion实现多态支持,并通过model_validate_json安全解析LLM输出。关键细节包括:避免裸Optional,合理使用默认值与Field,确保列表更新不污染原状态,以及区分“缺失”与“空值”。最终,Pydantic应
2026-09-12 17:13:35
95
原创 048、手工实现ReAct Agent代码详解
本文详解手工实现ReAct Agent的全过程,揭示框架封装带来的“黑盒”陷阱。通过自定义工具、设计简洁提示词、实现鲁棒的行动解析与主循环,强调自由文本推理优于强约束结构化输出。核心在于:工具返回纯文本、统一参数名、使用while循环避免栈溢出,并在用户消息中明确指令以确保上下文清晰。实践证明,手动实现能有效防止模型陷入无效循环,提升Agent稳定性与可控性。
2026-09-12 17:13:15
39
原创 047、状态机与Agent生命周期管理
本文深入探讨了Agent生命周期管理中的状态机设计,指出盲目使用大循环与标志位会导致状态混乱、死锁等问题。作者提出以“生命周期阶段”为核心(INIT、READY、RUNNING、SUSPENDED、ERROR、TERMINATED),构建分层状态机,通过事件分类(生命周期、业务、管理)实现精准控制。强调状态迁移的幂等性、超时保护、事件过滤与状态广播机制,确保外部指令可响应、异常可恢复。实战中建议用查表法编码、配合状态监视器调试,最终实现稳定、可观测、可恢复的Agent系统。核心理念:状态机是生命的骨架,状态
2026-09-12 17:12:51
89
原创 046、LangGraph:构建有状态Agent流程
LangGraph通过StateGraph实现有状态Agent流程,核心在于显式状态管理与合并机制。开发者常因未正确声明字段合并策略(如add_messages)导致历史消息被覆盖,引发“失忆”问题。通过Checkpointer可持久化状态,支持断点续跑与时间旅行调试。条件边依赖最新状态决策,需确保字段更新完整。最佳实践包括:使用纯函数返回状态变更、避免原地修改、合理设计可序列化state,并利用thread_id实现多轮对话会话隔离。
2026-09-12 17:12:26
141
原创 045、反思与自我修正:Self-Refine
摘要(148字): Self-Refine通过“生成—批评—修正”三步机制提升Agent输出质量。关键在于分离角色:生成后以审查员视角提出具体问题,避免模型自我安慰。需三次独立调用,确保反思有效性;批评阶段引入外部反馈(如校验错误、执行结果)增强可靠性。禁止信息过载,仅传递指令化问题;设置置信度门槛,避免对优质答案过度修正。建议将Refine模块化,保留多轮版本供优选,实现可验证、可追溯的自我修正闭环。
2026-09-12 17:12:04
246
原创 044、LLMCompiler:并行任务执行
LLMCompiler通过将大模型的“规划”与“执行”解耦,实现任务并行化。它让模型先生成带依赖关系的任务图,再由调度器并发执行无依赖节点,显著提升串行调用效率。关键在于:工具函数需顶层定义、返回值统一为字符串、规划阶段强制原子操作并标注依赖。注意并行不总加速,慢任务仍成瓶颈,需拆分或降级;回调避免重逻辑,统一结果收集;合理配置worker数与异常处理。适用于目标明确、可分解的任务,非万能解药。调试时可视化任务图、隔离缓存环境、分层使用轻量规划+强模型汇总,方能构建鲁棒、可观测的并发执行引擎。
2026-09-12 17:11:16
126
原创 043 思维树(Tree-of-Thoughts)与规划
思维树(ToT)将推理转化为可搜索的路径,通过多候选生成与评估实现动态规划。其核心在于状态设计与量化评估函数,避免盲目推进。实践中需控制深度与宽度,结合路径感知评估、去重机制及分层启用策略,仅在高失败率环节启用以平衡成本。真正的规划不靠预设序列,而是边生成边剪枝的前瞻搜索。
2026-09-12 17:10:51
282
原创 042、Agent的规划能力:任务分解
本文分享了Agent规划中任务分解的核心经验:避免将复杂任务直接交给执行器,而应通过构建可验证的“任务树”实现分层规划。强调分解需对齐工具粒度、明确依赖与输出契约,防止过度拆解或隐式状态共享。提出动态修正机制与验证闭环,结合时间盒与迷你预演优化粒度,最终实现稳定高效的自动化流程。核心原则是“让子任务只做该做的事,别替父任务思考”。
2026-09-12 17:10:26
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅