[{"data":1,"prerenderedAt":622},["ShallowReactive",2],{"i-lucide:sun-moon":3,"i-simple-icons:github":8,"i-simple-icons:linkedin":10,"i-lucide:mail":13,"i-lucide:arrow-up-right":15,"post-\u002Fwriting\u002Fmedusa-agent-autonomy-research":17,"i-lucide:arrow-left":614,"i-lucide:triangle-alert":616,"i-lucide:lightbulb":618,"i-lucide:info":620},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 2v2m2.837 12.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4m7-3l-1.256 1.256M20 12h2\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11,"hidden":12},"\u003Cpath fill=\"currentColor\" d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"\u002F>",true,{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":14},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":16},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"id":18,"title":19,"body":20,"canonical":595,"date":596,"description":597,"draft":6,"extension":598,"featured":12,"kind":599,"lang":600,"meta":601,"navigation":12,"path":602,"readingTime":603,"seo":604,"stem":605,"summary":606,"tags":607,"__hash__":613},"writing\u002Fwriting\u002Fmedusa-agent-autonomy-research.md","Tự chủ & cá tính cho AI Agent: đối chiếu quy trình khai sinh head medusa-ai",{"type":21,"value":22,"toc":581},"minimark",[23,37,53,60,65,68,90,97,101,123,134,140,144,153,170,175,179,184,193,198,202,211,222,227,232,236,245,254,259,263,295,299,528,532,538,563,574],[24,25,26,27,31,32,36],"p",{},"Nghiên cứu này đối chiếu quy trình khai sinh một ",[28,29,30],"em",{},"head"," (một trợ lý AI tự chủ) trong hệ thống medusa-ai với những gì literature 2026 đã kiểm chứng về thiết kế persona, kiến trúc bộ nhớ, orchestration và guardrails cho autonomy. Mục tiêu không phải viết lại kiến trúc, mà là ",[33,34,35],"strong",{},"định vị chính xác các khoảng trống"," và xếp chúng theo chi phí\u002Flợi ích.",[38,39,42],"callout",{"title":40,"type":41},"Kết luận cốt lõi","insight",[24,43,44,45,48,49,52],{},"Kiến trúc khai sinh head hiện tại ",[33,46,47],{},"không lạc hậu",". Nhiều quyết định trùng khớp ",[28,50,51],{},"độc lập"," với pattern mà literature 2026 xác nhận là đúng - vì cả runbook lẫn literature đều xuất phát từ cùng ràng buộc thực tế (giới hạn context-window, an toàn bộ nhớ, chi phí LLM-call) nên hội tụ về giải pháp tương tự.",[24,54,55,56,59],{},"Tổng cộng ",[33,57,58],{},"12 khoảng trống"," được định vị: 3 nên làm ngay (chi phí thấp, không đổi kiến trúc), 3 nên làm sớm (effort vừa, giữ nguyên invariant), và 6 để sau (v2\u002Fv3 - runbook đều đã chủ động xếp vào non-goal).",[61,62,64],"h2",{"id":63},"phương-pháp-phạm-vi","Phương pháp & phạm vi",[24,66,67],{},"Đối chiếu trực tiếp 3 pha của runbook khai sinh head:",[69,70,71,78,84],"ul",{},[72,73,74,77],"li",{},[33,75,76],{},"Pha A"," - Identity: rút SOUL (bản mô tả cá tính) + seed bộ nhớ 2 tầng.",[72,79,80,83],{},[33,81,82],{},"Pha B"," - Code: dựng năng lực nhớ, hành động, lịch chạy (B1-B8).",[72,85,86,89],{},[33,87,88],{},"Pha C"," - Nạp \u002F đo \u002F verify: đổ ký ức, đo baseline cá tính, kiểm tra trước khi go-live.",[24,91,92,93,96],{},"Giới hạn cần nói rõ: dựa trên web-search 2026 + cross-check đa nguồn, ",[33,94,95],{},"không"," phải khảo cứu toàn văn paper; ưu tiên nguồn có trích dẫn kỹ thuật cụ thể khi các nguồn mâu thuẫn. Không có benchmark thực nghiệm trên head thật - khuyến nghị dựa trên đối chiếu logic kiến trúc, không phải A\u002FB test.",[61,98,100],{"id":99},"persona-identity-design","Persona & Identity Design",[24,102,103,106,107,110,111,114,115,118,119,122],{},[33,104,105],{},"State-of-art."," Persona không phải thứ ",[28,108,109],{},"viết vào",", mà là thứ ",[28,112,113],{},"chọn ra và neo lại"," từ kho latent sẵn có của model (Anthropic Persona Selection Model). Huấn luyện bằng ",[33,116,117],{},"nguyên tắc kèm lý do"," generalize tốt hơn demonstration đơn thuần; một constitutional document chất lượng cao giảm agentic misalignment ",[33,120,121],{},"hơn 3 lần",".",[24,124,125,128,129,133],{},[33,126,127],{},"medusa-ai."," Prompt-pack phỏng vấn ",[130,131,132],"code",{},"D1-D9"," để \"rút\" SOUL ra từ chính model thay vì soạn tay - khớp trực tiếp với mô hình trên. SOUL luôn \"thắng\" và được đặt cuối context. Điểm còn thiếu: validator chỉ kiểm cấu trúc, chưa kiểm nội dung có giải thích \"vì sao\", chưa có kênh cho reflection\u002Ftiến hoá có kiểm soát.",[24,135,136,139],{},[33,137,138],{},"Kết luận:"," đúng hướng, độc lập với literature. Phần reflection đã được chủ động đẩy sang non-goal v2.",[61,141,143],{"id":142},"memory-architecture","Memory Architecture",[24,145,146,148,149,152],{},[33,147,105],{}," Bộ nhớ phân tầng chuẩn MemGPT\u002FLetta: core (RAM) + recall (disk) + archival (cold), với 4 loại working \u002F episodic \u002F semantic \u002F ",[33,150,151],{},"procedural",". Các framework dẫn đầu (Letta, Mem0, Zep) có auto-forgetting và consolidation ở runtime.",[24,154,155,157,158,161,162,165,166,169],{},[33,156,127],{}," Seed 2 tầng tách bạch ",[28,159,160],{},"episodic"," (ký ức) khỏi ",[28,163,164],{},"semantic"," (tri thức) - đúng nguyên lý \"một nội dung chỉ ở MỘT nơi\". Thiếu tầng ",[33,167,168],{},"procedural memory"," ở runtime (agent tự học \"cách làm\") - hiện cố định trong code; chưa có forgetting\u002Fconsolidation runtime.",[24,171,172,174],{},[33,173,138],{}," khớp tinh thần 2-tier. Gap procedural-memory là thật nhưng ưu tiên thấp - chưa cần khi mới một head, ít tương tác thực.",[61,176,178],{"id":177},"orchestration-autonomy-framework","Orchestration & Autonomy Framework",[24,180,181,183],{},[33,182,105],{}," LangGraph trưởng thành nhất: checkpointing + durable execution + human-in-the-loop approval là primitive bậc nhất. Guardrail có sẵn: NeMo Guardrails, Guardrails AI, OpenAI SDK (tracing tích hợp).",[24,185,186,188,189,192],{},[33,187,127],{}," Không dùng framework ngoài - tự xây runner + gate-engine, vì ",[33,190,191],{},"invariant SPLIT"," (phát hiện thì tất định, phản hồi thì phán đoán) không map thẳng vào framework nào. Đổi lại: thiếu observability\u002Ftracing tích hợp; gate hiện chỉ \"smoke boot xem log\", chưa có tracing có cấu trúc để debug sau sự kiện.",[24,194,195,197],{},[33,196,138],{}," không dùng framework là hợp lý. Gap structured tracing để sau khi có ≥3 head chạy thật.",[61,199,201],{"id":200},"autonomy-safety-guardrails-approval","Autonomy Safety - Guardrails & Approval",[24,203,204,206,207,210],{},[33,205,105],{}," Checklist chuẩn: least-privilege, lọc I\u002FO, người duyệt cho hành động rủi ro cao, sandbox, logging, giới hạn chi phí, ",[33,208,209],{},"agent không tự sửa instruction",", kiểm tra kill-switch định kỳ. Autonomy tăng dần: read-only → draft → low-risk review → full.",[38,212,215],{"title":213,"type":214},"Phát hiện đáng chú ý","warning",[24,216,217,218,221],{},"Con người chỉ bắt được hành động xấu khoảng ",[33,219,220],{},"9-26%"," số lần nếu chỉ có một nút \"Approve\" trơ trọi - cần challenge-and-response (hiện rõ intent, phạm vi, cách rollback) trước khi duyệt.",[24,223,224,226],{},[33,225,127],{}," Đã có approval gate + quiet-hours + budget\u002Fkill-switch\u002FTTL - khớp checklist khá sát; SOUL là file tĩnh nên không lo bị self-edit. Điểm thiếu: boot thẳng full autonomy (chưa có shadow-mode); approval một chạm chưa phải checklist.",[24,228,229,231],{},[33,230,138],{}," khớp sát. Hai cải tiến nên làm: (a) giai đoạn observe-only trước go-live, (b) đổi approval sang checklist intent\u002Fphạm vi\u002Frollback.",[61,233,235],{"id":234},"identity-persona-drift-detection","Identity \u002F Persona Drift Detection",[24,237,238,240,241,244],{},[33,239,105],{}," Persona drift là hiện tượng ",[33,242,243],{},"đã đo được",": một persona khó duy trì qua phiên agentic dài. Công cụ: SyncScore (lệch tông\u002Fgiọng), ContextEcho (drift tới 19% giữa các LLM), CUSUM (phát hiện \"phẳng cảm xúc\" dần qua 60 ngày mô phỏng).",[24,246,247,249,250,253],{},[33,248,127],{}," Battery cá tính đo baseline consistency + divergence ",[33,251,252],{},"một lần lúc khai sinh"," - đúng hướng, nhưng chỉ là snapshot. Chưa có cơ chế đo lại định kỳ và so với baseline để phát hiện drift sau hàng trăm tương tác thật.",[24,255,256,258],{},[33,257,138],{}," gap nên làm ngay - thêm một bước drift-check nhẹ định kỳ làm cầu nối tới battery đầy đủ ở v2.",[61,260,262],{"id":261},"ba-điểm-kiến-trúc-trùng-khớp-gần-như-chính-xác","Ba điểm kiến trúc trùng khớp gần như chính xác",[69,264,265,275,285],{},[72,266,267,270,271,274],{},[33,268,269],{},"Constitution reason-based."," Anthropic chuyển constitution từ rule-based sang reason-based (giải thích lý do, không chỉ liệt luật). SOUL 2 tầng của medusa = giá trị có lý do + luật NEVER tuyệt đối - đã là kết hợp reason + rule. ",[28,272,273],{},"Tinh chỉnh nhỏ:"," thêm gợi ý (không gate cứng) để mỗi luật NEVER nối được về đúng giá trị làm căn cứ.",[72,276,277,280,281,284],{},[33,278,279],{},"Self-evolving memory risk."," Vòng đời bộ nhớ tự tiến hoá hỏng ở 3 chỗ: poisoning lúc ghi, drift lúc gộp, hallucination lúc đọc. Ba đường giảm thiểu: policy fine-tune, read-side sanitiser, ",[33,282,283],{},"write-side gate",". Runbook đã có đúng write-side gate (chặn trước khi ghi, đóng dấu provenance) - và tự liệt read-side sanitiser vào non-goal v2. Triage đúng thứ tự ưu tiên, không phải may mắn.",[72,286,287,290,291,294],{},[33,288,289],{},"Psychometric validity."," SJT đo cá tính LLM chỉ ổn định với vài nét tính cách; latent factor không khớp con người thật. Battery nên hiểu là đo ",[33,292,293],{},"\"tính nhất quán hành vi theo ngữ cảnh\"",", không phải \"personality thật\" - và nên note rõ điều đó.",[61,296,298],{"id":297},"gap-ledger-12-khoảng-trống","Gap ledger - 12 khoảng trống",[300,301,302,324],"table",{},[303,304,305],"thead",{},[306,307,308,312,315,318,321],"tr",{},[309,310,311],"th",{},"#",[309,313,314],{},"Khoảng trống",[309,316,317],{},"Vị trí",[309,319,320],{},"State-of-art",[309,322,323],{},"Ưu tiên",[325,326,327,345,361,378,394,411,428,445,462,479,496,511],"tbody",{},[306,328,329,333,336,339,342],{},[330,331,332],"td",{},"1",[330,334,335],{},"Luật NEVER chưa bắt buộc nối về lý do\u002Fgiá trị",[330,337,338],{},"Pha A · validator",[330,340,341],{},"Reason-grounded giảm misalignment >3×",[330,343,344],{},"Làm ngay",[306,346,347,350,353,356,359],{},[330,348,349],{},"2",[330,351,352],{},"Chưa có drift-check nhẹ định kỳ sau baseline",[330,354,355],{},"Pha C · battery (1 lần)",[330,357,358],{},"SyncScore \u002F CUSUM đo drift liên tục",[330,360,344],{},[306,362,363,366,369,372,375],{},[330,364,365],{},"3",[330,367,368],{},"Approval là nút đơn, chưa phải checklist",[330,370,371],{},"Approval gate",[330,373,374],{},"Người bắt hành động xấu ~9-26% nếu chỉ \"Approve?\"",[330,376,377],{},"Nên làm",[306,379,380,383,386,389,392],{},[330,381,382],{},"4",[330,384,385],{},"Chưa có shadow-mode trước khi cấp hành động thật",[330,387,388],{},"Pha C · boot thẳng full",[330,390,391],{},"Autonomy tăng dần: read-only → draft → full",[330,393,377],{},[306,395,396,399,402,405,408],{},[330,397,398],{},"5",[330,400,401],{},"Chưa rõ retrieval có reverse-sort theo relevance",[330,403,404],{},"Bộ nhớ (chưa audit)",[330,406,407],{},"Reverse-sort thắng confidence-sort trên context dài",[330,409,410],{},"Audit code",[306,412,413,416,419,422,425],{},[330,414,415],{},"6",[330,417,418],{},"Battery chưa note \"hành vi nhất quán ≠ personality thật\"",[330,420,421],{},"identity-battery",[330,423,424],{},"Latent factor LLM không khớp con người",[330,426,427],{},"Doc-only",[306,429,430,433,436,439,442],{},[330,431,432],{},"7",[330,434,435],{},"Chưa có structured tracing cho autonomous run",[330,437,438],{},"Gate · \"xem log\"",[330,440,441],{},"Checkpointing + replay là primitive bậc nhất",[330,443,444],{},"Sau ≥3 head",[306,446,447,450,453,456,459],{},[330,448,449],{},"8",[330,451,452],{},"Procedural memory chưa có kênh cập nhật runtime",[330,454,455],{},"Cố định trong code",[330,457,458],{},"4-tier: working\u002Fepisodic\u002Fsemantic\u002Fprocedural",[330,460,461],{},"v2\u002Fv3",[306,463,464,467,470,473,476],{},[330,465,466],{},"9",[330,468,469],{},"SOUL tĩnh, không phải identity graph (ID-RAG)",[330,471,472],{},"SOUL 1 file",[330,474,475],{},"Ground persona vào knowledge-graph, query mỗi vòng",[330,477,478],{},"Khi SOUL phình",[306,480,481,484,487,490,493],{},[330,482,483],{},"10",[330,485,486],{},"Read-side memory sanitiser (dedup\u002Fcap) chưa có",[330,488,489],{},"Non-goal đã ghi",[330,491,492],{},"1\u002F3 đường giảm thiểu chuẩn",[330,494,495],{},"Triage đúng",[306,497,498,501,504,506,509],{},[330,499,500],{},"11",[330,502,503],{},"Consolidation engine + self-reflection chưa có",[330,505,489],{},[330,507,508],{},"Reflection cho phép tiến hoá có kiểm soát",[330,510,495],{},[306,512,513,516,519,522,525],{},[330,514,515],{},"12",[330,517,518],{},"Chưa có protocol chuẩn head-to-head (A2A)",[330,520,521],{},"Silo có chủ đích",[330,523,524],{},"A2A\u002FMCP là default cho multi-agent 2026",[330,526,527],{},"Có chủ đích",[61,529,531],{"id":530},"khuyến-nghị-top-3-làm-trước","Khuyến nghị - Top 3 làm trước",[24,533,534,535,122],{},"Cả ba đều chỉ sửa prompt-pack\u002Fdoc, ",[33,536,537],{},"không đụng invariant kiến trúc",[539,540,541,547,553],"ol",{},[72,542,543,546],{},[33,544,545],{},"Nối luật NEVER về giá trị."," Khi model sinh một luật cấm, yêu cầu ánh xạ ngược về đúng giá trị làm căn cứ. Chỉ là prompt hint, không cần gate cứng mới.",[72,548,549,552],{},[33,550,551],{},"Drift-check nhẹ định kỳ."," Mỗi 4-6 tuần vận hành, chạy lại 2-3 song đề (không phải cả bộ), diff với baseline, log nếu lệch. Tái dùng script đã có - không cần hạ tầng mới.",[72,554,555,558,559,562],{},[33,556,557],{},"Challenge-and-response cho approval."," Đổi nội dung message duyệt từ \"Approve?\" sang checklist ngắn: ",[28,560,561],{},"làm gì \u002F ảnh hưởng tới đâu \u002F lỡ sai thì gỡ sao",". Vẫn một chạm - chỉ đổi nội dung, không đổi luồng kỹ thuật.",[38,564,567],{"title":565,"type":566},"Bối cảnh","note",[24,568,569,570,573],{},"Đây là bản đối chiếu kiến trúc trong dự án cá nhân medusa-ai - hệ thống khai sinh và vận hành nhiều AI agent tự chủ. Nội dung tập trung vào ",[28,571,572],{},"định vị khoảng trống",", không phải tái thiết kế.",[24,575,576,577,580],{},"Điều thú vị nhất không nằm ở danh sách việc cần làm, mà ở chỗ phần lớn nguyên tắc này được đúc kết ra ",[28,578,579],{},"trước cả khi"," đọc các nghiên cứu - bằng chứng rằng khi bạn thật lòng muốn nuôi một agent cho tử tế, kiểu gì bạn cũng chạm đúng vào những bài học mà khoa học đang chỉ ra.",{"title":582,"searchDepth":583,"depth":583,"links":584},"",3,[585,587,588,589,590,591,592,593,594],{"id":63,"depth":586,"text":64},2,{"id":99,"depth":586,"text":100},{"id":142,"depth":586,"text":143},{"id":177,"depth":586,"text":178},{"id":200,"depth":586,"text":201},{"id":234,"depth":586,"text":235},{"id":261,"depth":586,"text":262},{"id":297,"depth":586,"text":298},{"id":530,"depth":586,"text":531},null,"2026-07-11","Nghiên cứu này đối chiếu quy trình khai sinh một head (một trợ lý AI tự chủ) trong hệ thống medusa-ai với những gì literature 2026 đã kiểm chứng về thiết kế persona, kiến trúc bộ nhớ, orchestration và guardrails cho autonomy. Mục tiêu không phải viết lại kiến trúc, mà là định vị chính xác các khoảng trống và xếp chúng theo chi phí\u002Flợi ích.","md","ai","vi",{},"\u002Fwriting\u002Fmedusa-agent-autonomy-research",15,{"title":19,"description":597},"writing\u002Fmedusa-agent-autonomy-research","Đối chiếu quy trình khai sinh head 3 pha của medusa-ai với state-of-art 2026 về persona, memory, orchestration và autonomy guardrails - định vị khoảng trống, không viết lại kiến trúc.",[608,609,610,611,612],"ai-agent","llm","memory","autonomy","research","0DtsGIsGIXZoQ2SJCmQlql5Wr1zbvfqZ-fyyBNMDXDc",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":615},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 19l-7-7l7-7m7 7H5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":617},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":619},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 14c.2-1 .7-1.7 1.5-2.5c1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5c.7.7 1.3 1.5 1.5 2.5m0 4h6m-5 4h4\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":621},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 16v-4m0-4h.01\"\u002F>\u003C\u002Fg>",1790138980676]