{"id":880,"date":"2026-02-19T08:47:33","date_gmt":"2026-02-19T00:47:33","guid":{"rendered":"https:\/\/qi122.qodeinteractive.com\/?p=880"},"modified":"2026-06-16T21:42:14","modified_gmt":"2026-06-16T13:42:14","slug":"rag-harness-engineering","status":"publish","type":"post","link":"https:\/\/ragsitemap.com\/en\/blog\/rag-harness-engineering\/","title":{"rendered":"RAG Harness Engineering"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"880\" class=\"elementor elementor-880\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a63a280 e-flex e-con-boxed qodef-elementor-content-no e-con e-parent\" data-id=\"a63a280\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f3f235b elementor-widget elementor-widget-text-editor\" data-id=\"f3f235b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a963fd elementor-widget elementor-widget-text-editor\" data-id=\"7a963fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>\u5176\u4e2d Vision API \u628a\u770b\u5716\u9019\u6bb5\u5de5\u4f5c\u523b\u610f\u89e3\u8026\u51fa\u4f86\uff0c\u53ea\u8ca0\u8cac\u4e00\u4ef6\u4e8b\uff0c\u628a\u8a2a\u5ba2\u4e0a\u50b3\u7684\u5716\u7247\u8f49\u6210\u5927\u591a\u6578\u6a21\u578b\u90fd\u8b80\u5f97\u61c2\u7684\u6587\u5b57\u63cf\u8ff0\uff0c\u518d\u4ea4\u7d66\u5f8c\u7e8c\u7684 AI \u7bc0\u9ede\u3002\u591a\u6a21\u614b\u6a21\u578b\u672c\u8eab\u5c31\u80fd\u76f4\u63a5\u770b\u5716\u56de\u7b54\u554f\u984c\uff0c\u9019\u5957\u67b6\u69cb\u537b\u5148\u628a\u5716\u7247\u7ffb\u8b6f\u6210\u4e00\u4efd\u6587\u5b57\u5c0f\u6284\uff0c\u76ee\u7684\u662f\u8b93\u6bcf\u4e00\u4f4d Sub Agent \u90fd\u80fd\u5728\u6aa2\u7d22\u968e\u6bb5\u7684\u6587\u5b57\u6d77\u88e1\uff0c\u62ff\u8457\u540c\u4e00\u4efd\u5c0f\u6284\u3001\u52a0\u4e0a\u8a2a\u5ba2\u7684\u539f\u59cb\u63d0\u554f\uff0c\u4e00\u8def\u4e0b\u6f5b\u3002<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-76f60b5 e-flex e-con-boxed qodef-elementor-content-no e-con e-parent\" data-id=\"76f60b5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-1701352 e-con-full e-flex qodef-elementor-content-no e-con e-child\" data-id=\"1701352\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-9863c76 e-con-full e-flex qodef-elementor-content-no e-con e-child\" data-id=\"9863c76\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-68b8bd4 elementor-widget elementor-widget-heading\" data-id=\"68b8bd4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">RAG Harness \u7684\u5206\u6bb5\u89e3\u8026<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca8a9ee elementor-widget elementor-widget-text-editor\" data-id=\"ca8a9ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a963fd elementor-widget elementor-widget-text-editor\" data-id=\"7a963fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n<div class=\"elementor-widget-container\">\n<p>RAG API \u7531 Diving Agent\uff08\u8abf\u5ea6\uff09 \u62ff\u8457 Master Sitemap\uff0c\u4e26\u4f9d\u7167\u8a2a\u5ba2\u7684\u63d0\u554f\u4f86\u4e3b\u5c0e\u8a72\u6d3e\u51fa\u54ea\u4e00\u4f4d Sub Agent\uff08\u57f7\u884c\uff0cDiving-mode\uff09\uff0c\u8207\u8a72\u5f80\u54ea\u500b\u65b9\u5411\u9032\u884c\u3002\u800c Sub Agent \u8ca0\u8cac\u5224\u65b7\u8a72\u6293\u54ea\u6bb5\u5167\u5bb9\u3002\u6bcf\u5230\u4e00\u500b\u65b0\u7684\u6df1\u5ea6\u3001\u9762\u5c0d\u4e00\u500b\u65b0\u7684\u5834\u666f\uff0c\u624b\u4e0a\u59cb\u7d42\u63e1\u8457\u5c0f\u6284\u8207\u4f7f\u7528\u8005\u6700\u521d\u7684\u63d0\u554f\u3002\u6700\u7d42 Chat API \u6536\u5230\u6240\u6709\u6aa2\u7d22\u6210\u679c\u4e4b\u5f8c\uff0c\u7528\u7ad9\u9577\u5b9a\u7fa9\u7684\u4eba\u683c\u8207\u56de\u7b54\u898f\u7bc4\u7522\u51fa\u6700\u7d42\u56de\u61c9\u3002<\/p>\n<\/div>\n<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f16e431 elementor-widget elementor-widget-text-editor\" data-id=\"f16e431\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a963fd elementor-widget elementor-widget-text-editor\" data-id=\"7a963fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n<div class=\"elementor-widget-container\">\n<p>Vision API\u3001RAG API\u3001Chat API \u4e09\u6bb5 AI \u7bc0\u9ede\u5404\u81ea\u7368\u7acb\uff0c\u6bcf\u6bb5\u90fd\u53ef\u4ee5\u81ea\u7531\u914d\u7f6e\u4e0d\u540c\u7684\u6a21\u578b\u3002\u96f2\u7aef\u6709 Mistral\u3001OpenAI\u3001Gemini\u3001xAI \u7b49\u9078\u9805\uff0c\u672c\u5730\u904b\u7b97\u63a8\u85a6 vLLM\u3002\u6311\u6a21\u578b\u4e0d\u518d\u662f\u4e00\u500b\u5168\u5c40\u6c7a\u7b56\uff0c\u800c\u662f\u5206\u6bb5\u6700\u4f73\u5316\uff0c\u5716\u7247\u8fa8\u8b58\u4ea4\u7d66\u64c5\u9577\u8996\u89ba\u7684\u6a21\u578b\u3001\u6aa2\u7d22\u8def\u7531\u4ea4\u7d66\u4fbf\u5b9c\u7684\u5c0f\u6a21\u578b\u3001\u6700\u7d42\u56de\u61c9\u518d\u7528\u9069\u5408\u8868\u9054\u7684\u6a21\u578b\u4f86\u6536\u5c3e\u3002<\/p>\n<\/div>\n<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6e9ec85 e-con-full e-flex qodef-elementor-content-no e-con e-child\" data-id=\"6e9ec85\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8c8cab1 elementor-widget elementor-widget-heading\" data-id=\"8c8cab1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">\u6bcf\u6bb5 AI \u7bc0\u9ede\u90fd\u662f\u4e00\u4efd\u4e7e\u6de8\u7684\u914d\u65b9<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b153c7 elementor-widget elementor-widget-text-editor\" data-id=\"5b153c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a963fd elementor-widget elementor-widget-text-editor\" data-id=\"7a963fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n<div class=\"elementor-widget-container\">\n<p>\u6bcf\u6bb5 AI \u7bc0\u9ede\u4e0d\u6703\u628a\u6240\u6709\u7684\u4e0a\u4e0b\u6587\u5f80\u4e0b\u6e38\u5806\uff0cSub Agent \u4e4b\u9593\u4ea4\u4ed8\u7684\uff0c\u53ea\u662f\u6e05\u6670\u7684\u4e0b\u6f5b\u65b9\u5411\u8207\u91cd\u65b0\u6ce8\u5165\u7684\u539f\u59cb\u63d0\u554f\u3002Vision API \u53ea\u50b3\u51fa\u5224\u8b80\u5f8c\u7684\u5716\u7247\u8a9e\u610f\u3002RAG API \u5728 Diving-mode Loop \u7684\u591a\u6b21\u6f5b\u964d\u4e2d\uff0c\u6bcf\u4e00\u8f2a\u627e\u5230\u7684\u76ee\u6a19\u53e6\u5916\u5b58\u9032\u7d2f\u7a4d\u5340\uff0c\u7531 Scuba Deep Dive\uff08\u9a57\u6536\uff09\u5224\u65b7\u6aa2\u7d22\u662f\u5426\u5145\u8db3\uff0c\u5920\u4e86\u624d\u628a\u6574\u500b\u7d2f\u7a4d\u5340\u4ea4\u7d66 Chat API\u3002\u4e0b\u6e38\u53ea\u6703\u62ff\u5230\u4e0a\u6e38\u5718\u968a\u7684\u6210\u679c\uff0c\u78b0\u4e0d\u5230\u904e\u7a0b\u3002<\/p>\n<\/div>\n<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b953525 elementor-widget elementor-widget-text-editor\" data-id=\"b953525\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a963fd elementor-widget elementor-widget-text-editor\" data-id=\"7a963fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>\u9664\u4e86\u4e0a\u4e0b\u6587\u9694\u96e2\u4e4b\u5916\uff0c\u6bcf\u4e00\u500b\u7bc0\u9ede\u7684 LLM \u4efb\u52d9\u4e5f\u88ab\u523b\u610f\u6536\u6582\u3002\u6aa2\u7d22\u904e\u7a0b\u4e2d\u7684\u6bcf\u4e00\u6b21\u547c\u53eb\uff0cLLM \u4e0d\u662f\u81ea\u7531\u751f\u6210\u9577\u6587\uff0c\u800c\u662f\u8f38\u51fa\u56fa\u5b9a JSON\uff0c\u5148\u7528\u4e00\u53e5 think \u5be9\u984c\u3001\u60f3\u6e05\u695a\u7576\u4e0b\u8a72\u5f80\u54ea\u8d70\uff0c\u518d\u586b next_mode \u8207 next_act \u5169\u500b\u4f5c\u7b54\u6b04\u4f4d\u3002\u9019\u53e5 think \u4e00\u7269\u5169\u7528\uff0c\u8f38\u51fa\u5230\u524d\u7aef\u8b93\u8a2a\u5ba2\u770b\u898b AI \u6b64\u523b\u5728\u60f3\u4ec0\u9ebc\uff0c\u4e5f\u8b93\u5c0f\u6a21\u578b\u5728\u4f5c\u7b54\u524d\u5148\u628a\u65b9\u5411\u6536\u6582\u4e00\u6b21\uff0c\u5230\u5f8c\u9762\u9078\u6a21\u5f0f\u3001\u9078\u5167\u5bb9\u6703\u56e0\u6b64\u66f4\u6e96\u3002<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b2bbe26 elementor-widget elementor-widget-text-editor\" data-id=\"b2bbe26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a963fd elementor-widget elementor-widget-text-editor\" data-id=\"7a963fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>\u6574\u6bb5\u4efb\u52d9\u6536\u6582\u6210\u9078\u64c7\u984c\uff0c\u53ea\u8003\u6a21\u578b\u77e5\u4e0d\u77e5\u9053\u81ea\u5df1\u5728\u505a\u4ec0\u9ebc\u3001\u505a\u4e0d\u505a\u5f97\u51fa\u5224\u65b7\uff0c\u4e0d\u8003\u9577\u6587\u751f\u6210\u7684\u80fd\u529b\u3002\u4e7e\u6de8\u7684\u914d\u65b9\u52a0\u4e0a\u6536\u6582\u7684\u8f38\u51fa\uff0c\u9019\u5169\u4ef6\u4e8b\u4e00\u8d77\u8b93 Llama 3B \u9019\u7a2e\u8f15\u91cf\u6a21\u578b\u4e5f\u80fd\u8dd1\u901a\u6574\u5957 RAG \u6d41\u7a0b\u3002<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-100060a e-con-full e-flex qodef-elementor-content-no e-con e-child\" data-id=\"100060a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d083613 elementor-widget elementor-widget-heading\" data-id=\"d083613\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Prompt Cache\uff1a\u7b2c\u4e8c\u6b21\u67e5\u8a62\u8d77\u7684\u6210\u672c\u5269\u96f6\u982d<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1bbc91a elementor-widget elementor-widget-text-editor\" data-id=\"1bbc91a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a963fd elementor-widget elementor-widget-text-editor\" data-id=\"7a963fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>\u6574\u500b\u904b\u4f5c\u6d41\u7a0b\u4e2d\uff0ctoken \u6d88\u8017\u91cf\u6700\u5927\u7684\u662f\u8f38\u5165\u4e0d\u662f\u8f38\u51fa\uff0c\u6bd4\u4f8b\u5927\u7d04\u662f 10\uff1a1\u3002\u4f54\u6bd4\u6700\u5927\u7684\u63d0\u793a\u8a5e\u3001Master Sitemap\u3001\u6240\u6709\u9801\u9762\u6216\u6587\u7ae0 chunk \u5168\u90e8\u90fd\u662f\u975c\u614b\u5167\u5bb9\uff0c\u5f9e\u67b6\u69cb\u5c64\u9762\u5c31\u88ab\u6b78\u985e\u70ba cache \u6bb5\uff0c\u9023 #ROLE\u3001#RULES\u3001#OUTPUT\u3001#SOUL.md \u4e5f\u4e00\u4f75\u8655\u7406\u3002\u7db2\u7ad9\u4e3b\u4e0d\u9700\u8981\u81ea\u5df1\u5283\u9019\u689d\u908a\u754c\uff0c\u975c\u614b\u7684\u6b78\u975c\u614b\u3001\u52d5\u614b\u7684\u6b78\u52d5\u614b\uff0c\u5f9e\u7b2c\u4e8c\u6b21\u67e5\u8a62\u8d77\uff0c\u6700\u5927\u5b97\u7684\u958b\u92b7\u53ea\u5269\u96f6\u982d\u3002<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0c668bb e-con-full e-flex qodef-elementor-content-no e-con e-child\" data-id=\"0c668bb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c1399c6 elementor-widget elementor-widget-html\" data-id=\"c1399c6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.rag-diagram-scope {\r\n  \/* \u2500\u2500 \u4e3b\u8272 \u00b7 \u6539\u52d5\u96c6\u4e2d\u5728\u6b64 3 \u884c \u2500\u2500 *\/\r\n  --rag-bg:     #eaeaea;\r\n  --rag-accent: #BE935D;\r\n  --rag-text:   #262019;\r\n\r\n  \/* \u2500\u2500 \u5b57\u91cd \u00b7 300 \/ 400 \/ 700 (\u4f9d Google Fonts weight) \u2500\u2500 *\/\r\n  --rag-weight-title:    700;\r\n  --rag-weight-subtitle: 400;\r\n  --rag-weight-body:     400;\r\n\r\n  \/* \u2500\u2500 \u5b57\u7d1a \u00b7 \u6539\u9019 3 \u500b\u6703\u5e36\u52d5\u540c\u7fa4\u6b21\u968e\u5c64 \u2500\u2500 *\/\r\n  --rag-size-title:    17px;\r\n  --rag-size-subtitle: 13px;\r\n  --rag-size-body:     11px;\r\n\r\n  \/* \u2500\u2500 \u884d\u751f\u8272 \u00b7 \u03b1 on --rag-text \u2500\u2500 *\/\r\n  --rag-ink-1: rgb(from var(--rag-text) r g b \/ 1);\r\n  --rag-ink-2: rgb(from var(--rag-text) r g b \/ 0.78);\r\n  --rag-ink-3: rgb(from var(--rag-text) r g b \/ 0.58);\r\n\r\n  \/* \u2500\u2500 \u884d\u751f\u8272 \u00b7 \u03b1 on --rag-accent \u2500\u2500 *\/\r\n  --rag-acc-1:    var(--rag-accent);\r\n  --rag-acc-2:    rgb(from var(--rag-accent) r g b \/ 0.55);\r\n  --rag-acc-tint: rgb(from var(--rag-accent) r g b \/ 0.10);\r\n  --rag-acc-dots: rgb(from var(--rag-accent) r g b \/ 0.22);\r\n\r\n  \/* \u2500\u2500 \u4e2d\u6027\u5fae\u8868\u9762 \u2500\u2500 *\/\r\n  --rag-surface: rgb(from var(--rag-text) r g b \/ 0.05);\r\n\r\n  \/* \u5bb9\u5668\u672c\u8eab\u7684\u5448\u73fe *\/\r\n  background: var(--rag-bg);\r\n  color: var(--rag-text);\r\n  font-family: \"Cormorant\",\"LXGW WenKai TC\",\"Nanum Myeongjo\",\"Noto Sans\",serif;\r\n  font-weight: var(--rag-weight-body);\r\n  max-width: 500px;\r\n  margin: 0 auto;\r\n  padding: 0px 14px 32px;\r\n  box-sizing: border-box;\r\n  min-height: 970px;\r\n}\r\n\r\n.rag-diagram-scope *,\r\n.rag-diagram-scope *::before,\r\n.rag-diagram-scope *::after {\r\n  box-sizing: border-box;\r\n}\r\n\r\n.rag-diagram-scope .diagram { width: 100%; display: block; }\r\n\r\n\/* SVG text \u5f37\u5236\u4e0d\u900f\u660e \u00b7 accent \u8272\u6587\u5b57\u4e00\u5f8b\u6eff\u8272 *\/\r\n.rag-diagram-scope svg text { opacity: 1 !important; }\r\n\r\n\/* \u9078\u53d6\u8272 \u00b7 \u53cd\u76f8\uff08\u9650\u9019\u5f35\u5716\u5167\uff0c\u4e0d\u6c61\u67d3\u5bbf\u4e3b\u7db2\u7ad9\uff09 *\/\r\n.rag-diagram-scope ::selection {\r\n  background: var(--rag-text);\r\n  color: var(--rag-bg);\r\n  fill: var(--rag-bg);\r\n}\r\n.rag-diagram-scope ::-moz-selection {\r\n  background: var(--rag-text);\r\n  color: var(--rag-bg);\r\n  fill: var(--rag-bg);\r\n}\r\n\r\n\/* \u5b57\u91cd\u5206\u6d41 \u00b7 SVG \u4f9d font-size \u81ea\u52d5\u5957\u5c0d\u61c9 weight *\/\r\n.rag-diagram-scope svg text[font-size=\"14\"],\r\n.rag-diagram-scope svg text[font-size=\"13\"],\r\n.rag-diagram-scope svg text[font-size=\"12\"]   { font-weight: var(--rag-weight-title); }\r\n\r\n.rag-diagram-scope svg text[font-size=\"11\"],\r\n.rag-diagram-scope svg text[font-size=\"10\"],\r\n.rag-diagram-scope svg text[font-size=\"9.5\"]  { font-weight: var(--rag-weight-subtitle); }\r\n\r\n\/* \u5b57\u7d1a\u5206\u6d41 \u00b7 SVG \u4f9d\u539f font-size attribute \u81ea\u52d5\u5957\u5c0d\u61c9 size *\/\r\n.rag-diagram-scope svg text[font-size=\"14\"]   { font-size: var(--rag-size-title); }\r\n.rag-diagram-scope svg text[font-size=\"13\"]   { font-size: calc(var(--rag-size-title) - 1px); }\r\n.rag-diagram-scope svg text[font-size=\"12\"]   { font-size: calc(var(--rag-size-title) - 2px); }\r\n\r\n.rag-diagram-scope svg text[font-size=\"11\"]   { font-size: calc(var(--rag-size-subtitle) + 1px); }\r\n.rag-diagram-scope svg text[font-size=\"10\"]   { font-size: var(--rag-size-subtitle); }\r\n.rag-diagram-scope svg text[font-size=\"9.5\"]  { font-size: calc(var(--rag-size-subtitle) - 0.5px); }\r\n\r\n.rag-diagram-scope svg text[font-size=\"9\"]    { font-size: calc(var(--rag-size-body) + 1px); }\r\n.rag-diagram-scope svg text[font-size=\"8.5\"]  { font-size: calc(var(--rag-size-body) + 0.5px); }\r\n.rag-diagram-scope svg text[font-size=\"8\"]    { font-size: var(--rag-size-body); }\r\n.rag-diagram-scope svg text[font-size=\"7.5\"]  { font-size: calc(var(--rag-size-body) - 0.5px); }\r\n.rag-diagram-scope svg text[font-size=\"7\"]    { font-size: calc(var(--rag-size-body) - 1px); }\r\n\r\n\/* SVG \u8272\u7968\u6620\u5c04 *\/\r\n.rag-diagram-scope svg [fill=\"#e6e4dc\"]   { fill: var(--rag-ink-1); }\r\n.rag-diagram-scope svg [fill=\"#c5c8c2\"]   { fill: var(--rag-ink-2); }\r\n.rag-diagram-scope svg [fill=\"#a8a6a0\"],\r\n.rag-diagram-scope svg [fill=\"#8a8d88\"],\r\n.rag-diagram-scope svg [fill=\"#5a5d58\"]   { fill: var(--rag-ink-3); }\r\n.rag-diagram-scope svg [fill=\"#7dd87d\"]   { fill: var(--rag-acc-1); }\r\n.rag-diagram-scope svg [fill=\"#5a7d5e\"]   { fill: var(--rag-acc-2); }\r\n.rag-diagram-scope svg [fill=\"#0a1410\"]   { fill: var(--rag-surface); }\r\n.rag-diagram-scope svg [fill=\"#0d1814\"]   { fill: var(--rag-acc-tint); }\r\n.rag-diagram-scope svg [fill=\"#1c2a1f\"]   { fill: var(--rag-acc-dots); }\r\n\r\n.rag-diagram-scope svg [stroke=\"#c5c8c2\"] { stroke: var(--rag-ink-1); }\r\n.rag-diagram-scope svg [stroke=\"#a8a6a0\"],\r\n.rag-diagram-scope svg [stroke=\"#7a7d78\"],\r\n.rag-diagram-scope svg [stroke=\"#4a4f4d\"] { stroke: var(--rag-ink-3); }\r\n.rag-diagram-scope svg [stroke=\"#7dd87d\"] { stroke: var(--rag-acc-1); }\r\n.rag-diagram-scope svg [stroke=\"#5a7d5e\"] { stroke: var(--rag-acc-2); }\r\n<\/style>\r\n<div class=\"rag-diagram-scope\">\r\n\r\n<svg class=\"diagram\" viewBox=\"0 0 400 970\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n<defs>\r\n  <pattern id=\"dots-g\" x=\"0\" y=\"0\" width=\"8\" height=\"8\" patternUnits=\"userSpaceOnUse\">\r\n    <circle cx=\"1\" cy=\"1\" r=\"0.6\" fill=\"#1c2a1f\"\/>\r\n  <\/pattern>\r\n  <marker id=\"arr-w\" viewBox=\"0 0 10 10\" refX=\"8\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto\">\r\n    <path d=\"M0 1L8 5L0 9Z\" fill=\"#a8a6a0\"\/>\r\n  <\/marker>\r\n  <marker id=\"arr-g\" viewBox=\"0 0 10 10\" refX=\"8\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto\">\r\n    <path d=\"M0 1L8 5L0 9Z\" fill=\"#7dd87d\"\/>\r\n  <\/marker>\r\n<\/defs>\r\n\r\n<!-- \u6a19\u984c\uff1a\u5de6\u53f3\u5169\u6b04\u89d2\u8272 -->\r\n<text x=\"120\" y=\"14\" text-anchor=\"middle\" font-size=\"10\" fill=\"#a8a6a0\" letter-spacing=\"0.1em\">Main \u00b7 Pipeline Flow<\/text>\r\n<text x=\"315\" y=\"14\" text-anchor=\"middle\" font-size=\"10\" fill=\"#7dd87d\" opacity=\"0.85\" letter-spacing=\"0.1em\">Decoupled \u00b7 DI<\/text>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u8a2a\u5ba2\u63d0\u554f (top) \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<rect x=\"20\" y=\"22\" width=\"200\" height=\"50\" rx=\"25\"\r\n  fill=\"none\" stroke=\"#c5c8c2\" stroke-width=\"0.8\"\/>\r\n<text x=\"120\" y=\"46\" text-anchor=\"middle\" font-size=\"14\" fill=\"#e6e4dc\">Visitor Query<\/text>\r\n<text x=\"120\" y=\"62\" text-anchor=\"middle\" font-size=\"10\" fill=\"#8a8d88\">Text + optional image<\/text>\r\n\r\n<!-- Arrow \u2193 to Initial \u8def\u7531 -->\r\n<line x1=\"120\" y1=\"72\" x2=\"120\" y2=\"245\" stroke=\"#a8a6a0\" stroke-width=\"1.2\" marker-end=\"url(#arr-w)\"\/>\r\n<text x=\"128\" y=\"162\" font-size=\"9\" fill=\"#7dd87d\" opacity=\"0.85\">+ \/vision_context<\/text>\r\n<text x=\"209\" y=\"174\" text-anchor=\"end\" font-size=\"9\" fill=\"#7dd87d\" opacity=\"0.6\">(option)<\/text>\r\n\r\n<!-- Vision API \u2192 \u4e3b\u7dda\uff08\/vision_context \u6ce8\u5165\u9ede\uff09\u7da0\u8272\u865b\u7dda -->\r\n<line x1=\"240\" y1=\"185\" x2=\"122\" y2=\"185\" stroke=\"#7dd87d\" stroke-width=\"0.9\" stroke-dasharray=\"4 3\" marker-end=\"url(#arr-g)\"\/>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 Vision API (\u5716\u7247\u9810\u8655\u7406 \u00b7 \u53ef\u9078) \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<rect x=\"240\" y=\"22\" width=\"150\" height=\"186\" rx=\"14\"\r\n  fill=\"url(#dots-g)\" stroke=\"#7dd87d\" stroke-width=\"0.9\" stroke-dasharray=\"4 3\"\/>\r\n\r\n<text x=\"315\" y=\"42\" text-anchor=\"middle\" font-size=\"12\" fill=\"#7dd87d\" letter-spacing=\"0.06em\">Vision API<\/text>\r\n<text x=\"315\" y=\"57\" text-anchor=\"middle\" font-size=\"9\" fill=\"#7dd87d\" opacity=\"0.65\">Context Recipe<\/text>\r\n\r\n<!-- ROLE -->\r\n<rect x=\"248\" y=\"68\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"82\" font-size=\"9.5\" fill=\"#a8a6a0\">#ROLE<\/text>\r\n<text x=\"378\" y=\"82\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#5a7d5e\">cache<\/text>\r\n\r\n<!-- TASK -->\r\n<rect x=\"248\" y=\"95\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"109\" font-size=\"9.5\" fill=\"#a8a6a0\">#TASK<\/text>\r\n<text x=\"378\" y=\"109\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#5a7d5e\">cache<\/text>\r\n\r\n<!-- \/Master Sitemap -->\r\n<rect x=\"248\" y=\"122\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0d1814\" stroke=\"#7dd87d\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"136\" font-size=\"9.5\" fill=\"#7dd87d\">\/Master Sitemap<\/text>\r\n<text x=\"378\" y=\"136\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#5a7d5e\">cache<\/text>\r\n\r\n<!-- \/Image file -->\r\n<rect x=\"248\" y=\"148\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"162\" font-size=\"9.5\" fill=\"#a8a6a0\">\/Image file<\/text>\r\n\r\n<!-- \u7528\u6236\u539f\u59cb\u554f\u984c -->\r\n<rect x=\"248\" y=\"174\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"188\" font-size=\"9.5\" fill=\"#a8a6a0\">Raw user query<\/text>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 Vision API \u2192 RAG API\uff08\u53f3\u5074\u8f14\u52a9 \u00b7 \u7da0\u8272\u5be6\u7dda\uff09 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<line x1=\"315\" y1=\"208\" x2=\"315\" y2=\"247\" stroke=\"#7dd87d\" stroke-width=\"0.9\" marker-end=\"url(#arr-g)\"\/>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2460 Initial \u8def\u7531 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<rect x=\"20\" y=\"250\" width=\"200\" height=\"70\" rx=\"14\"\r\n  fill=\"none\" stroke=\"#c5c8c2\" stroke-width=\"1\"\/>\r\n<text x=\"120\" y=\"270\" text-anchor=\"middle\" font-size=\"14\" fill=\"#e6e4dc\">Diving Agent<\/text>\r\n<text x=\"120\" y=\"286\" text-anchor=\"middle\" font-size=\"10\" fill=\"#8a8d88\">Read Master Sitemap<\/text>\r\n<text x=\"120\" y=\"300\" text-anchor=\"middle\" font-size=\"10\" fill=\"#8a8d88\">Analyze query<\/text>\r\n<text x=\"120\" y=\"314\" text-anchor=\"middle\" font-size=\"9.5\" fill=\"#8a8d88\">Select Diving-mode<\/text>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u6c7a\u7b56\u914d\u65b9\uff08RAG API \u6536\u5230\u7684 prompt \u7d44\u88dd\uff09 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<rect x=\"240\" y=\"250\" width=\"150\" height=\"435\" rx=\"14\"\r\n  fill=\"url(#dots-g)\" stroke=\"#7dd87d\" stroke-width=\"0.9\"\/>\r\n<text x=\"315\" y=\"278\" text-anchor=\"middle\" font-size=\"12\" fill=\"#7dd87d\" letter-spacing=\"0.06em\">RAG API<\/text>\r\n<text x=\"315\" y=\"293\" text-anchor=\"middle\" font-size=\"9\" fill=\"#7dd87d\" opacity=\"0.65\">Context Recipe<\/text>\r\n\r\n<!-- \u2500\u2500\u2500 Group 1: cache pills (gap 5 \u5167, gap 24 \u5230\u4e0b\u7d44) \u2500\u2500\u2500 -->\r\n<rect x=\"248\" y=\"305\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"319\" font-size=\"9.5\" fill=\"#a8a6a0\">#ROLE<\/text>\r\n<text x=\"378\" y=\"319\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#5a7d5e\">cache<\/text>\r\n\r\n<rect x=\"248\" y=\"331\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"345\" font-size=\"9.5\" fill=\"#a8a6a0\">#RULES<\/text>\r\n<text x=\"378\" y=\"345\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#5a7d5e\">cache<\/text>\r\n\r\n<rect x=\"248\" y=\"357\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"371\" font-size=\"9.5\" fill=\"#a8a6a0\">#OUTPUT<\/text>\r\n<text x=\"378\" y=\"371\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#5a7d5e\">cache<\/text>\r\n\r\n<!-- \u2500\u2500\u2500 Group 2: prompt skeleton (pair \u5167 12, pair \u9593 16) \u2500\u2500\u2500 -->\r\n<text x=\"252\" y=\"399\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7.5\" fill=\"#7dd87d\" opacity=\"0.9\">### ROLE<\/text>\r\n<text x=\"252\" y=\"411\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7\" fill=\"#7dd87d\" opacity=\"0.55\">{{ agent_role }}<\/text>\r\n<text x=\"252\" y=\"433\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7.5\" fill=\"#7dd87d\" opacity=\"0.9\">### RULES<\/text>\r\n<text x=\"252\" y=\"445\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7\" fill=\"#7dd87d\" opacity=\"0.55\">{{ agent_rules }}<\/text>\r\n<text x=\"252\" y=\"467\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7.5\" fill=\"#7dd87d\" opacity=\"0.9\">### OUTPUT<\/text>\r\n<text x=\"252\" y=\"479\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7\" fill=\"#7dd87d\" opacity=\"0.55\">{<\/text>\r\n<text x=\"259\" y=\"488\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7\" fill=\"#7dd87d\" opacity=\"0.55\">  \"think\": \"...\",<\/text>\r\n<text x=\"259\" y=\"497\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7\" fill=\"#7dd87d\" opacity=\"0.55\">  \"next_mode\": \"...\",<\/text>\r\n<text x=\"259\" y=\"506\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7\" fill=\"#7dd87d\" opacity=\"0.55\">  \"next_act\": \"...\"<\/text>\r\n<text x=\"252\" y=\"515\" font-family=\"ui-monospace,Menlo,monospace\" font-size=\"7\" fill=\"#7dd87d\" opacity=\"0.55\">}<\/text>\r\n\r\n<!-- \u2500\u2500\u2500 Group 3: dynamic pills (gap 4 \u5167) \u2500\u2500\u2500 -->\r\n<rect x=\"248\" y=\"527\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0d1814\" stroke=\"#7dd87d\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"541\" font-size=\"9.5\" fill=\"#7dd87d\">\/Branch Sitemap<\/text>\r\n<text x=\"378\" y=\"541\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#5a7d5e\">cache<\/text>\r\n\r\n<rect x=\"248\" y=\"553\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"567\" font-size=\"9.5\" fill=\"#a8a6a0\">Raw user query<\/text>\r\n\r\n<rect x=\"248\" y=\"579\" width=\"135\" height=\"20\" rx=\"4\"\r\n  fill=\"#0d1814\" stroke=\"#7dd87d\" stroke-width=\"0.5\" stroke-dasharray=\"3 2\"\/>\r\n<text x=\"255\" y=\"592\" font-size=\"9\" fill=\"#7dd87d\">\/vision_context<\/text>\r\n<text x=\"378\" y=\"592\" text-anchor=\"end\" font-size=\"8\" fill=\"#7dd87d\" opacity=\"0.7\">option<\/text>\r\n\r\n<!-- \u2500\u2500\u2500 Group 4: caption (\u58d3\u7e2e\u7248 \u00b7 pair \u5167 11, \u7d44\u9593 14) \u2500\u2500\u2500 -->\r\n<text x=\"315\" y=\"621\" text-anchor=\"middle\" font-size=\"8.5\" fill=\"#7dd87d\" opacity=\"0.75\">LLMs are stateless<\/text>\r\n<text x=\"315\" y=\"633\" text-anchor=\"middle\" font-size=\"8\" fill=\"#7dd87d\" opacity=\"0.6\">Clean context per hop<\/text>\r\n<text x=\"315\" y=\"648\" text-anchor=\"middle\" font-size=\"8\" fill=\"#7dd87d\" opacity=\"0.6\">No full-site read<\/text>\r\n<text x=\"315\" y=\"660\" text-anchor=\"middle\" font-size=\"8\" fill=\"#7dd87d\" opacity=\"0.6\">Progressive disclosure<\/text>\r\n<text x=\"315\" y=\"673\" text-anchor=\"middle\" font-size=\"8.5\" fill=\"#7dd87d\" opacity=\"0.85\">Edge SLMs workable<\/text>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 RAG API \u2192 Chat API\uff08\u53f3\u5074\u8f14\u52a9 \u00b7 \u7da0\u8272\u5be6\u7dda\uff09 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<line x1=\"315\" y1=\"685\" x2=\"315\" y2=\"732\" stroke=\"#7dd87d\" stroke-width=\"0.9\" marker-end=\"url(#arr-g)\"\/>\r\n\r\n<!-- Arrow \u2193 Initial \u8def\u7531 \u2192 Diving-mode -->\r\n<line x1=\"120\" y1=\"320\" x2=\"120\" y2=\"345\" stroke=\"#a8a6a0\" stroke-width=\"0.8\" marker-end=\"url(#arr-w)\"\/>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2461 Diving-mode Loop \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<rect x=\"15\" y=\"355\" width=\"210\" height=\"212\" rx=\"14\"\r\n  fill=\"none\" stroke=\"#4a4f4d\" stroke-width=\"0.7\" stroke-dasharray=\"3 3\"\/>\r\n<text x=\"120\" y=\"381\" text-anchor=\"middle\" font-size=\"13\" fill=\"#c5c8c2\" letter-spacing=\"0.05em\">Diving-mode Loop \u21bb<\/text>\r\n<text x=\"120\" y=\"399\" text-anchor=\"middle\" font-size=\"9.5\" fill=\"#5a5d58\">Follow the descent line<\/text>\r\n<text x=\"120\" y=\"411\" text-anchor=\"middle\" font-size=\"9.5\" fill=\"#5a5d58\">Agent picks mode per hop<\/text>\r\n\r\n<rect x=\"20\" y=\"419\" width=\"200\" height=\"30\" rx=\"15\"\r\n  fill=\"none\" stroke=\"#7a7d78\" stroke-width=\"0.6\"\/>\r\n<text x=\"120\" y=\"438\" text-anchor=\"middle\" font-size=\"11\" fill=\"#c5c8c2\">\r\n  <tspan font-family=\"ui-monospace,Menlo,monospace\" fill=\"#a8a6a0\">strict<\/tspan>\r\n  <tspan fill=\"#8a8d88\"> \u00b7 fetch chunk<\/tspan>\r\n<\/text>\r\n\r\n<rect x=\"20\" y=\"454\" width=\"200\" height=\"30\" rx=\"15\"\r\n  fill=\"none\" stroke=\"#7a7d78\" stroke-width=\"0.6\"\/>\r\n<text x=\"120\" y=\"473\" text-anchor=\"middle\" font-size=\"11\" fill=\"#c5c8c2\">\r\n  <tspan font-family=\"ui-monospace,Menlo,monospace\" fill=\"#a8a6a0\">recommend<\/tspan>\r\n  <tspan fill=\"#8a8d88\"> \u00b7 list pages<\/tspan>\r\n<\/text>\r\n\r\n<rect x=\"20\" y=\"489\" width=\"200\" height=\"30\" rx=\"15\"\r\n  fill=\"none\" stroke=\"#7a7d78\" stroke-width=\"0.6\"\/>\r\n<text x=\"120\" y=\"508\" text-anchor=\"middle\" font-size=\"11\" fill=\"#c5c8c2\">\r\n  <tspan font-family=\"ui-monospace,Menlo,monospace\" fill=\"#a8a6a0\">deep_dive<\/tspan>\r\n  <tspan fill=\"#8a8d88\"> \u00b7 drill down<\/tspan>\r\n<\/text>\r\n\r\n<rect x=\"20\" y=\"524\" width=\"200\" height=\"30\" rx=\"15\"\r\n  fill=\"none\" stroke=\"#7a7d78\" stroke-width=\"0.6\"\/>\r\n<text x=\"120\" y=\"543\" text-anchor=\"middle\" font-size=\"11\" fill=\"#c5c8c2\">\r\n  <tspan font-family=\"ui-monospace,Menlo,monospace\" fill=\"#a8a6a0\">investigate<\/tspan>\r\n  <tspan fill=\"#8a8d88\"> \u00b7 rethink query<\/tspan>\r\n<\/text>\r\n\r\n<!-- Arrow \u2193 Diving-mode \u2192 Scuba (\u4e3b\u6d41) -->\r\n<line x1=\"120\" y1=\"572\" x2=\"120\" y2=\"598\" stroke=\"#a8a6a0\" stroke-width=\"0.8\" marker-end=\"url(#arr-w)\"\/>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2462 Scuba \u591a\u8f2a\u6df1\u6f5b\uff08\u53ef\u9078\uff09 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<rect x=\"15\" y=\"605\" width=\"210\" height=\"80\" rx=\"14\"\r\n  fill=\"none\" stroke=\"#7dd87d\" stroke-width=\"0.9\" stroke-dasharray=\"4 3\"\/>\r\n\r\n<rect x=\"95\" y=\"621\" width=\"50\" height=\"14\" rx=\"7\"\r\n  fill=\"#0d1814\" stroke=\"#7dd87d\" stroke-width=\"0.6\"\/>\r\n<text x=\"120\" y=\"632\" text-anchor=\"middle\" font-size=\"9\" fill=\"#7dd87d\" opacity=\"0.9\">option<\/text>\r\n\r\n<text x=\"120\" y=\"652\" text-anchor=\"middle\" font-size=\"13\" fill=\"#7dd87d\" letter-spacing=\"0.04em\">Scuba Deep Dive<\/text>\r\n\r\n<text x=\"120\" y=\"667\" text-anchor=\"middle\" font-size=\"9.5\" fill=\"#7dd87d\" opacity=\"0.85\">AI self-scores completeness<\/text>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 Scuba \u56de\u994b\u8ff4\u5708\uff1a\u8ddf\u4e3b\u6d41\u4e26\u884c\u7684\u77ed\u4e0a\u884c\u7bad\u982d \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<!-- \u4e3b\u6d41\u4e0b\u884c\u7bad\u982d\u5df2\u5728\u4e0a\u65b9\uff08x=120\uff09\u3002\u56de\u994b\u4e0a\u884c\u653e\u5728 x=140 \u4e26\u884c -->\r\n<path d=\"M 140 600 L 140 572\"\r\n  fill=\"none\" stroke=\"#7dd87d\" stroke-width=\"0.9\" stroke-dasharray=\"4 3\" marker-end=\"url(#arr-g)\"\/>\r\n<text x=\"148\" y=\"590\" font-size=\"9.5\" fill=\"#7dd87d\" opacity=\"0.9\">Another dive<\/text>\r\n\r\n<!-- Arrow \u2193 Scuba \u2192 Response (\u4e3b\u6d41\u767d\u8272) -->\r\n<line x1=\"120\" y1=\"690\" x2=\"120\" y2=\"728\" stroke=\"#a8a6a0\" stroke-width=\"0.8\" marker-end=\"url(#arr-w)\"\/>\r\n\r\n<!-- Scuba \u5f8c\u7e8c\u7da0\u8272\u865b\u7dda\u4e26\u884c\u7bad\u982d -->\r\n<path d=\"M 140 690 L 140 728\"\r\n  fill=\"none\" stroke=\"#7dd87d\" stroke-width=\"0.9\" stroke-dasharray=\"4 3\" marker-end=\"url(#arr-g)\"\/>\r\n<text x=\"148\" y=\"712\" font-size=\"9.5\" fill=\"#7dd87d\" opacity=\"0.9\">Surface<\/text>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2463 Response API \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<rect x=\"20\" y=\"735\" width=\"200\" height=\"56\" rx=\"14\"\r\n  fill=\"none\" stroke=\"#c5c8c2\" stroke-width=\"1\"\/>\r\n<text x=\"120\" y=\"755\" text-anchor=\"middle\" font-size=\"14\" fill=\"#e6e4dc\">Chat API<\/text>\r\n<text x=\"120\" y=\"771\" text-anchor=\"middle\" font-size=\"10\" fill=\"#8a8d88\">Assemble \/rag_context<\/text>\r\n<text x=\"120\" y=\"785\" text-anchor=\"middle\" font-size=\"9.5\" fill=\"#8a8d88\">Generate final response<\/text>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 Chat API \u8f14\u52a9\uff08aligned with \u2463 Chat API + \u8a2a\u5ba2\u700f\u89bd\u5668\uff09 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<rect x=\"240\" y=\"735\" width=\"150\" height=\"203\" rx=\"14\"\r\n  fill=\"url(#dots-g)\" stroke=\"#7dd87d\" stroke-width=\"0.9\"\/>\r\n<text x=\"315\" y=\"755\" text-anchor=\"middle\" font-size=\"12\" fill=\"#7dd87d\" letter-spacing=\"0.06em\">Chat API<\/text>\r\n<text x=\"315\" y=\"770\" text-anchor=\"middle\" font-size=\"9\" fill=\"#7dd87d\" opacity=\"0.65\">Context Recipe<\/text>\r\n\r\n<rect x=\"248\" y=\"778\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"792\" font-size=\"9.5\" fill=\"#a8a6a0\">#SOUL.md<\/text>\r\n<text x=\"378\" y=\"792\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#5a7d5e\">cache<\/text>\r\n\r\n<rect x=\"248\" y=\"804\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"818\" font-size=\"9.5\" fill=\"#a8a6a0\">#RULES<\/text>\r\n<text x=\"378\" y=\"818\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#5a7d5e\">cache<\/text>\r\n\r\n<rect x=\"248\" y=\"830\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0d1814\" stroke=\"#7dd87d\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"844\" font-size=\"9.5\" fill=\"#7dd87d\">\/rag_context<\/text>\r\n<text x=\"378\" y=\"844\" text-anchor=\"end\" font-size=\"8.5\" fill=\"#7dd87d\" opacity=\"0.8\">append<\/text>\r\n\r\n<text x=\"262\" y=\"864\" font-size=\"8.5\" fill=\"#7dd87d\" opacity=\"0.75\">+ Diving-mode Loop ...<\/text>\r\n<text x=\"262\" y=\"877\" font-size=\"8.5\" fill=\"#7dd87d\" opacity=\"0.75\">+ Scuba ...<\/text>\r\n\r\n<rect x=\"248\" y=\"887\" width=\"135\" height=\"22\" rx=\"4\"\r\n  fill=\"#0a1410\" stroke=\"#5a7d5e\" stroke-width=\"0.5\"\/>\r\n<text x=\"255\" y=\"901\" font-size=\"9.5\" fill=\"#a8a6a0\">Raw user query<\/text>\r\n\r\n<!-- [\u53ef\u9078] \/vision_context -->\r\n<rect x=\"248\" y=\"913\" width=\"135\" height=\"20\" rx=\"4\"\r\n  fill=\"#0d1814\" stroke=\"#7dd87d\" stroke-width=\"0.5\" stroke-dasharray=\"3 2\"\/>\r\n<text x=\"255\" y=\"926\" font-size=\"9\" fill=\"#7dd87d\">\/vision_context<\/text>\r\n<text x=\"378\" y=\"926\" text-anchor=\"end\" font-size=\"7.5\" fill=\"#7dd87d\" opacity=\"0.7\">option<\/text>\r\n\r\n<!-- Arrow Response API \u2192 \u8a2a\u5ba2\u700f\u89bd\u5668 -->\r\n<line x1=\"120\" y1=\"791\" x2=\"120\" y2=\"870\" stroke=\"#a8a6a0\" stroke-width=\"0.8\" marker-end=\"url(#arr-w)\"\/>\r\n<text x=\"128\" y=\"835\" font-size=\"9.5\" fill=\"#8a8d88\">SSE<\/text>\r\n<text x=\"128\" y=\"848\" font-size=\"9.5\" fill=\"#8a8d88\">stream<\/text>\r\n\r\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u8a2a\u5ba2\u700f\u89bd\u5668 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n<rect x=\"20\" y=\"878\" width=\"200\" height=\"60\" rx=\"25\"\r\n  fill=\"none\" stroke=\"#c5c8c2\" stroke-width=\"0.8\"\/>\r\n<text x=\"120\" y=\"900\" text-anchor=\"middle\" font-size=\"14\" fill=\"#e6e4dc\">Chat Window<\/text>\r\n<text x=\"120\" y=\"916\" text-anchor=\"middle\" font-size=\"10\" fill=\"#8a8d88\">Browser localStorage only<\/text>\r\n<text x=\"120\" y=\"928\" text-anchor=\"middle\" font-size=\"10\" fill=\"#8a8d88\">no upload<\/text>\r\n\r\n<\/svg>\r\n\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3b3fd83 e-con-full e-flex qodef-elementor-content-no e-con e-child\" data-id=\"3b3fd83\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1f90025 elementor-widget elementor-widget-heading\" data-id=\"1f90025\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">RAG Harness \u7684\u6700\u5c0f\u5316\u7d00\u5f8b<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc19e90 elementor-widget elementor-widget-text-editor\" data-id=\"fc19e90\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a963fd elementor-widget elementor-widget-text-editor\" data-id=\"7a963fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>\u6bcf\u4e00 hop \u7528\u4e7e\u6de8\u7684\u914d\u65b9\u3001\u6bcf\u4e00\u6bb5\u4efb\u52d9\u90fd\u6536\u6582\u5230\u6700\u5c0f\u3001\u975c\u614b\u8207\u52d5\u614b\u908a\u754c\u6e05\u695a\uff0c\u9019\u4e9b\u8a2d\u8a08\u6c92\u6709\u4e00\u9805\u662f\u88dd\u98fe\u6027\u7684\u3002\u6bcf\u6bb5 AI \u90fd\u505a\u6210\u4e00\u500b MVP\uff0cMinimum Viable Product \u7684\u601d\u8def\uff0c\u4ee5\u6700\u4f4e\u7684\u4ee3\u50f9\u9054\u6210\u6700\u57fa\u672c\u7684\u53ef\u884c\u6027\u3002\u6bcf\u500b\u7bc0\u9ede\u53ea\u505a\u525b\u597d\u5920\u7528\u7684\u4e8b\uff0c\u914d\u65b9\u525b\u597d\u5920\u4e7e\u6de8\u3001\u6a21\u578b\u525b\u597d\u5920\u5c0f\u3001\u8f38\u51fa\u525b\u597d\u5920\u6536\u6582\u3002\u7576\u4e0b\u7684\u5be6\u8e10\u662f\u591a\u500b\u8f15\u91cf\u6a21\u578b\u5206\u6bb5\u914d\u7f6e\uff0c\u672a\u4f86\u82e5\u591a\u6a21\u614b\u5c0f\u6a21\u578b\u6210\u719f\uff0c\u6574\u6bb5\u7528\u55ae\u4e00\u6a21\u578b\u4e5f\u7167\u6a23\u6210\u7acb\u3002<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ceac25f elementor-widget elementor-widget-text-editor\" data-id=\"ceac25f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7a963fd elementor-widget elementor-widget-text-editor\" data-id=\"7a963fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">RAG Harness \u7684\u7d00\u5f8b\u4e0d\u5728\u6a21\u578b\u600e\u9ebc\u914d\uff0c\u800c\u5728\u6bcf\u4e00 hop \u7684\u4efb\u52d9\u7d04\u675f\u5230\u591a\u7cbe\u7d30\u3002\u6574\u5957\u67b6\u69cb\u4e4b\u6240\u4ee5\u4e00\u8def\u5f80\u6700\u5c0f\u9760\u650f\uff0c\u662f\u56e0\u70ba\u9019\u689d\u8def\u6700\u5f8c\u901a\u5f80\u7684\uff0c\u662f\u628a\u904b\u7b97\u5f9e\u7db2\u7ad9\u4e3b\u7684\u5e33\u55ae\u4e0a\u642c\u8d70\uff0c\u642c\u9032\u4f7f\u7528\u8005\u7684\u88dd\u7f6e\u3002\u6253\u904a\u6232\u9760\u81ea\u5df1\u7684\u986f\u793a\u5361\uff0c\u770b\u5f71\u7247\u9760\u81ea\u5df1\u7684\u87a2\u5e55\uff0c\u554f AI \u7d42\u7a76\u4e5f\u6703\u56de\u5230\u8a2a\u5ba2\u81ea\u5df1\u7684\u88dd\u7f6e\u88e1\u9032\u884c\u63a8\u7406\u3002<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>RAG Harness Engineering means every visitor question triggers not a single AI prompt, but three independent AI API calls: vision, retrieval, answer. Chaining multiple sub-agents normally risks each stage poisoning the next, but the Harness architecture hands every stage the visitor's original question and a clear view of the initial task goal, making it fundamentally immune to contamination. Accumulated noise is stopped at the entrance of every hop.<\/p>","protected":false},"author":1,"featured_media":9285,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[],"class_list":["post-880","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/posts\/880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/comments?post=880"}],"version-history":[{"count":280,"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/posts\/880\/revisions"}],"predecessor-version":[{"id":11183,"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/posts\/880\/revisions\/11183"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/media\/9285"}],"wp:attachment":[{"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/media?parent=880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/categories?post=880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ragsitemap.com\/en\/wp-json\/wp\/v2\/tags?post=880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}