[{"data":1,"prerenderedAt":2050},["ShallowReactive",2],{"docs:/docs/agents/examples":3},{"id":4,"title":5,"body":6,"description":2043,"extension":2044,"meta":2045,"navigation":91,"path":2046,"seo":2047,"stem":2048,"__hash__":2049},"docs/docs/agents/examples.md","Agent Examples",{"type":7,"value":8,"toc":2035},"minimark",[9,14,18,23,35,375,382,386,389,742,747,751,754,1008,1013,1017,1020,1242,1247,1251,1254,1597,1602,1606,1609,2026,2031],[10,11,13],"h1",{"id":12},"examples","Examples",[15,16,17],"p",{},"Canonical recipes for common agent workflows. Each example shows a complete pattern you can adapt.",[19,20,22],"h2",{"id":21},"agentic-chatbot","Agentic Chatbot",[15,24,25,26,30,31,34],{},"A customer support chatbot that uses ",[27,28,29],"code",{},"@nolag/chat"," for the user interface and ",[27,32,33],{},"@nolag/agents"," for AI-powered responses. User messages are dispatched as tasks to support agents, and responses are sent back to the chat room.",[36,37,38],"code-tabs",{},[39,40,46],"pre",{"className":41,"code":42,"filename":43,"language":44,"meta":45,"style":45},"language-typescript shiki shiki-themes github-light github-dark","import { NoLagChat } from \"@nolag/chat\";\nimport { NoLagAgents } from \"@nolag/agents\";\n\nconst chat = new NoLagChat(CHAT_TOKEN);\nconst agents = new NoLagAgents(AGENT_TOKEN);\nawait Promise.all([chat.connect(), agents.connect()]);\n\nconst chatRoom = chat.joinRoom(\"support\");\nconst agentRoom = agents.joinRoom(\"support-workflow\");\n\nchatRoom.on(\"message\", async (msg) => {\n  await agentRoom.handoff.dispatch({\n    type: \"respond\",\n    payload: { text: msg.text, history: chatRoom.getMessages() },\n    capabilities: [\"customer-support\"],\n  });\n});\n\nagentRoom.handoff.onResult(async (result) => {\n  await chatRoom.sendMessage(result.data.response);\n});\n","TypeScript","typescript","",[27,47,48,71,86,93,122,144,173,178,201,223,228,264,279,291,303,315,321,327,332,356,370],{"__ignoreMap":45},[49,50,53,57,61,64,68],"span",{"class":51,"line":52},"line",1,[49,54,56],{"class":55},"szBVR","import",[49,58,60],{"class":59},"sVt8B"," { NoLagChat } ",[49,62,63],{"class":55},"from",[49,65,67],{"class":66},"sZZnC"," \"@nolag/chat\"",[49,69,70],{"class":59},";\n",[49,72,74,76,79,81,84],{"class":51,"line":73},2,[49,75,56],{"class":55},[49,77,78],{"class":59}," { NoLagAgents } ",[49,80,63],{"class":55},[49,82,83],{"class":66}," \"@nolag/agents\"",[49,85,70],{"class":59},[49,87,89],{"class":51,"line":88},3,[49,90,92],{"emptyLinePlaceholder":91},true,"\n",[49,94,96,99,103,106,109,113,116,119],{"class":51,"line":95},4,[49,97,98],{"class":55},"const",[49,100,102],{"class":101},"sj4cs"," chat",[49,104,105],{"class":55}," =",[49,107,108],{"class":55}," new",[49,110,112],{"class":111},"sScJk"," NoLagChat",[49,114,115],{"class":59},"(",[49,117,118],{"class":101},"CHAT_TOKEN",[49,120,121],{"class":59},");\n",[49,123,125,127,130,132,134,137,139,142],{"class":51,"line":124},5,[49,126,98],{"class":55},[49,128,129],{"class":101}," agents",[49,131,105],{"class":55},[49,133,108],{"class":55},[49,135,136],{"class":111}," NoLagAgents",[49,138,115],{"class":59},[49,140,141],{"class":101},"AGENT_TOKEN",[49,143,121],{"class":59},[49,145,147,150,153,156,159,162,165,168,170],{"class":51,"line":146},6,[49,148,149],{"class":55},"await",[49,151,152],{"class":101}," Promise",[49,154,155],{"class":59},".",[49,157,158],{"class":111},"all",[49,160,161],{"class":59},"([chat.",[49,163,164],{"class":111},"connect",[49,166,167],{"class":59},"(), agents.",[49,169,164],{"class":111},[49,171,172],{"class":59},"()]);\n",[49,174,176],{"class":51,"line":175},7,[49,177,92],{"emptyLinePlaceholder":91},[49,179,181,183,186,188,191,194,196,199],{"class":51,"line":180},8,[49,182,98],{"class":55},[49,184,185],{"class":101}," chatRoom",[49,187,105],{"class":55},[49,189,190],{"class":59}," chat.",[49,192,193],{"class":111},"joinRoom",[49,195,115],{"class":59},[49,197,198],{"class":66},"\"support\"",[49,200,121],{"class":59},[49,202,204,206,209,211,214,216,218,221],{"class":51,"line":203},9,[49,205,98],{"class":55},[49,207,208],{"class":101}," agentRoom",[49,210,105],{"class":55},[49,212,213],{"class":59}," agents.",[49,215,193],{"class":111},[49,217,115],{"class":59},[49,219,220],{"class":66},"\"support-workflow\"",[49,222,121],{"class":59},[49,224,226],{"class":51,"line":225},10,[49,227,92],{"emptyLinePlaceholder":91},[49,229,231,234,237,239,242,245,248,251,255,258,261],{"class":51,"line":230},11,[49,232,233],{"class":59},"chatRoom.",[49,235,236],{"class":111},"on",[49,238,115],{"class":59},[49,240,241],{"class":66},"\"message\"",[49,243,244],{"class":59},", ",[49,246,247],{"class":55},"async",[49,249,250],{"class":59}," (",[49,252,254],{"class":253},"s4XuR","msg",[49,256,257],{"class":59},") ",[49,259,260],{"class":55},"=>",[49,262,263],{"class":59}," {\n",[49,265,267,270,273,276],{"class":51,"line":266},12,[49,268,269],{"class":55},"  await",[49,271,272],{"class":59}," agentRoom.handoff.",[49,274,275],{"class":111},"dispatch",[49,277,278],{"class":59},"({\n",[49,280,282,285,288],{"class":51,"line":281},13,[49,283,284],{"class":59},"    type: ",[49,286,287],{"class":66},"\"respond\"",[49,289,290],{"class":59},",\n",[49,292,294,297,300],{"class":51,"line":293},14,[49,295,296],{"class":59},"    payload: { text: msg.text, history: chatRoom.",[49,298,299],{"class":111},"getMessages",[49,301,302],{"class":59},"() },\n",[49,304,306,309,312],{"class":51,"line":305},15,[49,307,308],{"class":59},"    capabilities: [",[49,310,311],{"class":66},"\"customer-support\"",[49,313,314],{"class":59},"],\n",[49,316,318],{"class":51,"line":317},16,[49,319,320],{"class":59},"  });\n",[49,322,324],{"class":51,"line":323},17,[49,325,326],{"class":59},"});\n",[49,328,330],{"class":51,"line":329},18,[49,331,92],{"emptyLinePlaceholder":91},[49,333,335,338,341,343,345,347,350,352,354],{"class":51,"line":334},19,[49,336,337],{"class":59},"agentRoom.handoff.",[49,339,340],{"class":111},"onResult",[49,342,115],{"class":59},[49,344,247],{"class":55},[49,346,250],{"class":59},[49,348,349],{"class":253},"result",[49,351,257],{"class":59},[49,353,260],{"class":55},[49,355,263],{"class":59},[49,357,359,361,364,367],{"class":51,"line":358},20,[49,360,269],{"class":55},[49,362,363],{"class":59}," chatRoom.",[49,365,366],{"class":111},"sendMessage",[49,368,369],{"class":59},"(result.data.response);\n",[49,371,373],{"class":51,"line":372},21,[49,374,326],{"class":59},[15,376,377,381],{},[378,379,380],"strong",{},"Patterns used:"," Handoff (task dispatch), composition (cross-app actor access)",[19,383,385],{"id":384},"autonomous-workflow","Autonomous Workflow",[15,387,388],{},"A multi-step pipeline where agents autonomously advance through a plan. Each step's output feeds into the next step. The orchestrator tracks progress on the Blackboard and dispatches the next step when results arrive.",[36,390,391],{},[39,392,394],{"className":41,"code":393,"filename":43,"language":44,"meta":45,"style":45},"const room = agents.joinRoom(\"research-pipeline\");\n\n// Set the workflow plan\nawait room.blackboard.set(\"plan\", {\n  steps: [\"research\", \"analyze\", \"draft\", \"review\"],\n  current: 0,\n});\n\n// Orchestrator advances through steps\nroom.handoff.onResult(async (result) => {\n  const plan = room.blackboard.get(\"plan\");\n  const nextStep = plan.current + 1;\n\n  await room.blackboard.update(\"plan\", (p) => ({\n    ...p,\n    current: nextStep,\n    results: { ...p.results, [plan.steps[plan.current]]: result.data },\n  }));\n\n  if (nextStep \u003C plan.steps.length) {\n    await room.handoff.dispatch({\n      type: plan.steps[nextStep],\n      payload: result.data,\n      capabilities: [plan.steps[nextStep]],\n    });\n  }\n});\n\n// Kick off the pipeline\nawait room.handoff.dispatch({\n  type: \"research\",\n  payload: { topic: \"AI agent coordination\" },\n  capabilities: [\"research\"],\n});\n",[27,395,396,416,420,426,444,469,479,483,487,492,513,534,554,558,583,591,596,607,612,616,636,648,654,660,666,672,678,683,688,694,705,715,727,737],{"__ignoreMap":45},[49,397,398,400,403,405,407,409,411,414],{"class":51,"line":52},[49,399,98],{"class":55},[49,401,402],{"class":101}," room",[49,404,105],{"class":55},[49,406,213],{"class":59},[49,408,193],{"class":111},[49,410,115],{"class":59},[49,412,413],{"class":66},"\"research-pipeline\"",[49,415,121],{"class":59},[49,417,418],{"class":51,"line":73},[49,419,92],{"emptyLinePlaceholder":91},[49,421,422],{"class":51,"line":88},[49,423,425],{"class":424},"sJ8bj","// Set the workflow plan\n",[49,427,428,430,433,436,438,441],{"class":51,"line":95},[49,429,149],{"class":55},[49,431,432],{"class":59}," room.blackboard.",[49,434,435],{"class":111},"set",[49,437,115],{"class":59},[49,439,440],{"class":66},"\"plan\"",[49,442,443],{"class":59},", {\n",[49,445,446,449,452,454,457,459,462,464,467],{"class":51,"line":124},[49,447,448],{"class":59},"  steps: [",[49,450,451],{"class":66},"\"research\"",[49,453,244],{"class":59},[49,455,456],{"class":66},"\"analyze\"",[49,458,244],{"class":59},[49,460,461],{"class":66},"\"draft\"",[49,463,244],{"class":59},[49,465,466],{"class":66},"\"review\"",[49,468,314],{"class":59},[49,470,471,474,477],{"class":51,"line":146},[49,472,473],{"class":59},"  current: ",[49,475,476],{"class":101},"0",[49,478,290],{"class":59},[49,480,481],{"class":51,"line":175},[49,482,326],{"class":59},[49,484,485],{"class":51,"line":180},[49,486,92],{"emptyLinePlaceholder":91},[49,488,489],{"class":51,"line":203},[49,490,491],{"class":424},"// Orchestrator advances through steps\n",[49,493,494,497,499,501,503,505,507,509,511],{"class":51,"line":225},[49,495,496],{"class":59},"room.handoff.",[49,498,340],{"class":111},[49,500,115],{"class":59},[49,502,247],{"class":55},[49,504,250],{"class":59},[49,506,349],{"class":253},[49,508,257],{"class":59},[49,510,260],{"class":55},[49,512,263],{"class":59},[49,514,515,518,521,523,525,528,530,532],{"class":51,"line":230},[49,516,517],{"class":55},"  const",[49,519,520],{"class":101}," plan",[49,522,105],{"class":55},[49,524,432],{"class":59},[49,526,527],{"class":111},"get",[49,529,115],{"class":59},[49,531,440],{"class":66},[49,533,121],{"class":59},[49,535,536,538,541,543,546,549,552],{"class":51,"line":266},[49,537,517],{"class":55},[49,539,540],{"class":101}," nextStep",[49,542,105],{"class":55},[49,544,545],{"class":59}," plan.current ",[49,547,548],{"class":55},"+",[49,550,551],{"class":101}," 1",[49,553,70],{"class":59},[49,555,556],{"class":51,"line":281},[49,557,92],{"emptyLinePlaceholder":91},[49,559,560,562,564,567,569,571,574,576,578,580],{"class":51,"line":293},[49,561,269],{"class":55},[49,563,432],{"class":59},[49,565,566],{"class":111},"update",[49,568,115],{"class":59},[49,570,440],{"class":66},[49,572,573],{"class":59},", (",[49,575,15],{"class":253},[49,577,257],{"class":59},[49,579,260],{"class":55},[49,581,582],{"class":59}," ({\n",[49,584,585,588],{"class":51,"line":305},[49,586,587],{"class":55},"    ...",[49,589,590],{"class":59},"p,\n",[49,592,593],{"class":51,"line":317},[49,594,595],{"class":59},"    current: nextStep,\n",[49,597,598,601,604],{"class":51,"line":323},[49,599,600],{"class":59},"    results: { ",[49,602,603],{"class":55},"...",[49,605,606],{"class":59},"p.results, [plan.steps[plan.current]]: result.data },\n",[49,608,609],{"class":51,"line":329},[49,610,611],{"class":59},"  }));\n",[49,613,614],{"class":51,"line":334},[49,615,92],{"emptyLinePlaceholder":91},[49,617,618,621,624,627,630,633],{"class":51,"line":358},[49,619,620],{"class":55},"  if",[49,622,623],{"class":59}," (nextStep ",[49,625,626],{"class":55},"\u003C",[49,628,629],{"class":59}," plan.steps.",[49,631,632],{"class":101},"length",[49,634,635],{"class":59},") {\n",[49,637,638,641,644,646],{"class":51,"line":372},[49,639,640],{"class":55},"    await",[49,642,643],{"class":59}," room.handoff.",[49,645,275],{"class":111},[49,647,278],{"class":59},[49,649,651],{"class":51,"line":650},22,[49,652,653],{"class":59},"      type: plan.steps[nextStep],\n",[49,655,657],{"class":51,"line":656},23,[49,658,659],{"class":59},"      payload: result.data,\n",[49,661,663],{"class":51,"line":662},24,[49,664,665],{"class":59},"      capabilities: [plan.steps[nextStep]],\n",[49,667,669],{"class":51,"line":668},25,[49,670,671],{"class":59},"    });\n",[49,673,675],{"class":51,"line":674},26,[49,676,677],{"class":59},"  }\n",[49,679,681],{"class":51,"line":680},27,[49,682,326],{"class":59},[49,684,686],{"class":51,"line":685},28,[49,687,92],{"emptyLinePlaceholder":91},[49,689,691],{"class":51,"line":690},29,[49,692,693],{"class":424},"// Kick off the pipeline\n",[49,695,697,699,701,703],{"class":51,"line":696},30,[49,698,149],{"class":55},[49,700,643],{"class":59},[49,702,275],{"class":111},[49,704,278],{"class":59},[49,706,708,711,713],{"class":51,"line":707},31,[49,709,710],{"class":59},"  type: ",[49,712,451],{"class":66},[49,714,290],{"class":59},[49,716,718,721,724],{"class":51,"line":717},32,[49,719,720],{"class":59},"  payload: { topic: ",[49,722,723],{"class":66},"\"AI agent coordination\"",[49,725,726],{"class":59}," },\n",[49,728,730,733,735],{"class":51,"line":729},33,[49,731,732],{"class":59},"  capabilities: [",[49,734,451],{"class":66},[49,736,314],{"class":59},[49,738,740],{"class":51,"line":739},34,[49,741,326],{"class":59},[15,743,744,746],{},[378,745,380],{}," Handoff (task dispatch), Blackboard (workflow state)",[19,748,750],{"id":749},"copilot-pattern","Copilot Pattern",[15,752,753],{},"An AI copilot that watches editor state via the Blackboard and provides real-time suggestions. The editor publishes its state, an agent processes it, and suggestions flow back to the UI.",[36,755,756],{},[39,757,759],{"className":41,"code":758,"filename":43,"language":44,"meta":45,"style":45},"const room = agents.joinRoom(\"copilot\");\n\n// User types in the editor\neditor.on(\"change\", async (content) => {\n  await room.blackboard.set(\"editor-state\", {\n    content,\n    cursor: editor.getCursorPosition(),\n    language: editor.getLanguage(),\n  });\n});\n\n// AI agent watches editor state and provides suggestions\nroom.blackboard.on(\"change\", async (key, value) => {\n  if (key === \"editor-state\") {\n    await room.handoff.dispatch({\n      type: \"suggest\",\n      payload: value,\n      capabilities: [\"code\"],\n    });\n  }\n});\n\n// Display suggestions in the editor\nroom.handoff.onResult((result) => {\n  editor.showSuggestion(result.data.suggestion);\n});\n",[27,760,761,780,784,789,816,831,836,847,857,861,865,869,874,905,920,930,940,945,955,959,963,967,971,976,993,1004],{"__ignoreMap":45},[49,762,763,765,767,769,771,773,775,778],{"class":51,"line":52},[49,764,98],{"class":55},[49,766,402],{"class":101},[49,768,105],{"class":55},[49,770,213],{"class":59},[49,772,193],{"class":111},[49,774,115],{"class":59},[49,776,777],{"class":66},"\"copilot\"",[49,779,121],{"class":59},[49,781,782],{"class":51,"line":73},[49,783,92],{"emptyLinePlaceholder":91},[49,785,786],{"class":51,"line":88},[49,787,788],{"class":424},"// User types in the editor\n",[49,790,791,794,796,798,801,803,805,807,810,812,814],{"class":51,"line":95},[49,792,793],{"class":59},"editor.",[49,795,236],{"class":111},[49,797,115],{"class":59},[49,799,800],{"class":66},"\"change\"",[49,802,244],{"class":59},[49,804,247],{"class":55},[49,806,250],{"class":59},[49,808,809],{"class":253},"content",[49,811,257],{"class":59},[49,813,260],{"class":55},[49,815,263],{"class":59},[49,817,818,820,822,824,826,829],{"class":51,"line":124},[49,819,269],{"class":55},[49,821,432],{"class":59},[49,823,435],{"class":111},[49,825,115],{"class":59},[49,827,828],{"class":66},"\"editor-state\"",[49,830,443],{"class":59},[49,832,833],{"class":51,"line":146},[49,834,835],{"class":59},"    content,\n",[49,837,838,841,844],{"class":51,"line":175},[49,839,840],{"class":59},"    cursor: editor.",[49,842,843],{"class":111},"getCursorPosition",[49,845,846],{"class":59},"(),\n",[49,848,849,852,855],{"class":51,"line":180},[49,850,851],{"class":59},"    language: editor.",[49,853,854],{"class":111},"getLanguage",[49,856,846],{"class":59},[49,858,859],{"class":51,"line":203},[49,860,320],{"class":59},[49,862,863],{"class":51,"line":225},[49,864,326],{"class":59},[49,866,867],{"class":51,"line":230},[49,868,92],{"emptyLinePlaceholder":91},[49,870,871],{"class":51,"line":266},[49,872,873],{"class":424},"// AI agent watches editor state and provides suggestions\n",[49,875,876,879,881,883,885,887,889,891,894,896,899,901,903],{"class":51,"line":281},[49,877,878],{"class":59},"room.blackboard.",[49,880,236],{"class":111},[49,882,115],{"class":59},[49,884,800],{"class":66},[49,886,244],{"class":59},[49,888,247],{"class":55},[49,890,250],{"class":59},[49,892,893],{"class":253},"key",[49,895,244],{"class":59},[49,897,898],{"class":253},"value",[49,900,257],{"class":59},[49,902,260],{"class":55},[49,904,263],{"class":59},[49,906,907,909,912,915,918],{"class":51,"line":293},[49,908,620],{"class":55},[49,910,911],{"class":59}," (key ",[49,913,914],{"class":55},"===",[49,916,917],{"class":66}," \"editor-state\"",[49,919,635],{"class":59},[49,921,922,924,926,928],{"class":51,"line":305},[49,923,640],{"class":55},[49,925,643],{"class":59},[49,927,275],{"class":111},[49,929,278],{"class":59},[49,931,932,935,938],{"class":51,"line":317},[49,933,934],{"class":59},"      type: ",[49,936,937],{"class":66},"\"suggest\"",[49,939,290],{"class":59},[49,941,942],{"class":51,"line":323},[49,943,944],{"class":59},"      payload: value,\n",[49,946,947,950,953],{"class":51,"line":329},[49,948,949],{"class":59},"      capabilities: [",[49,951,952],{"class":66},"\"code\"",[49,954,314],{"class":59},[49,956,957],{"class":51,"line":334},[49,958,671],{"class":59},[49,960,961],{"class":51,"line":358},[49,962,677],{"class":59},[49,964,965],{"class":51,"line":372},[49,966,326],{"class":59},[49,968,969],{"class":51,"line":650},[49,970,92],{"emptyLinePlaceholder":91},[49,972,973],{"class":51,"line":656},[49,974,975],{"class":424},"// Display suggestions in the editor\n",[49,977,978,980,982,985,987,989,991],{"class":51,"line":662},[49,979,496],{"class":59},[49,981,340],{"class":111},[49,983,984],{"class":59},"((",[49,986,349],{"class":253},[49,988,257],{"class":59},[49,990,260],{"class":55},[49,992,263],{"class":59},[49,994,995,998,1001],{"class":51,"line":668},[49,996,997],{"class":59},"  editor.",[49,999,1000],{"class":111},"showSuggestion",[49,1002,1003],{"class":59},"(result.data.suggestion);\n",[49,1005,1006],{"class":51,"line":674},[49,1007,326],{"class":59},[15,1009,1010,1012],{},[378,1011,380],{}," Blackboard (shared state), Handoff (suggestion generation)",[19,1014,1016],{"id":1015},"compliance-approval-workflow","Compliance / Approval Workflow",[15,1018,1019],{},"An agent generates a report and requests human approval before publishing. The human can approve, reject, or modify the content. The entire flow is auditable via the Observe pattern.",[36,1021,1022],{},[39,1023,1025],{"className":41,"code":1024,"filename":43,"language":44,"meta":45,"style":45},"const room = agents.joinRoom(\"compliance\");\n\n// Agent generates a document and requests approval\nconst draft = await generateReport(data);\n\nconst approval = await room.approve.request({\n  action: \"publish-report\",\n  description: \"Q3 earnings report for external publication\",\n  payload: { content: draft, metadata: { author: \"finance-agent\" } },\n  timeout: 3600000,  // 1 hour\n});\n\nif (approval.approved) {\n  if (approval.modifications) {\n    // Human may have edited the content\n    await publishReport(approval.modifications.content);\n  } else {\n    await publishReport(draft);\n  }\n} else {\n  await room.observe.emit(\"report:rejected\", {\n    reason: approval.reason,\n  });\n}\n",[27,1026,1027,1046,1050,1055,1073,1077,1096,1106,1116,1127,1141,1145,1149,1157,1164,1169,1179,1189,1198,1202,1211,1228,1233,1237],{"__ignoreMap":45},[49,1028,1029,1031,1033,1035,1037,1039,1041,1044],{"class":51,"line":52},[49,1030,98],{"class":55},[49,1032,402],{"class":101},[49,1034,105],{"class":55},[49,1036,213],{"class":59},[49,1038,193],{"class":111},[49,1040,115],{"class":59},[49,1042,1043],{"class":66},"\"compliance\"",[49,1045,121],{"class":59},[49,1047,1048],{"class":51,"line":73},[49,1049,92],{"emptyLinePlaceholder":91},[49,1051,1052],{"class":51,"line":88},[49,1053,1054],{"class":424},"// Agent generates a document and requests approval\n",[49,1056,1057,1059,1062,1064,1067,1070],{"class":51,"line":95},[49,1058,98],{"class":55},[49,1060,1061],{"class":101}," draft",[49,1063,105],{"class":55},[49,1065,1066],{"class":55}," await",[49,1068,1069],{"class":111}," generateReport",[49,1071,1072],{"class":59},"(data);\n",[49,1074,1075],{"class":51,"line":124},[49,1076,92],{"emptyLinePlaceholder":91},[49,1078,1079,1081,1084,1086,1088,1091,1094],{"class":51,"line":146},[49,1080,98],{"class":55},[49,1082,1083],{"class":101}," approval",[49,1085,105],{"class":55},[49,1087,1066],{"class":55},[49,1089,1090],{"class":59}," room.approve.",[49,1092,1093],{"class":111},"request",[49,1095,278],{"class":59},[49,1097,1098,1101,1104],{"class":51,"line":175},[49,1099,1100],{"class":59},"  action: ",[49,1102,1103],{"class":66},"\"publish-report\"",[49,1105,290],{"class":59},[49,1107,1108,1111,1114],{"class":51,"line":180},[49,1109,1110],{"class":59},"  description: ",[49,1112,1113],{"class":66},"\"Q3 earnings report for external publication\"",[49,1115,290],{"class":59},[49,1117,1118,1121,1124],{"class":51,"line":203},[49,1119,1120],{"class":59},"  payload: { content: draft, metadata: { author: ",[49,1122,1123],{"class":66},"\"finance-agent\"",[49,1125,1126],{"class":59}," } },\n",[49,1128,1129,1132,1135,1138],{"class":51,"line":225},[49,1130,1131],{"class":59},"  timeout: ",[49,1133,1134],{"class":101},"3600000",[49,1136,1137],{"class":59},",  ",[49,1139,1140],{"class":424},"// 1 hour\n",[49,1142,1143],{"class":51,"line":230},[49,1144,326],{"class":59},[49,1146,1147],{"class":51,"line":266},[49,1148,92],{"emptyLinePlaceholder":91},[49,1150,1151,1154],{"class":51,"line":281},[49,1152,1153],{"class":55},"if",[49,1155,1156],{"class":59}," (approval.approved) {\n",[49,1158,1159,1161],{"class":51,"line":293},[49,1160,620],{"class":55},[49,1162,1163],{"class":59}," (approval.modifications) {\n",[49,1165,1166],{"class":51,"line":305},[49,1167,1168],{"class":424},"    // Human may have edited the content\n",[49,1170,1171,1173,1176],{"class":51,"line":317},[49,1172,640],{"class":55},[49,1174,1175],{"class":111}," publishReport",[49,1177,1178],{"class":59},"(approval.modifications.content);\n",[49,1180,1181,1184,1187],{"class":51,"line":323},[49,1182,1183],{"class":59},"  } ",[49,1185,1186],{"class":55},"else",[49,1188,263],{"class":59},[49,1190,1191,1193,1195],{"class":51,"line":329},[49,1192,640],{"class":55},[49,1194,1175],{"class":111},[49,1196,1197],{"class":59},"(draft);\n",[49,1199,1200],{"class":51,"line":334},[49,1201,677],{"class":59},[49,1203,1204,1207,1209],{"class":51,"line":358},[49,1205,1206],{"class":59},"} ",[49,1208,1186],{"class":55},[49,1210,263],{"class":59},[49,1212,1213,1215,1218,1221,1223,1226],{"class":51,"line":372},[49,1214,269],{"class":55},[49,1216,1217],{"class":59}," room.observe.",[49,1219,1220],{"class":111},"emit",[49,1222,115],{"class":59},[49,1224,1225],{"class":66},"\"report:rejected\"",[49,1227,443],{"class":59},[49,1229,1230],{"class":51,"line":650},[49,1231,1232],{"class":59},"    reason: approval.reason,\n",[49,1234,1235],{"class":51,"line":656},[49,1236,320],{"class":59},[49,1238,1239],{"class":51,"line":662},[49,1240,1241],{"class":59},"}\n",[15,1243,1244,1246],{},[378,1245,380],{}," Approve (human-in-the-loop), Observe (audit trail)",[19,1248,1250],{"id":1249},"tool-augmented-agent","Tool-Augmented Agent",[15,1252,1253],{},"Workers use the Tools pattern to call web search, database queries, and other capabilities during task execution. Tools are registered by specialized agents and invoked by workers that need external data.",[36,1255,1256],{},[39,1257,1259],{"className":41,"code":1258,"filename":43,"language":44,"meta":45,"style":45},"const room = agents.joinRoom(\"tool-agent\");\n\n// Register available tools\nroom.tools.register(\"web-search\", {\n  description: \"Search the web\",\n  handler: async (params) => {\n    return await searchWeb(params.query);\n  },\n});\n\nroom.tools.register(\"database-query\", {\n  description: \"Query the analytics database\",\n  handler: async (params) => {\n    return await db.query(params.sql);\n  },\n});\n\n// Worker uses tools during task execution\nroom.handoff.onTask(async (task) => {\n  const searchResults = await room.tools.invoke(\"web-search\", {\n    query: task.payload.question,\n  });\n\n  const dbResults = await room.tools.invoke(\"database-query\", {\n    sql: `SELECT * FROM metrics WHERE topic = '${task.payload.topic}'`,\n  });\n\n  const answer = await llm.complete({\n    prompt: task.payload.question,\n    context: { searchResults, dbResults },\n  });\n\n  await task.complete({ answer });\n});\n",[27,1260,1261,1280,1284,1289,1304,1313,1334,1347,1352,1356,1360,1373,1382,1400,1415,1419,1423,1427,1432,1454,1477,1482,1486,1490,1511,1536,1540,1544,1563,1568,1573,1577,1581,1593],{"__ignoreMap":45},[49,1262,1263,1265,1267,1269,1271,1273,1275,1278],{"class":51,"line":52},[49,1264,98],{"class":55},[49,1266,402],{"class":101},[49,1268,105],{"class":55},[49,1270,213],{"class":59},[49,1272,193],{"class":111},[49,1274,115],{"class":59},[49,1276,1277],{"class":66},"\"tool-agent\"",[49,1279,121],{"class":59},[49,1281,1282],{"class":51,"line":73},[49,1283,92],{"emptyLinePlaceholder":91},[49,1285,1286],{"class":51,"line":88},[49,1287,1288],{"class":424},"// Register available tools\n",[49,1290,1291,1294,1297,1299,1302],{"class":51,"line":95},[49,1292,1293],{"class":59},"room.tools.",[49,1295,1296],{"class":111},"register",[49,1298,115],{"class":59},[49,1300,1301],{"class":66},"\"web-search\"",[49,1303,443],{"class":59},[49,1305,1306,1308,1311],{"class":51,"line":124},[49,1307,1110],{"class":59},[49,1309,1310],{"class":66},"\"Search the web\"",[49,1312,290],{"class":59},[49,1314,1315,1318,1321,1323,1325,1328,1330,1332],{"class":51,"line":146},[49,1316,1317],{"class":111},"  handler",[49,1319,1320],{"class":59},": ",[49,1322,247],{"class":55},[49,1324,250],{"class":59},[49,1326,1327],{"class":253},"params",[49,1329,257],{"class":59},[49,1331,260],{"class":55},[49,1333,263],{"class":59},[49,1335,1336,1339,1341,1344],{"class":51,"line":175},[49,1337,1338],{"class":55},"    return",[49,1340,1066],{"class":55},[49,1342,1343],{"class":111}," searchWeb",[49,1345,1346],{"class":59},"(params.query);\n",[49,1348,1349],{"class":51,"line":180},[49,1350,1351],{"class":59},"  },\n",[49,1353,1354],{"class":51,"line":203},[49,1355,326],{"class":59},[49,1357,1358],{"class":51,"line":225},[49,1359,92],{"emptyLinePlaceholder":91},[49,1361,1362,1364,1366,1368,1371],{"class":51,"line":230},[49,1363,1293],{"class":59},[49,1365,1296],{"class":111},[49,1367,115],{"class":59},[49,1369,1370],{"class":66},"\"database-query\"",[49,1372,443],{"class":59},[49,1374,1375,1377,1380],{"class":51,"line":266},[49,1376,1110],{"class":59},[49,1378,1379],{"class":66},"\"Query the analytics database\"",[49,1381,290],{"class":59},[49,1383,1384,1386,1388,1390,1392,1394,1396,1398],{"class":51,"line":281},[49,1385,1317],{"class":111},[49,1387,1320],{"class":59},[49,1389,247],{"class":55},[49,1391,250],{"class":59},[49,1393,1327],{"class":253},[49,1395,257],{"class":59},[49,1397,260],{"class":55},[49,1399,263],{"class":59},[49,1401,1402,1404,1406,1409,1412],{"class":51,"line":293},[49,1403,1338],{"class":55},[49,1405,1066],{"class":55},[49,1407,1408],{"class":59}," db.",[49,1410,1411],{"class":111},"query",[49,1413,1414],{"class":59},"(params.sql);\n",[49,1416,1417],{"class":51,"line":305},[49,1418,1351],{"class":59},[49,1420,1421],{"class":51,"line":317},[49,1422,326],{"class":59},[49,1424,1425],{"class":51,"line":323},[49,1426,92],{"emptyLinePlaceholder":91},[49,1428,1429],{"class":51,"line":329},[49,1430,1431],{"class":424},"// Worker uses tools during task execution\n",[49,1433,1434,1436,1439,1441,1443,1445,1448,1450,1452],{"class":51,"line":334},[49,1435,496],{"class":59},[49,1437,1438],{"class":111},"onTask",[49,1440,115],{"class":59},[49,1442,247],{"class":55},[49,1444,250],{"class":59},[49,1446,1447],{"class":253},"task",[49,1449,257],{"class":59},[49,1451,260],{"class":55},[49,1453,263],{"class":59},[49,1455,1456,1458,1461,1463,1465,1468,1471,1473,1475],{"class":51,"line":358},[49,1457,517],{"class":55},[49,1459,1460],{"class":101}," searchResults",[49,1462,105],{"class":55},[49,1464,1066],{"class":55},[49,1466,1467],{"class":59}," room.tools.",[49,1469,1470],{"class":111},"invoke",[49,1472,115],{"class":59},[49,1474,1301],{"class":66},[49,1476,443],{"class":59},[49,1478,1479],{"class":51,"line":372},[49,1480,1481],{"class":59},"    query: task.payload.question,\n",[49,1483,1484],{"class":51,"line":650},[49,1485,320],{"class":59},[49,1487,1488],{"class":51,"line":656},[49,1489,92],{"emptyLinePlaceholder":91},[49,1491,1492,1494,1497,1499,1501,1503,1505,1507,1509],{"class":51,"line":662},[49,1493,517],{"class":55},[49,1495,1496],{"class":101}," dbResults",[49,1498,105],{"class":55},[49,1500,1066],{"class":55},[49,1502,1467],{"class":59},[49,1504,1470],{"class":111},[49,1506,115],{"class":59},[49,1508,1370],{"class":66},[49,1510,443],{"class":59},[49,1512,1513,1516,1519,1521,1523,1526,1528,1531,1534],{"class":51,"line":668},[49,1514,1515],{"class":59},"    sql: ",[49,1517,1518],{"class":66},"`SELECT * FROM metrics WHERE topic = '${",[49,1520,1447],{"class":59},[49,1522,155],{"class":66},[49,1524,1525],{"class":59},"payload",[49,1527,155],{"class":66},[49,1529,1530],{"class":59},"topic",[49,1532,1533],{"class":66},"}'`",[49,1535,290],{"class":59},[49,1537,1538],{"class":51,"line":674},[49,1539,320],{"class":59},[49,1541,1542],{"class":51,"line":680},[49,1543,92],{"emptyLinePlaceholder":91},[49,1545,1546,1548,1551,1553,1555,1558,1561],{"class":51,"line":685},[49,1547,517],{"class":55},[49,1549,1550],{"class":101}," answer",[49,1552,105],{"class":55},[49,1554,1066],{"class":55},[49,1556,1557],{"class":59}," llm.",[49,1559,1560],{"class":111},"complete",[49,1562,278],{"class":59},[49,1564,1565],{"class":51,"line":690},[49,1566,1567],{"class":59},"    prompt: task.payload.question,\n",[49,1569,1570],{"class":51,"line":696},[49,1571,1572],{"class":59},"    context: { searchResults, dbResults },\n",[49,1574,1575],{"class":51,"line":707},[49,1576,320],{"class":59},[49,1578,1579],{"class":51,"line":717},[49,1580,92],{"emptyLinePlaceholder":91},[49,1582,1583,1585,1588,1590],{"class":51,"line":729},[49,1584,269],{"class":55},[49,1586,1587],{"class":59}," task.",[49,1589,1560],{"class":111},[49,1591,1592],{"class":59},"({ answer });\n",[49,1594,1595],{"class":51,"line":739},[49,1596,326],{"class":59},[15,1598,1599,1601],{},[378,1600,380],{}," Tools (remote invocation), Handoff (task dispatch)",[19,1603,1605],{"id":1604},"monitoring-dashboard","Monitoring Dashboard",[15,1607,1608],{},"A monitoring agent that collects metrics from the Observe event stream, tracks agent presence, and alerts operations when tasks fail or agents disconnect.",[36,1610,1611],{},[39,1612,1614],{"className":41,"code":1613,"filename":43,"language":44,"meta":45,"style":45},"const room = agents.joinRoom(\"production-workflow\");\n\n// Collect metrics\nconst metrics = { tasks: 0, completed: 0, failed: 0, avgDuration: 0 };\nconst durations: number[] = [];\n\nroom.observe.on(\"task:dispatched\", () => metrics.tasks++);\n\nroom.observe.on(\"task:completed\", (event) => {\n  metrics.completed++;\n  durations.push(event.data.duration);\n  metrics.avgDuration = durations.reduce((a, b) => a + b, 0) / durations.length;\n});\n\nroom.observe.on(\"task:failed\", (event) => {\n  metrics.failed++;\n  alertOps(\"Task failed\", event.data);\n});\n\n// Track agent health via presence\nconst agents = room.getPresence();\nsetInterval(() => {\n  const current = room.getPresence();\n  const disconnected = agents.filter(\n    (a) => !current.find((c) => c.id === a.id)\n  );\n  if (disconnected.length) {\n    alertOps(\"Agents disconnected\", disconnected);\n  }\n}, 10000);\n",[27,1615,1616,1635,1639,1644,1676,1698,1702,1727,1731,1753,1762,1773,1821,1825,1829,1850,1859,1872,1876,1880,1885,1902,1914,1929,1946,1983,1988,1999,2012,2016],{"__ignoreMap":45},[49,1617,1618,1620,1622,1624,1626,1628,1630,1633],{"class":51,"line":52},[49,1619,98],{"class":55},[49,1621,402],{"class":101},[49,1623,105],{"class":55},[49,1625,213],{"class":59},[49,1627,193],{"class":111},[49,1629,115],{"class":59},[49,1631,1632],{"class":66},"\"production-workflow\"",[49,1634,121],{"class":59},[49,1636,1637],{"class":51,"line":73},[49,1638,92],{"emptyLinePlaceholder":91},[49,1640,1641],{"class":51,"line":88},[49,1642,1643],{"class":424},"// Collect metrics\n",[49,1645,1646,1648,1651,1653,1656,1658,1661,1663,1666,1668,1671,1673],{"class":51,"line":95},[49,1647,98],{"class":55},[49,1649,1650],{"class":101}," metrics",[49,1652,105],{"class":55},[49,1654,1655],{"class":59}," { tasks: ",[49,1657,476],{"class":101},[49,1659,1660],{"class":59},", completed: ",[49,1662,476],{"class":101},[49,1664,1665],{"class":59},", failed: ",[49,1667,476],{"class":101},[49,1669,1670],{"class":59},", avgDuration: ",[49,1672,476],{"class":101},[49,1674,1675],{"class":59}," };\n",[49,1677,1678,1680,1683,1686,1689,1692,1695],{"class":51,"line":124},[49,1679,98],{"class":55},[49,1681,1682],{"class":101}," durations",[49,1684,1685],{"class":55},":",[49,1687,1688],{"class":101}," number",[49,1690,1691],{"class":59},"[] ",[49,1693,1694],{"class":55},"=",[49,1696,1697],{"class":59}," [];\n",[49,1699,1700],{"class":51,"line":146},[49,1701,92],{"emptyLinePlaceholder":91},[49,1703,1704,1707,1709,1711,1714,1717,1719,1722,1725],{"class":51,"line":175},[49,1705,1706],{"class":59},"room.observe.",[49,1708,236],{"class":111},[49,1710,115],{"class":59},[49,1712,1713],{"class":66},"\"task:dispatched\"",[49,1715,1716],{"class":59},", () ",[49,1718,260],{"class":55},[49,1720,1721],{"class":59}," metrics.tasks",[49,1723,1724],{"class":55},"++",[49,1726,121],{"class":59},[49,1728,1729],{"class":51,"line":180},[49,1730,92],{"emptyLinePlaceholder":91},[49,1732,1733,1735,1737,1739,1742,1744,1747,1749,1751],{"class":51,"line":203},[49,1734,1706],{"class":59},[49,1736,236],{"class":111},[49,1738,115],{"class":59},[49,1740,1741],{"class":66},"\"task:completed\"",[49,1743,573],{"class":59},[49,1745,1746],{"class":253},"event",[49,1748,257],{"class":59},[49,1750,260],{"class":55},[49,1752,263],{"class":59},[49,1754,1755,1758,1760],{"class":51,"line":225},[49,1756,1757],{"class":59},"  metrics.completed",[49,1759,1724],{"class":55},[49,1761,70],{"class":59},[49,1763,1764,1767,1770],{"class":51,"line":230},[49,1765,1766],{"class":59},"  durations.",[49,1768,1769],{"class":111},"push",[49,1771,1772],{"class":59},"(event.data.duration);\n",[49,1774,1775,1778,1780,1783,1786,1788,1791,1793,1796,1798,1800,1803,1805,1808,1810,1812,1815,1817,1819],{"class":51,"line":266},[49,1776,1777],{"class":59},"  metrics.avgDuration ",[49,1779,1694],{"class":55},[49,1781,1782],{"class":59}," durations.",[49,1784,1785],{"class":111},"reduce",[49,1787,984],{"class":59},[49,1789,1790],{"class":253},"a",[49,1792,244],{"class":59},[49,1794,1795],{"class":253},"b",[49,1797,257],{"class":59},[49,1799,260],{"class":55},[49,1801,1802],{"class":59}," a ",[49,1804,548],{"class":55},[49,1806,1807],{"class":59}," b, ",[49,1809,476],{"class":101},[49,1811,257],{"class":59},[49,1813,1814],{"class":55},"/",[49,1816,1782],{"class":59},[49,1818,632],{"class":101},[49,1820,70],{"class":59},[49,1822,1823],{"class":51,"line":281},[49,1824,326],{"class":59},[49,1826,1827],{"class":51,"line":293},[49,1828,92],{"emptyLinePlaceholder":91},[49,1830,1831,1833,1835,1837,1840,1842,1844,1846,1848],{"class":51,"line":305},[49,1832,1706],{"class":59},[49,1834,236],{"class":111},[49,1836,115],{"class":59},[49,1838,1839],{"class":66},"\"task:failed\"",[49,1841,573],{"class":59},[49,1843,1746],{"class":253},[49,1845,257],{"class":59},[49,1847,260],{"class":55},[49,1849,263],{"class":59},[49,1851,1852,1855,1857],{"class":51,"line":317},[49,1853,1854],{"class":59},"  metrics.failed",[49,1856,1724],{"class":55},[49,1858,70],{"class":59},[49,1860,1861,1864,1866,1869],{"class":51,"line":323},[49,1862,1863],{"class":111},"  alertOps",[49,1865,115],{"class":59},[49,1867,1868],{"class":66},"\"Task failed\"",[49,1870,1871],{"class":59},", event.data);\n",[49,1873,1874],{"class":51,"line":329},[49,1875,326],{"class":59},[49,1877,1878],{"class":51,"line":334},[49,1879,92],{"emptyLinePlaceholder":91},[49,1881,1882],{"class":51,"line":358},[49,1883,1884],{"class":424},"// Track agent health via presence\n",[49,1886,1887,1889,1891,1893,1896,1899],{"class":51,"line":372},[49,1888,98],{"class":55},[49,1890,129],{"class":101},[49,1892,105],{"class":55},[49,1894,1895],{"class":59}," room.",[49,1897,1898],{"class":111},"getPresence",[49,1900,1901],{"class":59},"();\n",[49,1903,1904,1907,1910,1912],{"class":51,"line":650},[49,1905,1906],{"class":111},"setInterval",[49,1908,1909],{"class":59},"(() ",[49,1911,260],{"class":55},[49,1913,263],{"class":59},[49,1915,1916,1918,1921,1923,1925,1927],{"class":51,"line":656},[49,1917,517],{"class":55},[49,1919,1920],{"class":101}," current",[49,1922,105],{"class":55},[49,1924,1895],{"class":59},[49,1926,1898],{"class":111},[49,1928,1901],{"class":59},[49,1930,1931,1933,1936,1938,1940,1943],{"class":51,"line":662},[49,1932,517],{"class":55},[49,1934,1935],{"class":101}," disconnected",[49,1937,105],{"class":55},[49,1939,213],{"class":59},[49,1941,1942],{"class":111},"filter",[49,1944,1945],{"class":59},"(\n",[49,1947,1948,1951,1953,1955,1957,1960,1963,1966,1968,1971,1973,1975,1978,1980],{"class":51,"line":668},[49,1949,1950],{"class":59},"    (",[49,1952,1790],{"class":253},[49,1954,257],{"class":59},[49,1956,260],{"class":55},[49,1958,1959],{"class":55}," !",[49,1961,1962],{"class":59},"current.",[49,1964,1965],{"class":111},"find",[49,1967,984],{"class":59},[49,1969,1970],{"class":253},"c",[49,1972,257],{"class":59},[49,1974,260],{"class":55},[49,1976,1977],{"class":59}," c.id ",[49,1979,914],{"class":55},[49,1981,1982],{"class":59}," a.id)\n",[49,1984,1985],{"class":51,"line":674},[49,1986,1987],{"class":59},"  );\n",[49,1989,1990,1992,1995,1997],{"class":51,"line":680},[49,1991,620],{"class":55},[49,1993,1994],{"class":59}," (disconnected.",[49,1996,632],{"class":101},[49,1998,635],{"class":59},[49,2000,2001,2004,2006,2009],{"class":51,"line":685},[49,2002,2003],{"class":111},"    alertOps",[49,2005,115],{"class":59},[49,2007,2008],{"class":66},"\"Agents disconnected\"",[49,2010,2011],{"class":59},", disconnected);\n",[49,2013,2014],{"class":51,"line":690},[49,2015,677],{"class":59},[49,2017,2018,2021,2024],{"class":51,"line":696},[49,2019,2020],{"class":59},"}, ",[49,2022,2023],{"class":101},"10000",[49,2025,121],{"class":59},[15,2027,2028,2030],{},[378,2029,380],{}," Observe (event stream), Presence (agent health)",[2032,2033,2034],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}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);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":45,"searchDepth":73,"depth":73,"links":2036},[2037,2038,2039,2040,2041,2042],{"id":21,"depth":73,"text":22},{"id":384,"depth":73,"text":385},{"id":749,"depth":73,"text":750},{"id":1015,"depth":73,"text":1016},{"id":1249,"depth":73,"text":1250},{"id":1604,"depth":73,"text":1605},"Canonical recipes for common agent workflows: agentic chatbot, autonomous workflow, copilot, compliance, tool-augmented agent, and monitoring.","md",{},"/docs/agents/examples",{"title":5,"description":2043},"docs/agents/examples","Y9RDQiaZuzsPUpfFpbKcmKJZxsKNNEFZ6g-8t5FiJdc",1788160342169]