[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summary-b6c275efa5018657-google-s-adk-code-first-python-ai-agent-toolkit-summary":3,"summaries-facets-categories":170,"summary-related-b6c275efa5018657-google-s-adk-code-first-python-ai-agent-toolkit-summary":3740},{"id":4,"title":5,"ai":6,"body":13,"categories":128,"created_at":129,"date_modified":129,"description":31,"extension":130,"faq":129,"featured":131,"kicker_label":129,"meta":132,"navigation":54,"path":155,"published_at":129,"question":129,"scraped_at":156,"seo":157,"sitemap":158,"source_id":159,"source_name":160,"source_type":161,"source_url":162,"stem":163,"tags":164,"thumbnail_url":129,"tldr":167,"tweet":129,"unknown_tags":168,"__hash__":169},"summaries\u002Fsummaries\u002Fb6c275efa5018657-google-s-adk-code-first-python-ai-agent-toolkit-summary.md","Google's ADK: Code-First Python AI Agent Toolkit",{"provider":7,"model":8,"input_tokens":9,"output_tokens":10,"processing_time_ms":11,"cost_usd":12},"openrouter","x-ai\u002Fgrok-4.1-fast",9732,1740,12684,0.00230955,{"type":14,"value":15,"toc":123},"minimark",[16,21,25,98,101,105,108,112,119],[17,18,20],"h2",{"id":19},"define-agents-and-tools-directly-in-code","Define Agents and Tools Directly in Code",[22,23,24],"p",{},"ADK uses a code-first approach to create testable, versionable agents. Start with a single agent by specifying name, model (e.g., gemini-2.5-flash), instructions, description, and tools like google_search:",[26,27,32],"pre",{"className":28,"code":29,"language":30,"meta":31,"style":31},"language-python shiki shiki-themes github-light github-dark","from google.adk.agents import Agent\nfrom google.adk.tools import google_search\n\nroot_agent = Agent(\n    name=\"search_assistant\",\n    model=\"gemini-2.5-flash\",\n    instruction=\"You are a helpful assistant. Answer user questions using Google Search when needed.\",\n    description=\"An assistant that can search the web.\",\n    tools=[google_search]\n)\n","python","",[33,34,35,43,49,56,62,68,74,80,86,92],"code",{"__ignoreMap":31},[36,37,40],"span",{"class":38,"line":39},"line",1,[36,41,42],{},"from google.adk.agents import Agent\n",[36,44,46],{"class":38,"line":45},2,[36,47,48],{},"from google.adk.tools import google_search\n",[36,50,52],{"class":38,"line":51},3,[36,53,55],{"emptyLinePlaceholder":54},true,"\n",[36,57,59],{"class":38,"line":58},4,[36,60,61],{},"root_agent = Agent(\n",[36,63,65],{"class":38,"line":64},5,[36,66,67],{},"    name=\"search_assistant\",\n",[36,69,71],{"class":38,"line":70},6,[36,72,73],{},"    model=\"gemini-2.5-flash\",\n",[36,75,77],{"class":38,"line":76},7,[36,78,79],{},"    instruction=\"You are a helpful assistant. Answer user questions using Google Search when needed.\",\n",[36,81,83],{"class":38,"line":82},8,[36,84,85],{},"    description=\"An assistant that can search the web.\",\n",[36,87,89],{"class":38,"line":88},9,[36,90,91],{},"    tools=[google_search]\n",[36,93,95],{"class":38,"line":94},10,[36,96,97],{},")\n",[22,99,100],{},"This integrates pre-built tools, custom functions, OpenAPI specs, or MCP tools, optimized for Google ecosystem but model-agnostic. Add tool confirmation (HITL) to require explicit user approval before execution, preventing unintended actions.",[17,102,104],{"id":103},"build-scalable-multi-agent-hierarchies","Build Scalable Multi-Agent Hierarchies",[22,106,107],{},"Compose specialized agents into hierarchies for complex workflows. Define root and sub-agents with shared or unique tools, enabling orchestration where agents delegate tasks. Supports Agent Config for no-code agent building alongside code definitions. Recent updates include rewind to replay sessions pre-invocation, custom service registration for FastAPI servers, and AgentEngineSandboxCodeExecutor for safe code execution via Vertex AI sandbox.",[17,109,111],{"id":110},"install-evaluate-and-deploy-seamlessly","Install, Evaluate, and Deploy Seamlessly",[22,113,114,115,118],{},"Install stable via ",[33,116,117],{},"pip install google-adk"," (bi-weekly releases) or dev version from git main for latest fixes. Evaluate agents with built-in metrics; deploy containerized to Cloud Run or scale on Vertex AI Agent Engine. Integrates A2A protocol for remote agent communication. Use 18.9k-starred repo's samples for patterns like skill activation via environment tools or BigQuery integration (now stable). Trade-off: Dev version risks bugs but accesses unshipped features like Parameter Manager for secret handling.",[120,121,122],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":31,"searchDepth":45,"depth":45,"links":124},[125,126,127],{"id":19,"depth":45,"text":20},{"id":103,"depth":45,"text":104},{"id":110,"depth":45,"text":111},[],null,"md",false,{"content_references":133,"triage":152},[134,139,142,146,149],{"type":135,"title":136,"url":137,"context":138},"other","ADK Documentation","https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002F","recommended",{"type":135,"title":140,"url":141,"context":138},"ADK Samples","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-samples",{"type":135,"title":143,"url":144,"context":145},"Java ADK","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-java","mentioned",{"type":135,"title":147,"url":148,"context":145},"Go ADK","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go",{"type":135,"title":150,"url":151,"context":145},"A2A Protocol","https:\u002F\u002Fgithub.com\u002Fgoogle-a2a\u002FA2A\u002F",{"relevance":64,"novelty":58,"quality":58,"actionability":64,"composite":153,"reasoning":154},4.55,"Category: AI & LLMs. This article provides a detailed overview of Google's ADK, a toolkit for building AI agents, which directly addresses the needs of developers looking to integrate AI into their products. The code examples and deployment instructions offer practical, actionable steps for the audience.","\u002Fsummaries\u002Fb6c275efa5018657-google-s-adk-code-first-python-ai-agent-toolkit-summary","2026-04-15 15:35:01",{"title":5,"description":31},{"loc":155},"b6c275efa5018657","__oneoff__","article","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python","summaries\u002Fb6c275efa5018657-google-s-adk-code-first-python-ai-agent-toolkit-summary",[165,30,166],"agents","ai-tools","Build, evaluate, and deploy modular AI agents in Python using Google's ADK—pip install google-adk for code-first logic, rich tools, multi-agent hierarchies, and deployment to Cloud Run or Vertex AI.",[],"tfGNqAYRA0hvN_aLK0bF0iyMsIaLQJVjLxwYUgfHF-Y",[171,174,177,180,183,186,188,190,192,194,196,198,201,203,205,207,209,211,213,215,217,219,222,225,227,229,232,234,236,239,241,243,245,247,249,251,253,255,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,313,315,317,319,321,323,325,327,329,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,377,379,381,383,385,387,389,391,393,395,397,399,401,403,405,407,409,411,413,415,417,419,421,423,425,427,429,431,433,435,437,439,441,443,445,447,449,451,453,455,457,459,461,463,465,467,469,471,473,475,477,479,481,483,485,487,489,491,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092,1094,1096,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604,1606,1608,1610,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1714,1716,1718,1720,1722,1724,1726,1728,1730,1732,1734,1736,1738,1740,1742,1744,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114,2116,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2144,2146,2148,2150,2152,2154,2156,2158,2160,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354,2356,2358,2360,2362,2364,2366,2368,2370,2372,2374,2376,2378,2380,2382,2384,2386,2388,2390,2392,2394,2396,2398,2400,2402,2404,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436,2438,2440,2442,2444,2446,2448,2450,2452,2454,2456,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498,2500,2502,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582,2584,2586,2588,2590,2592,2594,2596,2598,2600,2602,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646,2648,2650,2652,2654,2656,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698,2700,2702,2704,2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734,2736,2738,2740,2742,2744,2746,2748,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802,2804,2806,2808,2810,2812,2814,2816,2818,2820,2822,2824,2826,2828,2830,2832,2834,2836,2838,2840,2842,2844,2846,2848,2850,2852,2854,2856,2858,2860,2862,2864,2866,2868,2870,2872,2874,2876,2878,2880,2882,2884,2886,2888,2890,2892,2894,2896,2898,2900,2902,2904,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924,2926,2928,2930,2932,2934,2936,2938,2940,2942,2944,2946,2948,2950,2952,2954,2956,2958,2960,2962,2964,2966,2968,2970,2972,2974,2976,2978,2980,2982,2984,2986,2988,2990,2992,2994,2996,2998,3000,3002,3004,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024,3026,3028,3030,3032,3034,3036,3038,3040,3042,3044,3046,3048,3050,3052,3054,3056,3058,3060,3062,3064,3066,3068,3070,3072,3074,3076,3078,3080,3082,3084,3086,3088,3090,3092,3094,3096,3098,3100,3102,3104,3106,3108,3110,3112,3114,3116,3118,3120,3122,3124,3126,3128,3130,3132,3134,3136,3138,3140,3142,3144,3146,3148,3150,3152,3154,3156,3158,3160,3162,3164,3166,3168,3170,3172,3174,3176,3178,3180,3182,3184,3186,3188,3190,3192,3194,3196,3198,3200,3202,3204,3206,3208,3210,3212,3214,3216,3218,3220,3222,3224,3226,3228,3230,3232,3234,3236,3238,3240,3242,3244,3246,3248,3250,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3312,3314,3316,3318,3320,3322,3324,3326,3328,3330,3332,3334,3336,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356,3358,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412,3414,3416,3418,3420,3422,3424,3426,3428,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448,3450,3452,3454,3456,3458,3460,3462,3464,3466,3468,3470,3472,3474,3476,3478,3480,3482,3484,3486,3488,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510,3512,3514,3516,3518,3520,3522,3524,3526,3528,3530,3532,3534,3536,3538,3540,3542,3544,3546,3548,3550,3552,3554,3556,3558,3560,3562,3564,3566,3568,3570,3572,3574,3576,3578,3580,3582,3584,3586,3588,3590,3592,3594,3596,3598,3600,3602,3604,3606,3608,3610,3612,3614,3616,3618,3620,3622,3624,3626,3628,3630,3632,3634,3636,3638,3640,3642,3644,3646,3648,3650,3652,3654,3656,3658,3660,3662,3664,3666,3668,3670,3672,3674,3676,3678,3680,3682,3684,3686,3688,3690,3692,3694,3696,3698,3700,3702,3704,3706,3708,3710,3712,3714,3716,3718,3720,3722,3724,3726,3728,3730,3732,3734,3736,3738],{"categories":172},[173],"Developer Productivity",{"categories":175},[176],"Business & SaaS",{"categories":178},[179],"AI & LLMs",{"categories":181},[182],"AI Automation",{"categories":184},[185],"Product Strategy",{"categories":187},[179],{"categories":189},[173],{"categories":191},[176],{"categories":193},[],{"categories":195},[179],{"categories":197},[],{"categories":199},[200],"AI News & Trends",{"categories":202},[182],{"categories":204},[200],{"categories":206},[182],{"categories":208},[182],{"categories":210},[179],{"categories":212},[179],{"categories":214},[200],{"categories":216},[179],{"categories":218},[],{"categories":220},[221],"Design & Frontend",{"categories":223},[224],"Data Science & Visualization",{"categories":226},[200],{"categories":228},[],{"categories":230},[231],"Software Engineering",{"categories":233},[179],{"categories":235},[182],{"categories":237},[238],"Marketing & Growth",{"categories":240},[179],{"categories":242},[182],{"categories":244},[],{"categories":246},[],{"categories":248},[221],{"categories":250},[182],{"categories":252},[173],{"categories":254},[221],{"categories":256},[179],{"categories":258},[182],{"categories":260},[200],{"categories":262},[],{"categories":264},[],{"categories":266},[182],{"categories":268},[231],{"categories":270},[],{"categories":272},[176],{"categories":274},[],{"categories":276},[],{"categories":278},[182],{"categories":280},[182],{"categories":282},[179],{"categories":284},[],{"categories":286},[231],{"categories":288},[],{"categories":290},[],{"categories":292},[],{"categories":294},[179],{"categories":296},[238],{"categories":298},[221],{"categories":300},[221],{"categories":302},[179],{"categories":304},[182],{"categories":306},[179],{"categories":308},[179],{"categories":310},[182],{"categories":312},[182],{"categories":314},[224],{"categories":316},[200],{"categories":318},[182],{"categories":320},[238],{"categories":322},[182],{"categories":324},[185],{"categories":326},[],{"categories":328},[182],{"categories":330},[],{"categories":332},[182],{"categories":334},[231],{"categories":336},[221],{"categories":338},[179],{"categories":340},[],{"categories":342},[],{"categories":344},[182],{"categories":346},[],{"categories":348},[179],{"categories":350},[],{"categories":352},[173],{"categories":354},[231],{"categories":356},[176],{"categories":358},[200],{"categories":360},[179],{"categories":362},[],{"categories":364},[179],{"categories":366},[],{"categories":368},[231],{"categories":370},[224],{"categories":372},[],{"categories":374},[179],{"categories":376},[221],{"categories":378},[],{"categories":380},[221],{"categories":382},[182],{"categories":384},[],{"categories":386},[182],{"categories":388},[200],{"categories":390},[179],{"categories":392},[],{"categories":394},[182],{"categories":396},[179],{"categories":398},[185],{"categories":400},[],{"categories":402},[179],{"categories":404},[182],{"categories":406},[182],{"categories":408},[],{"categories":410},[224],{"categories":412},[179],{"categories":414},[],{"categories":416},[173],{"categories":418},[176],{"categories":420},[179],{"categories":422},[182],{"categories":424},[231],{"categories":426},[179],{"categories":428},[],{"categories":430},[],{"categories":432},[179],{"categories":434},[],{"categories":436},[221],{"categories":438},[],{"categories":440},[179],{"categories":442},[],{"categories":444},[182],{"categories":446},[179],{"categories":448},[221],{"categories":450},[],{"categories":452},[179],{"categories":454},[179],{"categories":456},[176],{"categories":458},[182],{"categories":460},[179],{"categories":462},[221],{"categories":464},[182],{"categories":466},[],{"categories":468},[],{"categories":470},[200],{"categories":472},[],{"categories":474},[179],{"categories":476},[176,238],{"categories":478},[],{"categories":480},[179],{"categories":482},[],{"categories":484},[],{"categories":486},[179],{"categories":488},[],{"categories":490},[179],{"categories":492},[493],"DevOps & Cloud",{"categories":495},[],{"categories":497},[200],{"categories":499},[221],{"categories":501},[],{"categories":503},[200],{"categories":505},[200],{"categories":507},[179],{"categories":509},[238],{"categories":511},[],{"categories":513},[176],{"categories":515},[],{"categories":517},[179,493],{"categories":519},[179],{"categories":521},[179],{"categories":523},[182],{"categories":525},[179,231],{"categories":527},[224],{"categories":529},[179],{"categories":531},[238],{"categories":533},[182],{"categories":535},[182],{"categories":537},[],{"categories":539},[182],{"categories":541},[179,176],{"categories":543},[],{"categories":545},[221],{"categories":547},[221],{"categories":549},[],{"categories":551},[],{"categories":553},[200],{"categories":555},[],{"categories":557},[173],{"categories":559},[231],{"categories":561},[179],{"categories":563},[221],{"categories":565},[182],{"categories":567},[231],{"categories":569},[200],{"categories":571},[221],{"categories":573},[],{"categories":575},[179],{"categories":577},[179],{"categories":579},[179],{"categories":581},[200],{"categories":583},[173],{"categories":585},[179],{"categories":587},[182],{"categories":589},[493],{"categories":591},[221],{"categories":593},[182],{"categories":595},[],{"categories":597},[],{"categories":599},[221],{"categories":601},[200],{"categories":603},[224],{"categories":605},[],{"categories":607},[179],{"categories":609},[179],{"categories":611},[176],{"categories":613},[179],{"categories":615},[179],{"categories":617},[200],{"categories":619},[],{"categories":621},[182],{"categories":623},[231],{"categories":625},[],{"categories":627},[179],{"categories":629},[179],{"categories":631},[182],{"categories":633},[],{"categories":635},[],{"categories":637},[179],{"categories":639},[],{"categories":641},[176],{"categories":643},[182],{"categories":645},[],{"categories":647},[173],{"categories":649},[179],{"categories":651},[176],{"categories":653},[200],{"categories":655},[],{"categories":657},[],{"categories":659},[],{"categories":661},[200],{"categories":663},[200],{"categories":665},[],{"categories":667},[],{"categories":669},[176],{"categories":671},[],{"categories":673},[],{"categories":675},[173],{"categories":677},[],{"categories":679},[238],{"categories":681},[182],{"categories":683},[176],{"categories":685},[182],{"categories":687},[],{"categories":689},[185],{"categories":691},[221],{"categories":693},[231],{"categories":695},[179],{"categories":697},[182],{"categories":699},[176],{"categories":701},[179],{"categories":703},[],{"categories":705},[],{"categories":707},[231],{"categories":709},[224],{"categories":711},[185],{"categories":713},[182],{"categories":715},[179],{"categories":717},[],{"categories":719},[493],{"categories":721},[],{"categories":723},[182],{"categories":725},[],{"categories":727},[],{"categories":729},[179],{"categories":731},[221],{"categories":733},[238],{"categories":735},[182],{"categories":737},[],{"categories":739},[173],{"categories":741},[],{"categories":743},[200],{"categories":745},[179,493],{"categories":747},[200],{"categories":749},[179],{"categories":751},[176],{"categories":753},[179],{"categories":755},[],{"categories":757},[176],{"categories":759},[],{"categories":761},[231],{"categories":763},[221],{"categories":765},[200],{"categories":767},[224],{"categories":769},[173],{"categories":771},[179],{"categories":773},[231],{"categories":775},[],{"categories":777},[],{"categories":779},[185],{"categories":781},[],{"categories":783},[179],{"categories":785},[],{"categories":787},[221],{"categories":789},[221],{"categories":791},[221],{"categories":793},[],{"categories":795},[],{"categories":797},[200],{"categories":799},[182],{"categories":801},[179],{"categories":803},[179],{"categories":805},[179],{"categories":807},[176],{"categories":809},[179],{"categories":811},[],{"categories":813},[231],{"categories":815},[231],{"categories":817},[176],{"categories":819},[],{"categories":821},[179],{"categories":823},[179],{"categories":825},[176],{"categories":827},[200],{"categories":829},[238],{"categories":831},[182],{"categories":833},[],{"categories":835},[221],{"categories":837},[],{"categories":839},[179],{"categories":841},[],{"categories":843},[176],{"categories":845},[182],{"categories":847},[],{"categories":849},[493],{"categories":851},[224],{"categories":853},[231],{"categories":855},[238],{"categories":857},[231],{"categories":859},[182],{"categories":861},[],{"categories":863},[],{"categories":865},[182],{"categories":867},[173],{"categories":869},[182],{"categories":871},[185],{"categories":873},[176],{"categories":875},[],{"categories":877},[179],{"categories":879},[185],{"categories":881},[179],{"categories":883},[179],{"categories":885},[238],{"categories":887},[221],{"categories":889},[182],{"categories":891},[],{"categories":893},[],{"categories":895},[493],{"categories":897},[231],{"categories":899},[],{"categories":901},[182],{"categories":903},[179],{"categories":905},[221,179],{"categories":907},[173],{"categories":909},[],{"categories":911},[179],{"categories":913},[173],{"categories":915},[221],{"categories":917},[182],{"categories":919},[231],{"categories":921},[],{"categories":923},[179],{"categories":925},[],{"categories":927},[173],{"categories":929},[],{"categories":931},[182],{"categories":933},[185],{"categories":935},[179],{"categories":937},[179],{"categories":939},[221],{"categories":941},[182],{"categories":943},[493],{"categories":945},[221],{"categories":947},[182],{"categories":949},[179],{"categories":951},[179],{"categories":953},[179],{"categories":955},[200],{"categories":957},[],{"categories":959},[185],{"categories":961},[182],{"categories":963},[221],{"categories":965},[182],{"categories":967},[231],{"categories":969},[221],{"categories":971},[182],{"categories":973},[200],{"categories":975},[],{"categories":977},[179],{"categories":979},[221],{"categories":981},[179],{"categories":983},[173],{"categories":985},[200],{"categories":987},[179],{"categories":989},[238],{"categories":991},[179],{"categories":993},[179],{"categories":995},[182],{"categories":997},[182],{"categories":999},[179],{"categories":1001},[182],{"categories":1003},[221],{"categories":1005},[179],{"categories":1007},[],{"categories":1009},[],{"categories":1011},[231],{"categories":1013},[],{"categories":1015},[173],{"categories":1017},[493],{"categories":1019},[],{"categories":1021},[173],{"categories":1023},[176],{"categories":1025},[238],{"categories":1027},[],{"categories":1029},[176],{"categories":1031},[],{"categories":1033},[],{"categories":1035},[],{"categories":1037},[],{"categories":1039},[],{"categories":1041},[179],{"categories":1043},[182],{"categories":1045},[493],{"categories":1047},[173],{"categories":1049},[179],{"categories":1051},[231],{"categories":1053},[185],{"categories":1055},[179],{"categories":1057},[238],{"categories":1059},[179],{"categories":1061},[179],{"categories":1063},[179],{"categories":1065},[179,173],{"categories":1067},[231],{"categories":1069},[231],{"categories":1071},[221],{"categories":1073},[179],{"categories":1075},[],{"categories":1077},[],{"categories":1079},[],{"categories":1081},[231],{"categories":1083},[224],{"categories":1085},[200],{"categories":1087},[221],{"categories":1089},[],{"categories":1091},[179],{"categories":1093},[179],{"categories":1095},[],{"categories":1097},[],{"categories":1099},[182],{"categories":1101},[179],{"categories":1103},[176],{"categories":1105},[],{"categories":1107},[173],{"categories":1109},[179],{"categories":1111},[173],{"categories":1113},[179],{"categories":1115},[231],{"categories":1117},[238],{"categories":1119},[179,221],{"categories":1121},[200],{"categories":1123},[221],{"categories":1125},[],{"categories":1127},[493],{"categories":1129},[221],{"categories":1131},[182],{"categories":1133},[],{"categories":1135},[],{"categories":1137},[],{"categories":1139},[],{"categories":1141},[231],{"categories":1143},[182],{"categories":1145},[182],{"categories":1147},[179],{"categories":1149},[179],{"categories":1151},[],{"categories":1153},[221],{"categories":1155},[],{"categories":1157},[],{"categories":1159},[182],{"categories":1161},[],{"categories":1163},[],{"categories":1165},[238],{"categories":1167},[238],{"categories":1169},[182],{"categories":1171},[],{"categories":1173},[179],{"categories":1175},[179],{"categories":1177},[231],{"categories":1179},[221],{"categories":1181},[221],{"categories":1183},[182],{"categories":1185},[173],{"categories":1187},[179],{"categories":1189},[221],{"categories":1191},[221],{"categories":1193},[182],{"categories":1195},[182],{"categories":1197},[179],{"categories":1199},[],{"categories":1201},[],{"categories":1203},[179],{"categories":1205},[182],{"categories":1207},[200],{"categories":1209},[231],{"categories":1211},[173],{"categories":1213},[179],{"categories":1215},[],{"categories":1217},[182],{"categories":1219},[182],{"categories":1221},[],{"categories":1223},[173],{"categories":1225},[179],{"categories":1227},[173],{"categories":1229},[173],{"categories":1231},[],{"categories":1233},[],{"categories":1235},[182],{"categories":1237},[182],{"categories":1239},[179],{"categories":1241},[179],{"categories":1243},[200],{"categories":1245},[224],{"categories":1247},[185],{"categories":1249},[200],{"categories":1251},[221],{"categories":1253},[],{"categories":1255},[200],{"categories":1257},[],{"categories":1259},[],{"categories":1261},[],{"categories":1263},[],{"categories":1265},[231],{"categories":1267},[224],{"categories":1269},[],{"categories":1271},[179],{"categories":1273},[179],{"categories":1275},[224],{"categories":1277},[231],{"categories":1279},[],{"categories":1281},[],{"categories":1283},[182],{"categories":1285},[200],{"categories":1287},[200],{"categories":1289},[182],{"categories":1291},[173],{"categories":1293},[179,493],{"categories":1295},[],{"categories":1297},[221],{"categories":1299},[173],{"categories":1301},[182],{"categories":1303},[221],{"categories":1305},[],{"categories":1307},[182],{"categories":1309},[182],{"categories":1311},[179],{"categories":1313},[238],{"categories":1315},[231],{"categories":1317},[221],{"categories":1319},[],{"categories":1321},[182],{"categories":1323},[179],{"categories":1325},[182],{"categories":1327},[182],{"categories":1329},[182],{"categories":1331},[238],{"categories":1333},[182],{"categories":1335},[179],{"categories":1337},[],{"categories":1339},[238],{"categories":1341},[200],{"categories":1343},[182],{"categories":1345},[],{"categories":1347},[],{"categories":1349},[179],{"categories":1351},[182],{"categories":1353},[200],{"categories":1355},[182],{"categories":1357},[],{"categories":1359},[],{"categories":1361},[],{"categories":1363},[182],{"categories":1365},[],{"categories":1367},[],{"categories":1369},[224],{"categories":1371},[179],{"categories":1373},[224],{"categories":1375},[200],{"categories":1377},[179],{"categories":1379},[179],{"categories":1381},[182],{"categories":1383},[179],{"categories":1385},[],{"categories":1387},[],{"categories":1389},[493],{"categories":1391},[],{"categories":1393},[],{"categories":1395},[173],{"categories":1397},[],{"categories":1399},[],{"categories":1401},[],{"categories":1403},[],{"categories":1405},[231],{"categories":1407},[200],{"categories":1409},[238],{"categories":1411},[176],{"categories":1413},[179],{"categories":1415},[179],{"categories":1417},[176],{"categories":1419},[],{"categories":1421},[221],{"categories":1423},[182],{"categories":1425},[176],{"categories":1427},[179],{"categories":1429},[179],{"categories":1431},[173],{"categories":1433},[],{"categories":1435},[173],{"categories":1437},[179],{"categories":1439},[238],{"categories":1441},[182],{"categories":1443},[200],{"categories":1445},[176],{"categories":1447},[179],{"categories":1449},[182],{"categories":1451},[],{"categories":1453},[179],{"categories":1455},[173],{"categories":1457},[179],{"categories":1459},[],{"categories":1461},[200],{"categories":1463},[179],{"categories":1465},[],{"categories":1467},[176],{"categories":1469},[179],{"categories":1471},[],{"categories":1473},[],{"categories":1475},[],{"categories":1477},[179],{"categories":1479},[],{"categories":1481},[493],{"categories":1483},[179],{"categories":1485},[],{"categories":1487},[179],{"categories":1489},[179],{"categories":1491},[179],{"categories":1493},[179,493],{"categories":1495},[179],{"categories":1497},[179],{"categories":1499},[221],{"categories":1501},[182],{"categories":1503},[],{"categories":1505},[182],{"categories":1507},[179],{"categories":1509},[179],{"categories":1511},[179],{"categories":1513},[173],{"categories":1515},[173],{"categories":1517},[231],{"categories":1519},[221],{"categories":1521},[182],{"categories":1523},[],{"categories":1525},[179],{"categories":1527},[200],{"categories":1529},[179],{"categories":1531},[176],{"categories":1533},[],{"categories":1535},[493],{"categories":1537},[221],{"categories":1539},[221],{"categories":1541},[182],{"categories":1543},[200],{"categories":1545},[182],{"categories":1547},[179],{"categories":1549},[],{"categories":1551},[179],{"categories":1553},[],{"categories":1555},[],{"categories":1557},[179],{"categories":1559},[179],{"categories":1561},[179],{"categories":1563},[182],{"categories":1565},[179],{"categories":1567},[],{"categories":1569},[224],{"categories":1571},[182],{"categories":1573},[],{"categories":1575},[179],{"categories":1577},[200],{"categories":1579},[],{"categories":1581},[221],{"categories":1583},[493],{"categories":1585},[200],{"categories":1587},[231],{"categories":1589},[231],{"categories":1591},[200],{"categories":1593},[200],{"categories":1595},[493],{"categories":1597},[],{"categories":1599},[200],{"categories":1601},[179],{"categories":1603},[173],{"categories":1605},[200],{"categories":1607},[],{"categories":1609},[224],{"categories":1611},[200],{"categories":1613},[231],{"categories":1615},[200],{"categories":1617},[493],{"categories":1619},[179],{"categories":1621},[179],{"categories":1623},[],{"categories":1625},[176],{"categories":1627},[],{"categories":1629},[],{"categories":1631},[179],{"categories":1633},[179],{"categories":1635},[179],{"categories":1637},[179],{"categories":1639},[],{"categories":1641},[224],{"categories":1643},[173],{"categories":1645},[],{"categories":1647},[179],{"categories":1649},[179],{"categories":1651},[493],{"categories":1653},[493],{"categories":1655},[],{"categories":1657},[182],{"categories":1659},[200],{"categories":1661},[200],{"categories":1663},[179],{"categories":1665},[182],{"categories":1667},[],{"categories":1669},[221],{"categories":1671},[179],{"categories":1673},[179],{"categories":1675},[],{"categories":1677},[],{"categories":1679},[493],{"categories":1681},[179],{"categories":1683},[231],{"categories":1685},[176],{"categories":1687},[179],{"categories":1689},[],{"categories":1691},[182],{"categories":1693},[173],{"categories":1695},[173],{"categories":1697},[],{"categories":1699},[179],{"categories":1701},[221],{"categories":1703},[182],{"categories":1705},[],{"categories":1707},[179],{"categories":1709},[179],{"categories":1711},[182],{"categories":1713},[],{"categories":1715},[182],{"categories":1717},[231],{"categories":1719},[],{"categories":1721},[179],{"categories":1723},[],{"categories":1725},[179],{"categories":1727},[],{"categories":1729},[179],{"categories":1731},[179],{"categories":1733},[],{"categories":1735},[179],{"categories":1737},[200],{"categories":1739},[179],{"categories":1741},[179],{"categories":1743},[173],{"categories":1745},[179],{"categories":1747},[200],{"categories":1749},[182],{"categories":1751},[],{"categories":1753},[179],{"categories":1755},[238],{"categories":1757},[],{"categories":1759},[],{"categories":1761},[],{"categories":1763},[173],{"categories":1765},[200],{"categories":1767},[182],{"categories":1769},[179],{"categories":1771},[221],{"categories":1773},[182],{"categories":1775},[],{"categories":1777},[182],{"categories":1779},[],{"categories":1781},[179],{"categories":1783},[182],{"categories":1785},[179],{"categories":1787},[],{"categories":1789},[179],{"categories":1791},[179],{"categories":1793},[200],{"categories":1795},[221],{"categories":1797},[182],{"categories":1799},[221],{"categories":1801},[176],{"categories":1803},[],{"categories":1805},[],{"categories":1807},[179],{"categories":1809},[173],{"categories":1811},[200],{"categories":1813},[],{"categories":1815},[],{"categories":1817},[231],{"categories":1819},[221],{"categories":1821},[],{"categories":1823},[179],{"categories":1825},[],{"categories":1827},[238],{"categories":1829},[179],{"categories":1831},[493],{"categories":1833},[231],{"categories":1835},[],{"categories":1837},[182],{"categories":1839},[179],{"categories":1841},[182],{"categories":1843},[182],{"categories":1845},[179],{"categories":1847},[],{"categories":1849},[173],{"categories":1851},[179],{"categories":1853},[176],{"categories":1855},[231],{"categories":1857},[221],{"categories":1859},[],{"categories":1861},[],{"categories":1863},[],{"categories":1865},[182],{"categories":1867},[221],{"categories":1869},[200],{"categories":1871},[179],{"categories":1873},[200],{"categories":1875},[221],{"categories":1877},[],{"categories":1879},[221],{"categories":1881},[200],{"categories":1883},[176],{"categories":1885},[179],{"categories":1887},[200],{"categories":1889},[238],{"categories":1891},[],{"categories":1893},[],{"categories":1895},[224],{"categories":1897},[179,231],{"categories":1899},[200],{"categories":1901},[179],{"categories":1903},[182],{"categories":1905},[182],{"categories":1907},[179],{"categories":1909},[],{"categories":1911},[231],{"categories":1913},[179],{"categories":1915},[224],{"categories":1917},[182],{"categories":1919},[238],{"categories":1921},[493],{"categories":1923},[],{"categories":1925},[173],{"categories":1927},[182],{"categories":1929},[182],{"categories":1931},[231],{"categories":1933},[179],{"categories":1935},[179],{"categories":1937},[],{"categories":1939},[],{"categories":1941},[],{"categories":1943},[493],{"categories":1945},[200],{"categories":1947},[179],{"categories":1949},[179],{"categories":1951},[179],{"categories":1953},[],{"categories":1955},[224],{"categories":1957},[176],{"categories":1959},[],{"categories":1961},[182],{"categories":1963},[493],{"categories":1965},[],{"categories":1967},[221],{"categories":1969},[221],{"categories":1971},[],{"categories":1973},[231],{"categories":1975},[221],{"categories":1977},[179],{"categories":1979},[],{"categories":1981},[200],{"categories":1983},[179],{"categories":1985},[221],{"categories":1987},[182],{"categories":1989},[200],{"categories":1991},[],{"categories":1993},[182],{"categories":1995},[221],{"categories":1997},[179],{"categories":1999},[],{"categories":2001},[179],{"categories":2003},[179],{"categories":2005},[493],{"categories":2007},[200],{"categories":2009},[224],{"categories":2011},[224],{"categories":2013},[],{"categories":2015},[],{"categories":2017},[],{"categories":2019},[182],{"categories":2021},[231],{"categories":2023},[231],{"categories":2025},[],{"categories":2027},[],{"categories":2029},[179],{"categories":2031},[],{"categories":2033},[182],{"categories":2035},[179],{"categories":2037},[],{"categories":2039},[179],{"categories":2041},[176],{"categories":2043},[179],{"categories":2045},[238],{"categories":2047},[182],{"categories":2049},[179],{"categories":2051},[231],{"categories":2053},[200],{"categories":2055},[182],{"categories":2057},[],{"categories":2059},[200],{"categories":2061},[182],{"categories":2063},[182],{"categories":2065},[],{"categories":2067},[176],{"categories":2069},[182],{"categories":2071},[],{"categories":2073},[179],{"categories":2075},[173],{"categories":2077},[200],{"categories":2079},[493],{"categories":2081},[182],{"categories":2083},[182],{"categories":2085},[173],{"categories":2087},[179],{"categories":2089},[],{"categories":2091},[],{"categories":2093},[221],{"categories":2095},[179,176],{"categories":2097},[],{"categories":2099},[173],{"categories":2101},[224],{"categories":2103},[179],{"categories":2105},[231],{"categories":2107},[179],{"categories":2109},[182],{"categories":2111},[179],{"categories":2113},[179],{"categories":2115},[200],{"categories":2117},[182],{"categories":2119},[],{"categories":2121},[],{"categories":2123},[182],{"categories":2125},[179],{"categories":2127},[493],{"categories":2129},[],{"categories":2131},[179],{"categories":2133},[182],{"categories":2135},[],{"categories":2137},[179],{"categories":2139},[238],{"categories":2141},[224],{"categories":2143},[182],{"categories":2145},[179],{"categories":2147},[493],{"categories":2149},[],{"categories":2151},[179],{"categories":2153},[238],{"categories":2155},[221],{"categories":2157},[179],{"categories":2159},[],{"categories":2161},[238],{"categories":2163},[200],{"categories":2165},[179],{"categories":2167},[179],{"categories":2169},[173],{"categories":2171},[],{"categories":2173},[],{"categories":2175},[221],{"categories":2177},[179],{"categories":2179},[224],{"categories":2181},[238],{"categories":2183},[238],{"categories":2185},[200],{"categories":2187},[],{"categories":2189},[],{"categories":2191},[179],{"categories":2193},[],{"categories":2195},[179,231],{"categories":2197},[200],{"categories":2199},[182],{"categories":2201},[231],{"categories":2203},[179],{"categories":2205},[173],{"categories":2207},[],{"categories":2209},[],{"categories":2211},[173],{"categories":2213},[238],{"categories":2215},[179],{"categories":2217},[],{"categories":2219},[221,179],{"categories":2221},[493],{"categories":2223},[173],{"categories":2225},[],{"categories":2227},[176],{"categories":2229},[176],{"categories":2231},[179],{"categories":2233},[231],{"categories":2235},[182],{"categories":2237},[200],{"categories":2239},[238],{"categories":2241},[221],{"categories":2243},[179],{"categories":2245},[179],{"categories":2247},[179],{"categories":2249},[173],{"categories":2251},[179],{"categories":2253},[182],{"categories":2255},[200],{"categories":2257},[],{"categories":2259},[],{"categories":2261},[224],{"categories":2263},[231],{"categories":2265},[179],{"categories":2267},[221],{"categories":2269},[224],{"categories":2271},[179],{"categories":2273},[179],{"categories":2275},[182],{"categories":2277},[182],{"categories":2279},[179,176],{"categories":2281},[],{"categories":2283},[221],{"categories":2285},[],{"categories":2287},[179],{"categories":2289},[200],{"categories":2291},[173],{"categories":2293},[173],{"categories":2295},[182],{"categories":2297},[179],{"categories":2299},[176],{"categories":2301},[231],{"categories":2303},[238],{"categories":2305},[],{"categories":2307},[200],{"categories":2309},[179],{"categories":2311},[179],{"categories":2313},[200],{"categories":2315},[231],{"categories":2317},[179],{"categories":2319},[182],{"categories":2321},[200],{"categories":2323},[179],{"categories":2325},[221],{"categories":2327},[179],{"categories":2329},[179],{"categories":2331},[493],{"categories":2333},[185],{"categories":2335},[182],{"categories":2337},[179],{"categories":2339},[200],{"categories":2341},[182],{"categories":2343},[238],{"categories":2345},[179],{"categories":2347},[],{"categories":2349},[179],{"categories":2351},[],{"categories":2353},[],{"categories":2355},[],{"categories":2357},[176],{"categories":2359},[179],{"categories":2361},[182],{"categories":2363},[200],{"categories":2365},[200],{"categories":2367},[200],{"categories":2369},[200],{"categories":2371},[],{"categories":2373},[173],{"categories":2375},[182],{"categories":2377},[200],{"categories":2379},[173],{"categories":2381},[182],{"categories":2383},[179],{"categories":2385},[179,182],{"categories":2387},[182],{"categories":2389},[493],{"categories":2391},[200],{"categories":2393},[200],{"categories":2395},[182],{"categories":2397},[179],{"categories":2399},[],{"categories":2401},[200],{"categories":2403},[238],{"categories":2405},[173],{"categories":2407},[179],{"categories":2409},[179],{"categories":2411},[],{"categories":2413},[231],{"categories":2415},[],{"categories":2417},[173],{"categories":2419},[182],{"categories":2421},[200],{"categories":2423},[179],{"categories":2425},[200],{"categories":2427},[173],{"categories":2429},[200],{"categories":2431},[200],{"categories":2433},[],{"categories":2435},[176],{"categories":2437},[182],{"categories":2439},[200],{"categories":2441},[200],{"categories":2443},[200],{"categories":2445},[200],{"categories":2447},[200],{"categories":2449},[200],{"categories":2451},[200],{"categories":2453},[200],{"categories":2455},[200],{"categories":2457},[200],{"categories":2459},[224],{"categories":2461},[173],{"categories":2463},[179],{"categories":2465},[179],{"categories":2467},[],{"categories":2469},[179,173],{"categories":2471},[],{"categories":2473},[182],{"categories":2475},[200],{"categories":2477},[182],{"categories":2479},[179],{"categories":2481},[179],{"categories":2483},[179],{"categories":2485},[179],{"categories":2487},[179],{"categories":2489},[182],{"categories":2491},[176],{"categories":2493},[221],{"categories":2495},[200],{"categories":2497},[179],{"categories":2499},[],{"categories":2501},[],{"categories":2503},[182],{"categories":2505},[221],{"categories":2507},[179],{"categories":2509},[],{"categories":2511},[],{"categories":2513},[238],{"categories":2515},[179],{"categories":2517},[],{"categories":2519},[],{"categories":2521},[173],{"categories":2523},[176],{"categories":2525},[179],{"categories":2527},[176],{"categories":2529},[221],{"categories":2531},[],{"categories":2533},[200],{"categories":2535},[],{"categories":2537},[221],{"categories":2539},[179],{"categories":2541},[238],{"categories":2543},[],{"categories":2545},[238],{"categories":2547},[],{"categories":2549},[],{"categories":2551},[182],{"categories":2553},[],{"categories":2555},[176],{"categories":2557},[173],{"categories":2559},[221],{"categories":2561},[231],{"categories":2563},[],{"categories":2565},[],{"categories":2567},[179],{"categories":2569},[173],{"categories":2571},[238],{"categories":2573},[],{"categories":2575},[182],{"categories":2577},[182],{"categories":2579},[200],{"categories":2581},[179],{"categories":2583},[182],{"categories":2585},[179],{"categories":2587},[182],{"categories":2589},[179],{"categories":2591},[185],{"categories":2593},[200],{"categories":2595},[],{"categories":2597},[238],{"categories":2599},[231],{"categories":2601},[182],{"categories":2603},[],{"categories":2605},[179],{"categories":2607},[182],{"categories":2609},[176],{"categories":2611},[173],{"categories":2613},[179],{"categories":2615},[221],{"categories":2617},[231],{"categories":2619},[231],{"categories":2621},[179],{"categories":2623},[224],{"categories":2625},[179],{"categories":2627},[182],{"categories":2629},[176],{"categories":2631},[182],{"categories":2633},[179],{"categories":2635},[179],{"categories":2637},[182],{"categories":2639},[200],{"categories":2641},[],{"categories":2643},[173],{"categories":2645},[179],{"categories":2647},[182],{"categories":2649},[179],{"categories":2651},[179],{"categories":2653},[],{"categories":2655},[221],{"categories":2657},[176],{"categories":2659},[200],{"categories":2661},[179],{"categories":2663},[179],{"categories":2665},[221],{"categories":2667},[238],{"categories":2669},[224],{"categories":2671},[179],{"categories":2673},[200],{"categories":2675},[179],{"categories":2677},[182],{"categories":2679},[493],{"categories":2681},[179],{"categories":2683},[182],{"categories":2685},[224],{"categories":2687},[],{"categories":2689},[182],{"categories":2691},[231],{"categories":2693},[221],{"categories":2695},[179],{"categories":2697},[173],{"categories":2699},[176],{"categories":2701},[231],{"categories":2703},[],{"categories":2705},[182],{"categories":2707},[179],{"categories":2709},[],{"categories":2711},[200],{"categories":2713},[],{"categories":2715},[200],{"categories":2717},[179],{"categories":2719},[182],{"categories":2721},[182],{"categories":2723},[182],{"categories":2725},[],{"categories":2727},[],{"categories":2729},[179],{"categories":2731},[179],{"categories":2733},[],{"categories":2735},[221],{"categories":2737},[182],{"categories":2739},[238],{"categories":2741},[173],{"categories":2743},[],{"categories":2745},[],{"categories":2747},[200],{"categories":2749},[231],{"categories":2751},[179],{"categories":2753},[179],{"categories":2755},[179],{"categories":2757},[231],{"categories":2759},[200],{"categories":2761},[221],{"categories":2763},[179],{"categories":2765},[179],{"categories":2767},[179],{"categories":2769},[200],{"categories":2771},[179],{"categories":2773},[200],{"categories":2775},[182],{"categories":2777},[182],{"categories":2779},[231],{"categories":2781},[182],{"categories":2783},[179],{"categories":2785},[231],{"categories":2787},[221],{"categories":2789},[],{"categories":2791},[182],{"categories":2793},[],{"categories":2795},[],{"categories":2797},[176],{"categories":2799},[179],{"categories":2801},[182],{"categories":2803},[173],{"categories":2805},[182],{"categories":2807},[238],{"categories":2809},[],{"categories":2811},[182],{"categories":2813},[],{"categories":2815},[173],{"categories":2817},[182],{"categories":2819},[],{"categories":2821},[182],{"categories":2823},[179],{"categories":2825},[200],{"categories":2827},[179],{"categories":2829},[182],{"categories":2831},[200],{"categories":2833},[182],{"categories":2835},[231],{"categories":2837},[221],{"categories":2839},[173],{"categories":2841},[],{"categories":2843},[182],{"categories":2845},[221],{"categories":2847},[200],{"categories":2849},[179],{"categories":2851},[221],{"categories":2853},[173],{"categories":2855},[],{"categories":2857},[182],{"categories":2859},[182],{"categories":2861},[179],{"categories":2863},[],{"categories":2865},[182],{"categories":2867},[185],{"categories":2869},[200],{"categories":2871},[182],{"categories":2873},[176],{"categories":2875},[],{"categories":2877},[179],{"categories":2879},[185],{"categories":2881},[179],{"categories":2883},[182],{"categories":2885},[200],{"categories":2887},[173],{"categories":2889},[493],{"categories":2891},[179],{"categories":2893},[179],{"categories":2895},[179],{"categories":2897},[200],{"categories":2899},[176],{"categories":2901},[179],{"categories":2903},[221],{"categories":2905},[200],{"categories":2907},[493],{"categories":2909},[179],{"categories":2911},[],{"categories":2913},[],{"categories":2915},[493],{"categories":2917},[224],{"categories":2919},[182],{"categories":2921},[182],{"categories":2923},[200],{"categories":2925},[179],{"categories":2927},[173],{"categories":2929},[221],{"categories":2931},[182],{"categories":2933},[179],{"categories":2935},[238],{"categories":2937},[179],{"categories":2939},[182],{"categories":2941},[],{"categories":2943},[179],{"categories":2945},[179],{"categories":2947},[200],{"categories":2949},[173],{"categories":2951},[],{"categories":2953},[179],{"categories":2955},[179],{"categories":2957},[231],{"categories":2959},[221],{"categories":2961},[179,182],{"categories":2963},[238,176],{"categories":2965},[179],{"categories":2967},[],{"categories":2969},[182],{"categories":2971},[],{"categories":2973},[231],{"categories":2975},[179],{"categories":2977},[200],{"categories":2979},[],{"categories":2981},[182],{"categories":2983},[],{"categories":2985},[182],{"categories":2987},[173],{"categories":2989},[182],{"categories":2991},[179],{"categories":2993},[493],{"categories":2995},[238],{"categories":2997},[176],{"categories":2999},[176],{"categories":3001},[173],{"categories":3003},[173],{"categories":3005},[179],{"categories":3007},[182],{"categories":3009},[179],{"categories":3011},[179],{"categories":3013},[173],{"categories":3015},[179],{"categories":3017},[238],{"categories":3019},[200],{"categories":3021},[179],{"categories":3023},[182],{"categories":3025},[179],{"categories":3027},[],{"categories":3029},[231],{"categories":3031},[],{"categories":3033},[182],{"categories":3035},[173],{"categories":3037},[],{"categories":3039},[493],{"categories":3041},[179],{"categories":3043},[],{"categories":3045},[200],{"categories":3047},[182],{"categories":3049},[231],{"categories":3051},[179],{"categories":3053},[182],{"categories":3055},[231],{"categories":3057},[182],{"categories":3059},[200],{"categories":3061},[173],{"categories":3063},[200],{"categories":3065},[231],{"categories":3067},[179],{"categories":3069},[221],{"categories":3071},[179],{"categories":3073},[179],{"categories":3075},[179],{"categories":3077},[179],{"categories":3079},[182],{"categories":3081},[179],{"categories":3083},[182],{"categories":3085},[179],{"categories":3087},[173],{"categories":3089},[179],{"categories":3091},[182],{"categories":3093},[221],{"categories":3095},[173],{"categories":3097},[182],{"categories":3099},[221],{"categories":3101},[],{"categories":3103},[179],{"categories":3105},[179],{"categories":3107},[231],{"categories":3109},[],{"categories":3111},[182],{"categories":3113},[238],{"categories":3115},[179],{"categories":3117},[200],{"categories":3119},[238],{"categories":3121},[182],{"categories":3123},[176],{"categories":3125},[176],{"categories":3127},[179],{"categories":3129},[173],{"categories":3131},[],{"categories":3133},[179],{"categories":3135},[],{"categories":3137},[173],{"categories":3139},[179],{"categories":3141},[182],{"categories":3143},[182],{"categories":3145},[],{"categories":3147},[231],{"categories":3149},[231],{"categories":3151},[238],{"categories":3153},[221],{"categories":3155},[],{"categories":3157},[179],{"categories":3159},[173],{"categories":3161},[179],{"categories":3163},[231],{"categories":3165},[173],{"categories":3167},[200],{"categories":3169},[200],{"categories":3171},[],{"categories":3173},[200],{"categories":3175},[182],{"categories":3177},[221],{"categories":3179},[224],{"categories":3181},[179],{"categories":3183},[],{"categories":3185},[200],{"categories":3187},[231],{"categories":3189},[176],{"categories":3191},[179],{"categories":3193},[173],{"categories":3195},[493],{"categories":3197},[173],{"categories":3199},[],{"categories":3201},[],{"categories":3203},[200],{"categories":3205},[],{"categories":3207},[182],{"categories":3209},[182],{"categories":3211},[182],{"categories":3213},[],{"categories":3215},[179],{"categories":3217},[],{"categories":3219},[200],{"categories":3221},[173],{"categories":3223},[221],{"categories":3225},[179],{"categories":3227},[200],{"categories":3229},[200],{"categories":3231},[],{"categories":3233},[200],{"categories":3235},[173],{"categories":3237},[179],{"categories":3239},[],{"categories":3241},[182],{"categories":3243},[182],{"categories":3245},[173],{"categories":3247},[],{"categories":3249},[],{"categories":3251},[],{"categories":3253},[221],{"categories":3255},[182],{"categories":3257},[179],{"categories":3259},[],{"categories":3261},[],{"categories":3263},[],{"categories":3265},[221],{"categories":3267},[],{"categories":3269},[173],{"categories":3271},[],{"categories":3273},[],{"categories":3275},[221],{"categories":3277},[179],{"categories":3279},[200],{"categories":3281},[],{"categories":3283},[238],{"categories":3285},[200],{"categories":3287},[238],{"categories":3289},[179],{"categories":3291},[],{"categories":3293},[],{"categories":3295},[182],{"categories":3297},[],{"categories":3299},[],{"categories":3301},[182],{"categories":3303},[179],{"categories":3305},[],{"categories":3307},[182],{"categories":3309},[200],{"categories":3311},[238],{"categories":3313},[224],{"categories":3315},[182],{"categories":3317},[182],{"categories":3319},[],{"categories":3321},[],{"categories":3323},[],{"categories":3325},[200],{"categories":3327},[],{"categories":3329},[],{"categories":3331},[221],{"categories":3333},[173],{"categories":3335},[],{"categories":3337},[176],{"categories":3339},[238],{"categories":3341},[179],{"categories":3343},[231],{"categories":3345},[173],{"categories":3347},[224],{"categories":3349},[176],{"categories":3351},[231],{"categories":3353},[],{"categories":3355},[],{"categories":3357},[182],{"categories":3359},[173],{"categories":3361},[221],{"categories":3363},[173],{"categories":3365},[182],{"categories":3367},[493],{"categories":3369},[182],{"categories":3371},[],{"categories":3373},[179],{"categories":3375},[200],{"categories":3377},[231],{"categories":3379},[],{"categories":3381},[221],{"categories":3383},[200],{"categories":3385},[173],{"categories":3387},[182],{"categories":3389},[179],{"categories":3391},[176],{"categories":3393},[182,493],{"categories":3395},[182],{"categories":3397},[231],{"categories":3399},[179],{"categories":3401},[224],{"categories":3403},[238],{"categories":3405},[182],{"categories":3407},[],{"categories":3409},[182],{"categories":3411},[179],{"categories":3413},[176],{"categories":3415},[],{"categories":3417},[],{"categories":3419},[179],{"categories":3421},[224],{"categories":3423},[179],{"categories":3425},[],{"categories":3427},[200],{"categories":3429},[],{"categories":3431},[200],{"categories":3433},[231],{"categories":3435},[182],{"categories":3437},[179],{"categories":3439},[238],{"categories":3441},[231],{"categories":3443},[],{"categories":3445},[200],{"categories":3447},[179],{"categories":3449},[],{"categories":3451},[179],{"categories":3453},[182],{"categories":3455},[179],{"categories":3457},[182],{"categories":3459},[179],{"categories":3461},[179],{"categories":3463},[179],{"categories":3465},[179],{"categories":3467},[176],{"categories":3469},[],{"categories":3471},[185],{"categories":3473},[200],{"categories":3475},[179],{"categories":3477},[],{"categories":3479},[231],{"categories":3481},[179],{"categories":3483},[179],{"categories":3485},[182],{"categories":3487},[200],{"categories":3489},[179],{"categories":3491},[179],{"categories":3493},[176],{"categories":3495},[182],{"categories":3497},[221],{"categories":3499},[],{"categories":3501},[224],{"categories":3503},[179],{"categories":3505},[],{"categories":3507},[200],{"categories":3509},[238],{"categories":3511},[],{"categories":3513},[],{"categories":3515},[200],{"categories":3517},[200],{"categories":3519},[238],{"categories":3521},[173],{"categories":3523},[182],{"categories":3525},[182],{"categories":3527},[179],{"categories":3529},[176],{"categories":3531},[],{"categories":3533},[],{"categories":3535},[200],{"categories":3537},[224],{"categories":3539},[231],{"categories":3541},[182],{"categories":3543},[221],{"categories":3545},[224],{"categories":3547},[224],{"categories":3549},[],{"categories":3551},[200],{"categories":3553},[179],{"categories":3555},[179],{"categories":3557},[231],{"categories":3559},[],{"categories":3561},[200],{"categories":3563},[200],{"categories":3565},[200],{"categories":3567},[],{"categories":3569},[182],{"categories":3571},[179],{"categories":3573},[],{"categories":3575},[173],{"categories":3577},[176],{"categories":3579},[],{"categories":3581},[179],{"categories":3583},[179],{"categories":3585},[],{"categories":3587},[231],{"categories":3589},[],{"categories":3591},[],{"categories":3593},[],{"categories":3595},[],{"categories":3597},[179],{"categories":3599},[200],{"categories":3601},[],{"categories":3603},[],{"categories":3605},[179],{"categories":3607},[179],{"categories":3609},[179],{"categories":3611},[224],{"categories":3613},[179],{"categories":3615},[224],{"categories":3617},[],{"categories":3619},[224],{"categories":3621},[224],{"categories":3623},[493],{"categories":3625},[182],{"categories":3627},[231],{"categories":3629},[],{"categories":3631},[],{"categories":3633},[224],{"categories":3635},[231],{"categories":3637},[231],{"categories":3639},[231],{"categories":3641},[],{"categories":3643},[173],{"categories":3645},[231],{"categories":3647},[231],{"categories":3649},[173],{"categories":3651},[231],{"categories":3653},[176],{"categories":3655},[231],{"categories":3657},[231],{"categories":3659},[231],{"categories":3661},[224],{"categories":3663},[200],{"categories":3665},[200],{"categories":3667},[179],{"categories":3669},[231],{"categories":3671},[224],{"categories":3673},[493],{"categories":3675},[224],{"categories":3677},[224],{"categories":3679},[224],{"categories":3681},[],{"categories":3683},[176],{"categories":3685},[],{"categories":3687},[493],{"categories":3689},[231],{"categories":3691},[231],{"categories":3693},[231],{"categories":3695},[182],{"categories":3697},[200,176],{"categories":3699},[224],{"categories":3701},[],{"categories":3703},[],{"categories":3705},[224],{"categories":3707},[],{"categories":3709},[224],{"categories":3711},[200],{"categories":3713},[182],{"categories":3715},[],{"categories":3717},[231],{"categories":3719},[179],{"categories":3721},[221],{"categories":3723},[],{"categories":3725},[179],{"categories":3727},[],{"categories":3729},[200],{"categories":3731},[173],{"categories":3733},[224],{"categories":3735},[],{"categories":3737},[231],{"categories":3739},[200],[3741,3903,4193,4323],{"id":3742,"title":3743,"ai":3744,"body":3749,"categories":3876,"created_at":129,"date_modified":129,"description":31,"extension":130,"faq":129,"featured":131,"kicker_label":129,"meta":3877,"navigation":54,"path":3889,"published_at":3890,"question":129,"scraped_at":3891,"seo":3892,"sitemap":3893,"source_id":3894,"source_name":3895,"source_type":161,"source_url":3896,"stem":3897,"tags":3898,"thumbnail_url":129,"tldr":3900,"tweet":129,"unknown_tags":3901,"__hash__":3902},"summaries\u002Fsummaries\u002Fa690c3914c9d11ae-memori-persistent-memory-for-multi-user-llm-agents-summary.md","Memori: Persistent Memory for Multi-User LLM Agents",{"provider":7,"model":8,"input_tokens":3745,"output_tokens":3746,"processing_time_ms":3747,"cost_usd":3748},8671,1734,17086,0.0025787,{"type":14,"value":3750,"toc":3871},[3751,3755,3794,3798,3825,3829],[17,3752,3754],{"id":3753},"seamless-client-integration-for-automatic-memory","Seamless Client Integration for Automatic Memory",[22,3756,3757,3758,3761,3762,3765,3766,3769,3770,3773,3774,3777,3778,3781,3782,3785,3786,3789,3790,3793],{},"Register synchronous and asynchronous OpenAI clients with Memori using ",[33,3759,3760],{},"mem.llm.register(client)"," and ",[33,3763,3764],{},"mem.llm.register(async_client)",". This intercepts all ",[33,3767,3768],{},"chat.completions.create"," calls to inject relevant memories as context, eliminating manual retrieval logic. Setup in Colab: ",[33,3771,3772],{},"pip install memori>=3.3.0 openai>=1.40.0 nest_asyncio",", set ",[33,3775,3776],{},"OPENAI_API_KEY"," (required) and optional ",[33,3779,3780],{},"MEMORI_API_KEY"," for non-rate-limited access. Use ",[33,3783,3784],{},"gpt-4o-mini"," as the model and a 6-second ",[33,3787,3788],{},"WRITE_DELAY"," after each call to ensure memory persistence. Result: Every LLM interaction becomes stateful, recalling facts like \"Alice loves hiking, Italian food, allergic to peanuts\" across turns via simple ",[33,3791,3792],{},"mem.attribution(entity_id=\"[email protected]\", process_id=\"personal-assistant\")"," before prompting.",[17,3795,3797],{"id":3796},"multi-tenant-isolation-via-entity-process-and-session-scoping","Multi-Tenant Isolation via Entity, Process, and Session Scoping",[22,3799,3800,3801,3804,3805,3808,3809,3812,3813,3816,3817,3820,3821,3824],{},"Scope memories hierarchically: ",[33,3802,3803],{},"entity_id"," (e.g., user email) isolates users—Bob's \"vegetarian, Rust developer, Berlin\" doesn't leak to Alice. ",[33,3806,3807],{},"process_id"," separates agent roles for one user: Alice's \"sub-25-minute 5K goal\" stays with ",[33,3810,3811],{},"fitness-coach",", while \"low-carb dinners\" is siloed to ",[33,3814,3815],{},"meal-planner",". Sessions group turns: ",[33,3818,3819],{},"mem.set_session(\"project-fastapi-abc123\")"," captures \"FastAPI app 'Lighthouse', Python 3.12, Fly.io, SQLAlchemy + Alembic\", excluding unrelated \"puppy named Mochi\" from ",[33,3822,3823],{},"mem.new_session()",". Recall by re-attributing and setting session: Agent summarizes project decisions accurately. Trade-off: Rate-limited tier suffices for demos; paid key needed for production scale.",[17,3826,3828],{"id":3827},"production-ready-features-streaming-async-and-workflows","Production-Ready Features: Streaming, Async, and Workflows",[22,3830,3831,3832,3835,3836,3839,3840,3843,3844,3847,3848,3851,3852,3854,3855,3858,3859,3865,3866,3870],{},"Streaming works out-of-box: ",[33,3833,3834],{},"stream=True"," on ",[33,3837,3838],{},"client.chat.completions.create"," pulls Alice's facts incrementally without breaking memory flow. Async calls via ",[33,3841,3842],{},"AsyncOpenAI"," recall restrictions like peanut allergy seamlessly: ",[33,3845,3846],{},"await async_client.chat.completions.create(...)",". Build multi-session agents like support bots: ",[33,3849,3850],{},"mem.attribution(entity_id=\"[email protected]\", process_id=\"support-bot\")","; new ",[33,3853,3823],{}," per turn still remembers \"Pro plan, ",[36,3856,3857],{},"email protected","\" across interactions. System prompt: \"You are a calm, helpful customer support agent. Use what you remember about the user.\" Inspect memories at ",[3860,3861,3862],"a",{"href":3862,"rel":3863},"https:\u002F\u002Fapp.memorilabs.ai",[3864],"nofollow"," or use BYODB for Postgres. Full notebook: ",[3860,3867,3868],{"href":3868,"rel":3869},"https:\u002F\u002Fgithub.com\u002FMarktechpost\u002FAI-Agents-Projects-Tutorials\u002Fblob\u002Fmain\u002FAgentic%20AI%20Memory\u002Fmemori_agent_native_memory_infrastructure_tutorial_Marktechpost.ipynb",[3864],". This scales to personalized assistants, multi-agent systems, and customer support retaining context long-term.",{"title":31,"searchDepth":45,"depth":45,"links":3872},[3873,3874,3875],{"id":3753,"depth":45,"text":3754},{"id":3796,"depth":45,"text":3797},{"id":3827,"depth":45,"text":3828},[],{"content_references":3878,"triage":3887},[3879,3883,3885],{"type":3880,"title":3881,"url":3882,"context":138},"tool","Memori","https:\u002F\u002Fgithub.com\u002FMemoriLabs\u002FMemori",{"type":3880,"title":3884,"url":3862,"context":145},"Memori Dashboard",{"type":135,"title":3886,"url":3868,"context":145},"Full Codes with Notebook",{"relevance":64,"novelty":58,"quality":58,"actionability":64,"composite":153,"reasoning":3888},"Category: AI & LLMs. The article provides a detailed implementation guide for integrating persistent memory in multi-user LLM applications, addressing a specific pain point of managing context across interactions. It includes actionable code snippets and setup instructions that developers can directly apply to their projects.","\u002Fsummaries\u002Fa690c3914c9d11ae-memori-persistent-memory-for-multi-user-llm-agents-summary","2026-05-11 07:34:38","2026-05-11 15:04:13",{"title":3743,"description":31},{"loc":3889},"a690c3914c9d11ae","MarkTechPost","https:\u002F\u002Fwww.marktechpost.com\u002F2026\u002F05\u002F11\u002Fa-coding-implementation-to-build-agent-native-memory-infrastructure-with-memori-for-persistent-multi-user-and-multi-session-llm-applications\u002F","summaries\u002Fa690c3914c9d11ae-memori-persistent-memory-for-multi-user-llm-agents-summary",[3899,165,166,30],"llm","Register OpenAI clients with Memori to automatically store\u002Fretrieve scoped memories by user entity, agent process, and session, enabling context-aware agents across turns, users, and interactions without manual prompt management.",[],"IOxDEqszxB6CWccOlNI-E5tVk_XdhVTT78_E4jNp8d8",{"id":3904,"title":3905,"ai":3906,"body":3911,"categories":4168,"created_at":129,"date_modified":129,"description":31,"extension":130,"faq":129,"featured":131,"kicker_label":129,"meta":4169,"navigation":54,"path":4178,"published_at":4179,"question":129,"scraped_at":4180,"seo":4181,"sitemap":4182,"source_id":4183,"source_name":4184,"source_type":161,"source_url":4185,"stem":4186,"tags":4187,"thumbnail_url":129,"tldr":4189,"tweet":4190,"unknown_tags":4191,"__hash__":4192},"summaries\u002Fsummaries\u002Ff056d2fbc3259de2-optimize-live-agents-gepa-prompts-managed-vars-summary.md","Optimize Live Agents: GEPA Prompts + Managed Vars",{"provider":7,"model":8,"input_tokens":3907,"output_tokens":3908,"processing_time_ms":3909,"cost_usd":3910},8380,2516,37110,0.0029115,{"type":14,"value":3912,"toc":4161},[3913,3917,3920,3927,3941,3948,3963,3970,3981,3985,3988,3991,4010,4013,4016,4019,4026,4030,4033,4071,4078,4085,4088,4099,4102,4105,4109,4112,4123,4126,4130,4159],[17,3914,3916],{"id":3915},"build-golden-datasets-and-custom-evals-for-reliable-agent-testing","Build Golden Datasets and Custom Evals for Reliable Agent Testing",[22,3918,3919],{},"Samuel Colvin demonstrates optimizing agents post-deployment by first establishing a baseline with structured evaluations against a \"golden dataset\"—manually verified ground truth data. For the case study, he scrapes Wikipedia pages for UK MPs, extracts text via BeautifulSoup, and defines Pydantic schemas for MP details and political relations (focusing on ancestors like parents\u002Fgrandparents, excluding spouses\u002Fchildren).",[22,3921,3922,3923,3926],{},"The golden dataset (",[33,3924,3925],{},"golden_relations.json",") contains exact relations for ~650 MPs, created by running a high-end model like Opus once and manual checks. Custom evaluators compare agent outputs to this truth:",[3928,3929,3930,3938],"ul",{},[3931,3932,3933,3937],"li",{},[3934,3935,3936],"strong",{},"Accuracy",": Exact match on relations list (1.0 if perfect, partial scores like 0.9 for minor name\u002Fdescription diffs).",[3931,3939,3940],{},"Assertions for relation types, roles, and ancestor filtering.",[22,3942,3943,3944,3947],{},"Key principle: Prefer deterministic, rule-based evals over \"LLM-as-judge\" to avoid bias. \"Defining your own ",[36,3945,3946],{},"evaluators"," is far better than LLM as a judge because the LLM as a judge is effectively the kind of lunatics running the asylum.\"",[22,3949,3950,3951,3954,3955,3958,3959,3962],{},"To run: Load dataset with ",[33,3952,3953],{},"load_dataset()",", register evaluators, then ",[33,3956,3957],{},"dataset.evaluate(agent_func, name=\"eval-name\")"," using Pydantic AI's ",[33,3960,3961],{},"override"," for prompts\u002Fmodels. Concurrency limits (e.g., max=5) prevent rate limits. Results appear in Logfire UI: spans show inputs\u002Foutputs\u002Fcosts, evals tab aggregates metrics (e.g., 85% accuracy for simple prompt).",[22,3964,3965,3966,3969],{},"Common mistake: Over-relying on console logs—disable terminal output (",[33,3967,3968],{},"LOGFIRE_NO_CONSOLE=true",") for clean traces. Before: Simple one-liner prompt gets 85% accuracy, confuses non-ancestors\u002Fpolitical vs. public figures. After better prompt: Improves to ~90%+ by explicitly discounting same-gen relations.",[22,3971,3972,3973,3976,3977,3980],{},"Setup prerequisites: ",[33,3974,3975],{},"uv sync",", Logfire project (",[33,3978,3979],{},"logfire project use demo","), API keys (Pydantic Gateway for multi-model access or direct OpenAI\u002FAnthropic). Quality criteria: High accuracy on ancestors, low false positives on spouses\u002Fkids.",[17,3982,3984],{"id":3983},"evolve-prompts-genetically-with-gepa-on-production-traces","Evolve Prompts Genetically with GEPA on Production Traces",[22,3986,3987],{},"GEPA (Genetic Evolutionary Prompt Algorithm, via \"Jepper\" library) optimizes prompts as strings or JSON by breeding top performers. It evaluates candidates on a dataset, selects Pareto frontier (best trade-offs), mutates\u002Fcrosses them (e.g., mix phrases from high-scorers), and iterates.",[22,3989,3990],{},"Process:",[3992,3993,3994,3997,4000,4007],"ol",{},[3931,3995,3996],{},"Define initial prompts (simple vs. advanced) and models as Pydantic models.",[3931,3998,3999],{},"Run evals on split dataset (e.g., 65 test cases for speed).",[3931,4001,4002,4003,4006],{},"Launch GEPA: ",[33,4004,4005],{},"gepa.optimize(evaluate_fn, initial_candidates, generations=10, population_size=20)",". It parallelizes evals, instruments via Logfire for traces.",[3931,4008,4009],{},"Output: Ranked prompts by composite score (accuracy + cost\u002Fefficiency).",[22,4011,4012],{},"In demo: Simple prompt → 85% acc; advanced (ancestor rules) → better; GEPA evolves hybrids exceeding both (e.g., 92%+ acc). Handles systemic errors like over-including spouses by evolving phrasing: \"Only ancestors (parents, grandparents)—exclude spouses, children, siblings.\"",[22,4014,4015],{},"Trade-offs: Compute-heavy (hundreds of evals\u002Fgeneration); start small dataset. Mistake: Random mutation—GEPA biases toward elites like horse breeding. \"It takes the best racehorses and breeds them... you take all of the best resources and breed them.\"",[22,4017,4018],{},"Extend to production: Use real traces\u002Ffeedback as eval inputs. Future: Autonomous optimization from Logfire.",[22,4020,4021,4022,4025],{},"Quote: \"GEPA is ultimately an optimization library ",[36,4023,4024],{},"that"," optimizes a string... it can be a simple text prompt or some JSON data.\"",[17,4027,4029],{"id":4028},"enable-zero-downtime-tuning-with-managed-variables-in-production","Enable Zero-Downtime Tuning with Managed Variables in Production",[22,4031,4032],{},"Logfire's managed variables let you update any Pydantic-serializable object (prompts, models, params) live without restarts. Define as Pydantic model:",[26,4034,4036],{"className":28,"code":4035,"language":30,"meta":31,"style":31},"from logfire.managed import managed_variable\n\nclass AgentConfig(BaseModel):\n    model: str = \"gateway:gpt-4o-mini\"\n    instructions: str = \"...\"\n\nconfig = managed_variable(AgentConfig)\n",[33,4037,4038,4043,4047,4052,4057,4062,4066],{"__ignoreMap":31},[36,4039,4040],{"class":38,"line":39},[36,4041,4042],{},"from logfire.managed import managed_variable\n",[36,4044,4045],{"class":38,"line":45},[36,4046,55],{"emptyLinePlaceholder":54},[36,4048,4049],{"class":38,"line":51},[36,4050,4051],{},"class AgentConfig(BaseModel):\n",[36,4053,4054],{"class":38,"line":58},[36,4055,4056],{},"    model: str = \"gateway:gpt-4o-mini\"\n",[36,4058,4059],{"class":38,"line":64},[36,4060,4061],{},"    instructions: str = \"...\"\n",[36,4063,4064],{"class":38,"line":70},[36,4065,55],{"emptyLinePlaceholder":54},[36,4067,4068],{"class":38,"line":76},[36,4069,4070],{},"config = managed_variable(AgentConfig)\n",[22,4072,4073,4074,4077],{},"In agent: ",[33,4075,4076],{},"agent = Agent(..., instructions=config.instructions, model=config.model)",". Changes in Logfire UI propagate instantly (poll every 30s).",[22,4079,4080,4081,4084],{},"Production demo: FastAPI server with ",[33,4082,4083],{},"\u002Fanalyze"," endpoint runs agent on live Wikipedia HTML. Update prompt\u002Fmodel via Logfire—tune for better ancestor detection without deploy.",[22,4086,4087],{},"Implicit feedback: Log user thumbs-up\u002Fdown, aggregate into evals. Q&A insights:",[3928,4089,4090,4093,4096],{},[3931,4091,4092],{},"Prompt bloat: GEPA prunes inefficient phrasing.",[3931,4094,4095],{},"Context engineering: Chain-of-thought in prompts.",[3931,4097,4098],{},"Internal use: Pydantic team tunes agents on traces.",[22,4100,4101],{},"Trade-offs: Polling overhead (low); free tier generous. Mistake: Mutable globals—managed vars are safe, versioned.",[22,4103,4104],{},"Quote: \"Managed variables... don't have to be just text they can be effectively any object that you can define with a Pydantic model.\"",[17,4106,4108],{"id":4107},"from-manual-to-continuous-optimization-workflow","From Manual to Continuous Optimization Workflow",[22,4110,4111],{},"Full loop: Golden evals → GEPA on traces → Managed vars deploy → Feedback evals. Fits mid-workshop: Assumes Python\u002FPydantic familiarity, agent-building basics. Broader: Any structured output task (invoices, addresses) benefits.",[22,4113,4114,4115,4118,4119,4122],{},"Exercise: Fork repo (",[33,4116,4117],{},"github.com\u002Fpydantic\u002Ftalks\u002F2024-ai-engineer","), run ",[33,4120,4121],{},"uv run main.py eval --split test --prompt initial",", compare prompts, GEPA optimize, deploy to FastAPI.",[22,4124,4125],{},"Quote: \"Deploying an agent is only the start... change prompts, models... without redeploying.\"",[17,4127,4129],{"id":4128},"key-takeaways","Key Takeaways",[3928,4131,4132,4135,4138,4141,4144,4147,4150,4153,4156],{},[3931,4133,4134],{},"Create golden datasets from high-model runs + manual verification for deterministic evals—beats LLM judges.",[3931,4136,4137],{},"Use GEPA to breed prompts: Start with 2-5 candidates, 10 generations on 65-case split for quick wins.",[3931,4139,4140],{},"Define managed variables as Pydantic models for instant prod updates—no restarts needed.",[3931,4142,4143],{},"Instrument everything with Logfire: Traces reveal confusions (e.g., spouses as ancestors).",[3931,4145,4146],{},"Prioritize ancestor filtering in political\u002Frelation extraction: Evolve phrasing like \"exclude same-gen or descendants.\"",[3931,4148,4149],{},"Run evals in parallel (max_concurrency=5) to optimize costs during optimization.",[3931,4151,4152],{},"For FastAPI agents: Override configs live, log implicit feedback for GEPA inputs.",[3931,4154,4155],{},"Avoid hype: \"I don't really believe in AI observability I think it's a feature not a category.\"",[3931,4157,4158],{},"Scale: Free Logfire tier handles workshops; Gateway simplifies multi-model testing.",[120,4160,122],{},{"title":31,"searchDepth":45,"depth":45,"links":4162},[4163,4164,4165,4166,4167],{"id":3915,"depth":45,"text":3916},{"id":3983,"depth":45,"text":3984},{"id":4028,"depth":45,"text":4029},{"id":4107,"depth":45,"text":4108},{"id":4128,"depth":45,"text":4129},[],{"content_references":4170,"triage":4176},[4171,4174],{"type":4172,"title":4173,"context":145},"podcast","The Rest is Politics",{"type":135,"title":4175,"context":138},"Jepper (GEPA)",{"relevance":64,"novelty":58,"quality":58,"actionability":64,"composite":153,"reasoning":4177},"Category: AI & LLMs. The article provides a detailed approach to optimizing AI agents using specific techniques like golden datasets and custom evaluations, addressing a key pain point for developers looking to improve production AI features. It includes actionable steps and code snippets that developers can implement directly.","\u002Fsummaries\u002Ff056d2fbc3259de2-optimize-live-agents-gepa-prompts-managed-vars-summary","2026-05-07 17:00:06","2026-05-08 11:03:29",{"title":3905,"description":31},{"loc":4178},"263bbb77349e4ef1","AI Engineer","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=A48uhxfxbsM","summaries\u002Ff056d2fbc3259de2-optimize-live-agents-gepa-prompts-managed-vars-summary",[165,4188,30,166],"prompt-engineering","Tune production agents without redeploys using Logfire's managed variables for prompts\u002Fmodels and GEPA's genetic algorithm to evolve better prompts from evals on golden datasets.","Hands-on workshop by Pydantic's Samuel Colvin: codes along optimizing an agent for extracting political relations from Wikipedia pages using Logfire evals, GEPA prompt evolution on a golden dataset, and managed variables for live prompt\u002Fmodel tweaks in a FastAPI app—no redeploys needed.",[],"0cZ4pNDJvZh7SpRsu_CCMCCCQN6tzKI9oKJA0ArueRc",{"id":4194,"title":4195,"ai":4196,"body":4201,"categories":4301,"created_at":129,"date_modified":129,"description":31,"extension":130,"faq":129,"featured":131,"kicker_label":129,"meta":4302,"navigation":54,"path":4311,"published_at":4312,"question":129,"scraped_at":4313,"seo":4314,"sitemap":4315,"source_id":4316,"source_name":3895,"source_type":161,"source_url":4317,"stem":4318,"tags":4319,"thumbnail_url":129,"tldr":4320,"tweet":129,"unknown_tags":4321,"__hash__":4322},"summaries\u002Fsummaries\u002F3def0bb92586e5f5-groq-powered-research-agent-with-langgraph-sub-age-summary.md","Groq-Powered Research Agent with LangGraph Sub-Agents",{"provider":7,"model":8,"input_tokens":4197,"output_tokens":4198,"processing_time_ms":4199,"cost_usd":4200},9460,2034,22865,0.00240215,{"type":14,"value":4202,"toc":4296},[4203,4207,4223,4230,4233,4237,4240,4269,4280,4284,4287,4290,4293],[17,4204,4206],{"id":4205},"langgraph-workflow-powers-reliable-agent-loops","LangGraph Workflow Powers Reliable Agent Loops",[22,4208,4209,4210,4214,4215,4222],{},"Connect Groq's OpenAI-compatible endpoint (base_url=\"",[3860,4211,4212],{"href":4212,"rel":4213},"https:\u002F\u002Fapi.groq.com\u002Fopenai\u002Fv1",[3864],"\") to ChatOpenAI with model=\"llama-3.3-70b-versatile\" and temperature=0.3, binding all tools for tool-calling. Use StateGraph with AgentState (messages: Annotated",[36,4216,4217,4218,4221],{},"Sequence",[36,4219,4220],{},"BaseMessage",", add_messages",") to alternate agent reasoning and ToolNode execution: entry at \"agent\", conditional edge from \"agent\" (tools if tool_calls else END), edge \"tools\"→\"agent\". Set recursion_limit=50 (2x max_steps=25) in .stream() to prevent infinite loops. This setup handles multi-turn reasoning without state explosion, as sub-agents run isolated.",[22,4224,4225,4226,4229],{},"Lead system prompt enforces: list_skills\u002Fload_skill for complex tasks; spawn_subagent for subtasks; persist to workspace\u002Foutputs\u002F; remember() for cross-run facts. Run function streams updates, logging tool calls (e.g., ",[36,4227,4228],{},"01"," 🔧 web_search({query})), agent responses, and tool outputs, then dumps sandbox file_list(), recall(), and outputs\u002F files—reveals ~400-word reports with exec summary, findings, analysis, sources.",[22,4231,4232],{},"Trade-off: Groq's speed (free tier) trades slight quality for llama-3.3 vs. GPT-4o, but tool-binding + low temp=0.2\u002F0.3 ensures structured outputs without hallucinations.",[17,4234,4236],{"id":4235},"sandboxed-tools-enable-safe-webfilecode-access","Sandboxed Tools Enable Safe Web\u002FFile\u002FCode Access",[22,4238,4239],{},"Restrict to SANDBOX=\u002Fcontent\u002Fdeerflow_sandbox with _safe() path validation to prevent escapes. Core tools:",[3928,4241,4242,4248,4254,4260],{},[3931,4243,4244,4247],{},[3934,4245,4246],{},"Search\u002FFetch",": web_search(query, max_results=5) via DDGS returns title\u002FURL\u002Fsnippet; web_fetch(url, max_chars=4000) strips scripts\u002Fnav with BeautifulSoup, cleans whitespace.",[3931,4249,4250,4253],{},[3934,4251,4252],{},"Files",": file_write\u002Fread\u002Flist(path) limits read to 8KB, lists 60 rglob items (skip memory\u002F), mkdirs parents.",[3931,4255,4256,4259],{},[3934,4257,4258],{},"Code",": python_exec(code) in isolated globals (SANDBOX_ROOT preset), captures stdout\u002Fstderr to 4KB, artifacts to outputs\u002F—plan in English first, verify results.",[3931,4261,4262,4265,4266,4268],{},[3934,4263,4264],{},"Memory",": remember(fact) appends timestamped JSON to memory\u002Flong_term.json (facts",[36,4267],{},", preferences{}); recall() shows last 20.",[22,4270,4271,4272,4275,4276,4279],{},"These give controlled REPL-like access: agent computes charts, cross-refs sources (claim→evidence→URL), without sys\u002Fnetwork risks. Bind BASE_TOOLS=",[36,4273,4274],{},"list_skills,load_skill,..."," + ",[36,4277,4278],{},"spawn_subagent"," to llm.",[17,4281,4283],{"id":4282},"skills-and-sub-agents-modularize-complex-research","Skills and Sub-Agents Modularize Complex Research",[22,4285,4286],{},"Pre-register SKILL.md files (public\u002Fcustom\u002F): research (decompose to 3-5 sub-questions, 2 authoritative URLs each, cross-ref, append workspace\u002Fresearch_notes.md); report-generation (read notes, outline exec summary (3-5 sentences)\u002Ffindings\u002Fanalysis\u002Fconclusion\u002Fsources, write outputs\u002Freport.md); code-execution (plan→exec→verify).",[22,4288,4289],{},"Agent calls list_skills()→load_skill(name) to discover\u002Fexecute workflows. spawn_subagent(role,task,allowed_tools=\"web_search,web_fetch,file_write,file_read\") creates isolated ChatOpenAI(temp=0.2, bind sub_tools), sys prompt mandates 'FINAL REPORT:' ≤700-word summary. Loops 8 steps max, returns report—keeps lead agent lean for coordination.",[22,4291,4292],{},"Demo task: (1) discover skills; (2) sub-agent researches 3 SLMs (2024-2025 sizes\u002Fbenchmarks\u002Fuse-cases)→workspace\u002Fslm_research.md; (3) load report-generation→outputs\u002Fslm_briefing.md; (4) remember(key takeaway); (5) summarize. Persists across runs via JSON memory, outputs structured MD with numbered sources—scales to briefings\u002Fautomation.",[22,4294,4295],{},"Extend by adding skills (e.g., data viz), scoping sub-agent tools, or integrating uploads\u002F.",{"title":31,"searchDepth":45,"depth":45,"links":4297},[4298,4299,4300],{"id":4205,"depth":45,"text":4206},{"id":4235,"depth":45,"text":4236},{"id":4282,"depth":45,"text":4283},[179],{"content_references":4303,"triage":4309},[4304,4307],{"type":3880,"title":4305,"url":4306,"context":145},"Groq","https:\u002F\u002Fconsole.groq.com\u002Fhome",{"type":135,"title":3886,"url":4308,"context":138},"https:\u002F\u002Fgithub.com\u002FMarktechpost\u002FAI-Agents-Projects-Tutorials\u002Fblob\u002Fmain\u002FAgentic%20AI%20Codes\u002Fgroq_agentic_research_assistant_langgraph_Marktechpost.ipynb",{"relevance":64,"novelty":58,"quality":58,"actionability":64,"composite":153,"reasoning":4310},"Category: AI & LLMs. The article provides a detailed guide on building a research assistant using Groq's API and LangGraph, addressing practical applications for AI-powered product builders. It includes specific instructions on connecting tools and managing agent workflows, making it highly actionable.","\u002Fsummaries\u002F3def0bb92586e5f5-groq-powered-research-agent-with-langgraph-sub-age-summary","2026-05-06 23:00:03","2026-05-07 11:24:14",{"title":4195,"description":31},{"loc":4311},"3def0bb92586e5f5","https:\u002F\u002Fwww.marktechpost.com\u002F2026\u002F05\u002F06\u002Fa-groq-powered-agentic-research-assistant-with-langgraph-tool-calling-sub-agents-and-agentic-memory-lets-built-it\u002F","summaries\u002F3def0bb92586e5f5-groq-powered-research-agent-with-langgraph-sub-age-summary",[165,30,3899,166],"Build a fast agentic research assistant using Groq's free Llama-3.3-70b API, LangGraph for loops, sandboxed tools for search\u002Ffiles\u002Fcode\u002Fmemory, modular skills, and sub-agents for delegation—demo researches SLMs and persists facts.",[],"PNBtlQQT9-IzTdNGXbcfgyV0nmPIjKbJkC_MULZshU8",{"id":4324,"title":4325,"ai":4326,"body":4331,"categories":4368,"created_at":129,"date_modified":129,"description":31,"extension":130,"faq":129,"featured":131,"kicker_label":129,"meta":4369,"navigation":54,"path":4382,"published_at":4383,"question":129,"scraped_at":4384,"seo":4385,"sitemap":4386,"source_id":4387,"source_name":4388,"source_type":161,"source_url":4389,"stem":4390,"tags":4391,"thumbnail_url":129,"tldr":4392,"tweet":129,"unknown_tags":4393,"__hash__":4394},"summaries\u002Fsummaries\u002F3ac2f26e456f1db9-local-ai-agent-stack-ollama-as-llm-mcp-as-librarie-summary.md","Local AI Agent Stack: Ollama as LLM, MCP as Libraries",{"provider":7,"model":8,"input_tokens":4327,"output_tokens":4328,"processing_time_ms":4329,"cost_usd":4330},3907,2286,26814,0.00190175,{"type":14,"value":4332,"toc":4363},[4333,4337,4340,4343,4347,4350,4353,4357,4360],[17,4334,4336],{"id":4335},"agentic-systems-as-programmable-stacks","Agentic Systems as Programmable Stacks",[22,4338,4339],{},"Map traditional programming to LLM agents: the LLM (via Ollama) acts as the language runtime, MCP servers function as swappable libraries for capabilities, and Markdown-defined skills serve as the executable programs. This analogy makes every layer visible and replaceable, enabling full control without vendor lock-in. Run the entire stack on a single laptop using no cloud LLMs or paid services, wired together by a minimal Python orchestrator and one JSON config file.",[22,4341,4342],{},"Ollama provides the local LLM runtime for reasoning and decision-making. MCP servers deliver modular tools (like data access or APIs) that the LLM calls into, mimicking library imports. Skills, written in Markdown, define specific agent behaviors as self-contained programs the LLM interprets and executes.",[17,4344,4346],{"id":4345},"wiring-and-execution-flow","Wiring and Execution Flow",[22,4348,4349],{},"The Python orchestrator handles coordination: it loads the JSON config to initialize Ollama, MCP servers, and skills, then routes LLM outputs to invoke the right MCP libraries or skills. This setup supports iterative reasoning loops where the LLM decides tool use, executes via MCP\u002Fskills, and refines based on results—all locally.",[22,4351,4352],{},"Trade-off: Local execution prioritizes privacy and cost-zero runs but limits to hardware-constrained models; scale by swapping Ollama models or adding MCPs without rewriting core logic.",[17,4354,4356],{"id":4355},"production-ready-ops-example","Production-Ready Ops Example",[22,4358,4359],{},"Query: \"The on-call engineer is in country X. Is today a public holiday there, and if so, which of their open P1 issues need backup coverage?\"",[22,4361,4362],{},"The agent combines local data sources (via MCPs) like holiday calendars, engineer locations, and issue trackers. LLM reasons over inputs, calls MCP libraries for data retrieval, applies Markdown skills for analysis (e.g., filtering P1 issues), and outputs actionable coverage recommendations. This handles real on-call shifts, demonstrating agentic reliability for ops without external dependencies.",{"title":31,"searchDepth":45,"depth":45,"links":4364},[4365,4366,4367],{"id":4335,"depth":45,"text":4336},{"id":4345,"depth":45,"text":4346},{"id":4355,"depth":45,"text":4356},[179],{"content_references":4370,"triage":4380},[4371,4376,4378],{"type":135,"title":4372,"author":4373,"url":4374,"context":4375},"The hidden analogy between programming languages and LLMs that will change how you build agentic","Jes Fink-Jensen","https:\u002F\u002Fmedium.com\u002Fgenerative-ai\u002Fthe-hidden-analogy-between-programming-languages-and-llms-that-will-change-how-you-build-agentic-a344fa26dc09","cited",{"type":3880,"title":4377,"context":145},"Ollama",{"type":3880,"title":4379,"context":145},"MCP",{"relevance":64,"novelty":58,"quality":58,"actionability":64,"composite":153,"reasoning":4381},"Category: AI & LLMs. The article provides a detailed framework for building a local AI agent system using Ollama and MCP, addressing practical applications for developers looking to integrate AI into their products. It includes a concrete example of a production-ready operation, demonstrating actionable insights that the audience can implement.","\u002Fsummaries\u002F3ac2f26e456f1db9-local-ai-agent-stack-ollama-as-llm-mcp-as-librarie-summary","2026-05-05 05:58:24","2026-05-05 16:09:21",{"title":4325,"description":31},{"loc":4382},"3ac2f26e456f1db9","Generative AI","https:\u002F\u002Fgenerativeai.pub\u002Frun-your-own-ai-agent-locally-ollama-mcp-and-skills-explained-a913fe46e938?source=rss----440100e76000---4","summaries\u002F3ac2f26e456f1db9-local-ai-agent-stack-ollama-as-llm-mcp-as-librarie-summary",[3899,165,30,166],"Build a fully local agentic system treating LLMs as programming languages, MCP servers as libraries, and Markdown skills as programs—orchestrated via Python and JSON config for offline ops queries.",[],"MALfjYcgtxuDDN7BLSlSojXvLLeQbY1yAr47GHXtRUE"]