{"@attributes":{"version":"2.0"},"channel":{"title":"MyPrototypeWhat Blog","description":"A frontend developer's blog about React, JavaScript, and web technologies.","link":"https:\/\/myprototypewhat.cn","item":[{"title":"ContextChef (8): Five Extension Points in the Compile Pipeline","link":"https:\/\/myprototypewhat.cn\/context-chef-8-hooks-en","guid":"https:\/\/myprototypewhat.cn\/context-chef-8-hooks-en","description":"onBeforeCompress, onCompress, onMemoryUpdate, onBeforeCompile, transformContext \u2014 each hook is a precise intervention window, letting you extend compile behavior without touching the library internals.","pubDate":"Thu, 12 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (8)\uff1a\u7f16\u8bd1\u7ba1\u9053\u91cc\u7684\u4e94\u4e2a\u6269\u5c55\u70b9","link":"https:\/\/myprototypewhat.cn\/context-chef-8-hooks","guid":"https:\/\/myprototypewhat.cn\/context-chef-8-hooks","description":"onBeforeCompress\u3001onCompress\u3001onMemoryUpdate\u3001onBeforeCompile\u3001transformContext\u2014\u2014\u6bcf\u4e2a Hook \u90fd\u662f\u4e00\u4e2a\u7cbe\u786e\u7684\u5e72\u9884\u7a97\u53e3\uff0c\u8ba9\u4f60\u5728\u4e0d\u6539\u52a8\u5e93\u5185\u90e8\u7684\u60c5\u51b5\u4e0b\u6269\u5c55\u7f16\u8bd1\u884c\u4e3a\u3002","pubDate":"Thu, 12 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (7): The Provider Adapter Layer \u2014 Let Differences Stop at Compile Time","link":"https:\/\/myprototypewhat.cn\/context-chef-7-adapters-en","guid":"https:\/\/myprototypewhat.cn\/context-chef-7-adapters-en","description":"The adapter layer's design angle: provider differences should be absorbed inside compile(), not leak into business logic. And how this design helps you escape vendor lock-in.","pubDate":"Wed, 11 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (7)\uff1aProvider \u9002\u914d\u5c42\u2014\u2014\u8ba9\u5dee\u5f02\u6b62\u4e8e\u7f16\u8bd1\u5c42","link":"https:\/\/myprototypewhat.cn\/context-chef-7-adapters","guid":"https:\/\/myprototypewhat.cn\/context-chef-7-adapters","description":"\u9002\u914d\u5c42\u7684\u8bbe\u8ba1\u89d2\u5ea6\uff1a\u4f9b\u5e94\u5546\u5dee\u5f02\u5e94\u8be5\u5728 compile() \u5185\u90e8\u6d88\u5316\uff0c\u4e0d\u5e94\u8be5\u6cc4\u6f0f\u5230\u4e1a\u52a1\u903b\u8f91\u91cc\u3002\u4ee5\u53ca\u8fd9\u4e2a\u8bbe\u8ba1\u5982\u4f55\u5e2e\u4f60\u9003\u79bb\u4f9b\u5e94\u5546\u9501\u5b9a\u3002","pubDate":"Wed, 11 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (6): Snapshot & Restore \u2014 Capture Everything That Determines the Next Compile","link":"https:\/\/myprototypewhat.cn\/context-chef-6-snapshot-en","guid":"https:\/\/myprototypewhat.cn\/context-chef-6-snapshot-en","description":"Snapshot's design angle: capture only dynamic state, not static configuration \u2014 that boundary is intentional, not lazy. And its relationship with the 'keep error records' principle.","pubDate":"Tue, 10 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (6)\uff1aSnapshot & Restore\u2014\u2014\u6355\u83b7\u51b3\u5b9a\u4e0b\u6b21\u7f16\u8bd1\u7684\u4e00\u5207","link":"https:\/\/myprototypewhat.cn\/context-chef-6-snapshot","guid":"https:\/\/myprototypewhat.cn\/context-chef-6-snapshot","description":"Snapshot \u7684\u8bbe\u8ba1\u89d2\u5ea6\uff1a\u53ea\u6355\u83b7\u52a8\u6001\u72b6\u6001\uff0c\u4e0d\u6355\u83b7\u9759\u6001\u914d\u7f6e\u2014\u2014\u8fd9\u4e2a\u8fb9\u754c\u4e0d\u662f\u5077\u61d2\uff0c\u662f\u6709\u610f\u4e3a\u4e4b\u3002\u4ee5\u53ca\u5b83\u548c\u300c\u4fdd\u7559\u9519\u8bef\u8bb0\u5f55\u300d\u539f\u5219\u4e4b\u95f4\u7684\u5173\u7cfb\u3002","pubDate":"Tue, 10 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (5): Memory \u2014 Zero-Cost Reads, Structured Writes","link":"https:\/\/myprototypewhat.cn\/context-chef-5-core-memory-en","guid":"https:\/\/myprototypewhat.cn\/context-chef-5-core-memory-en","description":"Memory's design angle: persistent memory should appear automatically at compile() time without the developer manually injecting it each turn. And why the write path should determine storage tier, not the model.","pubDate":"Mon, 09 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (5)\uff1aMemory\u2014\u2014\u8bfb\u53d6\u96f6\u6210\u672c\uff0c\u5199\u5165\u7ed3\u6784\u5316","link":"https:\/\/myprototypewhat.cn\/context-chef-5-core-memory","guid":"https:\/\/myprototypewhat.cn\/context-chef-5-core-memory","description":"Memory \u7684\u8bbe\u8ba1\u89d2\u5ea6\uff1a\u8ba9\u6301\u4e45\u8bb0\u5fc6\u5728 compile() \u65f6\u81ea\u52a8\u51fa\u73b0\uff0c\u4e0d\u9700\u8981\u5f00\u53d1\u8005\u6bcf\u6b21\u624b\u52a8\u6ce8\u5165\uff1b\u5199\u5165\u8def\u5f84\u51b3\u5b9a\u5b58\u50a8\u5c42\u7ea7\uff0c\u800c\u4e0d\u662f\u8ba9\u6a21\u578b\u51b3\u5b9a\u3002","pubDate":"Mon, 09 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (4): Offloader\/VFS \u2014 Relocate Information, Don't Destroy It","link":"https:\/\/myprototypewhat.cn\/context-chef-4-offloader-vfs-en","guid":"https:\/\/myprototypewhat.cn\/context-chef-4-offloader-vfs-en","description":"The design angle for large output management: truncation is a last resort; the URI pointer is the core idea \u2014 tell the model where the full content is, rather than pretending it doesn't exist.","pubDate":"Sun, 08 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (4)\uff1aOffloader\/VFS\u2014\u2014\u4e0d\u7834\u574f\u4fe1\u606f\uff0c\u53ea\u642c\u79fb\u4fe1\u606f","link":"https:\/\/myprototypewhat.cn\/context-chef-4-offloader-vfs","guid":"https:\/\/myprototypewhat.cn\/context-chef-4-offloader-vfs","description":"\u5927\u8f93\u51fa\u6cbb\u7406\u7684\u8bbe\u8ba1\u89d2\u5ea6\uff1a\u622a\u65ad\u662f\u4e0d\u5f97\u5df2\uff0cURI \u6307\u9488\u624d\u662f\u6838\u5fc3\u2014\u2014\u8ba9\u6a21\u578b\u77e5\u9053\u5b8c\u6574\u5185\u5bb9\u5728\u54ea\u91cc\uff0c\u800c\u4e0d\u662f\u5047\u88c5\u5b83\u4e0d\u5b58\u5728\u3002","pubDate":"Sun, 08 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (3): Pruner \u2014 Decoupling Tool Registration from Routing","link":"https:\/\/myprototypewhat.cn\/context-chef-3-pruner-en","guid":"https:\/\/myprototypewhat.cn\/context-chef-3-pruner-en","description":"The real cause of tool hallucinations, Manus's Mask Don't Remove principle, and Pruner's design angle: registration is one-time, routing is a per-turn decision.","pubDate":"Sat, 07 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (3)\uff1aPruner\u2014\u2014\u628a\u5de5\u5177\u6ce8\u518c\u548c\u8def\u7531\u5f7b\u5e95\u5206\u5f00","link":"https:\/\/myprototypewhat.cn\/context-chef-3-pruner","guid":"https:\/\/myprototypewhat.cn\/context-chef-3-pruner","description":"\u5de5\u5177\u5e7b\u89c9\u7684\u771f\u6b63\u6839\u56e0\uff0cManus \u7684 Mask Don't Remove \u539f\u5219\uff0c\u4ee5\u53ca Pruner \u7684\u8bbe\u8ba1\u89d2\u5ea6\uff1a\u6ce8\u518c\u662f\u4e00\u6b21\u6027\u7684\uff0c\u8def\u7531\u662f\u6bcf\u8f6e\u7684\u51b3\u7b56\u3002","pubDate":"Sat, 07 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (2): Janitor \u2014 Separating Trigger Logic from Compression Policy","link":"https:\/\/myprototypewhat.cn\/context-chef-2-janitor-en","guid":"https:\/\/myprototypewhat.cn\/context-chef-2-janitor-en","description":"Janitor's design angle isn't 'compress history for you' \u2014 it's to cleanly separate when to trigger from how to compress, leaving full policy control in the developer's hands.","pubDate":"Fri, 06 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (2)\uff1aJanitor\u2014\u2014\u628a\u89e6\u53d1\u903b\u8f91\u548c\u538b\u7f29\u7b56\u7565\u5f7b\u5e95\u5206\u79bb","link":"https:\/\/myprototypewhat.cn\/context-chef-2-janitor","guid":"https:\/\/myprototypewhat.cn\/context-chef-2-janitor","description":"Janitor \u7684\u8bbe\u8ba1\u89d2\u5ea6\u4e0d\u662f\"\u5e2e\u4f60\u538b\u7f29\u5386\u53f2\"\uff0c\u800c\u662f\"\u628a\u4f55\u65f6\u89e6\u53d1\"\u548c\"\u600e\u4e48\u538b\u7f29\"\u5207\u5272\u5f00\u6765\uff0c\u8ba9\u5f00\u53d1\u8005\u62e5\u6709\u5b8c\u6574\u7684\u7b56\u7565\u63a7\u5236\u6743\u3002","pubDate":"Fri, 06 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (1): Why \"Compile\" Your Context","link":"https:\/\/myprototypewhat.cn\/context-chef-1-why-compile-context-en","guid":"https:\/\/myprototypewhat.cn\/context-chef-1-why-compile-context-en","description":"Your agent works perfectly for 30 turns, then loses the plot. It's not the model \u2014 it's the context. How the industry arrived at the same conclusion, and where ContextChef fits.","pubDate":"Thu, 05 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"ContextChef (1)\uff1a\u4e3a\u4ec0\u4e48\u8981\"\u7f16\u8bd1\u4e0a\u4e0b\u6587\"","link":"https:\/\/myprototypewhat.cn\/context-chef-1-why-compile-context","guid":"https:\/\/myprototypewhat.cn\/context-chef-1-why-compile-context","description":"\u4ece Agent \u5728\u7b2c 50 \u8f6e\u5bf9\u8bdd\u5f00\u59cb\u8bf4\u80e1\u8bdd\u8c08\u8d77\uff0c\u770b\u770b\u4e0a\u4e0b\u6587\u5de5\u7a0b\u7684\u56db\u4e2a\u6838\u5fc3\u95ee\u9898\u548c ContextChef \u7684\u5b9a\u4f4d\u3002","pubDate":"Thu, 05 Mar 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"Cherry Studio AI Core (3): From aiCore to UI \u2014 The End-to-End Rendering Chain","link":"https:\/\/myprototypewhat.cn\/cherry-studio-ai-core-3-normalization","guid":"https:\/\/myprototypewhat.cn\/cherry-studio-ai-core-3-normalization","description":"A full walkthrough from ModernAiProvider to chunk rendering and UI blocks.","pubDate":"Mon, 05 Jan 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"Cherry Studio AI Core (2): Tool-Call Reliability and Provider Options","link":"https:\/\/myprototypewhat.cn\/cherry-studio-ai-core-2-toolcall","guid":"https:\/\/myprototypewhat.cn\/cherry-studio-ai-core-2-toolcall","description":"State flow, approvals, and the provider config surface area that made tool-calling reliable.","pubDate":"Mon, 05 Jan 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"Cherry Studio AI Core (1): Architecture Shift to AI SDK and Plugins","link":"https:\/\/myprototypewhat.cn\/cherry-studio-ai-core-1-architecture","guid":"https:\/\/myprototypewhat.cn\/cherry-studio-ai-core-1-architecture","description":"Why AI SDK, why a plugin pipeline, and how aiCore became a standalone package.","pubDate":"Mon, 05 Jan 2026 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"Cherry-Studio-AICore\u6838\u5fc3\u67b6\u6784\u56fe","link":"https:\/\/myprototypewhat.cn\/cherry-studio-ai-core","guid":"https:\/\/myprototypewhat.cn\/cherry-studio-ai-core","description":"Cherry-Studio-AICore\u6838\u5fc3\u67b6\u6784\u56fe","pubDate":"Tue, 15 Jul 2025 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"\u8bf7\u6c42\u6b21\u5e8f\u95ee\u9898","link":"https:\/\/myprototypewhat.cn\/request-sequence","guid":"https:\/\/myprototypewhat.cn\/request-sequence","description":"\u8bf7\u6c42\u6b21\u5e8f\u95ee\u9898","pubDate":"Tue, 25 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React@v19\u6e90\u7801\u89e3\u6790---bailout\u7b56\u7565","link":"https:\/\/myprototypewhat.cn\/react-v19-bailout","guid":"https:\/\/myprototypewhat.cn\/react-v19-bailout","description":"React@v19\u6e90\u7801\u89e3\u6790---bailout\u7b56\u7565","pubDate":"Sat, 15 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"babel\u76f8\u5173","link":"https:\/\/myprototypewhat.cn\/babel","guid":"https:\/\/myprototypewhat.cn\/babel","description":"babel\u76f8\u5173","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React\u6e90\u7801\u89e3\u6790---React\u5165\u53e3","link":"https:\/\/myprototypewhat.cn\/react-entry","guid":"https:\/\/myprototypewhat.cn\/react-entry","description":"React\u6e90\u7801\u89e3\u6790---React\u5165\u53e3","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React\u6e90\u7801\u89e3\u6790---React\u8c03\u5ea6","link":"https:\/\/myprototypewhat.cn\/react-reconciler","guid":"https:\/\/myprototypewhat.cn\/react-reconciler","description":"React\u6e90\u7801\u89e3\u6790---React\u8c03\u5ea6","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React\u6e90\u7801\u89e3\u6790---React-scheduler","link":"https:\/\/myprototypewhat.cn\/react-scheduler","guid":"https:\/\/myprototypewhat.cn\/react-scheduler","description":"React\u6e90\u7801\u89e3\u6790---React-scheduler","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React@v19\u6e90\u7801---Diff","link":"https:\/\/myprototypewhat.cn\/react-v19-diff","guid":"https:\/\/myprototypewhat.cn\/react-v19-diff","description":"React@v19\u6e90\u7801---Diff","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React@v19\u6e90\u7801\u89e3\u6790---Suspense\u539f\u7406","link":"https:\/\/myprototypewhat.cn\/react-v19-suspense","guid":"https:\/\/myprototypewhat.cn\/react-v19-suspense","description":"React@v19\u6e90\u7801\u89e3\u6790---Suspense\u539f\u7406","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React@v19\u6e90\u7801\u89e3\u6790---use","link":"https:\/\/myprototypewhat.cn\/react-v19-use","guid":"https:\/\/myprototypewhat.cn\/react-v19-use","description":"React@v19\u6e90\u7801\u89e3\u6790---use","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React@v19\u6e90\u7801\u89e3\u6790---useContext","link":"https:\/\/myprototypewhat.cn\/react-v19-usecontext","guid":"https:\/\/myprototypewhat.cn\/react-v19-usecontext","description":"React@v19\u6e90\u7801\u89e3\u6790---useContext","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React@v19\u6e90\u7801---useEffectuse \/ LayoutEffect","link":"https:\/\/myprototypewhat.cn\/react-v19-useeffect-uselayouteffect","guid":"https:\/\/myprototypewhat.cn\/react-v19-useeffect-uselayouteffect","description":"React@v19\u6e90\u7801---useEffectuse \/ LayoutEffect","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React@v19\u6e90\u7801\u89e3\u6790---useMemo\/useCallback","link":"https:\/\/myprototypewhat.cn\/react-v19-usememo-usecallback","guid":"https:\/\/myprototypewhat.cn\/react-v19-usememo-usecallback","description":"React@v19\u6e90\u7801\u89e3\u6790---useMemo\/useCallback","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"React@v19\u6e90\u7801\u89e3\u6790---useState","link":"https:\/\/myprototypewhat.cn\/react-v19-usestate","guid":"https:\/\/myprototypewhat.cn\/react-v19-usestate","description":"React@v19\u6e90\u7801\u89e3\u6790---useState","pubDate":"Fri, 07 Jun 2024 00:00:00 GMT","author":"MyPrototypeWhat"},{"title":"Design-Token","link":"https:\/\/myprototypewhat.cn\/design-token","guid":"https:\/\/myprototypewhat.cn\/design-token","description":"Design-Token","pubDate":"Thu, 30 May 2024 00:00:00 GMT","author":"MyPrototypeWhat"}]}}