[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"navigation":3,"url-settings":80,"blog-\u002Fblog\u002Fhow-to-build-an-ai-agent":589,"blog-author-\u002Fblog\u002Fhow-to-build-an-ai-agent":1746},{"id":4,"extension":5,"footer":6,"header":66,"meta":77,"stem":78,"__hash__":79},"navigation\u002Fdata\u002Fshared\u002Fnavigation.yml","yml",{"brand":7,"columns":10,"legal":56},{"name":8,"tagline":9},"Pieces","The memory layer for modern work.",[11,26,41],{"title":12,"links":13},"Product",[14,17,21,24],{"label":15,"href":16},"Pieces Desktop","\u002Fdownloads",{"label":18,"href":19,"external":20},"Pieces MCP","url:docs.mcp.overview",true,{"label":22,"href":23,"external":20},"Pieces APIs","url:docs.api",{"label":25,"href":16},"Downloads",{"title":27,"links":28},"Resources",[29,32,35,38],{"label":30,"href":31,"external":20},"Documentation","url:docs.home",{"label":33,"href":34},"Blog","\u002Fblog",{"label":36,"href":37},"Changelog","\u002Fchangelog",{"label":39,"href":40,"external":20},"GitHub","url:github.org",{"title":42,"links":43},"Company",[44,47,50,53],{"label":45,"href":46},"About","\u002Fabout",{"label":48,"href":49},"Enterprise","\u002Fenterprise",{"label":51,"href":52,"external":20},"Discord","url:social.discord",{"label":54,"href":55,"external":20},"X \u002F Twitter","url:social.x",[57,60,63],{"label":58,"href":59,"external":20},"Privacy Policy","url:legal.privacyPolicy",{"label":61,"href":62,"external":20},"Refund Policy","url:legal.refundPolicy",{"label":64,"href":65,"external":20},"Terms of Service","url:legal.terms",{"links":67,"signIn":68,"contact":71,"cta":74},[],{"label":69,"href":70},"Sign in","url:portal.home",{"label":72,"href":73},"Contact sales","url:site.contact",{"label":75,"href":76},"Download","url:routes.downloads",{},"data\u002Fshared\u002Fnavigation","Ia8tCWWqcGvuaIro8jwZ3HH-MwI66yqJpWshASJdYQ0",{"id":81,"extension":5,"links":82,"meta":586,"stem":587,"__hash__":588},"urlSettings\u002Fdata\u002Fshared\u002Furls.yml",[83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,238,242,246,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321,325,329,333,337,341,345,349,353,357,361,365,369,373,377,381,385,389,393,396,400,404,408,412,416,420,423,426,429,432,436,440,444,448,452,456,460,464,468,472,476,480,484,488,492,495,499,503,507,511,515,519,523,527,531,534,538,542,546,550,553,557,561,565,568,571,575,579,582],{"key":84,"label":85,"href":86},"downloads.desktop","Desktop download page","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fdownload",{"key":88,"label":89,"href":90},"downloads.macOS.dmgArm64","macOS DMG Apple Silicon","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_for_x\u002Fdmg-arm64\u002Fdownload",{"key":92,"label":93,"href":94},"downloads.macOS.dmgIntel","macOS DMG Intel","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_for_x\u002Fdmg\u002Fdownload",{"key":96,"label":97,"href":98},"downloads.macOS.pkg","macOS PKG","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fmacos_packaging\u002Fpkg\u002Fdownload",{"key":100,"label":101,"href":102},"downloads.windows.appinstaller","Windows App Installer","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fappinstaller\u002Fpieces_for_x.appinstaller",{"key":104,"label":105,"href":106},"downloads.windows.exe","Windows EXE","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_for_x\u002Fwindows-exe\u002Fdownload",{"key":108,"label":109,"href":110},"downloads.windows.suiteManager","Windows Suite Manager","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fpieces_suite_windows\u002Fappinstaller\u002Fdownload",{"key":112,"label":113,"href":114},"downloads.linux.flatpakRepo","Linux Flatpak repository","https:\u002F\u002Fbuilds.pieces.app\u002Fpieces-flatpak-repo\u002Fpieces-flatpak.flatpakrepo",{"key":116,"label":117,"href":118},"downloads.linux.snapDesktop","Linux Snap Desktop","https:\u002F\u002Fsnapcraft.io\u002Fpieces-for-developers",{"key":120,"label":121,"href":122},"downloads.linux.snapPiecesOS","Linux Snap PiecesOS","https:\u002F\u002Fsnapcraft.io\u002Fpieces-os",{"key":124,"label":125,"href":126},"downloads.piecesOS.macOS.dmgArm64","PiecesOS macOS DMG Apple Silicon","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fos_server\u002Fdmg-arm64\u002Fdownload",{"key":128,"label":129,"href":130},"downloads.piecesOS.macOS.dmgIntel","PiecesOS macOS DMG Intel","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fos_server\u002Fdmg\u002Fdownload",{"key":132,"label":133,"href":134},"downloads.piecesOS.windows.appinstaller","PiecesOS Windows App Installer","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fappinstaller\u002Fos_server.appinstaller",{"key":136,"label":137,"href":138},"downloads.piecesOS.windows.exe","PiecesOS Windows EXE","https:\u002F\u002Fbuilds.pieces.app\u002Fstages\u002Fproduction\u002Fos_server\u002Fwindows-exe\u002Fdownload",{"key":140,"label":141,"href":142},"downloads.guides.macOS","macOS installation guide","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Fmacos-installation-guide",{"key":144,"label":145,"href":146},"downloads.guides.windows","Windows installation guide","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Fwindows-installation-guide",{"key":148,"label":149,"href":150},"downloads.guides.linux","Linux installation guide","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Flinux-installation-guide",{"key":152,"label":153,"href":154},"downloads.guides.piecesOS","PiecesOS manual installation","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fpieces-os\u002Fmanual-installation",{"key":156,"label":157,"href":158},"extensions.chrome","Chrome extension","https:\u002F\u002Fchrome.google.com\u002Fwebstore\u002Fdetail\u002Fpieces-save-code-snippets\u002Figbgibhbfonhmjlechmeefimncpekepm",{"key":160,"label":161,"href":162},"extensions.firefox","Firefox add-on","https:\u002F\u002Faddons.mozilla.org\u002Fen-US\u002Ffirefox\u002Faddon\u002Fpieces-save-code-from-the-web\u002F",{"key":164,"label":165,"href":166},"extensions.edge","Edge add-on","https:\u002F\u002Fmicrosoftedge.microsoft.com\u002Faddons\u002Fdetail\u002Fpieces-save-code-snippet\u002Fhglfimcdgonaeeobjckfdabcldfidmim",{"key":168,"label":169,"href":170},"extensions.vscode","VS Code extension","https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=MeshIntelligentTechnologiesInc.pieces-vscode",{"key":172,"label":173,"href":174},"extensions.visualStudio","Visual Studio extension","https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=MeshIntelligentTechnologiesInc.PiecesVisualStudio",{"key":176,"label":177,"href":178},"extensions.jetbrains","JetBrains plugin","https:\u002F\u002Fplugins.jetbrains.com\u002Fplugin\u002F17328-pieces--save-search-share--reuse-code-snippets",{"key":180,"label":181,"href":182},"extensions.obsidian","Obsidian plugin","https:\u002F\u002Fobsidian.md\u002Fplugins?id=pieces-for-developers",{"key":184,"label":185,"href":186},"extensions.sublime","Sublime package","https:\u002F\u002Fpackagecontrol.io\u002Fpackages\u002FPieces",{"key":188,"label":189,"href":190},"extensions.neovim","Neovim plugin","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fplugin_neo_vim",{"key":192,"label":193,"href":194},"extensions.jupyterlab","JupyterLab plugin","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fjupyterlab-pieces",{"key":196,"label":197,"href":198},"extensions.cli","Pieces CLI","https:\u002F\u002Fpypi.org\u002Fproject\u002Fpieces-cli\u002F",{"key":200,"label":201,"href":202},"docs.home","Documentation home","https:\u002F\u002Fdocs.pieces.app",{"key":204,"label":205,"href":206},"docs.getStarted","Get started docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces",{"key":208,"label":209,"href":210},"docs.api","API docs","https:\u002F\u002Fdocs.pieces.app\u002Fapi",{"key":212,"label":213,"href":214},"docs.desktop.overview","Desktop overview","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop",{"key":216,"label":217,"href":218},"docs.desktop.onboarding","Desktop onboarding","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fonboarding",{"key":220,"label":221,"href":222},"docs.desktop.timeline","Desktop timeline docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Ftimeline",{"key":224,"label":225,"href":226},"docs.desktop.summaries","Desktop summaries docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fsingle-click-summaries",{"key":228,"label":229,"href":230},"docs.desktop.search","Desktop conversational search docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fconversational-search",{"key":232,"label":233,"href":234},"docs.desktop.drive","Desktop drive docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fdesktop\u002Fdrive",{"key":236,"label":237,"href":86},"docs.desktop.download","Desktop download docs",{"key":239,"label":240,"href":241},"docs.piecesOS.overview","PiecesOS overview docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies",{"key":243,"label":244,"href":245},"docs.piecesOS.details","PiecesOS details docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fpieces-os",{"key":247,"label":248,"href":154},"docs.piecesOS.install","PiecesOS install docs",{"key":250,"label":251,"href":252},"docs.piecesOS.quickMenu","PiecesOS quick menu docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fpieces-os\u002Fquick-menu",{"key":254,"label":255,"href":256},"docs.piecesOS.storage","On-device storage docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fon-device-storage",{"key":258,"label":259,"href":260},"docs.piecesOS.troubleshooting","PiecesOS troubleshooting docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fcore-dependencies\u002Fpieces-os\u002Ftroubleshooting",{"key":262,"label":263,"href":264},"docs.mcp.overview","MCP overview docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp",{"key":266,"label":267,"href":268},"docs.mcp.cursor","MCP Cursor docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fcursor",{"key":270,"label":271,"href":272},"docs.mcp.vscode","MCP VS Code docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fvs-code",{"key":274,"label":275,"href":276},"docs.mcp.claudeDesktop","MCP Claude Desktop docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fclaude-desktop",{"key":278,"label":279,"href":280},"docs.mcp.claudeCode","MCP Claude Code docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fclaude-code",{"key":282,"label":283,"href":284},"docs.mcp.claudeCowork","MCP Claude Cowork docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fclaude-cowork",{"key":286,"label":287,"href":288},"docs.mcp.githubCopilot","MCP GitHub Copilot docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fgithub-copilot",{"key":290,"label":291,"href":292},"docs.mcp.goose","MCP Goose docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fgoose",{"key":294,"label":295,"href":296},"docs.mcp.windsurf","MCP Windsurf docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fwindsurf",{"key":298,"label":299,"href":300},"docs.mcp.zed","MCP Zed docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fzed",{"key":302,"label":303,"href":304},"docs.mcp.jetbrains","MCP JetBrains docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fjetbrains-ides",{"key":306,"label":307,"href":308},"docs.mcp.continueDev","MCP Continue docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fcontinue-dev",{"key":310,"label":311,"href":312},"docs.mcp.cline","MCP Cline docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fcline",{"key":314,"label":315,"href":316},"docs.mcp.raycast","MCP Raycast docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fraycast",{"key":318,"label":319,"href":320},"docs.mcp.rovoDevCli","MCP Rovo Dev CLI docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Frovo-dev-cli",{"key":322,"label":323,"href":324},"docs.mcp.openaiCodexCli","MCP OpenAI Codex CLI docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fopenai-codex-cli",{"key":326,"label":327,"href":328},"docs.mcp.googleGeminiCli","MCP Google Gemini CLI docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fgoogle-gemini-cli",{"key":330,"label":331,"href":332},"docs.mcp.amazonQ","MCP Amazon Q docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Famazon-q-developer",{"key":334,"label":335,"href":336},"docs.mcp.chatgptDev","MCP ChatGPT Developer Mode docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fchatgpt-developer-mode",{"key":338,"label":339,"href":340},"docs.mcp.openclaw","MCP OpenClaw docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fopenclaw",{"key":342,"label":343,"href":344},"docs.mcp.mcpRemote","MCP Remote docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fmcp-remote",{"key":346,"label":347,"href":348},"docs.mcp.ngrok","MCP ngrok docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmcp\u002Fngrok-setup",{"key":350,"label":351,"href":352},"docs.troubleshooting.macOS","macOS troubleshooting docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Ftroubleshooting\u002Fmacos",{"key":354,"label":355,"href":356},"docs.troubleshooting.windows","Windows troubleshooting docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Ftroubleshooting\u002Fwindows",{"key":358,"label":359,"href":360},"docs.troubleshooting.linux","Linux troubleshooting docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fmeet-pieces\u002Ftroubleshooting\u002Flinux",{"key":362,"label":363,"href":364},"docs.privacy","Privacy and security docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fprivacy-security-your-data",{"key":366,"label":367,"href":368},"docs.support","Support docs","https:\u002F\u002Fdocs.pieces.app\u002Fproducts\u002Fsupport",{"key":370,"label":371,"href":372},"portal.home","Pieces portal","https:\u002F\u002Fportal.pieces.app",{"key":374,"label":375,"href":376},"site.home","Website home","https:\u002F\u002Fpieces.app",{"key":378,"label":379,"href":380},"site.about","About page","https:\u002F\u002Fpieces.app\u002Fabout",{"key":382,"label":383,"href":384},"site.features","Features page","https:\u002F\u002Fpieces.app\u002Ffeatures",{"key":386,"label":387,"href":388},"site.plugins","Plugins page","https:\u002F\u002Fpieces.app\u002Fplugins",{"key":390,"label":391,"href":392},"site.contact","Contact page","https:\u002F\u002Fpieces.app\u002Fcontact",{"key":394,"label":36,"href":395},"site.changelog","https:\u002F\u002Fpieces.app\u002Fchangelog",{"key":397,"label":398,"href":399},"site.news","News","https:\u002F\u002Fpieces.app\u002Fnews",{"key":401,"label":402,"href":403},"site.events","Community events","https:\u002F\u002Fpieces.app\u002Fcommunity\u002Fevents",{"key":405,"label":406,"href":407},"site.userStories","User stories","https:\u002F\u002Fpieces.app\u002Fuser-stories",{"key":409,"label":410,"href":411},"site.academy","Academy","https:\u002F\u002Fpieces.app\u002Flearn\u002Facademy",{"key":413,"label":414,"href":415},"site.support","Website support","https:\u002F\u002Fpieces.app\u002Fsupport",{"key":417,"label":418,"href":419},"site.standup","Standup","https:\u002F\u002Fpieces.app\u002Fstandup",{"key":421,"label":33,"href":422},"site.blog","https:\u002F\u002Fcode.pieces.app\u002Fblog",{"key":424,"label":51,"href":425},"social.discord","https:\u002F\u002Fdiscord.gg\u002Fgetpieces",{"key":427,"label":54,"href":428},"social.x","https:\u002F\u002Fx.com\u002Fgetpieces",{"key":430,"label":431,"href":428},"social.twitter","Twitter",{"key":433,"label":434,"href":435},"social.instagram","Instagram","https:\u002F\u002Fwww.instagram.com\u002Fgetpieces\u002F",{"key":437,"label":438,"href":439},"social.tiktok","TikTok","https:\u002F\u002Fwww.tiktok.com\u002F@getpieces",{"key":441,"label":442,"href":443},"social.linkedin","LinkedIn","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fgetpieces\u002F",{"key":445,"label":446,"href":447},"social.youtube","YouTube","https:\u002F\u002Fyoutube.com\u002F@getpieces",{"key":449,"label":450,"href":451},"github.org","GitHub organization","https:\u002F\u002Fgithub.com\u002Fpieces-app",{"key":453,"label":454,"href":455},"github.support","GitHub support","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fsupport",{"key":457,"label":458,"href":459},"github.issues","GitHub issues","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fsupport\u002Fissues",{"key":461,"label":462,"href":463},"github.discussions","GitHub discussions","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fsupport\u002Fdiscussions",{"key":465,"label":466,"href":467},"github.documentation","GitHub documentation","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fdocumentation",{"key":469,"label":470,"href":471},"github.opensource","GitHub open source","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fopensource",{"key":473,"label":474,"href":475},"github.sdks.python","Python SDK","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fpieces-os-client-sdk-for-python",{"key":477,"label":478,"href":479},"github.sdks.typescript","TypeScript SDK","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fpieces-os-client-sdk-for-typescript",{"key":481,"label":482,"href":483},"github.sdks.dart","Dart SDK","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fpieces-os-client-sdk-for-dart",{"key":485,"label":486,"href":487},"github.sdks.kotlin","Kotlin SDK","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fpieces-os-client-sdk-for-kotlin",{"key":489,"label":490,"href":491},"github.plugins.obsidian","Obsidian plugin repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fobsidian-pieces",{"key":493,"label":494,"href":194},"github.plugins.jupyterlab","JupyterLab plugin repository",{"key":496,"label":497,"href":498},"github.plugins.sublime","Sublime plugin repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fplugin_sublime",{"key":500,"label":501,"href":502},"github.plugins.neovim","Neovim plugin repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fplugin_neovim",{"key":504,"label":505,"href":506},"github.cliAgent","CLI agent repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fcli-agent",{"key":508,"label":509,"href":510},"github.mcpDart","MCP Dart repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fmcp_dart",{"key":512,"label":513,"href":514},"github.awesomePieces","Awesome Pieces repository","https:\u002F\u002Fgithub.com\u002Fpieces-app\u002Fawesome-pieces",{"key":516,"label":517,"href":518},"legal.privacyPolicy","Privacy policy","https:\u002F\u002Fpieces.app\u002Flegal\u002Fprivacy-policy",{"key":520,"label":521,"href":522},"legal.refundPolicy","Refund policy","https:\u002F\u002Fpieces.app\u002Flegal\u002Frefund-policy",{"key":524,"label":525,"href":526},"legal.terms","Terms","https:\u002F\u002Fpieces.app\u002Flegal\u002Fterms",{"key":528,"label":529,"href":530},"legal.security","Legal security","https:\u002F\u002Fpieces.app\u002Flegal\u002Fsecurity",{"key":532,"label":533,"href":447},"videos.youtubeChannel","YouTube channel",{"key":535,"label":536,"href":537},"videos.gettingStartedDesktop","Getting started desktop video","https:\u002F\u002Fyoutu.be\u002FdUr1lRM_TYk",{"key":539,"label":540,"href":541},"videos.snippetDiscovery","Snippet discovery video","https:\u002F\u002Fyoutu.be\u002FG6vb1USw-30",{"key":543,"label":544,"href":545},"sales.bookACall","Book a sales call","https:\u002F\u002Fcalendar.app.google\u002FWVUDtUfNy5Vst3sH7",{"key":547,"label":548,"href":549},"sales.enterprise","Enterprise form","https:\u002F\u002Fgetpieces.typeform.com\u002Fto\u002FaVQFTvpE",{"key":551,"label":552,"href":463},"sales.feedback","Feedback discussions",{"key":554,"label":555,"href":556},"sales.earlyAccess","Early access form","https:\u002F\u002Fgetpieces.typeform.com\u002Fearlyaccess",{"key":558,"label":559,"href":560},"sales.supportEmail","Support email","mailto:support@pieces.app",{"key":562,"label":563,"href":564},"routes.home","Home route","\u002F",{"key":566,"label":567,"href":46},"routes.about","About route",{"key":569,"label":570,"href":16},"routes.downloads","Downloads route",{"key":572,"label":573,"href":574},"routes.pricing","Pricing route","\u002Fpricing",{"key":576,"label":577,"href":578},"routes.security","Security route","\u002Fsecurity",{"key":580,"label":581,"href":49},"routes.enterprise","Enterprise route",{"key":583,"label":584,"href":585},"routes.thankYou","Thank you \u002F download route","\u002Fthank-you",{},"data\u002Fshared\u002Furls","P27xKEauu8D-8sfyr0wR4giF0teFSaCuAQ8kgcICQdI",{"id":590,"title":591,"author":592,"authorPhoto":593,"authorPhotoAlt":594,"authorSlug":595,"body":596,"buttonText":1734,"buttonUrl":594,"category":1735,"date":1736,"description":1737,"draft":1738,"editorsPick":1738,"extension":1739,"featured":1738,"image":1740,"imageAlt":594,"meta":1741,"navigation":20,"ogImage":594,"ogImageAlt":594,"path":1742,"seo":1743,"stem":1744,"tags":594,"__hash__":1745},"blog\u002Fblog\u002Fhow-to-build-an-ai-agent.md","Building an AI Agent that thinks and grows with you","The Pieces Team","https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fai-evaluation\u002Fauthor.png",null,"the-pieces-team",{"type":597,"value":598,"toc":1698},"minimark",[599,603,675,678,683,697,700,703,706,709,712,715,747,756,761,764,771,774,777,781,784,793,796,800,805,816,820,826,830,833,844,851,855,945,951,955,961,965,970,973,976,980,1034,1043,1047,1050,1054,1112,1116,1122,1126,1132,1136,1142,1146,1169,1173,1218,1222,1225,1229,1235,1238,1287,1291,1311,1314,1318,1325,1328,1332,1335,1339,1345,1349,1355,1359,1362,1368,1372,1375,1467,1470,1474,1477,1543,1546,1550,1625,1629,1632,1635,1638,1663,1669,1676,1684,1692,1695],[600,601,602],"p",{},"Most “How to build an agent” articles dive straight into code. Yet every breakthrough agent we’ve seen begins long before the first pip install. It begins with three quiet habits:",[604,605,606,629],"table",{},[607,608,609],"thead",{},[610,611,612,619,624],"tr",{},[613,614,615],"th",{},[616,617,618],"strong",{},"Habit",[613,620,621],{},[616,622,623],{},"What it gives you",[613,625,626],{},[616,627,628],{},"Why it matters long-term",[630,631,632,649,662],"tbody",{},[610,633,634,640,646],{},[635,636,637],"td",{},[616,638,639],{},"Capture every insight",[635,641,642,643],{},"A durable knowledge base inside ",[644,645,8],"em",{},[635,647,648],{},"You never re-search the same idea twice.",[610,650,651,656,659],{},[635,652,653],{},[616,654,655],{},"Ask LLMs relentlessly",[635,657,658],{},"Cheap second opinions when you’re stuck",[635,660,661],{},"Curiosity is free; stagnation is expensive.",[610,663,664,669,672],{},[635,665,666],{},[616,667,668],{},"Reflect deliberately",[635,670,671],{},"A tight feedback loop",[635,673,674],{},"Each iteration stands on the shoulders of the last, not beside it.",[600,676,677],{},"Hold those habits in mind; the technical work below will feel far less daunting and far more rewarding.",[679,680,682],"h2",{"id":681},"what-the-article-covers-and-whats-missing","What the article covers (and what’s missing)",[600,684,685,686,689,690,696],{},"The article walks through ",[644,687,688],{},"individual code blocks we used across several agent-related use cases",". It includes shared snippets and search snippets (that you could share through ",[691,692,8],"a",{"href":693,"rel":694},"https:\u002F\u002Fpieces.app\u002Ffeatures\u002Fdrive",[695],"nofollow",") that highlight specific functionalities.",[600,698,699],{},"On their own, they’re useful but they aren’t enough to build a fully agentic system.",[600,701,702],{},"For example, you’ll notice the Qdrant snippet references an ltm collection that isn’t defined or contextualized anywhere.",[600,704,705],{},"Without that context, you might be left guessing.",[600,707,708],{},"So while the code reflects the concepts mentioned in the article, it shouldn’t be treated as a ready-made framework.",[600,710,711],{},"In fact, building agents isn’t really about copy-pasting someone else’s structure.",[600,713,714],{},"As our Head of ML Engineering puts it:",[716,717,718,725],"blockquote",{},[600,719,720,721,724],{},"“People build agents in all kinds of ways — there’s no single ‘right’ framework. But there ",[644,722,723],{},"are"," three common components you’ll see in nearly every serious implementation:",[726,727,728,735,741],"ol",{},[729,730,731,734],"li",{},[616,732,733],{},"Thought"," – The LLM decides what the next step should be.",[729,736,737,740],{},[616,738,739],{},"Action"," – The agent executes an action via a tool or API.",[729,742,743,746],{},[616,744,745],{},"Observation"," – The model reflects on the tool’s output and decides what to do next.”",[600,748,749,750,755],{},"Here is an ",[691,751,754],{"href":752,"rel":753},"https:\u002F\u002Fhuggingface.co\u002Flearn\u002Fagents-course\u002Fen\u002Funit1\u002Fintroduction",[695],"excellent resource"," for people looking to dip their toes into designing agents.",[757,758,760],"h3",{"id":759},"why-did-we-share-these-blocks-anyway","Why did we share these blocks anyway?",[600,762,763],{},"Even if the article doesn't give you a step-by-step walkthrough of a production-grade agent, these blocks were shared to spark ideas and encourage experimentation.",[600,765,766,767,770],{},"They represent the ",[644,768,769],{},"building materials",", not the blueprint.",[600,772,773],{},"And if you combine these with the three foundational habits: capturing, asking, and reflecting, you’ll be in a much stronger position to build an agentic system that’s not just functional, but genuinely effective.",[600,775,776],{},"So let’s roll in…",[679,778,780],{"id":779},"give-your-agent-a-memory-layer","Give your agent a memory layer",[600,782,783],{},"A model without memory is a clever parrot.",[600,785,786,787,792],{},"A ",[691,788,791],{"href":789,"rel":790},"https:\u002F\u002Fpieces.app\u002Fblog\u002Flong-term-memory",[695],"model with memory"," becomes a partner. Your first architectural decision, vector store? graph? Hybrid?",[600,794,795],{},"It sets the stage for every later success or failure.",[757,797,799],{"id":798},"spin-up-a-memory-store","Spin up a memory store",[801,802,804],"h4",{"id":803},"quick-semantic-search","Quick semantic search",[806,807,812],"pre",{"className":808,"code":810,"language":811},[809],"language-text","pip install qdrant-client openai\n","text",[813,814,810],"code",{"__ignoreMap":815},"",[801,817,819],{"id":818},"relationship-rich-graph-search","Relationship-rich graph search",[806,821,824],{"className":822,"code":823,"language":811},[809],"  -e NEO4J_AUTH=neo4j\u002Fpassword \\\n  -p7474:7474 -p7687:7687 neo4j:latest\npip install neo4j\n",[813,825,823],{"__ignoreMap":815},[801,827,829],{"id":828},"hybrid","Hybrid",[600,831,832],{},"Run both; store embeddings in Qdrant and edges in Neo4j.",[600,834,835,836,838,839,843],{},"As you skim blog posts on pinecone vs. qdrant vs. weaviate, ",[644,837,8],{}," silently clips ",[691,840,842],{"href":693,"rel":841},[695],"code snippets",", diagrams, and pros\u002Fcons tables.",[600,845,846,847,850],{},"Next month, when you wonder ",[644,848,849],{},"“Which store was fastest with 1 M vectors?”"," you won’t open a browser, you’ll open Pieces.",[757,852,854],{"id":853},"design-a-minimal-schema","Design a minimal schema",[604,856,857,871],{},[607,858,859],{},[610,860,861,866],{},[613,862,863],{},[616,864,865],{},"Field",[613,867,868],{},[616,869,870],{},"Purpose",[630,872,873,887,897,909,919,935],{},[610,874,875,880],{},[635,876,877],{},[813,878,879],{},"id",[635,881,882,883,886],{},"Unique pointer (",[813,884,885],{},"chat_2025-06-18T12:34Z",")",[610,888,889,894],{},[635,890,891],{},[813,892,893],{},"vector",[635,895,896],{},"1,536-dimension OpenAI embedding",[610,898,899,904],{},[635,900,901],{},[813,902,903],{},"metadata.user",[635,905,906],{},[813,907,908],{},"alice",[610,910,911,916],{},[635,912,913],{},[813,914,915],{},"metadata.source",[635,917,918],{},"Slack, VSCode, Browser",[610,920,921,926],{},[635,922,923],{},[813,924,925],{},"metadata.topic",[635,927,928,931,932],{},[813,929,930],{},"api-errors",", ",[813,933,934],{},"vector-schema",[610,936,937,942],{},[635,938,939],{},[813,940,941],{},"metadata.timestamp",[635,943,944],{},"ISO-8601",[600,946,947,950],{},[616,948,949],{},"Tip:"," Store everything in UTC; convert in the UI.",[757,952,954],{"id":953},"write-a-context-retriever","Write a context retriever",[806,956,959],{"className":957,"code":958,"language":811},[809],"def fetch_context(query: str, top_k: int = 5):\n    embedding = openai.embeddings.create(\n        model=\"text-embedding-3-small\",\n        input=query\n    ).data[0].embedding\n    matches = qdrant_client.search(\n        collection_name=\"ltm\",\n        query_vector=embedding,\n        limit=top_k,\n        with_payload=True\n    )\n    return [m.payload for m in matches]\n",[813,960,958],{"__ignoreMap":815},[757,962,964],{"id":963},"verify-with-chatgpt","Verify with ChatGPT",[600,966,967],{},[813,968,969],{},"I’ve stored embeddings in Qdrant as above. How can I batch-insert documents and ensure cosine similarity is configured correctly?",[600,971,972],{},"Keep drilling down until you can explain it back without notes.",[600,974,975],{},"Curiosity muscles prepare you for the bugs you haven’t met yet.",[757,977,979],{"id":978},"reflection-checklist","Reflection checklist",[604,981,982,1001],{},[607,983,984],{},[610,985,986,991,996],{},[613,987,988],{},[616,989,990],{},"Question",[613,992,993],{},[616,994,995],{},"When to ask",[613,997,998],{},[616,999,1000],{},"Stored in Pieces?",[630,1002,1003,1014,1024],{},[610,1004,1005,1008,1011],{},[635,1006,1007],{},"“Did I pick the simplest store to operate?”",[635,1009,1010],{},"After first prototype",[635,1012,1013],{},"✅",[610,1015,1016,1019,1022],{},[635,1017,1018],{},"“How will I migrate if scale explodes?”",[635,1020,1021],{},"Before production",[635,1023,1013],{},[610,1025,1026,1029,1032],{},[635,1027,1028],{},"“What PII am I indexing?”",[635,1030,1031],{},"Always",[635,1033,1013],{},[600,1035,1036,1037,1042],{},"Pieces becomes your ",[691,1038,1041],{"href":1039,"rel":1040},"https:\u002F\u002Fpieces.app\u002Ffeatures\u002Fcopilot\u002Fcontext-awareness",[695],"architectural conscience",", surfacing the notes you wrote to your future self.",[679,1044,1046],{"id":1045},"build-a-reasoning-engine","Build a reasoning engine",[600,1048,1049],{},"Memory is useless if your agent can’t think with it. The reasoning layer turns raw context into helpful action.",[757,1051,1053],{"id":1052},"choose-a-model","Choose a model",[604,1055,1056,1075],{},[607,1057,1058],{},[610,1059,1060,1065,1070],{},[613,1061,1062],{},[616,1063,1064],{},"Need",[613,1066,1067],{},[616,1068,1069],{},"Cloud",[613,1071,1072],{},[616,1073,1074],{},"Local",[630,1076,1077,1090,1102],{},[610,1078,1079,1082,1087],{},[635,1080,1081],{},"Push-button reliability",[635,1083,1084],{},[813,1085,1086],{},"gpt-4o",[635,1088,1089],{},"–",[610,1091,1092,1095,1097],{},[635,1093,1094],{},"No data leaving laptop",[635,1096,1089],{},[635,1098,1099],{},[813,1100,1101],{},"ollama run llama3",[610,1103,1104,1107,1110],{},[635,1105,1106],{},"Balance",[635,1108,1109],{},"Use both; abstract behind an interface",[635,1111,1089],{},[757,1113,1115],{"id":1114},"draft-a-base-prompt","Draft a base prompt",[806,1117,1120],{"className":1118,"code":1119,"language":811},[809],"SYSTEM_PROMPT = \"\"\"\nYou are a step-by-step reasoning agent. \nUse the provided context first; only fall back to general knowledge if needed.\n\"\"\"\nUSER_TEMPLATE = \"\"\"\nQuestion: {question}\n\nContext:\n{context}\n\nAnswer in JSON with keys: \"answer\", \"thought_process\".\n\"\"\"\n",[813,1121,1119],{"__ignoreMap":815},[757,1123,1125],{"id":1124},"add-a-thought-chain","Add a thought chain",[806,1127,1130],{"className":1128,"code":1129,"language":811},[809],"from langchain.chains import LLMChain\nprompt = PromptTemplate(\n    input_variables=[\"question\", \"context\"],\n    template=SYSTEM_PROMPT + USER_TEMPLATE\n)\nchain = LLMChain(llm=model, prompt=prompt)\n",[813,1131,1129],{"__ignoreMap":815},[757,1133,1135],{"id":1134},"validate-outputs","Validate outputs",[806,1137,1140],{"className":1138,"code":1139,"language":811},[809],"import json, re\ndef safe_call(q, ctx):\n    raw = chain.run(question=q, context=ctx)\n    try:\n        data = json.loads(raw)\n        assert \"answer\" in data\n        return data[\"answer\"]\n    except Exception:\n        return \"Sorry, I’m unsure. Can you clarify?\"\n",[813,1141,1139],{"__ignoreMap":815},[757,1143,1145],{"id":1144},"ask-chatgpt-when-stuck","Ask ChatGPT when stuck",[1147,1148,1149,1157,1166],"ul",{},[729,1150,1151,1154],{},[616,1152,1153],{},"Prompt:",[813,1155,1156],{},"Why does my LangChain chain sometimes return stray markdown around JSON?",[729,1158,1159,1160,1163],{},"Follow-up:",[1161,1162],"br",{},[813,1164,1165],{},"Show me a regex to strip triple-backtick blocks safely.",[729,1167,1168],{},"Keep asking until the answer feels mundane; then, implement.",[757,1170,1172],{"id":1171},"reflection-points","Reflection points",[604,1174,1175,1194],{},[607,1176,1177],{},[610,1178,1179,1184,1189],{},[613,1180,1181],{},[616,1182,1183],{},"Milestone",[613,1185,1186],{},[616,1187,1188],{},"Potential failure",[613,1190,1191],{},[616,1192,1193],{},"How Pieces helps",[630,1195,1196,1207],{},[610,1197,1198,1201,1204],{},[635,1199,1200],{},"First prototype answers 80 % correctly",[635,1202,1203],{},"Silent hallucination on edge-cases",[635,1205,1206],{},"Surfaces every edge prompt you marked “wrong” last week.",[610,1208,1209,1212,1215],{},[635,1210,1211],{},"Add new model",[635,1213,1214],{},"Prompt breaks due to tokenization",[635,1216,1217],{},"Recalls original prompt anatomy so you can diff.",[679,1219,1221],{"id":1220},"install-a-learning-loop","Install a learning loop",[600,1223,1224],{},"Static agents age like milk. A learning loop keeps them fresh.",[757,1226,1228],{"id":1227},"capture-feedback","Capture feedback",[806,1230,1233],{"className":1231,"code":1232,"language":811},[809],"feedback_db.insert({\n    \"query\": query,\n    \"response\": answer,\n    \"grade\": \"good\" if user_upvote else \"bad\",\n    \"timestamp\": datetime.utcnow()\n})\n",[813,1234,1232],{"__ignoreMap":815},[600,1236,1237],{},"Decide: Fine-Tune vs. RAG Update",[604,1239,1240,1259],{},[607,1241,1242],{},[610,1243,1244,1249,1254],{},[613,1245,1246],{},[616,1247,1248],{},"Technique",[613,1250,1251],{},[616,1252,1253],{},"When to use",[613,1255,1256],{},[616,1257,1258],{},"Trade-off",[630,1260,1261,1274],{},[610,1262,1263,1268,1271],{},[635,1264,1265],{},[616,1266,1267],{},"Fine-tune",[635,1269,1270],{},"Domain language very unique; low latency critical",[635,1272,1273],{},"$$ GPU cost, hours lag",[610,1275,1276,1281,1284],{},[635,1277,1278],{},[616,1279,1280],{},"RAG",[635,1282,1283],{},"Need instant updates; memory already vectorised",[635,1285,1286],{},"Slight latency per query",[757,1288,1290],{"id":1289},"automate-evaluation","Automate evaluation",[726,1292,1293,1299,1305],{},[729,1294,1295,1298],{},[616,1296,1297],{},"Latency",": time.perf_counter() around LLM call.",[729,1300,1301,1304],{},[616,1302,1303],{},"Accuracy",": Diff model answer vs. gold JSON.",[729,1306,1307,1310],{},[616,1308,1309],{},"Token cost",": usage.total_tokens.",[600,1312,1313],{},"Store dashboards in Grafana. Pieces will remember which panel you tweaked when a metric spikes six months later.",[757,1315,1317],{"id":1316},"use-chatgpt-as-mentor","Use ChatGPT as mentor",[600,1319,1320,1322],{},[616,1321,1153],{},[813,1323,1324],{},"Suggest three automatic metrics to detect model drift in an RAG pipeline. Explain pros and cons.",[600,1326,1327],{},"Persist this conversation in Pieces; future you will re-read it during a post-mortem.",[679,1329,1331],{"id":1330},"expose-a-human-interface","Expose a human interface",[600,1333,1334],{},"Even the smartest agent dies in obscurity if users can’t reach it.",[757,1336,1338],{"id":1337},"rest-api-with-fastapi","REST API With FastAPI",[806,1340,1343],{"className":1341,"code":1342,"language":811},[809],"from fastapi import FastAPI\napp = FastAPI()\n\n@app.post(\"\u002Fask\")\nasync def ask(q: Query):\n    ctx = fetch_context(q.text)\n    ans = safe_call(q.text, ctx)\n    return {\"answer\": ans}\n",[813,1344,1342],{"__ignoreMap":815},[757,1346,1348],{"id":1347},"slack-slash-command","Slack Slash-Command",[806,1350,1353],{"className":1351,"code":1352,"language":811},[809],"@app.command(\"\u002Faskagent\")\ndef handle(ack, body, respond):\n    ack()\n    q = body[\"text\"]\n    ctx = fetch_context(q)\n    ans = safe_call(q, ctx)\n    respond(ans)\n",[813,1354,1352],{"__ignoreMap":815},[757,1356,1358],{"id":1357},"web-chat-widget","Web chat widget",[600,1360,1361],{},"Reuse the REST endpoint. Keep payloads JSON-only.",[600,1363,1364,1367],{},[616,1365,1366],{},"Pieces reminder:"," It stores every API contract, auth header, and error pattern you define, so the V2 mobile app will inherit lessons automatically.",[679,1369,1371],{"id":1370},"monitor-with-empathy","Monitor with empathy",[600,1373,1374],{},"AI monitoring isn’t just CPU graphs; it’s human impact metrics.",[604,1376,1377,1401],{},[607,1378,1379],{},[610,1380,1381,1386,1391,1396],{},[613,1382,1383],{},[616,1384,1385],{},"Category",[613,1387,1388],{},[616,1389,1390],{},"Example Metric",[613,1392,1393],{},[616,1394,1395],{},"Threshold",[613,1397,1398],{},[616,1399,1400],{},"Alert Channel",[630,1402,1403,1419,1435,1451],{},[610,1404,1405,1410,1413,1416],{},[635,1406,1407],{},[616,1408,1409],{},"Performance",[635,1411,1412],{},"Latency 95p",[635,1414,1415],{},"\u003C 2 s",[635,1417,1418],{},"PagerDuty",[610,1420,1421,1426,1429,1432],{},[635,1422,1423],{},[616,1424,1425],{},"Cost",[635,1427,1428],{},"Tokens\u002Fday",[635,1430,1431],{},"\u003C budget",[635,1433,1434],{},"Slack #ai-ops",[610,1436,1437,1442,1445,1448],{},[635,1438,1439],{},[616,1440,1441],{},"Trust",[635,1443,1444],{},"Harmful output %",[635,1446,1447],{},"0 critical",[635,1449,1450],{},"Email + OpsGenie",[610,1452,1453,1458,1461,1464],{},[635,1454,1455],{},[616,1456,1457],{},"Delight",[635,1459,1460],{},"User thumbs-up ratio",[635,1462,1463],{},"> 85 %",[635,1465,1466],{},"Weekly report",[600,1468,1469],{},"Store incident playbooks in Pieces so on-call engineers wake up to context, not chaos.",[679,1471,1473],{"id":1472},"a-day-in-the-life-with-questions-memory-reflection","A day in the life with questions, memory, reflection",[600,1475,1476],{},"Picture this flow:",[726,1478,1479,1504,1527],{},[729,1480,1481,1484],{},[616,1482,1483],{},"Morning",[1147,1485,1486,1489,1492,1495],{},[729,1487,1488],{},"You start coding. Autocomplete fails on an obscure npm error.",[729,1490,1491],{},"Ask ChatGPT: “Common causes of MODULE_NOT_FOUND \u002F bcrypt on macOS M1?”",[729,1493,1494],{},"Follow-up: “What env flag fixes it?”",[729,1496,1497,1498,1503],{},"Copy the fix into ",[691,1499,1502],{"href":1500,"rel":1501},"https:\u002F\u002Fpieces.app\u002Fplugins\u002Fvs-code",[695],"VS Code",". Pieces captures Q&A + solution.",[729,1505,1506,1509],{},[616,1507,1508],{},"Afternoon",[1147,1510,1511,1514,1517,1520],{},[729,1512,1513],{},"You design a vector schema. Google a dozen tutorials.",[729,1515,1516],{},"Pieces clips them automatically.",[729,1518,1519],{},"Confused? Ask ChatGPT: “Vector vs. HNSW, why pick one over the other?”",[729,1521,1522,1523,1526],{},"Flag the best answer as ",[644,1524,1525],{},"insightful",".",[729,1528,1529,1532],{},[616,1530,1531],{},"Evening",[1147,1533,1534,1537,1540],{},[729,1535,1536],{},"Your agent misclassifies a user query.",[729,1538,1539],{},"Recall: Pieces surfaces the “regex guardrail” note you wrote last month.",[729,1541,1542],{},"Implement fix. Commit. Push.",[600,1544,1545],{},"Memory + questions + reflection formed a virtuous cycle. No hype, just steady momentum.",[679,1547,1549],{"id":1548},"frequently-asked-stuck-moments","Frequently asked “Stuck” moments",[604,1551,1552,1571],{},[607,1553,1554],{},[610,1555,1556,1561,1566],{},[613,1557,1558],{},[616,1559,1560],{},"When you feel…",[613,1562,1563],{},[616,1564,1565],{},"Ask ChatGPT",[613,1567,1568],{},[616,1569,1570],{},"Check Pieces",[630,1572,1573,1586,1599,1612],{},[610,1574,1575,1580,1583],{},[635,1576,1577],{},[616,1578,1579],{},"Lost in architecture",[635,1581,1582],{},"“Show me minimal RAG stacks that run locally.”",[635,1584,1585],{},"Search “RAG design” tag.",[610,1587,1588,1593,1596],{},[635,1589,1590],{},[616,1591,1592],{},"Prompt fatigue",[635,1594,1595],{},"“Rewrite this prompt for clearer instructions.”",[635,1597,1598],{},"Compare with last week’s high-score prompts.",[610,1600,1601,1606,1609],{},[635,1602,1603],{},[616,1604,1605],{},"Model drift",[635,1607,1608],{},"“What metrics catch hallucination spikes fastest?”",[635,1610,1611],{},"Pull past incident reports.",[610,1613,1614,1619,1622],{},[635,1615,1616],{},[616,1617,1618],{},"Scaling pain",[635,1620,1621],{},"“Cheapest way to shard Pinecone at 100 M vectors?”",[635,1623,1624],{},"Open earlier cost breakdown notes.",[679,1626,1628],{"id":1627},"the-partnership-paradigm","The partnership paradigm",[600,1630,1631],{},"Building one agent is a sprint. Building a career of agents is a marathon of compounded insight.",[600,1633,1634],{},"Pieces is the notebook you never lose. ChatGPT is the colleague who never tires of questions.",[600,1636,1637],{},"Together they create a loop:",[726,1639,1640,1646,1652],{},[729,1641,1642,1645],{},[616,1643,1644],{},"Curiosity"," sparks a question.",[729,1647,1648,1651],{},[616,1649,1650],{},"ChatGPT"," answers; you experiment.",[729,1653,1654,1656,1657,1662],{},[616,1655,8],{}," ",[691,1658,1661],{"href":1659,"rel":1660},"https:\u002F\u002Fpieces.app\u002Ffeatures\u002Flong-term-memory\u002Fai-memory-assistant",[695],"captures outcome"," and context.",[600,1664,1665,1666,1526],{},"Next project starts ",[616,1667,1668],{},"one step higher",[600,1670,1671,1672,1675],{},"That loop outperforms any single “genius stack” because it scales ",[644,1673,1674],{},"you",", your intuition, your taste, your memory.",[600,1677,1678,1679,1526],{},"Spin up the ",[691,1680,1683],{"href":1681,"rel":1682},"https:\u002F\u002Fpieces.app\u002Fai-memory",[695],"memory store",[600,1685,1686,1687],{},"Install ",[691,1688,1691],{"href":1689,"rel":1690},"https:\u002F\u002Fpieces.app\u002F",[695],"Pieces.",[600,1693,1694],{},"The next time you’re stuck, open ChatGPT and keep asking “why?” until it’s obvious. Then let Pieces file the breakthrough where future-you will find it instantly.",[600,1696,1697],{},"That’s how you build agents and expertise that think and grow alongside you.",{"title":815,"searchDepth":1699,"depth":1699,"links":1700},2,[1701,1705,1712,1720,1725,1730,1731,1732,1733],{"id":681,"depth":1699,"text":682,"children":1702},[1703],{"id":759,"depth":1704,"text":760},3,{"id":779,"depth":1699,"text":780,"children":1706},[1707,1708,1709,1710,1711],{"id":798,"depth":1704,"text":799},{"id":853,"depth":1704,"text":854},{"id":953,"depth":1704,"text":954},{"id":963,"depth":1704,"text":964},{"id":978,"depth":1704,"text":979},{"id":1045,"depth":1699,"text":1046,"children":1713},[1714,1715,1716,1717,1718,1719],{"id":1052,"depth":1704,"text":1053},{"id":1114,"depth":1704,"text":1115},{"id":1124,"depth":1704,"text":1125},{"id":1134,"depth":1704,"text":1135},{"id":1144,"depth":1704,"text":1145},{"id":1171,"depth":1704,"text":1172},{"id":1220,"depth":1699,"text":1221,"children":1721},[1722,1723,1724],{"id":1227,"depth":1704,"text":1228},{"id":1289,"depth":1704,"text":1290},{"id":1316,"depth":1704,"text":1317},{"id":1330,"depth":1699,"text":1331,"children":1726},[1727,1728,1729],{"id":1337,"depth":1704,"text":1338},{"id":1347,"depth":1704,"text":1348},{"id":1357,"depth":1704,"text":1358},{"id":1370,"depth":1699,"text":1371},{"id":1472,"depth":1699,"text":1473},{"id":1548,"depth":1699,"text":1549},{"id":1627,"depth":1699,"text":1628},"Get started","AI & LLM","2025-07-01T00:00:00.000Z","Build an AI agent that remembers, reasons, and adapts alongside you. Learn step-by-step workflows, memory architecture, and best-practice tooling to create truly intelligent systems.",false,"md","https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fblog\u002Fhow-to-build-an-ai-agent\u002Fhero.png",{},"\u002Fblog\u002Fhow-to-build-an-ai-agent",{"title":591,"description":1737},"blog\u002Fhow-to-build-an-ai-agent","YKKyP0utimvMcufvwMNDMvtiH_MFtEQMHkeEw7jU9Zg",{"id":1747,"title":592,"body":1748,"description":815,"draft":1738,"extension":1739,"meta":1752,"navigation":20,"path":1753,"photo":1754,"photoAlt":594,"seo":1755,"stem":1756,"__hash__":1757},"authors\u002Fauthors\u002Fthe-pieces-team.md",{"type":597,"value":1749,"toc":1750},[],{"title":815,"searchDepth":1699,"depth":1699,"links":1751},[],{},"\u002Fauthors\u002Fthe-pieces-team","https:\u002F\u002Fstorage.googleapis.com\u002Fpieces-marketing-website\u002Fimages\u002Fauthors\u002Fthe-pieces-team.png",{"title":592,"description":815},"authors\u002Fthe-pieces-team","_2O_QA8d8RjXlBp0ck4PWDG6iA74zW1kN0R0gkn2Lls"]