自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JackDan9

Coding is interesting

  • 博客(165)
  • 收藏
  • 关注

原创 静默的 86 小时:全链 402 停摆与零告警的故障复盘

每日技术复盘 Day 28 | 领域:Agent Infra(可观测性 / 告警设计 / 恢复分层)素材:10/10 21:09 – 10/14 11:09 全链 402 停摆(39 次运行无一完成、零告警);含「上一期复盘被腰斩」自证案例复盘时间:2026-10-14缺期说明:Day 27(10/9)之后、本期之前,缺 10/10–10/13 四期——其中 10/10 当期写到一半即被本故障腰斩;其余三期从未启动。

2026-10-14 21:18:08 125

原创 每日技术复盘·Day 6/365(2026-09-04):丢失的确认——没收到回执推不出没发生

豆瓣发布任务卡在确认后挂起,服务端实际已提交成功——没收到回执被误判为没发生,差点导致重复发布。本文还原这次at-least-once投递+非幂等操作的经典陷阱,沉淀read-before-write、UNKNOWN状态、服务端对账三条分布式系统铁律。

2026-09-04 21:08:05 166

原创 每日技术复盘(8月26日):autoglm 发布确认卡点,--auto-approve 一穿而过

微博发布任务在点发布后卡住——任务进入INTERACT_REQUIRED等人工确认,cron无人值守流程中断。实测--auto-approve true参数一穿而过:登录确认是硬边界不可绕过,发布确认可显式授权跳过。与剪贴板法则互补,组成完整无人值守发布链路。

2026-08-26 21:04:04 218

原创 每日技术复盘(8月25日):autoglm 长文本输入三连坑,剪贴板法则一锤定音

微博发布任务中autoglm向富文本编辑器输入长文本频频翻车:task内嵌被截断导致内容编造、逐行type丢字错位。三种输入方式实测对比后,剪贴板法则一锤定音——让agent理解内容,不如让内容绕过agent。附完整排查过程与4条复盘铁律。

2026-08-25 21:19:10 189

原创 每日技术复盘 | 默认浏览器被Edge抢走,自动化全线瘫痪的5天排查实录

浏览器自动化全线瘫痪5天,表面报扩展未登录,根因竟是系统默认浏览器被悄悄切换成Edge!从杀进程到默认应用变更,一条单点故障链如何击穿整个自动化基础设施?本文还原完整排查过程,沉淀4条运维铁律。

2026-08-25 10:51:50 214

原创 K8s Pod 状态卡在 Terminating,根因竟是 finalizer。

摘要: Kubernetes生产环境遇到Pod卡在Terminating状态,排查发现是节点失联导致finalizer阻塞删除流程。关键排查步骤包括检查Pod状态、查看事件、强制删除尝试,最终通过YAML分析定位到foregroundDeletion finalizer问题。解决方案是手动移除finalizer并删除故障节点。经验总结:finalizer是双刃剑,网络分区会导致资源卡死,排查需遵循describe→yaml→节点检查流程,强制删除需配合finalizer清理。预防建议配置合理的驱逐超时和健康

2026-08-07 14:59:45 217

原创 K8s PodOOMKilled但监控没报警——JVM容器内存超卖

摘要:线上Java微服务Pod因OOMKilled频繁重启,但监控显示内存仅用60%。经排查发现JVM非堆内存(Direct Buffer/Metaspace等)未被监控,实际cgroup内存已达2Gi上限。根本原因是容器内存配比失衡(Xmx1.5G+非堆0.6G>2Gi limit)。解决方案:①调整Xmx≤limit的70%并限制非堆内存;②增加cgroup RSS监控;③启用JDK11+容器感知。关键结论:容器内存须按"Xmx+非堆预留"规划,cgroup指标比JVM堆监控更可靠。(149字) #K8

2026-07-27 21:04:16 255

原创 一篇文章讲透Infra:AI数据云计算基础架构分类详解

Cloud Infra 让你跑起来,Data Infra 让你算起来,DevOps Infra 让你快起来,Network Infra 让你通起来,Security Infra 让你稳起来,AI Infra 让你聪明起来。六层 Infra 缺一不可,越往下埋得越深,越难的越吃香。如果你想往 Infra 方向发展,建议从 Cloud Infra(K8s + Linux)入门,再根据兴趣往 Data 或 AI Infra 深耕。

2026-07-23 22:17:50 603

原创 K8s PodCrashLoopBackOff假阳性排查

摘要: K8s环境某服务Pod反复CrashLoopBackOff,但容器内无异常。排查发现是livenessProbe的initialDelaySeconds(5s)设置过短,应用实际启动需12-15秒,导致探针过早触发kill。解决方案:1) 临时调整initialDelaySeconds至30s;2) 推荐使用K8s 1.16+的startupProbe机制,先确保应用启动完成再启用liveness检查。关键教训:区分启动检查(startupProbe)和运行检查(livenessProbe),ini

2026-07-23 21:11:38 210

原创 Memory Search索引模型不匹配故障

摘要 Memory Search 服务因索引模型不匹配故障导致语义搜索全部失效。错误显示存量索引使用"fts-only"模式构建,而系统期望"text-embedding-3-small"模型。根因是Embedding模型配置变更后未同步重建索引。解决方案是强制重建索引。关键认知:Embedding模型相当于索引的"编译器",模型变更必须重建索引。建议完善变更闭环机制,增加降级策略,该问题在RAG/向量数据库领域具有普遍性。

2026-07-21 21:05:48 232

原创 UTF-8 BOM——跨平台工具链的沉默杀手

摘要 Windows环境下autoglm-browser-agent运行时出现JSON解析错误,排查发现是PowerShell的Set-Content -Encoding UTF8命令在JSON文件头部添加了不可见的UTF-8 BOM标记(EF BB BF),导致严格遵循RFC 8259的JSON解析器报错。解决方案是改用Out-File -Encoding ascii/UTF8NoBOM写入文件。该案例揭示了Windows系统中UTF-8 BOM对跨平台工具链的潜在危害:BOM对文本编辑器透明但会破坏程序

2026-07-20 16:14:16 231

原创 kube-proxy iptables模式下NodePort间歇性超时

摘要: Kubernetes集群中NodePort服务间歇性超时,排查发现是节点nf_conntrack表满载导致iptables NAT映射失败。表现为1/10请求超时,但直接访问Pod正常。通过检查conntrack状态确认问题,临时方案是增大nf_conntrack_max值,长期建议切换至IPVS模式并监控conntrack使用率。关键教训:K8s网络问题常源于底层内核网络栈,高并发场景应优先选择IPVS模式。排查路径遵循Pod→Service→kube-proxy→conntrack的层级分析法。

2026-07-14 22:45:13 202

原创 JSON配置文件的UTF-8 BOM编码陷阱

摘要:autoglm-browser-service因读取带UTF-8 BOM头的config.json文件失败导致浏览器功能异常。排查发现Windows PowerShell默认写入BOM头,而JSON解析器不处理BOM导致静默失败。解决方案是改用ASCII编码写入文件避免BOM。教训包括:警惕Windows平台的BOM问题、避免静默失败、跨平台需显式声明编码规范。建议遇到文件读取问题时用Hex编辑器检查原始字节。(149字)

2026-07-13 21:52:04 262

原创 Kubernetes Pod DNS解析偶发超时——ndots引发的血案

Kubernetes Pod DNS解析偶发超时问题复盘:某服务调用外部API时偶现connection timeout,但直接访问IP正常。经排查发现,Kubernetes默认ndots:5配置导致解析外部域名时,会先尝试拼接search域进行无效查询(如api.payment.com.cluster.local),累计超时达5秒以上。解决方案包括:1)修改dnsConfig降低ndots值;2)使用FQDN形式域名(加末尾点);3)启用CoreDNS autopath插件。该问题难排查在于偶发性强,关键

2026-07-13 10:29:32 206

原创 K8s CoreDNS缓存导致的间歇性DNS解析超时

本文复盘了Kubernetes环境中由CoreDNS缓存和内核conntrack机制共同导致的间歇性DNS解析超时问题。问题表现为1-3%的请求出现5秒超时,排查发现根因是K8s默认ndots:5配置导致DNS查询被放大4倍,使conntrack表满载丢弃UDP包。解决方案包括调整内核参数、优化DNS策略(改为ndots:2)、使用短域名及部署NodeLocal DNSCache。关键教训指出K8s DNS问题需从底层协议栈向上逐层排查,不能仅关注CoreDNS日志,并强调了conntrack监控指标的重要

2026-07-13 10:09:53 456

原创 Redis内存暴涨导致服务雪崩

摘要(148字) 线上Redis节点内存使用率从45%飙升至95%,引发服务雪崩。经排查发现,新上线的用户session缓存功能未设置TTL,3天内积累8000万永久key,触发noeviction策略导致写入阻塞。紧急通过Lua脚本清理闲置key并hotfix增加TTL,内存回落至55%。长期措施包括:强制缓存TTL准入检查、增加key数量增长监控、改用allkeys-lru策略。核心教训:无TTL的缓存等同内存泄漏,需监控趋势性指标而非仅绝对值,生产环境慎用noeviction策略。 关键词:Redis

2026-07-09 21:05:15 347

原创 Agent工具调用中无限重试死循环的根因与修复

摘要: Agent工具调用中"无限重试死循环"问题根因在于工具返回不规范(含诱导性hint)、Prompt缺乏重试约束及编排层无熔断机制。解决方案包括:1)工具层标准化返回格式;2)Prompt层添加重试次数和空结果处理规则;3)编排层实现熔断器监控调用频率。核心教训是需通过代码+Prompt双重约束控制LLM行为,工具错误信息应明确终止条件而非提供继续指引。该模式可扩展至各类工具调用场景,关键在于让失败信号清晰可识别。

2026-07-08 21:46:58 433

原创 Agent长任务中上下文窗口溢出导致任务中断

摘要 本文分析了autoglm-browser-agent在执行超长任务时出现中断的技术问题。主要症状包括token超限、信息截断和任务丢失。通过排查发现,80%的上下文被工具调用历史占据,核心问题是缺乏分层上下文压缩机制。解决方案采用四级递进策略:输入精简、中间摘要、窗口阈值和外部记忆。关键教训是Agent需要像人类一样主动管理"工作记忆",建议在prompt中明确信息压缩规范,提供工具的双返回模式,并增加上下文监控机制。(149字)

2026-07-08 10:16:59 392

原创 K8s CoreDNS间歇性超时ndots5的陷阱与排查实战

ndots:5 是 K8s 环境的默认值,但不适合混合外部调用的场景DNS 查询放大效应:对外部域名的每次查询都可能产生 3-4 倍的额外 NXDOMAIN 查询CoreDNS 是集群的"心脏",DNS 故障会导致所有服务间调用瘫痪分场景配置 ndots:纯内部服务保持默认,外部 API 密集型服务降低到 1-2应用场景:Kubernetes 1.24+、CoreDNS、微服务架构关键词。

2026-07-06 21:27:15 302

原创 RAG检索质量衰减从chunking到hybrid search的全链路优化实战

Chunking 是地基:切得碎 → 召回噪声大,切得粗 → 召回遗漏多。最佳实践是"语义切分 + 适度 overlap"单一向量检索是单点故障:BM25 对关键词匹配仍然不可替代,hybrid 才是正道Reranker 是小成本大收益:在 Top-20 上加一层精排,成本增加不到 5%,准确率提升 20-40%可观测性被严重低估:没有评估集就没法量化改进效果,所有的"我感觉变好了"都是幻觉应用场景:RAG知识库、企业文档问答关键词。

2026-07-06 10:17:26 369

原创 K8s DNS解析超时ndots与autopath的连环坑

ndots:5 是 K8s 微服务场景的隐性性能杀手— 大多数内部服务名只有2-3段,默认ndots=5会导致大量无意义的search domain拼接autopath 不是免费午餐— 配置不当会指数级放大DNS查询开销DNS监控不能只看CoreDNS Pod的资源— 要看实际的解析延迟和超时率排查DNS问题三件套:抓包 → 查resolv.conf → 模拟查询过程应用场景:Kubernetes 1.24+,CoreDNS,微服务架构关键词。

2026-07-03 23:15:24 238

原创 Agent工具调用中的超时与后台进程管理yieldMs的陷阱与正确姿势

理解工具的实现机制比会用工具更重要。yieldMs 不是"轻量后台",是"暂停-恢复",二者语义完全不同。默认值是经过验证的最优解。急着改 timeout 之前先问:是我用法不对还是真的需要更长?通常答案是前者。Agent 工具链的可靠性不靠单个参数调优,靠正确的架构模式。background 持续运行 + 文件/pipe 异步通信 = 长任务的标准范式。这个经验同样适用于:LLM 推理的超时、RAG 索引构建、长时间 API 轮询等场景。

2026-07-03 09:47:41 260

原创 Agent工具调用中的超时与后台进程管理yieldMs的陷阱与正确姿势

尝试手动设 `--timeout 3600` → **问题反而加剧**:设太长后 agent 失去心跳感知,中间不知道任务进度,体验更差。同时,手动设置 `--timeout` 破坏了任务的自我保护机制——默认 1800s 是经过调优的平衡值,擅自加长只是把"检测不到超时"伪装成"解决了超时"。**核心原则:** 长任务 = background + 文件通信,短任务 = 同步返回。**关键词**:Agent Infra、yieldMs、background、进程管理、工具链可靠性、超时处理。

2026-07-03 08:46:33 247

原创 K8s Service ClusterIP不通但Pod IP直连正常Readiness Probe引发的诡异故障

Pod Running ≠ 能接流量:Readiness Probe 是 Service 流量的唯一准入标准启动慢的应用不能忽略 initialDelaySeconds:Java/Spring Boot 等重框架启动 30-60s 很常见滚动更新 + 短探针 = 流量黑洞:新 Pod 被 kube-proxy 排除、旧 Pod 已销毁 → 无 Pod 可用排查 ClusterIP 不通的优先步骤→ 看 NotReadyAddresses → 查 Readiness Probe应用场景。

2026-07-01 21:14:35 338

原创 Agent编排的核心挑战指令与内容分离剪贴板法则的实践与思考

Agent 编排的核心挑战不是"让 Agent 变聪明",而是"让 Agent 的输入通道和现实世界正确对齐"。永远区分指令和数据:自然语言适合表达意图和流程,但不适合承载需要精确复现的数据内容。数据应通过文件、剪贴板、API 等侧信道传递。选择正确的抽象层:GUI 级自动化(模拟键盘事件)比 OS 级操作(剪贴板)更低效、更不可靠。能走剪贴板不走逐字输入,能走 API 不走 GUI。Agent 可靠性 = 接口设计:不是模型能力不够,而是我们没有为 Agent 设计合适的 I/O 接口。

2026-06-29 21:16:28 202

原创 Kubernetes Pod频繁OOMKilled但limit明明够用内核Slab内存的隐形杀手

Kubernetes Pod 频繁因OOMKilled重启,但内存使用未达limit限制,问题根源在于内核Slab内存未被监控。排查发现Pod存在大量NFS文件I/O操作,导致dentry/inode缓存累积占用内核内存(kmem),而常规监控仅统计RSS和Cache。解决方案包括:1)提升memory limit;2)优化JVM参数限制堆外内存;3)减少文件I/O操作;4)完善监控指标。总结指出容器OOM需关注working_set_bytes而非仅RSS,Java容器需计算总内存开销,NFS小文件操作易

2026-06-29 10:43:34 389

原创 Agent编排中JSON结构化输出的隐式截断问题深度排查与修复实践

鍦?Harness 鍏眰濉斿疄鎴樹腑锛孏enerator 鐢熸垚鍐呭鍚?Evaluator 鎵撳垎锛屽伓灏斿嚭鐜?Evaluator 杩斿洖鐨?JSON 瑙f瀽澶辫触鈥斺€斾笉鏄牸寮忛敊璇紝鑰屾槸 JSON 涓嶅畬鏁达紝瀛楁鍦ㄤ腑闂磋鎴柇锛?鐪嬭捣鏉ュ儚 token limit锛屼絾 max_tokens 璁剧疆涓?4096锛屽疄闄呰緭鍑哄彧鏈変笉鍒?200 tokens锛岃繙鏈Е鍙婁笂闄愩€?

2026-06-29 10:03:48 171

原创 RAG 检索召回率断崖式下降:向量空间密度污染的经典退化模式

向量检索不是建完就完了— 知识库是活的,文档会增长、分布会漂移、语义空间会变化。RAG 系统上线后必须持续监控召回质量。Golden Set + 自动回归是最低成本的保障手段— 50 组测试用例,每周跑一次,召回率下降自动告警。比线上指标跌了才发现要早得多。单靠 embedding 相似度不可靠第一层:意图路由(限定检索范围)第二层:向量检索(语义匹配)第三层:阈值过滤(去掉低质量结果)第四层:重排序(Reranker 精排)HyDE 是性价比最高的单点优化。

2026-06-25 09:56:01 178

原创 K8s Pod DNS 解析间歇性失败:conntrack 打满引发的线上事故

conntrack 是隐藏杀手— K8s 每个 Service 访问都走 conntrack,高并发必成瓶颈。不只是 DNS,所有跨 Pod 通信都受影响NodeLocal DNSCache = 标配— 生产集群不部署就是在埋雷。官方文档明确推荐,但很多人忽略JVM DNS 默认永久缓存很危险etworkaddress.cache.ttl=-1 在 K8s 动态 IP 环境下会导致 Pod 漂移后永远解析不到新地址。所有 Java 服务必须显式设置 TTL监控前置。

2026-06-24 10:40:33 290

原创 K8s Pod 无法解析外网域名——ndots 引发的 DNS 超时血案

摘要 K8s环境中某Go服务频繁出现DNS解析超时,排查发现是由ndots:5配置导致。当域名少于5个点(如api.external-service.com)时,CoreDNS会先尝试拼接集群内部search域(如.default.svc.cluster.local),导致3次无效查询(每次5秒超时),最终引发高延迟和连接池耗尽。解决方案包括:1)修改Pod的ndots为2;2)代码中使用FQDN(域名末尾加.);3)应用层实现DNS缓存;4)CoreDNS启用autopath插件。推荐组合使用方案1和3,

2026-06-23 10:06:25 212

原创 AI TIPS 网站简介与功能解释

AI TIPS - 城市与历史智能百科平台 AI TIPS是一个结合AI技术的知识平台,提供全国城市介绍和历史事件查询功能。网站采用现代设计风格,支持一键切换查询模式,包含两大核心功能: 城市百科:通过省份导航或搜索查看城市详情,包含地理、历史、美食等结构化信息,并配有互动地图展示; 历史时间线:输入历史事件名称(如"新中国成立"),AI会生成知识卡片与可视化时间线,清晰呈现事件脉络。 平台特色在于AI智能检索、多模态内容呈现(地图/时间线/图文)及权威知识库支持,适用于学生、教师、旅游

2025-10-20 10:49:50 1289

原创 Linux Crond服务

1. crond定义、作用、特点;2. crond配置参数说明;3. crondtab命令方法;4. crond服务的注意事项

2022-10-22 17:49:02 2020

原创 Egg 服务搭建微信公众号的基础服务

Egg 服务搭建微信公众号的基础服务

2022-06-20 11:10:08 814

原创 Yarn安装

前端包依赖工具yarn的安装

2022-05-06 17:16:07 778

原创 圣杯布局与双飞翼布局

圣杯布局与双飞翼布局

2022-04-28 10:04:56 438

原创 UUID VS ID

UUID与ID对比分析

2022-04-27 18:07:51 1295

原创 使得一个DOM元素不显示在浏览器可视范围内(CSS)

使得一个DOM元素不显示在浏览器可视范围内(CSS)

2022-04-19 20:55:50 790

原创 刨析——浏览器如何工作

浏览器可以被认为是使用最为广泛的软件,以下篇幅将介绍浏览器的工作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。

2022-04-19 20:35:43 535

原创 单点登录 SSO

单点登录的几种处理方式以及处理逻辑

2022-04-18 10:59:33 335

原创 HTTP Headers

HTTP Headers定义HTTP Headers种类HTTP Headers使用HTTP Headers配置(方案,内容以及结果示例)

2022-03-02 20:42:36 3466

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除