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