1:"$Sreact.fragment" 2:I[56271,["2545","static/chunks/c16f53c3-391a1f5a73546b11.js","2619","static/chunks/2619-eccd988d1e161df3.js","3353","static/chunks/3353-35c19838f8cf7b3b.js","7177","static/chunks/app/layout-cb4429a7e3e88a9f.js"],"ThemeProviders"] 3:I[41402,["2545","static/chunks/c16f53c3-391a1f5a73546b11.js","2619","static/chunks/2619-eccd988d1e161df3.js","3353","static/chunks/3353-35c19838f8cf7b3b.js","7177","static/chunks/app/layout-cb4429a7e3e88a9f.js"],""] 4:I[91367,["2545","static/chunks/c16f53c3-391a1f5a73546b11.js","2619","static/chunks/2619-eccd988d1e161df3.js","3353","static/chunks/3353-35c19838f8cf7b3b.js","7177","static/chunks/app/layout-cb4429a7e3e88a9f.js"],"KBarSearchProvider"] 5:I[52619,["2619","static/chunks/2619-eccd988d1e161df3.js","2806","static/chunks/app/tags/page-716f271631f278af.js"],""] 6:I[51350,["2545","static/chunks/c16f53c3-391a1f5a73546b11.js","2619","static/chunks/2619-eccd988d1e161df3.js","3353","static/chunks/3353-35c19838f8cf7b3b.js","7177","static/chunks/app/layout-cb4429a7e3e88a9f.js"],"KBarButton"] 12:I[57150,[],""] :HL["/_next/static/css/29ff447a95e95257.css","style"] :HL["/_next/static/css/77af622156c5e021.css","style"] 0:{"P":null,"b":"FUTryh0Sm2lrVLTvF5oMH","p":"","c":["","tags","architecture","page","1"],"i":false,"f":[[["",{"children":["tags",{"children":[["tag","architecture","d"],{"children":["page",{"children":[["page","1","d"],{"children":["__PAGE__",{}]}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/29ff447a95e95257.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/77af622156c5e021.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"zh-cn","className":"scroll-smooth","suppressHydrationWarning":true,"children":[["$","link",null,{"rel":"apple-touch-icon","sizes":"76x76","href":"/static/favicons/apple-touch-icon.png"}],["$","link",null,{"rel":"icon","type":"image/png","sizes":"32x32","href":"/static/favicons/favicon-32x32.png"}],["$","link",null,{"rel":"icon","type":"image/png","sizes":"16x16","href":"/static/favicons/favicon-16x16.png"}],["$","link",null,{"rel":"manifest","href":"/static/favicons/site.webmanifest"}],["$","link",null,{"rel":"mask-icon","href":"/static/favicons/safari-pinned-tab.svg","color":"#5bbad5"}],["$","meta",null,{"name":"msapplication-TileColor","content":"#4f46e5"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"#ffffff"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"#0f172a"}],["$","link",null,{"rel":"alternate","type":"application/rss+xml","href":"/feed.xml"}],["$","body",null,{"className":"bg-white pl-[calc(100vw-100%)] text-black antialiased dark:bg-gray-950 dark:text-white","children":["$","$L2",null,{"children":[["$undefined","$undefined","$undefined",["$","$L3",null,{"async":true,"defer":true,"src":"https://analytics.umami.is/script.js"}],"$undefined","$undefined"],["$","section",null,{"className":"mx-auto max-w-3xl px-4 sm:px-6 xl:max-w-5xl xl:px-0","children":[["$","$L4",null,{"kbarConfig":{"searchDocumentsPath":"/search.json"},"children":[["$","header",null,{"className":"flex items-center w-full bg-white dark:bg-gray-950 justify-between py-10","children":[["$","$L5",null,{"className":"break-words","href":"/","aria-label":"TechLog","children":["$","div",null,{"className":"flex items-center justify-between","children":[["$","div",null,{"className":"mr-3","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","xmlnsXlink":"http://www.w3.org/1999/xlink","width":53.87,"height":43.61,"viewBox":"344.564 330.278 111.737 91.218","children":[["$","defs",null,{"children":[["$","linearGradient",null,{"id":"logo_svg__b","x1":420.97,"x2":420.97,"y1":331.28,"y2":418.5,"gradientUnits":"userSpaceOnUse","children":[["$","stop",null,{"offset":"0%","style":{"stopColor":"#06b6d4","stopOpacity":1}}],["$","stop",null,{"offset":"100%","style":{"stopColor":"#67e8f9","stopOpacity":1}}]]}],["$","linearGradient",null,{"id":"logo_svg__d","x1":377.89,"x2":377.89,"y1":331.28,"y2":418.5,"gradientUnits":"userSpaceOnUse","children":[["$","stop",null,{"offset":"0%","style":{"stopColor":"#06b6d4","stopOpacity":1}}],["$","stop",null,{"offset":"100%","style":{"stopColor":"#67e8f9","stopOpacity":1}}]]}],["$","path",null,{"id":"logo_svg__a","d":"M453.3 331.28v28.57l-64.66 58.65v-30.08z"}],["$","path",null,{"id":"logo_svg__c","d":"M410.23 331.28v28.57l-64.67 58.65v-30.08z"}]]}],["$","use",null,{"xlinkHref":"#logo_svg__a","fill":"url(#logo_svg__b)"}],["$","use",null,{"xlinkHref":"#logo_svg__c","fill":"url(#logo_svg__d)"}]]}]}],["$","div",null,{"className":"hidden h-6 text-2xl font-semibold sm:block","children":"TechLog"}]]}]}],["$","div",null,{"className":"flex items-center space-x-4 leading-5 sm:-mr-6 sm:space-x-6","children":[["$","div",null,{"className":"no-scrollbar hidden max-w-40 items-center gap-x-4 overflow-x-auto sm:flex md:max-w-72 lg:max-w-96","children":[["$","$L5","博客",{"className":"hover:text-primary-500 dark:hover:text-primary-400 m-1 font-medium text-gray-900 dark:text-gray-100","href":"/blog.html","children":"博客"}],["$","$L5","标签",{"className":"hover:text-primary-500 dark:hover:text-primary-400 m-1 font-medium text-gray-900 dark:text-gray-100","href":"/tags.html","children":"标签"}],["$","$L5","项目",{"className":"hover:text-primary-500 dark:hover:text-primary-400 m-1 font-medium text-gray-900 dark:text-gray-100","href":"/projects.html","children":"项目"}],["$","$L5","关于",{"className":"hover:text-primary-500 dark:hover:text-primary-400 m-1 font-medium text-gray-900 dark:text-gray-100","href":"/about.html","children":"关于"}]]}],["$","$L6",null,{"aria-label":"Search","children":"$L7"}],"$L8","$L9"]}]]}],"$La"]}],"$Lb"]}]]}]}]]}]]}],{"children":["tags","$Lc",{"children":[["tag","architecture","d"],"$Ld",{"children":["page","$Le",{"children":[["page","1","d"],"$Lf",{"children":["__PAGE__","$L10",{},null,false]},null,false]},null,false]},null,false]},null,false]},null,false],"$L11",false]],"m":"$undefined","G":["$12",[]],"s":false,"S":true} 13:I[49217,["2545","static/chunks/c16f53c3-391a1f5a73546b11.js","2619","static/chunks/2619-eccd988d1e161df3.js","3353","static/chunks/3353-35c19838f8cf7b3b.js","7177","static/chunks/app/layout-cb4429a7e3e88a9f.js"],"default"] 14:I[394,["2545","static/chunks/c16f53c3-391a1f5a73546b11.js","2619","static/chunks/2619-eccd988d1e161df3.js","3353","static/chunks/3353-35c19838f8cf7b3b.js","7177","static/chunks/app/layout-cb4429a7e3e88a9f.js"],"default"] 15:I[9766,[],""] 16:I[98924,[],""] 18:I[24431,[],"OutletBoundary"] 1a:I[15278,[],"AsyncMetadataOutlet"] 1c:I[24431,[],"ViewportBoundary"] 1e:I[24431,[],"MetadataBoundary"] 1f:"$Sreact.suspense" 7:["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","className":"hover:text-primary-500 dark:hover:text-primary-400 h-6 w-6 text-gray-900 dark:text-gray-100","children":["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"}]}] 8:["$","$L13",null,{}] 9:["$","$L14",null,{}] a:["$","main",null,{"className":"mb-auto","children":["$","$L15",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L16",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","div",null,{"className":"flex flex-col items-start justify-start md:mt-24 md:flex-row md:items-center md:justify-center md:space-x-6","children":[["$","div",null,{"className":"space-x-2 pt-6 pb-8 md:space-y-5","children":["$","h1",null,{"className":"text-6xl leading-9 font-extrabold tracking-tight text-gray-900 md:border-r-2 md:px-6 md:text-8xl md:leading-14 dark:text-gray-100","children":"404"}]}],["$","div",null,{"className":"max-w-md","children":[["$","p",null,{"className":"mb-4 text-xl leading-normal font-bold md:text-2xl","children":"Sorry we couldn't find this page."}],["$","p",null,{"className":"mb-8","children":"But dont worry, you can find plenty of other things on our homepage."}],["$","$L5",null,{"className":"focus:shadow-outline-blue inline rounded-lg border border-transparent bg-blue-600 px-4 py-2 text-sm leading-5 font-medium text-white shadow-xs transition-colors duration-150 hover:bg-blue-700 focus:outline-hidden dark:hover:bg-blue-500","href":"/","children":"Back to homepage"}]]}]]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}] b:["$","footer",null,{"children":["$","div",null,{"className":"mt-16 flex flex-col items-center","children":[["$","div",null,{"className":"mb-3 flex space-x-4","children":[["$","a",null,{"className":"text-sm text-gray-500 transition hover:text-gray-600","target":"_blank","rel":"noopener noreferrer","href":"mailto:birenwenmou@qq.com","children":[["$","span",null,{"className":"sr-only","children":"mail"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 20 20","className":"hover:text-primary-500 dark:hover:text-primary-400 fill-current text-gray-700 dark:text-gray-200 h-6 w-6","children":[["$","title",null,{"children":"Mail"}],["$","path",null,{"d":"M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z"}],["$","path",null,{"d":"M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z"}]]}]]}],["$","a",null,{"className":"text-sm text-gray-500 transition hover:text-gray-600","target":"_blank","rel":"noopener noreferrer","href":"https://github.com/joker1point","children":[["$","span",null,{"className":"sr-only","children":"github"}],["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","viewBox":"0 0 24 24","className":"hover:text-primary-500 dark:hover:text-primary-400 fill-current text-gray-700 dark:text-gray-200 h-6 w-6","children":[["$","title",null,{"children":"GitHub"}],["$","path",null,{"d":"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"}]]}]]}],null,null,null,null,null,null,null,null,null]}],["$","div",null,{"className":"mb-2 flex space-x-2 text-sm text-gray-500 dark:text-gray-400","children":[["$","div",null,{"children":"眠月"}],["$","div",null,{"children":" • "}],["$","div",null,{"children":"© 2026"}],["$","div",null,{"children":" • "}],["$","$L5",null,{"className":"break-words","href":"/","children":"TechLog"}]]}],["$","div",null,{"className":"mb-8 text-sm text-gray-500 dark:text-gray-400","children":["$","a",null,{"className":"break-words","target":"_blank","rel":"noopener noreferrer","href":"https://github.com/joker1point","children":"GitHub"}]}]]}]}] c:["$","$1","c",{"children":[null,["$","$L15",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L16",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}] d:["$","$1","c",{"children":[null,["$","$L15",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L16",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}] e:["$","$1","c",{"children":[null,["$","$L15",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L16",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}] f:["$","$1","c",{"children":[null,["$","$L15",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L16",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}] 10:["$","$1","c",{"children":["$L17",null,["$","$L18",null,{"children":["$L19",["$","$L1a",null,{"promise":"$@1b"}]]}]]}] 11:["$","$1","h",{"children":[null,[["$","$L1c",null,{"children":"$L1d"}],null],["$","$L1e",null,{"children":["$","div",null,{"hidden":true,"children":["$","$1f",null,{"fallback":null,"children":"$L20"}]}]}]]}] 21:I[97979,["2619","static/chunks/2619-eccd988d1e161df3.js","6775","static/chunks/6775-3fc538fd0daf2399.js","1929","static/chunks/app/tags/%5Btag%5D/page/%5Bpage%5D/page-f41c4dd79595bb47.js"],"default"] 17:["$","$L21",null,{"posts":[{"title":"我的 Agent 架构演进:Skill 压平 Sub Agent,Restatement 又把它拉了回来","date":"2026-09-15T00:00:00.000Z","tags":["agent","ai","architecture","context-engineering"],"draft":false,"summary":"从初代「主 Agent 编排 + 子 Agent 分工」三层架构,到用 Skill 替代冗余 Sub Agent 压平架构降低 Token,再到长任务中撞上步骤合并跳过、规则失效、输出同质化,最终靠 Restatement 机制与 Sub Agent 回归分头解决——一条完整的踩坑迭代链。","type":"Blog","readingTime":{"text":"4 min read","minutes":3.825,"time":229500,"words":765},"wordCount":765,"slug":"agent-architecture-evolution-skill-restatement","path":"blog/agent-architecture-evolution-skill-restatement","filePath":"blog/agent-architecture-evolution-skill-restatement.mdx","toc":[{"value":"一、AI 开发核心认知框架","url":"#一ai-开发核心认知框架","depth":2},{"value":"二、各框架/阶段对应问题及解决方案","url":"#二各框架阶段对应问题及解决方案","depth":2},{"value":"(一)整体开发现状及核心痛点","url":"#一整体开发现状及核心痛点","depth":3},{"value":"(二)初代 Plan and Execute 三层架构(主Agent编排+子Agent分工)","url":"#二初代-plan-and-execute-三层架构主agent编排子agent分工","depth":3},{"value":"(三)架构压平后(Skill替代Sub Agent)","url":"#三架构压平后skill替代sub-agent","depth":3},{"value":"三、总结","url":"#三总结","depth":2}],"structuredData":{"@context":"https://schema.org","@type":"BlogPosting","headline":"我的 Agent 架构演进:Skill 压平 Sub Agent,Restatement 又把它拉了回来","datePublished":"2026-09-15T00:00:00.000Z","dateModified":"2026-09-15T00:00:00.000Z","description":"从初代「主 Agent 编排 + 子 Agent 分工」三层架构,到用 Skill 替代冗余 Sub Agent 压平架构降低 Token,再到长任务中撞上步骤合并跳过、规则失效、输出同质化,最终靠 Restatement 机制与 Sub Agent 回归分头解决——一条完整的踩坑迭代链。","image":"/static/images/twitter-card.png","url":"https://techlog-18328.app.workbuddy.host/blog/agent-architecture-evolution-skill-restatement"}},{"title":"如何给一个陌生开源项目做架构分析,并找到能合进去的贡献点","date":"2026-09-15T00:00:00.000Z","tags":["open-source","agent","architecture","python"],"draft":false,"summary":"以 MoneyPrinterTurbo 为例,按 7 个维度(任务规划、多 Agent 协作、上下文管理、Human-in-the-loop、评估框架、工具路由、Streaming)系统拆解一个陌生项目的架构缺陷,从中筛出 Top 3 贡献方向,并给出方案骨架与给维护者的英文沟通草稿。","type":"Blog","readingTime":{"text":"21 min read","minutes":20.17,"time":1210200,"words":4034},"wordCount":4034,"slug":"mpt-open-source-contribution-analysis","path":"blog/mpt-open-source-contribution-analysis","filePath":"blog/mpt-open-source-contribution-analysis.mdx","toc":[{"value":"Top 3 贡献方向:① 任务断点续跑(Checkpoint/Resume)② 官方 MCP Server ③ Issue #1157 批量脚本去重;前两者来自架构分析,第三个是 2~3 天可合入的信任建立型 PR","url":"#top-3-贡献方向-任务断点续跑checkpointresume-官方-mcp-server--issue-1157-批量脚本去重前两者来自架构分析第三个是-23-天可合入的信任建立型-pr","depth":3},{"value":"准备工作:项目理解","url":"#准备工作项目理解","depth":2},{"value":"目录结构(depth=3,★ 为核心模块)","url":"#目录结构depth3-为核心模块","depth":3},{"value":"核心循环与规划范式","url":"#核心循环与规划范式","depth":3},{"value":"分析维度一:Issue 列表筛选","url":"#分析维度一issue-列表筛选","depth":2},{"value":"分析维度二:架构层缺陷分析","url":"#分析维度二架构层缺陷分析","depth":2},{"value":"1. 任务规划","url":"#1-任务规划","depth":3},{"value":"2. 多 Agent 协作","url":"#2-多-agent-协作","depth":3},{"value":"3. 上下文管理策略","url":"#3-上下文管理策略","depth":3},{"value":"4. Human-in-the-loop 机制","url":"#4-human-in-the-loop-机制","depth":3},{"value":"5. Agent 评估框架","url":"#5-agent-评估框架","depth":3},{"value":"6. Tool 检索与路由","url":"#6-tool-检索与路由","depth":3},{"value":"7. Streaming 与中间状态可见性","url":"#7-streaming-与中间状态可见性","depth":3},{"value":"最终输出:Top 3 贡献建议","url":"#最终输出top-3-贡献建议","depth":2},{"value":"第 1 名:任务 Checkpoint 与断点续跑机制","url":"#第-1-名任务-checkpoint-与断点续跑机制","depth":3},{"value":"第 2 名:官方 MCP Server 集成","url":"#第-2-名官方-mcp-server-集成","depth":3},{"value":"第 3 名:Issue #1157 批量多视频脚本去重","url":"#第-3-名issue-1157-批量多视频脚本去重","depth":3},{"value":"附:Top 1 方向的技术方案骨架(供你启动第二阶段)","url":"#附top-1-方向的技术方案骨架供你启动第二阶段","depth":2}],"structuredData":{"@context":"https://schema.org","@type":"BlogPosting","headline":"如何给一个陌生开源项目做架构分析,并找到能合进去的贡献点","datePublished":"2026-09-15T00:00:00.000Z","dateModified":"2026-09-15T00:00:00.000Z","description":"以 MoneyPrinterTurbo 为例,按 7 个维度(任务规划、多 Agent 协作、上下文管理、Human-in-the-loop、评估框架、工具路由、Streaming)系统拆解一个陌生项目的架构缺陷,从中筛出 Top 3 贡献方向,并给出方案骨架与给维护者的英文沟通草稿。","image":"/static/images/twitter-card.png","url":"https://techlog-18328.app.workbuddy.host/blog/mpt-open-source-contribution-analysis"}},{"title":"成本治理:付费 API 的计费安全与双重试状态机设计","date":"2026-09-06T00:00:00.000Z","tags":["engineering","api","cost","retry","billing","architecture"],"draft":false,"summary":"以 OpenAI 文生图 API 为例,解析生成请求与图片下载为什么必须是两个独立重试状态机:关键差异在计费语义——一个是未确认态可能重复扣费,一个是已付费的幂等免费操作。","type":"Blog","readingTime":{"text":"3 min read","minutes":2.94,"time":176400,"words":588},"wordCount":588,"slug":"billing-safety-retry-state-machine","path":"blog/billing-safety-retry-state-machine","filePath":"blog/billing-safety-retry-state-machine.mdx","toc":[{"value":"成本治理:付费 API 的计费安全与双重试状态机设计","url":"#成本治理付费-api-的计费安全与双重试状态机设计","depth":2},{"value":"状态机一:生成请求(_request_openai_image,L1290)","url":"#状态机一生成请求_request_openai_imagel1290","depth":2},{"value":"状态机二:图片下载(_openai_image_download_bytes,L1202)","url":"#状态机二图片下载_openai_image_download_bytesl1202","depth":2},{"value":"为什么必须是两个状态机","url":"#为什么必须是两个状态机","depth":2},{"value":"总结","url":"#总结","depth":2}],"structuredData":{"@context":"https://schema.org","@type":"BlogPosting","headline":"成本治理:付费 API 的计费安全与双重试状态机设计","datePublished":"2026-09-06T00:00:00.000Z","dateModified":"2026-09-06T00:00:00.000Z","description":"以 OpenAI 文生图 API 为例,解析生成请求与图片下载为什么必须是两个独立重试状态机:关键差异在计费语义——一个是未确认态可能重复扣费,一个是已付费的幂等免费操作。","image":"/static/images/twitter-card.png","url":"https://techlog-18328.app.workbuddy.host/blog/billing-safety-retry-state-machine"}},{"title":"如何快速接手一个项目并构建深度项目认知","date":"2026-09-06T00:00:00.000Z","tags":["onboarding","engineering","architecture","methodology","agent"],"draft":false,"summary":"接手陌生项目的四阶段方法论:宏观定向(1-2小时)→ 架构建模(半天)→ 运行验证(半天)→ 持续深化。12 个可执行步骤,配合 agent 技能栈实现认知加速。","type":"Blog","readingTime":{"text":"4 min read","minutes":3.055,"time":183300,"words":611},"wordCount":611,"slug":"onboarding-project-deep-understanding","path":"blog/onboarding-project-deep-understanding","filePath":"blog/onboarding-project-deep-understanding.mdx","toc":[{"value":"如何快速接手一个项目并构建深度项目认知","url":"#如何快速接手一个项目并构建深度项目认知","depth":2},{"value":"阶段一:宏观定向(1-2 小时)","url":"#阶段一宏观定向1-2-小时","depth":2},{"value":"阶段二:架构建模(半天)","url":"#阶段二架构建模半天","depth":2},{"value":"阶段三:运行验证(半天)","url":"#阶段三运行验证半天","depth":2},{"value":"阶段四:持续深化","url":"#阶段四持续深化","depth":2},{"value":"关键原则","url":"#关键原则","depth":2},{"value":"技能栈覆盖","url":"#技能栈覆盖","depth":2}],"structuredData":{"@context":"https://schema.org","@type":"BlogPosting","headline":"如何快速接手一个项目并构建深度项目认知","datePublished":"2026-09-06T00:00:00.000Z","dateModified":"2026-09-06T00:00:00.000Z","description":"接手陌生项目的四阶段方法论:宏观定向(1-2小时)→ 架构建模(半天)→ 运行验证(半天)→ 持续深化。12 个可执行步骤,配合 agent 技能栈实现认知加速。","image":"/static/images/twitter-card.png","url":"https://techlog-18328.app.workbuddy.host/blog/onboarding-project-deep-understanding"}},{"title":"Workflow vs Agent:用 7 维度框架定位你的项目","date":"2026-09-06T00:00:00.000Z","tags":["ai","agent","workflow","architecture","llm"],"draft":false,"summary":"以 MoneyPrinterTurbo 为例,用 7 个 agent 架构维度审视一个固定管线项目:它几乎一个都不占,但这不是缺陷,而是项目性质使然。能说清\"为什么这里不需要 agent\",比硬说\"这里有 agent\"更显研究深度。","type":"Blog","readingTime":{"text":"6 min read","minutes":5.25,"time":315000,"words":1050},"wordCount":1050,"slug":"workflow-vs-agent-7-dimensions","path":"blog/workflow-vs-agent-7-dimensions","filePath":"blog/workflow-vs-agent-7-dimensions.mdx","toc":[{"value":"Workflow vs Agent:用 7 维度框架定位你的项目","url":"#workflow-vs-agent用-7-维度框架定位你的项目","depth":2},{"value":"前提纠正:MoneyPrinterTurbo 不是 Agent 项目,这 7 个维度大多不适用","url":"#前提纠正moneyprinterturbo-不是-agent-项目这-7-个维度大多不适用","depth":2},{"value":"真问题:你的 agent 深度证据链目前是空的","url":"#真问题你的-agent-深度证据链目前是空的","depth":2},{"value":"1. 把 7 维度框架用在正确的对象上","url":"#1-把-7-维度框架用在正确的对象上","depth":3},{"value":"2. LiveTalking 才是 7 维度的主战场","url":"#2-livetalking-才是-7-维度的主战场","depth":3},{"value":"3. 如果 agent 线必须马上有东西","url":"#3-如果-agent-线必须马上有东西","depth":3},{"value":"面试话术(如果被问\"你的 PR 没体现 agent 研究\")","url":"#面试话术如果被问你的-pr-没体现-agent-研究","depth":2}],"structuredData":{"@context":"https://schema.org","@type":"BlogPosting","headline":"Workflow vs Agent:用 7 维度框架定位你的项目","datePublished":"2026-09-06T00:00:00.000Z","dateModified":"2026-09-06T00:00:00.000Z","description":"以 MoneyPrinterTurbo 为例,用 7 个 agent 架构维度审视一个固定管线项目:它几乎一个都不占,但这不是缺陷,而是项目性质使然。能说清\"为什么这里不需要 agent\",比硬说\"这里有 agent\"更显研究深度。","image":"/static/images/twitter-card.png","url":"https://techlog-18328.app.workbuddy.host/blog/workflow-vs-agent-7-dimensions"}},{"title":"从程序员到初级架构师的思考路径","date":"2026-06-18T00:00:00.000Z","tags":["architecture","engineering","career","opinion","mindset"],"draft":false,"summary":"编程语言只是实现模块功能的方式,而模块功能是整体架构的一部分。理解架构的本质——它是什么、影响了什么、为什么这样设计、遇到了哪些场景和问题——再思考用什么工具解决这些实际问题。当测试通过、功能正常、日志正常,你就已经是一位初级架构师了。","type":"Blog","readingTime":{"text":"6 min read","minutes":5.475,"time":328500,"words":1095},"wordCount":1095,"slug":"from-developer-to-junior-architect","path":"blog/from-developer-to-junior-architect","filePath":"blog/from-developer-to-junior-architect.mdx","toc":[{"value":"从程序员到初级架构师的思考路径","url":"#从程序员到初级架构师的思考路径","depth":2},{"value":"理解架构的本质","url":"#理解架构的本质","depth":3},{"value":"从理解到实践","url":"#从理解到实践","depth":3},{"value":"初级架构师的标准","url":"#初级架构师的标准","depth":3},{"value":"底层设计:为系统膨胀预留空间","url":"#底层设计为系统膨胀预留空间","depth":3}],"structuredData":{"@context":"https://schema.org","@type":"BlogPosting","headline":"从程序员到初级架构师的思考路径","datePublished":"2026-06-18T00:00:00.000Z","dateModified":"2026-06-18T00:00:00.000Z","description":"编程语言只是实现模块功能的方式,而模块功能是整体架构的一部分。理解架构的本质——它是什么、影响了什么、为什么这样设计、遇到了哪些场景和问题——再思考用什么工具解决这些实际问题。当测试通过、功能正常、日志正常,你就已经是一位初级架构师了。","image":"/static/images/twitter-card.png","url":"https://techlog-18328.app.workbuddy.host/blog/from-developer-to-junior-architect"}},{"title":"RAG 链路全解析:从文档入库到混合记忆的实战架构","date":"2026-06-04T00:00:00.000Z","tags":["rag","ai","llm","embedding","chromadb","nodejs","architecture","engineering"],"draft":false,"summary":"详述 RAG(检索增强生成)的完整技术链路,包括文档入库、向量化、召回重排、Prompt 拼接,以及基于 Node.js + ChromaDB + SQLite 的三层混合记忆进阶方案。","type":"Blog","readingTime":{"text":"15 min read","minutes":14.405,"time":864300,"words":2881},"wordCount":2881,"slug":"rag-pipeline-architecture","path":"blog/rag-pipeline-architecture","filePath":"blog/rag-pipeline-architecture.mdx","toc":[{"value":"引言:为什么需要重新思考 RAG?","url":"#引言为什么需要重新思考-rag","depth":2},{"value":"第一部分:基础 RAG 链路回顾","url":"#第一部分基础-rag-链路回顾","depth":2},{"value":"第二部分:三层混合记忆架构","url":"#第二部分三层混合记忆架构","depth":2},{"value":"架构全景图","url":"#架构全景图","depth":3},{"value":"第一层:全量留存(底片层)","url":"#第一层全量留存底片层","depth":3},{"value":"第二层:滚动摘要(摘要层)","url":"#第二层滚动摘要摘要层","depth":3},{"value":"第三层:RAG 记忆(向量层)","url":"#第三层rag-记忆向量层","depth":3},{"value":"第三部分:混合检索策略(三路召回 + RRF)","url":"#第三部分混合检索策略三路召回--rrf","depth":2},{"value":"三路召回通道","url":"#三路召回通道","depth":3},{"value":"RRF 融合排序算法","url":"#rrf-融合排序算法","depth":3},{"value":"第四部分:动态状态引擎(三层 Prompt 叠加)","url":"#第四部分动态状态引擎三层-prompt-叠加","depth":2},{"value":"三层结构详解","url":"#三层结构详解","depth":3},{"value":"情绪状态引擎的实现","url":"#情绪状态引擎的实现","depth":3},{"value":"第五部分:完整技术栈","url":"#第五部分完整技术栈","depth":2},{"value":"后端核心","url":"#后端核心","depth":3},{"value":"AI 与检索层","url":"#ai-与检索层","depth":3},{"value":"数据加密","url":"#数据加密","depth":3},{"value":"第六部分:优化建议与展望","url":"#第六部分优化建议与展望","depth":2},{"value":"1. 向量库的可扩展性","url":"#1-向量库的可扩展性","depth":3},{"value":"2. 重排序层(Reranker)的引入","url":"#2-重排序层reranker的引入","depth":3},{"value":"3. SQLite 性能优化","url":"#3-sqlite-性能优化","depth":3},{"value":"4. 异步写入队列","url":"#4-异步写入队列","depth":3},{"value":"结语","url":"#结语","depth":2}],"structuredData":{"@context":"https://schema.org","@type":"BlogPosting","headline":"RAG 链路全解析:从文档入库到混合记忆的实战架构","datePublished":"2026-06-04T00:00:00.000Z","dateModified":"2026-06-04T00:00:00.000Z","description":"详述 RAG(检索增强生成)的完整技术链路,包括文档入库、向量化、召回重排、Prompt 拼接,以及基于 Node.js + ChromaDB + SQLite 的三层混合记忆进阶方案。","image":"/static/images/twitter-card.png","url":"https://techlog-18328.app.workbuddy.host/blog/rag-pipeline-architecture"}}],"initialDisplayPosts":["$17:props:posts:0","$17:props:posts:1","$17:props:posts:2","$17:props:posts:3","$17:props:posts:4"],"pagination":{"currentPage":1,"totalPages":2},"title":"Architecture"}] 1d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 19:null 1b:{"metadata":[["$","title","0",{"children":"TechLog"}],["$","meta","1",{"name":"description","content":"AI Agent 工程化实践复盘:架构设计、容错与可靠性、上下文工程与成本治理。"}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","meta","3",{"name":"googlebot","content":"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"}],["$","link","4",{"rel":"canonical","href":"https://techlog-18328.app.workbuddy.host/tags/architecture/page/1"}],["$","link","5",{"rel":"alternate","type":"application/rss+xml","href":"https://techlog-18328.app.workbuddy.host/feed.xml"}],["$","meta","6",{"property":"og:title","content":"TechLog"}],["$","meta","7",{"property":"og:description","content":"AI Agent 工程化实践复盘:架构设计、容错与可靠性、上下文工程与成本治理。"}],["$","meta","8",{"property":"og:url","content":"https://techlog-18328.app.workbuddy.host/tags/architecture/page/1"}],["$","meta","9",{"property":"og:site_name","content":"TechLog"}],["$","meta","10",{"property":"og:locale","content":"zh_CN"}],["$","meta","11",{"property":"og:image","content":"https://techlog-18328.app.workbuddy.host/static/images/twitter-card.png"}],["$","meta","12",{"property":"og:type","content":"website"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"TechLog"}],["$","meta","15",{"name":"twitter:description","content":"AI Agent 工程化实践复盘:架构设计、容错与可靠性、上下文工程与成本治理。"}],["$","meta","16",{"name":"twitter:image","content":"https://techlog-18328.app.workbuddy.host/static/images/twitter-card.png"}]],"error":null,"digest":"$undefined"} 20:"$1b:metadata"