[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-info":3,"public-articles-page-1":9,"gallery-custom-links":136,"update-pulse-widget":147},{"username":4,"nickname":5,"bio":6,"avatarUrl":7,"email":8},"wgd","翁国栋 · 镜间笔记 ","写代码、看云、发呆，排名不分先后",null,"wengguodong@hotmail.com",{"items":10,"total":133,"page":31,"pageSize":134,"totalPages":135},[11,38,60,77,94,113],{"id":12,"title":13,"summary":14,"tags":15,"coverImage":-1,"status":21,"visibility":22,"seo":23,"allowComments":26,"author":4,"categoryId":27,"createdAt":28,"updatedAt":29,"publishedAt":7,"views":30,"likes":31,"comments":32,"shares":32,"stats":33,"category":34},"663fda43-7479-4d43-8fcf-44dacac2b6e3","智能体(Agent)中红蓝对抗的作用","本文揭示了LLM基金分析Agent普遍存在的过度自信与“谄媚”幻觉，提出通过红蓝对抗机制强化风控，避免盲目追涨。\n蓝方负责量化初判，红方则扮演“毒舌风控官”，利用近一周持仓漂移度、大额资金净流出和历史预测胜率等指标尖锐举证，专门挑刺做空。\n借助红方压迫性证据，蓝方被迫重审初稿，修正动量追涨信号为防守观望，从而有效过滤大模型因季报持仓滞后导致的错误预测。\n该红蓝对抗思维链方法，本质上是用内部审查强行压制AI自嗨，让基金实盘估值与隔天预测在资金背离时仍能保持理性，敬畏风险。",[16,17,18,19,20],"AI智能体","红蓝对抗","Agent","金融科技","Agent 开发","published","public",{"title":7,"description":7,"keywords":24,"slug":25},[16,17,18,19,20],"ai-agent-red-blue-teaming",true,"f7250246-6cda-4333-912d-72e16085be7d","2026-06-29T18:54:34","2026-09-21T20:46:04",656,1,0,{"views":30,"likes":31,"comments":32,"shares":32},{"id":27,"name":35,"color":36,"type":37},"AI相关","#00ff6e","article",{"id":39,"title":40,"summary":41,"tags":42,"coverImage":-1,"status":21,"visibility":22,"seo":47,"allowComments":26,"author":4,"categoryId":51,"createdAt":52,"updatedAt":53,"publishedAt":7,"views":54,"likes":55,"comments":32,"shares":32,"stats":56,"category":57},"5d417ea6-ce53-4dce-ac81-cd660bfd7b7d","如何使用passkey保护你的登录信息","告别繁琐的传统密码，拥抱跨平台无密码身份鉴权，本文详解如何利用非对称加密杜绝钓鱼与撞库风险，为网站快速集成Passkey登录体验。\n深入阐述WebAuthn标准原理，通过设备生成的密钥对实现本地生物识别验证，服务端仅存储公钥和签名计数，彻底解决记忆弱密码难题。\n实战展示基于FastAPI与webauthn库的完整开发流程，涵盖数据库模型设计、注册参数生成（register options）与验证响应、认证选项（authentication options）等核心接口。\n借助Authenticator、1Password等主流密码管理器的云同步能力，跨设备无缝迁移通行密钥，让用户随时安全登录。",[43,44,45,46],"Passkey","通行密钥","账号保护","密码管理",{"title":7,"description":7,"keywords":48,"slug":50},[49],"passkey、通行密钥、passkey 使用方法、保护登录信息","use-passkey-protect-login-data","f1fe85d8-c917-4caa-a1e3-e9a33d4c97da","2026-06-02T18:19:57","2026-09-21T22:18:54",679,3,{"views":54,"likes":55,"comments":32,"shares":32},{"id":51,"name":58,"color":59,"type":37},"日常记录","#007bff",{"id":61,"title":62,"summary":63,"tags":64,"coverImage":-1,"status":21,"visibility":22,"seo":69,"allowComments":26,"author":4,"categoryId":27,"createdAt":72,"updatedAt":73,"publishedAt":7,"views":74,"likes":32,"comments":32,"shares":32,"stats":75,"category":76},"e045494b-9e5e-4e78-9d81-5de2997a2dfc","验证码的尽头是“互相伤害”，用 PoW 拦截 AI 爬虫的底层逻辑","传统验证码依赖“人比机器擅长认知”的前提，通过扭曲字符和拼图来区分真实用户与脚本，但这个前提在 AI 时代已难以为继。\n工作量证明转而要求客户端为每次请求付出硬件算力代价，通过执行 SHA256、Scrypt 等轻量加密谜题让普通用户无感，却使高频爬虫的电力和服务器成本急剧膨胀。\n对于 AI 爬虫而言，PoW 如同景区门票：少量访问开销可忽略，但大规模并发抓取会导致爬虫集群算力耗尽，在经济账上彻底失败，从而保护网站带宽与性能。\n现代 PoW 系统会结合 IP 声誉、访问频率和设备可信度动态调整难度，以降低对低性能设备用户的误伤，体现了个人站点对数据掠夺的主动反抗。",[65,66,67,68],"Web安全","人机验证","PoW","AI爬虫",{"title":7,"description":7,"keywords":70,"slug":71},[],"pow-captcha-block-ai-crawlers","2026-05-27T17:29:34","2026-09-21T20:46:10",453,{"views":74,"likes":32,"comments":32,"shares":32},{"id":27,"name":35,"color":36,"type":37},{"id":78,"title":79,"summary":80,"tags":81,"coverImage":-1,"status":21,"visibility":22,"seo":86,"allowComments":26,"author":4,"categoryId":51,"createdAt":89,"updatedAt":90,"publishedAt":7,"views":91,"likes":31,"comments":32,"shares":32,"stats":92,"category":93},"f741a733-aeaa-4880-a9c8-f1725af6dc81","在SaaS多商户模式下，商户配置如何流畅切换","支付配置一旦更新覆盖，新订单和老退款会因商户主体变更产生严重错位，根源在于操作生命周期不同的矛盾。\n通过将配置改为不可变模型，禁用 UPDATE，每次变更插入新记录并用状态位标识，订单强制冗余支付商户号，形成历史快照与时间轴，为后续溯源留依据。\n路由时比对订单快照与当前生效商户号，一致走全局缓存池高效处理新单，不一致则用归档配置构建临时实例处理老退款，避免污染主池，并通过 Redis Pub\u002FSub 异步预热新配置，消除冷启动延迟。",[82,83,84,85],"Spring Boot","支付系统","SaaS架构","Redis",{"title":7,"description":7,"keywords":87,"slug":88},[],"saas-multi-tenant-config-switch","2026-05-18T14:41:04","2026-09-21T20:46:16",512,{"views":91,"likes":31,"comments":32,"shares":32},{"id":51,"name":58,"color":59,"type":37},{"id":95,"title":96,"summary":97,"tags":98,"coverImage":-1,"status":21,"visibility":22,"seo":104,"allowComments":26,"author":4,"categoryId":51,"createdAt":107,"updatedAt":108,"publishedAt":7,"views":109,"likes":110,"comments":32,"shares":32,"stats":111,"category":112},"712f5a9e-8e93-4086-8f57-e14c0565fa57","从全栈幻觉到业务重塑","通过 AI Agent 的强力辅助，一个后端开发者可以快速突破语言和平台限制，短时间内完成桌面应用、小程序和博客后台等原本需要长期积累才能驾驭的项目，获得前所未有的高产体验。\n这种低门槛的开发模式也带来了强烈焦虑：当写代码本身不再构成壁垒，行业竞争转向拼装速度，开发者原有的技术护城河受到严重冲击，身份危机随之而生。\n在实际踩坑中发现，单纯的笼统需求会让 AI 产出跑偏的结果，只有将业务逻辑细化为精准的步骤和边界，Agent 才能真正成为利器。\n认识到 AI 时代的核心竞争力已从代码实现速度转向对技术可行性判断和业务架构规划能力，重心调整为刻意训练“定义问题”的本领，成为绘制精准蓝图的人而非代码打字员。",[99,100,101,102,103],"程序员","职业规划","技术焦虑","职业转型","产品设计",{"title":7,"description":7,"keywords":105,"slug":106},[],"full-stack-illusion-business-reshaping","2026-04-25T18:58:37","2026-09-19T19:23:08",440,5,{"views":109,"likes":110,"comments":32,"shares":32},{"id":51,"name":58,"color":59,"type":37},{"id":114,"title":115,"summary":116,"tags":117,"coverImage":-1,"status":21,"visibility":22,"seo":122,"allowComments":26,"author":4,"categoryId":125,"createdAt":126,"updatedAt":127,"publishedAt":7,"views":128,"likes":32,"comments":32,"shares":32,"stats":129,"category":130},"64c67eb1-a4bd-4d17-9db4-532c8670e966","微信小程序开发踩坑（二）","BackgroundAudioManager缺少loop循环参数，开发者只能通过onEnded事件手动重新赋值src实现循环，这一路径埋下了卡顿隐患。\n小程序双线程架构下，手动循环需经过JSBridge跨进程通信，音频结束和重播指令在逻辑层与原生层之间来回传递，通常产生100至500毫秒的延迟，造成静音间隙。\n每次重播还会触发系统媒体中心的销毁与重建，包括释放旧音频会话、重新加载资源和刷新锁屏界面，进一步放大了停顿感。\n这三大因素共同作用，使无缝循环成为微信小程序生态中无法靠前端代码弥补的物理级硬伤。",[118,119,120,121],"微信小程序","音频开发","架构设计","踩坑复盘",{"title":7,"description":7,"keywords":123,"slug":124},[],"wxapp-development-pitfalls-part-2","70207177-9847-41c5-acf5-386db9e0bca7","2026-04-17T14:37:28","2026-09-21T23:44:08",417,{"views":128,"likes":32,"comments":32,"shares":32},{"id":125,"name":131,"color":132,"type":37},"踩坑实录","#ff0000",11,6,2,[137],{"title":138,"url":139,"description":140,"icon":7,"type":141,"openInNewTab":142,"status":143,"sortOrder":144,"id":145,"createdAt":146,"updatedAt":146},"问答","\u002Fgames\u002Fjev-qa\u002F","问个问题，判断对错、做个选择，或者评个分。","resource","true","active",10,"6160354f-7611-4408-9c42-11080d90a50d","2026-09-22T02:11:13",[148,150,152,154,156,158,160],{"date":149,"count":32,"articleCount":32,"albumCount":32},"2026-09-16",{"date":151,"count":32,"articleCount":32,"albumCount":32},"2026-09-17",{"date":153,"count":32,"articleCount":32,"albumCount":32},"2026-09-18",{"date":155,"count":32,"articleCount":32,"albumCount":32},"2026-09-19",{"date":157,"count":32,"articleCount":32,"albumCount":32},"2026-09-20",{"date":159,"count":32,"articleCount":32,"albumCount":32},"2026-09-21",{"date":161,"count":32,"articleCount":32,"albumCount":32},"2026-09-22"]