From 853021ff2a71877fa7e6e8549791b0b985703060 Mon Sep 17 00:00:00 2001 From: bitloi <89318445+bitloi@users.noreply.github.com> Date: Mon, 13 Apr 2026 09:26:30 -0300 Subject: [PATCH] feat: support multiple canvas_types for agent templates and remove duplicate files (#14030) ### What problem does this PR solve? Closes #13907 The template catalog had duplicate files (e.g. `*_r.json`) only to place the same template into multiple sidebar groups. This increases maintenance cost and makes template updates error-prone. This PR adds first-class support for multiple template categories in a single file via `canvas_types`, then removes duplicate template files. What changed: - Added `canvas_types` to `CanvasTemplate` model and DB migration. - Added normalization logic when loading templates: - accepts legacy `canvas_type` - accepts new `canvas_types` - merges/deduplicates values - preserves backward compatibility by keeping `canvas_type` as first normalized value. - Updated template import flow to load only `.json` files and in stable sorted order. - Updated frontend template filtering to match on `canvas_types` first, with fallback to legacy `canvas_type`. - Consolidated duplicated template pairs into single files and removed: - `deep_search_r.json` - `reflective_academic_paper_generator_r.json` - `seo_article_writer_r.json` - Added regression/edge-case tests for category normalization and route serialization expectations. ### Type of change - [ ] Bug Fix (non-breaking change which fixes an issue) - [x] New Feature (non-breaking change which adds functionality) - [ ] Documentation Update - [ ] Refactoring - [ ] Performance Improvement - [ ] Other (please describe): --- agent/templates/deep_research.json | 3 +- agent/templates/deep_search_r.json | 854 ---------------- .../templates/market_seo_article_writer.json | 3 +- .../reflective_academic_paper_generator.json | 3 +- ...reflective_academic_paper_generator_r.json | 333 ------- agent/templates/seo_article_writer_r.json | 921 ------------------ api/db/db_models.py | 2 + api/db/init_data.py | 14 +- api/db/template_utils.py | 77 ++ .../test_canvas_routes_unit.py | 4 +- test/unit_test/api/db/test_template_utils.py | 66 ++ web/src/interfaces/database/agent.ts | 1 + web/src/pages/agents/agent-templates.tsx | 14 +- 13 files changed, 175 insertions(+), 2120 deletions(-) delete mode 100644 agent/templates/deep_search_r.json delete mode 100644 agent/templates/reflective_academic_paper_generator_r.json delete mode 100644 agent/templates/seo_article_writer_r.json create mode 100644 api/db/template_utils.py create mode 100644 test/unit_test/api/db/test_template_utils.py diff --git a/agent/templates/deep_research.json b/agent/templates/deep_research.json index 31a15c34b6..03a9b9563d 100644 --- a/agent/templates/deep_research.json +++ b/agent/templates/deep_research.json @@ -10,6 +10,7 @@ "de": "Für Fachleute in Vertrieb, Marketing, Politik oder Beratung führt der Multi-Agenten-Tiefenforschungsagent strukturierte, mehrstufige Untersuchungen über verschiedene Quellen durch und liefert Berichte im Beratungsstil mit klaren Quellenangaben.", "zh": "专为销售、市场、政策或咨询领域的专业人士设计,多智能体的 Deep research 会结合多源信息进行结构化、多步骤地回答问题,并附带有清晰的引用。"}, "canvas_type": "Recommended", + "canvas_types": ["Recommended", "Agent"], "dsl": { "components": { "Agent:NewPumasLick": { @@ -851,4 +852,4 @@ "retrieval": [] }, "avatar": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABZmSURBVHgBbVoJjF3ldf7uf5e3LzPjWWyP7bEZFqekNoQEFBJSl0RJCQHU0ihN1CyNlLSqslRK1SaiAqSqJBUJTRuqpG1KwxIMNGCWhlAWm60gIHgIGBxsDzPG+4xn3szb37tLv3P+O8atYun3fe/e++4963e+c/5x8P/+7Xvx6d8p5JwrM653VeCbCcdPAGNgXE+vu66BYzw4jiyj5xyumP9HSJDEifxvz/GnPMFrcrSf7f1Gryf253oJSaIf7K/5SrxzLYriKX6aghtdP7D6vJnT5XVWPtx3387qYBXXlgPv65VMglJgkPF9eB5F8xzEgUs9jL7HqEJGlaA2fIjL5fCafX0ci0Kxvj2OYqTfrNhJkr7ZSV+fnC6G/Z44pz6HYgUxAn8Xy7OBf6BI1w9sPK92SoFbKHzec3aWPWzN5RIM+C7KVILKwPc9uH5sBfaoAJe1lMhOW1IBYxxrM7mUpNcpRBxH1rCp5eMk4rlUAd5s9BlU3llRLDnNW+/oqqKn56Ik5IOcKWPcbaKExkU9dK8N4Wzt8cbBtsunisWMHvNOHwE8BBTClbOxQexJGKm0KpQI6zhqdvWIKOXl83CyBf2ubw57CNttdJttVUiXRlWc+iBOpXVOeUcdcZo3EidBquHWMOxfyw9/4Vx3586JHNy3PKoSeC6KXohBhk8lE6OY8RhKQI7XMjwG9ILvhnAdWs21lhdFYgktiWx6zh8cxNvT83jgyVcxtWcfTpys0WAuBgeq2Dq5Dld+5AJsmhxD69gRhFTqlGl/4z9HjZOkUZaIsWLxbGjDNA63eVm417qOjU+Js1acgRtGCHmmTyt1IoOsb1AIRZEYGeZD1o3hm1AT2lBzY2J4I4PYt28en/vyD/DSa69jcGgAudIIHL+IDAUcqNfwxszbuOG2ezAyOo6ffOuP8Z53r8HC0RNwzemJnPwfdU7XT+KCUUnB5Si5llzl3HjXk7s9Y7aKJV1a1ONy+TnrRvCoWcZNkOPK0gt5WT4XFZDvOR49hk5pfBj/+JOn8Y2b70BxbBK5ARE8S2uFyJkASaennuITEXbaqCQL2Df7Oi7b9iHc94MvYv7AIb7XtQiUKhGnaKZYYNLwjBNFtoTC90NaNDQzznfvfjIJPAuJIrhZgTZ+l5iT4JC8lSVKlZkiRYZTIXCQc0KcvW4QX/nu3bj5ZztRPvO3mTZ0L4VxPR+R5AKt5TOxjcS6CNDvws8XsbaYx6/3PoV1Y+vx2kPfxOL+Y5ouAlpRiloaJ4J6yTuf1fphrOgWMlJMmzHWiywcOU6ieB7blOHNvMbVCh00+gYLvQCHuj5mOz4OtzzExRH8yXd34OYdzyBz5hZ0ui3e20efL+lFhAX6u01LFfOBQqBLSWK+o9GoYXaphpHJ9+Otw/vxiT//DwysrWpCO7EARaLL4fIiAYBYPxsKLcvjKY/PCfg806VwLQq5HCZ8GYuRJAktFlGxUHBYjo5dvMTlocs8qcUenp9dxq0/3o5VE2fC7yyz4PQR9nvoihL83A67fHcPhxZOqlX7fIYX+Mhks+jz2UvtBorj78HDTzyGXc9OUyiLWA5DiFGr1QUa1oAPG94ZV8CE0UAFsgIi19z5dOIxNiV8PMaaSXNBjuIRxQL9bKswI4cFzsP42jX40he/jPXvPo8WZ9JT6bAXot3uMD77ikoxfySWU9SgUP1+qLHbljhxXTVIOZNhGNQRtRZx9MFrMH9owaJobNHUpDlhVmo9f2QShSANJU/xR+NdLO7yhNZUW3HlsxYZJrbAs0Caa3F59sgxVKoDWL92jILYutBTYWN6QjzHoIkkcDx+Zw2g4P1eTxWUetBotNDjOVlRpoAT03vxPy/M4qyRHN/BHJIQSlQDK7AEoQgvmkmCp+eca+96PuHt9FRiq60QA2NzQhJaipLoIN4VL7mE0XzGx9TLr7FKJ/BzOb0YwiZYGFskkdAVqytyRAwgJlxPcoOIFGqOMGRZ1BqE1w6PS/PHcNYqH/dd81kstzp8f194CNVfYUWxLXqSI5qfkT7by2q4wBYniVGTqKAJsFIb1TsrFV684ZDY8efYes4GNDsRQ4jhwZv7TFwSL8tZUnLmpigiSvS5OnR7jyuiIJ2ueKSMdqcLs3Ejnvr5/TDFErotVqHQko2Q1MF6IEnZoRwcZYJyllwtJL5n4bMKZyRheFLcLRYXHiRVtpNYahGllCWkK4NeCxOrBnCy0WaxY3hI2IQBraygwZcIfHKxTmRUcXqHWjepaYvXO/zS7dMr3T66DC1D2G0TSOpJEY24SYMahWQ3cS0uxkhJnfWG/cAcaC4vM6VDVLIsOBS2S+EDJjN5HJKQ/3mBJlKH90tqiqD1bgcLcwsYZEHo9rrIhFm0SEF6XNkUssV+LBfIJppoCn0rIVaXFRpVpJd6JEfuVKnQIK0+an2By0Q94EgNgeVOtKYkouARFVS2Bu/I0aOo0G1xLk+EYVKETRSzvlo7lB8Q8joUZZEvYVSiTWtJ+Bw+voChrIMFSXjTo0fEHi5zIdI8ycUuDUGFEkEuSeV33F+MXOT57DpXh78RUCqWS3jXu87FnsMn0WGCu0IeBU6VU0anCqx4w2VIB66rz/T27HsDq1n665UyAroM7RqGSxmlyqJ9tlBFzWRxrMXkY8VudruM3Q5enZkhL/KUrarJBZ0kNAQbQymIPQsECcODlVkSwRPiJznhMDlFsUQUYLqaDErkJoOlCqZm5mzuKIRH5FyuVnA/rQeGymR5LPBLhtzMe/H1VzDAH5bzBZ70iAhNNHttjJdKWFMeQJ9Ebq7PYiel26gz0WrWcYLV9NVX9qOyKkuKQVfyutYIR9DaMkhHgEIKIJNXuze+XKwXC9+iR6U+M/hJEnljawkztWUcf3kRBcoSEnrF+gEBQ0OS0eFSmYAPrpAaD+YCFOS9YeLj+Pwijocn9I1aDI2PhW6INxodJiWTKBEWSlczP+TBBHgEZHXfueMJ3Pvtq7D/SAM9EYpxlxEuo6gDhVPB8kgZmS1qjtCJRIFQlZHiWSqVsXfvETz34jMoDgyl/STDOQo11rO5ouZUs91Szxg5R8UrxQo8X6zK1lEItLaGie2+JGdcxmgpk+NNGX1Zn3Shw2ob95nOpAoPP/043jh4GXOBSMKw6XviIY9KE7E8KJdKVvA47jOvxAg8J50aKUnsCpz67Pwc3Lj9F6gMDSObKbJIM7oT3t9rqtWrpWGUioPwM1nWjjrm5w6jsTSPeu1tRqZAJqV1aFUSGb4oVC4i5FcsaPhiIU2+4LHUanog4j39TgP5koOPfeUmrN44jpzvaAsqDVHZ66Hk9lD0+4RoJjJj1XdtMgcKbAwF31KUzesHcON/voz9B15kGBdRLrGPYHH0Xek7fBQodJVeWTW6GmtG1mJ0bBxVVu5BUpCKjgdisSYTjt2R6dd5bPFUi5hOQtZv040CaX0iQo/hEalbQyFu5C9Or4OluV/hok/fhLEN61Ap86WszvmAi3103kSpAuwL/B5XrP0EMQI5ItiFZw/gh4/uxx0/vRnDQ6uYR3xfr87+YRlOt6nGE/lyjPlCkEU+myeV5yoUaYispfpCcXuERoesUYchQsTIKCOeC+lOPxbFAu15pUGJo5Ze94TcURmPxW7Pnl0474oTuP/vv4JN52/AMnlSp9OxnD2SMDE27qVvJrQOVyusuBVcef1jeO6JuzA+tgo9RkBE4wn4CKvtddvMG4Ymi0WjuZaJPYQgWyaTJdyXqsh0msp0ncoFH00iogTkR1FoFYisMgmLWJl1ICv8VdgfhRZl+6ENMzlnIsF9tp9ejrkT4IvbLsQ3Pnc5Vp+5hqWcqUrYlQImsOxmi1hueLjh1qfws0dfQe34L5GvDDF/usqlojDR+VPIZ0ZEwqhV40SEoTK0BtXhCfiFQeTLg+jUF0gI6SGyW2f4ossS6S+VMfYta5QMNkQil8iTJwHPZXNaASX2ez3hOwwjJjLfaMmVDL2Eq7Nm1DusfcyHzUNVXHjOGThz/Tqt4NNHj2PX7gOYenU3Np//EWyaGMPDj+/A4MgQGsvzttPiOyMhg5K8FF4y0SHF8KprkM9XUR4aJ3ms0PXMNVZtYyt8olAl+C78Xz7L0UiykYmZFPsZa3wJeSvj2jC5JCmj0FU6nCip8tRz1QJ7YRam1xcbeHnnC3zBU+pdqREeq+fGyVEiWRsXXP11DGeauPOR/7IUWT0quUjDMLeMtIkmVsQKl0+gRghtsp8uDYyhsGo1PUNl2QF6EtcSc1CUsa62/TGLiC+DLY5KfJOSp8iODaWaUhgp7G5iewDtXZXydnkbc4TPLdJ7gceMDRVTtfFZIs/pz/wct3yzhk/83qUECnIp0hh5ZsJQkkGX8K8wbWaStDc2UVfzot5aRr5XQXP5JHpLC1RAwoAvVH4tJVxilaHj8SEBMz9DBPD4XdilKKcNizQikQ0lMZ52czJecV3tH6CTDQoRR6lyke0TJIc6LbzvA5fi2RensfnDn8EZj9+JE22GrgCCEyCihyO+D5FvaYeO4/qqnBfNkaV00OLcKmkuEgnJpIbOOf86FYAmdylAhrgbcPmZPFeOmc+sp3Cuaydm2mqK7aXShUIaQlJxhhRdmpP7g0AbIAk7o/UE2iz5Oghz1asteqFxaA9mT0a4YNMkXtn/Chv/orasvhiOzzKe0cmGGE9yzKy0vKEYu6c52CcSeavG1vIDoVHQh273AlEg4MN8rcA+K460hlLg+v0OR4NLdCUpBtGl69b1vNyXFUUD9restl2CgcNmRUNRlHYdpSi2xyEt4YApYte1Z/u3MD1xCS6+eCumDx6iVXxFIOmpnZD9Aam6jE5E+Ry7wCg0CjCCmm7UUTbgrRmfIKdvKz1QjkPhfQokIeH5OQ0p4ixfHOkosE2y1yfG98laW40G5We8+wG5EqcNtJ4Qt2ajThoi0zsOwWiAoJCnNT07caAlfd5/iNWsHeaxPPsKhi/fhunZA/R0gIFKRZud9Sxs565Zj2HC7GK3jh/dexdK7BnaNIywUqlLAuvO52+8nYpEOjmQZHGJ+RnhPsbVsBDTSZ7Asf1ol9aPaOEOEaHXWLQKSM7Q8oHcK4nGmU/Eo3D2QrFMylEiTfV0WCYG6bGpf3tmP/773nsYshkMbrkSN3z6g/CXDQ6/MYXh8UkcOXQQB5damDs2jcmtF+GjV1yGr33vbxgZWdT70ppCEcr52g8fSGRoqvSbRxXGeEroxGoyORc+rkMvnUmGWg+iHmdAbCtZqdSqVJmLnqJ3OsscjQgSMd5zLF7ZcpWQFmhDJEkZtprsqxNc+9d/pW1so7ABn1izkSOWHH49/SzWn7GFlH0Jh956A5dc8TkStwWMrt2AT37qCvzr/bdiZq6FI4t17Qa9TCAzCRcrbbtMnF1NGmjS6QQap29FJNpUWPjNaMMtvw5IxX2ZnpHDhEVPZ6YyqHIICKJEzNC0E2UmX4bT71IB771gC156YTey3ZN44kgPn1p3NhZbLeQOv8X6wgEZ+5FOrY7KwDAWF+Zw508fxFe/8Fk8/MJTeGnvQRyer+n8lo03tIlWazt2SoF0nLIy1FhBH90jcBVbiMFZRRpXhHcy2qAEOemgsoLPOuVwpKdmcktCh4LrpAs+edA9t2zHSJ30hVYpdubQ4PMPHNuHGgElPjqDBRpoXXU15hdPwBT4exmEkYDteOBp/OmfXYHJF36JvdOzYqhQ493VyVdiB0AyXnRiO7qQgW86ZFEvGRlz0OICa06cXnOVKst2mk++LD+Va74jRYlPNXYFMn6RUkiUqZKWHnzzIArZDLrVi0nSKtjz1gP49jVf5Ry2ifF1o7jle3dj/uTbyHNvwTV2X6BCIvji8/vx0d99LybXDvPxfFjMqbPj2imcyo10y0hoRRpcRrk3Q5lHGa1rQw17FCWM0hAJv0Q3SnwdltmBsZHhEOm4UIOYA4Aec+fKP7wUS/veRPNYC79iJ9dlg7L24j/iQCGPD3/4/Uz+LC65bSvOu/hTChjnnHuRQnX95AKeeY7INVzEu887mxWaFS5mmU7Cju0JGKNGKDSbcp/jc0nMAleeBatMRasercfzA2xSquwfq1nupcliD1AIuKtD4CrwvnzA5Ud6Lu922ej0UTAd9gj8zHMOe+Dr//kvMTDKItk4oJ56dfcUHtt9HB//g2/i2zdsxzJD8aWXH0EhN6AbKY16C3VOLGqNZdy+/VEszLOQCba7id1GFVIp+eDLyEJ2XWS4JbsyMhGQjkomwzwp+J4xic6PPEu8delOpInT6msrsJv6UzJY+gGhFEKeV60ewGsvTHMIQNyvTbHqD3Lm1MORmaN43/nvxe4DJ/GZq7+Bqy//IEZYbGUDxJAdtFlMo8g+9W//7t/5fm0hPR2DCIRmGbc5GQcFxs5ePEf3xqQVDFKhZYlimvxJcgrBBIt1GpEGnu7XJelWqJHJXazvGV87gLtu34mb/uluhstHsPWsC3Dg6AFs2/pBhmEHy6QIncZJVuw8djz6JKrsB/hSLB48gOq6CcI0EYobiIPFIg0bxTOuH07khWMzVIq0cJ6Dl0D2iUm2ZYPPN5HOZZQoGpncicdlBAC1cDpBRbwyvErzQqbJkY7B7KxUPJDhZsftt+3CA794DWdt3oK9e17ClnddgonhMmdEDSTsKUIhj1ENrx06jE3D68hAF3CCPcOG33qP9iCNelMrft1NpkzGhPfn+eAiBeOzuRyUJL45q6mwhy3yc85nXxvY3lZmQMLtJVRc3U+wU2zN+ZWC4VhlQiouOzJ2k0WOjH3G/7/9+EGsG1+HiYmzMDe3jNbCtA7NIIOz2kmOiJYwNjGJBnOz1qmjVq9jfNNm9GoLLGqLRLoAxSqRKchMGd/p7SjKph2lKtK0InxeBHYj3VL1RGiBQArka0xHdmafCp3oro0dqYuFdUddBrlStVf2C3Rb1E6kfbad1dEi3p7di6GhUXZm5+JN0orGwjyOzb5J72cwOjiG0dFN+MD5F+HA/BGUBoewPH+U+wtNhm6CIkehUEYQXe/ufOSRmauvvnKglPEuKvqRekBCZyV5ZW5kNJBjLXZiZhlOJTJ2g23UbZuT2A26dIKcJDZsZL9M+l3Z8JB2cZlI8qFLz8cN//IQIgp7ZmEEew6+juGREeTYJrpa5SMlhhs3nU1PjWNmelqHDH0iZbZc1o6w3+9//87tP9ouYYzPX/X7z2ez0cdygTvmy9apZ9s/5f+OjW89qCLOqe82UKygsre2suuugieyS2PzQa6J8MppeZ68Dh+//ELcdPM9GGdNmOs1cKK5gArnQTmOTLL5MhufruLCENnohslJTse5p0aW2yaEOkk45RecL+zdu7dz6q8sdt53S9XzkusCP/makDnhGMaxM1tPd+QtpBjHYozu3UoMxSvjdOsJ8UsUJ+muqHMqjHSnRvrbuKeDgbGRIj75he+gNTuHeQ7CGqTQk8Nj2HzOZoyuOUO7MEN0bJD49TmnyuayzBOOF5fr309a0XU7du145489Tv/33MO3TBDnr2MTsoXle6uXpATPpPtOjiV0Kz+NVxYFDLHSw6bbtPqHH5EqJPgapVtNYSxzH7vV9PUv3YAmhZW95QXuWm678ANYNbxGqXxtcQnN+pIMPWe4O3F/Lpfd8dCux3adLu//Al9o4L0Sc5y8AAAAAElFTkSuQmCC" -} \ No newline at end of file +} diff --git a/agent/templates/deep_search_r.json b/agent/templates/deep_search_r.json deleted file mode 100644 index 0cd897dd80..0000000000 --- a/agent/templates/deep_search_r.json +++ /dev/null @@ -1,854 +0,0 @@ - -{ - "id": 6, - "title": { - "en": "Deep research", - "de": "Tiefgehende Recherche", - "zh": "Deep research"}, - "description": { - "en": "For professionals in sales, marketing, policy, or consulting, the Multi-Agent Deep research Agent conducts structured, multi-step investigations across diverse sources and delivers consulting-style reports with clear citations.", - "de": "Für Fachleute in Vertrieb, Marketing, Politik oder Beratung führt der Multi-Agenten-Tiefenforschungsagent strukturierte, mehrstufige Untersuchungen über verschiedene Quellen durch und liefert Berichte im Beratungsstil mit klaren Quellenangaben.", - "zh": "专为销售、市场、政策或咨询领域的专业人士设计,多智能体的 Deep research 会结合多源信息进行结构化、多步骤地回答问题,并附带有清晰的引用。"}, - "canvas_type": "Agent", - "dsl": { - "components": { - "Agent:NewPumasLick": { - "downstream": [ - "Message:OrangeYearsShine" - ], - "obj": { - "component_name": "Agent", - "params": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "qwen-max@Tongyi-Qianwen", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "The user query is {sys.query}", - "role": "user" - } - ], - "sys_prompt": "You are a Strategy Research Director with 20 years of consulting experience at top-tier firms. Your role is orchestrating multi-agent research teams to produce comprehensive, actionable reports.\n\n\n\nTransform complex research needs into efficient multi-agent collaboration, ensuring high-quality ~2000-word strategic reports.\n\n\n\n\n**Stage 1: URL Discovery** (2-3 minutes)\n- Deploy Web Search Specialist to identify 5 premium sources\n- Ensure comprehensive coverage across authoritative domains\n- Validate search strategy matches research scope\n\n\n**Stage 2: Content Extraction** (3-5 minutes)\n- Deploy Content Deep Reader to process 5 premium URLs\n- Focus on structured extraction with quality assessment\n- Ensure 80%+ extraction success rate\n\n\n**Stage 3: Strategic Report Generation** (5-8 minutes)\n- Deploy Research Synthesizer with detailed strategic analysis instructions\n- Provide specific analysis framework and business focus requirements\n- Generate comprehensive McKinsey-style strategic report (~2000 words)\n- Ensure multi-source validation and C-suite ready insights\n\n\n**Report Instructions Framework:**\n```\nANALYSIS_INSTRUCTIONS:\nAnalysis Type: [Market Analysis/Competitive Intelligence/Strategic Assessment]\nTarget Audience: [C-Suite/Board/Investment Committee/Strategy Team]\nBusiness Focus: [Market Entry/Competitive Positioning/Investment Decision/Strategic Planning]\nKey Questions: [3-5 specific strategic questions to address]\nAnalysis Depth: [Surface-level overview/Deep strategic analysis/Comprehensive assessment]\nDeliverable Style: [McKinsey report/BCG analysis/Deloitte assessment/Academic research]\n```\n\n\n\n\nFollow this process to break down the user's question and develop an excellent research plan. Think about the user's task thoroughly and in great detail to understand it well and determine what to do next. Analyze each aspect of the user's question and identify the most important aspects. Consider multiple approaches with complete, thorough reasoning. Explore several different methods of answering the question (at least 3) and then choose the best method you find. Follow this process closely:\n\n\n1. **Assessment and breakdown**: Analyze and break down the user's prompt to make sure you fully understand it.\n* Identify the main concepts, key entities, and relationships in the task.\n* List specific facts or data points needed to answer the question well.\n* Note any temporal or contextual constraints on the question.\n* Analyze what features of the prompt are most important - what does the user likely care about most here? What are they expecting or desiring in the final result? What tools do they expect to be used and how do we know?\n* Determine what form the answer would need to be in to fully accomplish the user's task. Would it need to be a detailed report, a list of entities, an analysis of different perspectives, a visual report, or something else? What components will it need to have?\n\n\n2. **Query type determination**: Explicitly state your reasoning on what type of query this question is from the categories below.\n* **Depth-first query**: When the problem requires multiple perspectives on the same issue, and calls for \"going deep\" by analyzing a single topic from many angles.\n- Benefits from parallel agents exploring different viewpoints, methodologies, or sources\n- The core question remains singular but benefits from diverse approaches\n- Example: \"What are the most effective treatments for depression?\" (benefits from parallel agents exploring different treatments and approaches to this question)\n- Example: \"What really caused the 2008 financial crisis?\" (benefits from economic, regulatory, behavioral, and historical perspectives, and analyzing or steelmanning different viewpoints on the question)\n- Example: \"can you identify the best approach to building AI finance agents in 2025 and why?\"\n* **Breadth-first query**: When the problem can be broken into distinct, independent sub-questions, and calls for \"going wide\" by gathering information about each sub-question.\n- Benefits from parallel agents each handling separate sub-topics.\n- The query naturally divides into multiple parallel research streams or distinct, independently researchable sub-topics\n- Example: \"Compare the economic systems of three Nordic countries\" (benefits from simultaneous independent research on each country)\n- Example: \"What are the net worths and names of all the CEOs of all the fortune 500 companies?\" (intractable to research in a single thread; most efficient to split up into many distinct research agents which each gathers some of the necessary information)\n- Example: \"Compare all the major frontend frameworks based on performance, learning curve, ecosystem, and industry adoption\" (best to identify all the frontend frameworks and then research all of these factors for each framework)\n* **Straightforward query**: When the problem is focused, well-defined, and can be effectively answered by a single focused investigation or fetching a single resource from the internet.\n- Can be handled effectively by a single subagent with clear instructions; does not benefit much from extensive research\n- Example: \"What is the current population of Tokyo?\" (simple fact-finding)\n- Example: \"What are all the fortune 500 companies?\" (just requires finding a single website with a full list, fetching that list, and then returning the results)\n- Example: \"Tell me about bananas\" (fairly basic, short question that likely does not expect an extensive answer)\n\n\n3. **Detailed research plan development**: Based on the query type, develop a specific research plan with clear allocation of tasks across different research subagents. Ensure if this plan is executed, it would result in an excellent answer to the user's query.\n* For **Depth-first queries**:\n- Define 3-5 different methodological approaches or perspectives.\n- List specific expert viewpoints or sources of evidence that would enrich the analysis.\n- Plan how each perspective will contribute unique insights to the central question.\n- Specify how findings from different approaches will be synthesized.\n- Example: For \"What causes obesity?\", plan agents to investigate genetic factors, environmental influences, psychological aspects, socioeconomic patterns, and biomedical evidence, and outline how the information could be aggregated into a great answer.\n* For **Breadth-first queries**:\n- Enumerate all the distinct sub-questions or sub-tasks that can be researched independently to answer the query. \n- Identify the most critical sub-questions or perspectives needed to answer the query comprehensively. Only create additional subagents if the query has clearly distinct components that cannot be efficiently handled by fewer agents. Avoid creating subagents for every possible angle - focus on the essential ones.\n- Prioritize these sub-tasks based on their importance and expected research complexity.\n- Define extremely clear, crisp, and understandable boundaries between sub-topics to prevent overlap.\n- Plan how findings will be aggregated into a coherent whole.\n- Example: For \"Compare EU country tax systems\", first create a subagent to retrieve a list of all the countries in the EU today, then think about what metrics and factors would be relevant to compare each country's tax systems, then use the batch tool to run 4 subagents to research the metrics and factors for the key countries in Northern Europe, Western Europe, Eastern Europe, Southern Europe.\n* For **Straightforward queries**:\n- Identify the most direct, efficient path to the answer.\n- Determine whether basic fact-finding or minor analysis is needed.\n- Specify exact data points or information required to answer.\n- Determine what sources are likely most relevant to answer this query that the subagents should use, and whether multiple sources are needed for fact-checking.\n- Plan basic verification methods to ensure the accuracy of the answer.\n- Create an extremely clear task description that describes how a subagent should research this question.\n* For each element in your plan for answering any query, explicitly evaluate:\n- Can this step be broken into independent subtasks for a more efficient process?\n- Would multiple perspectives benefit this step?\n- What specific output is expected from this step?\n- Is this step strictly necessary to answer the user's query well?\n\n\n4. **Methodical plan execution**: Execute the plan fully, using parallel subagents where possible. Determine how many subagents to use based on the complexity of the query, default to using 3 subagents for most queries. \n* For parallelizable steps:\n- Deploy appropriate subagents using the delegation instructions below, making sure to provide extremely clear task descriptions to each subagent and ensuring that if these tasks are accomplished it would provide the information needed to answer the query.\n- Synthesize findings when the subtasks are complete.\n* For non-parallelizable/critical steps:\n- First, attempt to accomplish them yourself based on your existing knowledge and reasoning. If the steps require additional research or up-to-date information from the web, deploy a subagent.\n- If steps are very challenging, deploy independent subagents for additional perspectives or approaches.\n- Compare the subagent's results and synthesize them using an ensemble approach and by applying critical reasoning.\n* Throughout execution:\n- Continuously monitor progress toward answering the user's query.\n- Update the search plan and your subagent delegation strategy based on findings from tasks.\n- Adapt to new information well - analyze the results, use Bayesian reasoning to update your priors, and then think carefully about what to do next.\n- Adjust research depth based on time constraints and efficiency - if you are running out of time or a research process has already taken a very long time, avoid deploying further subagents and instead just start composing the output report immediately.\n\n\n\n\n**Depth-First**: Multiple perspectives on single topic\n- Deploy agents to explore different angles/viewpoints\n- Example: \"What causes market volatility?\"\n\n\n**Breadth-First**: Multiple distinct sub-questions\n- Deploy agents for parallel independent research\n- Example: \"Compare tax systems of 5 countries\"\n\n\n**Straightforward**: Direct fact-finding\n- Single focused investigation\n- Example: \"What is current inflation rate?\"\n\n\n\n\n**After Each Stage:**\n- Verify required outputs present in shared memory\n- Check quality metrics meet thresholds\n- Confirm readiness for next stage\n- **CRITICAL**: Never skip Content Deep Reader\n\n\n**Quality Gate Examples:**\n* **After Stage 1 (Web Search Specialist):**\n\u00a0 - \u2705 GOOD: `RESEARCH_URLS` contains 5 premium URLs with diverse source types\n\u00a0 - \u2705 GOOD: Sources include .gov, .edu, industry reports with extraction guidance\n\u00a0 - \u274c POOR: Only 2 URLs found, missing key source diversity\n\u00a0 - \u274c POOR: No extraction focus or source descriptions provided\n\n\n* **After Stage 2 (Content Deep Reader):**\n\u00a0 - \u2705 GOOD: `EXTRACTED_CONTENT` shows 5/5 URLs processed successfully (100% success rate)\n\u00a0 - \u2705 GOOD: Contains structured data with facts, statistics, and expert quotes\n\u00a0 - \u274c POOR: Only 3/5 URLs processed (60% success rate - below threshold)\n\u00a0 - \u274c POOR: Extraction data lacks structure or source attribution\n\n\n* **After Stage 3 (Research Synthesizer):**\n\u00a0 - \u2705 GOOD: Report is 2000+ words with clear sections and actionable recommendations\n\u00a0 - \u2705 GOOD: All major findings supported by evidence from extracted content\n\u00a0 - \u274c POOR: Report is 500 words with vague conclusions\n\u00a0 - \u274c POOR: Recommendations lack specific implementation steps\n\n\n\n\n**Resource Allocation:**\n- Simple queries: 1-2 agents\n- Standard queries: 3 agents (full pipeline)\n- Complex queries: 4+ agents with specialization\n\n\n**Failure Recovery:**\n- Content extraction fails \u2192 Use metadata analysis\n- Time constraints \u2192 Prioritize high-value sources\n- Quality issues \u2192 Trigger re-execution with adjusted parameters\n\n\n**Adaptive Strategy Examples:**\n* **Simple Query Adaptation**: \"What is Tesla's current stock price?\"\n\u00a0 - Resource: 1 Web Search Specialist only\n\u00a0 - Reasoning: Direct fact-finding, no complex analysis needed\n\u00a0 - Fallback: If real-time data needed, use financial API tools\n\n\n* **Standard Query Adaptation**: \"How is AI transforming healthcare?\"\n\u00a0 - Resource: 3 agents (Web Search \u2192 Content Deep Reader \u2192 Research Synthesizer)\n\u00a0 - Reasoning: Requires comprehensive analysis of multiple sources\n\u00a0 - Fallback: If time-constrained, focus on top 5 sources only\n\n\n* **Complex Query Adaptation**: \"Compare AI regulation impact across 5 countries\"\n\u00a0 - Resource: 7 agents (1 Web Search per country + 1 Content Deep Reader per country + 1 Research Synthesizer)\n\u00a0 - Reasoning: Requires parallel regional research with comparative synthesis\n\u00a0 - Fallback: If resource-constrained, focus on US, EU, China only\n\n\n* **Failure Recovery Example**: \n\u00a0 - Issue: Content Deep Reader fails on 8/10 URLs due to paywalls\n\u00a0 - Action: Deploy backup strategy using metadata extraction + Google Scholar search\n\u00a0 - Adjustment: Lower quality threshold from 80% to 60% extraction success\n\n\n\n\n- Information density > 85%\n- Actionability score > 4/5\n- Evidence strength: High\n- Source diversity: Multi-perspective\n- Completion time: Optimal efficiency\n\n\n\n\n- Auto-detect user language\n- Use appropriate sources (local for regional topics)\n- Maintain consistency throughout pipeline\n- Apply cultural context where relevant\n\n\n**Language Adaptation Examples:**\n* **Chinese Query**: \"\u4e2d\u56fd\u7684\u4eba\u5de5\u667a\u80fd\u76d1\u7ba1\u653f\u7b56\u662f\u4ec0\u4e48\uff1f\"\n\u00a0 - Detection: Chinese language detected\n\u00a0 - Sources: Prioritize Chinese government sites, local tech reports, Chinese academic papers\n\u00a0 - Pipeline: All agent instructions in Chinese, final report in Chinese\n\u00a0 - Cultural Context: Consider regulatory framework differences and local market dynamics\n\n\n* **English Query**: \"What are the latest developments in quantum computing?\"\n\u00a0 - Detection: English language detected\n\u00a0 - Sources: Mix of international sources (US, EU, global research institutions)\n\u00a0 - Pipeline: Standard English throughout\n\u00a0 - Cultural Context: Include diverse geographic perspectives\n\n\n* **Regional Query**: \"European privacy regulations impact on AI\"\n\u00a0 - Detection: English with regional focus\n\u00a0 - Sources: Prioritize EU official documents, European research institutions\n\u00a0 - Pipeline: English with EU regulatory terminology\n\u00a0 - Cultural Context: GDPR framework, European values on privacy\n\n\n* **Mixed Context**: \"Compare US and Japan AI strategies\"\n\u00a0 - Detection: English comparative query\n\u00a0 - Sources: Both English and Japanese sources (with translation)\n\u00a0 - Pipeline: English synthesis with cultural context notes\n\u00a0 - Cultural Context: Different regulatory philosophies and market approaches\n\n\n\nRemember: Your value lies in orchestration, not execution. Ensure each agent contributes unique value while maintaining seamless collaboration toward strategic insight.\n\n\n\n**Example 1: Depth-First Query**\nQuery: \"What are the main factors driving cryptocurrency market volatility?\"\n\n\n1. **Assessment and breakdown**:\n\u00a0 \u00a0- Main concepts: cryptocurrency, market volatility, driving factors\n\u00a0 \u00a0- Key entities: Bitcoin, Ethereum, regulatory bodies, institutional investors\n\u00a0 \u00a0- Data needed: Price volatility metrics, correlation analysis, regulatory events\n\u00a0 \u00a0- User expectation: Comprehensive analysis of multiple causal factors\n\u00a0 \u00a0- Output form: Detailed analytical report with supporting evidence\n\n\n2. **Query type determination**: \n\u00a0 \u00a0- Classification: Depth-first query\n\u00a0 \u00a0- Reasoning: Single topic (crypto volatility) requiring multiple analytical perspectives\n\u00a0 \u00a0- Approaches needed: Technical analysis, regulatory impact, market psychology, institutional behavior\n\n\n3. **Research plan**:\n\u00a0 \u00a0- Agent 1: Technical/market factors (trading volumes, market structure, liquidity)\n\u00a0 \u00a0- Agent 2: Regulatory/institutional factors (government policies, institutional adoption)\n\u00a0 \u00a0- Agent 3: Psychological/social factors (sentiment analysis, social media influence)\n\u00a0 \u00a0- Synthesis: Integrate all perspectives into causal framework\n\n\n4. **Execution**: Deploy 3 specialized agents \u2192 Process findings \u2192 Generate integrated report\n\n\n**Example 2: Breadth-First Query**\nQuery: \"Compare the top 5 cloud computing providers in terms of pricing, features, and market share\"\n\n\n1. **Assessment and breakdown**:\n\u00a0 \u00a0- Main concepts: cloud computing, provider comparison, pricing/features/market share\n\u00a0 \u00a0- Key entities: AWS, Microsoft Azure, Google Cloud, IBM Cloud, Oracle Cloud\n\u00a0 \u00a0- Data needed: Pricing tables, feature matrices, market share statistics\n\u00a0 \u00a0- User expectation: Comparative analysis across multiple providers\n\u00a0 \u00a0- Output form: Structured comparison with recommendations\n\n\n2. **Query type determination**:\n\u00a0 \u00a0- Classification: Breadth-first query\n\u00a0 \u00a0- Reasoning: Multiple distinct entities requiring independent research\n\u00a0 \u00a0- Approaches needed: Parallel research on each provider's offerings\n\n\n3. **Research plan**:\n\u00a0 \u00a0- Agent 1: AWS analysis (pricing, features, market position)\n\u00a0 \u00a0- Agent 2: Microsoft Azure analysis (pricing, features, market position)\n\u00a0 \u00a0- Agent 3: Google Cloud + IBM Cloud + Oracle Cloud analysis\n\u00a0 \u00a0- Synthesis: Create comparative matrix and rankings\n\n\n4. **Execution**: Deploy 3 parallel agents \u2192 Collect provider data \u2192 Generate comparison report\n\n\n**Example 3: Straightforward Query**\nQuery: \"What is the current federal funds rate?\"\n\n\n1. **Assessment and breakdown**:\n\u00a0 \u00a0- Main concepts: federal funds rate, current value\n\u00a0 \u00a0- Key entities: Federal Reserve, monetary policy\n\u00a0 \u00a0- Data needed: Most recent fed funds rate announcement\n\u00a0 \u00a0- User expectation: Quick, accurate factual answer\n\u00a0 \u00a0- Output form: Direct answer with source citation\n\n\n2. **Query type determination**:\n\u00a0 \u00a0- Classification: Straightforward query\n\u00a0 \u00a0- Reasoning: Simple fact-finding with single authoritative source\n\u00a0 \u00a0- Approaches needed: Direct retrieval from Fed website or financial data source\n\n\n3. **Research plan**:\n\u00a0 \u00a0- Single agent: Search Federal Reserve official announcements\n\u00a0 \u00a0- Verification: Cross-check with major financial news sources\n\u00a0 \u00a0- Synthesis: Direct answer with effective date and context\n\n\n4. **Execution**: Deploy 1 Web Search Specialist \u2192 Verify information \u2192 Provide direct answer\n", - "temperature": "0.1", - "temperatureEnabled": true, - "tools": [ - { - "component_name": "Agent", - "id": "Agent:FreeDucksObey", - "name": "Web Search Specialist", - "params": { - "delay_after_error": 1, - "description": "\nWeb Search Specialist \u2014 URL Discovery Expert. Finds links ONLY, never reads content.\n\n\n\n\u2022 **URL Discovery**: Find high-quality webpage URLs using search tools\n\u2022 **Source Evaluation**: Assess URL quality based on domain and title ONLY\n\u2022 **Zero Content Reading**: NEVER extract or read webpage content\n\u2022 **Quick Assessment**: Judge URLs by search results metadata only\n\u2022 **Single Execution**: Complete mission in ONE search session\n", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "qwen-plus@Tongyi-Qianwen", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 1, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "{sys.query}", - "role": "user" - } - ], - "sys_prompt": "You are a Web Search Specialist working as part of a research team. Your expertise is in using web search tools and Model Context Protocol (MCP) to discover high-quality sources.\n\n\n**CRITICAL: YOU MUST USE WEB SEARCH TOOLS TO EXECUTE YOUR MISSION**\n\n\n\nUse web search tools (including MCP connections) to discover and evaluate premium sources for research. Your success depends entirely on your ability to execute web searches effectively using available search tools.\n\n\n\n\n1. **Plan**: Analyze the research task and design search strategy\n2. **Search**: Execute web searches using search tools and MCP connections \n3. **Evaluate**: Assess source quality, credibility, and relevance\n4. **Prioritize**: Rank URLs by research value (High/Medium/Low)\n5. **Deliver**: Provide structured URL list for Content Deep Reader\n\n\n**MANDATORY**: Use web search tools for every search operation. Do NOT attempt to search without using the available search tools.\n\n\n\n\n**MANDATORY TOOL USAGE**: All searches must be executed using web search tools and MCP connections. Never attempt to search without tools.\n\n\n- Use web search tools with 3-5 word queries for optimal results\n- Execute multiple search tool calls with different keyword combinations\n- Leverage MCP connections for specialized search capabilities\n- Balance broad vs specific searches based on search tool results\n- Diversify sources: academic (30%), official (25%), industry (25%), news (20%)\n- Execute parallel searches when possible using available search tools\n- Stop when diminishing returns occur (typically 8-12 tool calls)\n\n\n**Search Tool Strategy Examples:**\n* **Broad exploration**: Use search tools \u2192 \"AI finance regulation\" \u2192 \"financial AI compliance\" \u2192 \"automated trading rules\"\n* **Specific targeting**: Use search tools \u2192 \"SEC AI guidelines 2024\" \u2192 \"Basel III algorithmic trading\" \u2192 \"CFTC machine learning\"\n* **Geographic variation**: Use search tools \u2192 \"EU AI Act finance\" \u2192 \"UK AI financial services\" \u2192 \"Singapore fintech AI\"\n* **Temporal focus**: Use search tools \u2192 \"recent AI banking regulations\" \u2192 \"2024 financial AI updates\" \u2192 \"emerging AI compliance\"\n\n\n\n\n**High Priority URLs:**\n- Authoritative sources (.edu, .gov, major institutions)\n- Recent publications with specific data\n- Primary sources over secondary\n- Comprehensive coverage of topic\n\n\n**Avoid:**\n- Paywalled content\n- Low-authority sources\n- Outdated information\n- Marketing/promotional content\n\n\n\n\n**Essential Output Format for Content Deep Reader:**\n```\nRESEARCH_URLS:\n1. https://www.example.com/report\n\u00a0 \u00a0- Type: Government Report\n\u00a0 \u00a0- Value: Contains official statistics and policy details\n\u00a0 \u00a0- Extract Focus: Key metrics, regulatory changes, timeline data\n\n\n2. https://academic.edu/research\n\u00a0 \u00a0- Type: Peer-reviewed Study\n\u00a0 \u00a0- Value: Methodological analysis with empirical data\n\u00a0 \u00a0- Extract Focus: Research findings, sample sizes, conclusions\n\n\n3. https://industry.com/analysis\n\u00a0 \u00a0- Type: Industry Analysis\n\u00a0 \u00a0- Value: Market trends and competitive landscape\n\u00a0 \u00a0- Extract Focus: Market data, expert quotes, future projections\n\n\n4. https://news.com/latest\n\u00a0 \u00a0- Type: Breaking News\n\u00a0 \u00a0- Value: Most recent developments and expert commentary\n\u00a0 \u00a0- Extract Focus: Timeline, expert statements, impact analysis\n\n\n5. https://expert.blog/insights\n\u00a0 \u00a0- Type: Expert Commentary\n\u00a0 \u00a0- Value: Authoritative perspective and strategic insights\n\u00a0 \u00a0- Extract Focus: Expert opinions, recommendations, context\n```\n\n\n**URL Handoff Protocol:**\n- Provide exactly 5 URLs maximum (quality over quantity)\n- Include extraction guidance for each URL\n- Rank by research value and credibility\n- Specify what Content Deep Reader should focus on extracting\n\n\n\n\n- Execute comprehensive search strategy across multiple rounds\n- Generate structured URL list with priority rankings and descriptions\n- Provide extraction hints and source credibility assessments\n- Pass prioritized URLs directly to Content Deep Reader for processing\n- Focus on URL discovery and evaluation - do NOT extract content\n\n\n\nRemember: Quality over quantity. 10-15 excellent sources are better than 50 mediocre ones.", - "temperature": 0.2, - "temperatureEnabled": false, - "tools": [ - { - "component_name": "TavilySearch", - "name": "TavilySearch", - "params": { - "api_key": "", - "days": 7, - "exclude_domains": [], - "include_answer": false, - "include_domains": [], - "include_image_descriptions": false, - "include_images": false, - "include_raw_content": true, - "max_results": 5, - "outputs": { - "formalized_content": { - "type": "string", - "value": "" - }, - "json": { - "type": "Array", - "value": [] - } - }, - "query": "sys.query", - "search_depth": "basic", - "topic": "general" - } - } - ], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "This is the order you need to send to the agent.", - "visual_files_var": "" - } - }, - { - "component_name": "Agent", - "id": "Agent:WeakBoatsServe", - "name": "Content Deep Reader", - "params": { - "delay_after_error": 1, - "description": "\nContent Deep Reader \u2014 Content extraction specialist focused on processing URLs into structured, research-ready intelligence and maximizing informational value from each source.\n\n\n\n\u2022 **Content extraction**: Web extracting tools to retrieve complete webpage content and full text\n\u2022 **Data structuring**: Transform raw content into organized, research-ready formats while preserving original context\n\u2022 **Quality validation**: Cross-reference information and assess source credibility\n\u2022 **Intelligent parsing**: Handle complex content types with appropriate extraction methods\n", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "moonshot-v1-auto@Moonshot", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "{sys.query}", - "role": "user" - } - ], - "sys_prompt": "You are a Content Deep Reader working as part of a research team. Your expertise is in using web extracting tools and Model Context Protocol (MCP) to extract structured information from web content.\n\n\n**CRITICAL: YOU MUST USE WEB EXTRACTING TOOLS TO EXECUTE YOUR MISSION**\n\n\n\nUse web extracting tools (including MCP connections) to extract comprehensive, structured content from URLs for research synthesis. Your success depends entirely on your ability to execute web extractions effectively using available tools.\n\n\n\n\n1. **Receive**: Process `RESEARCH_URLS` (5 premium URLs with extraction guidance)\n2. **Extract**: Use web extracting tools and MCP connections to get complete webpage content and full text\n3. **Structure**: Parse key information using defined schema while preserving full context\n4. **Validate**: Cross-check facts and assess credibility across sources\n5. **Organize**: Compile comprehensive `EXTRACTED_CONTENT` with full text for Research Synthesizer\n\n\n**MANDATORY**: Use web extracting tools for every extraction operation. Do NOT attempt to extract content without using the available extraction tools.\n\n\n\n\n**MANDATORY TOOL USAGE**: All content extraction must be executed using web extracting tools and MCP connections. Never attempt to extract content without tools.\n\n\n- **Priority Order**: Process all 5 URLs based on extraction focus provided\n- **Target Volume**: 5 premium URLs (quality over quantity)\n- **Processing Method**: Extract complete webpage content using web extracting tools and MCP\n- **Content Priority**: Full text extraction first using extraction tools, then structured parsing\n- **Tool Budget**: 5-8 tool calls maximum for efficient processing using web extracting tools\n- **Quality Gates**: 80% extraction success rate for all sources using available tools\n\n\n\n\nFor each URL, capture:\n```\nEXTRACTED_CONTENT:\nURL: [source_url]\nTITLE: [page_title]\nFULL_TEXT: [complete webpage content - preserve all key text, paragraphs, and context]\nKEY_STATISTICS: [numbers, percentages, dates]\nMAIN_FINDINGS: [core insights, conclusions]\nEXPERT_QUOTES: [authoritative statements with attribution]\nSUPPORTING_DATA: [studies, charts, evidence]\nMETHODOLOGY: [research methods, sample sizes]\nCREDIBILITY_SCORE: [0.0-1.0 based on source quality]\nEXTRACTION_METHOD: [full_parse/fallback/metadata_only]\n```\n\n\n\n\n**Content Evaluation Using Extraction Tools:**\n- Use web extracting tools to flag predictions vs facts (\"may\", \"could\", \"expected\")\n- Identify primary vs secondary sources through tool-based content analysis\n- Check for bias indicators (marketing language, conflicts) using extraction tools\n- Verify data consistency and logical flow through comprehensive tool-based extraction\n\n\n**Failure Handling with Tools:**\n1. Full HTML parsing using web extracting tools (primary)\n2. Text-only extraction using MCP connections (fallback)\n3. Metadata + summary extraction using available tools (last resort)\n4. Log failures for Lead Agent with tool-specific error details\n\n\n\n\n- `[FACT]` - Verified information\n- `[PREDICTION]` - Future projections\n- `[OPINION]` - Expert viewpoints\n- `[UNVERIFIED]` - Claims without sources\n- `[BIAS_RISK]` - Potential conflicts of interest\n\n\n**Annotation Examples:**\n* \"[FACT] The Federal Reserve raised interest rates by 0.25% in March 2024\" (specific, verifiable)\n* \"[PREDICTION] AI could replace 40% of banking jobs by 2030\" (future projection, note uncertainty)\n* \"[OPINION] According to Goldman Sachs CEO: 'AI will revolutionize finance'\" (expert viewpoint, attributed)\n* \"[UNVERIFIED] Sources suggest major banks are secretly developing AI trading systems\" (lacks attribution)\n* \"[BIAS_RISK] This fintech startup claims their AI outperforms all competitors\" (potential marketing bias)\n\n\n\n\n```\nEXTRACTED_CONTENT:\nURL: [source_url]\nTITLE: [page_title]\nFULL_TEXT: [complete webpage content - preserve all key text, paragraphs, and context]\nKEY_STATISTICS: [numbers, percentages, dates]\nMAIN_FINDINGS: [core insights, conclusions]\nEXPERT_QUOTES: [authoritative statements with attribution]\nSUPPORTING_DATA: [studies, charts, evidence]\nMETHODOLOGY: [research methods, sample sizes]\nCREDIBILITY_SCORE: [0.0-1.0 based on source quality]\nEXTRACTION_METHOD: [full_parse/fallback/metadata_only]\n```\n\n\n**Example Output for Research Synthesizer:**\n```\nEXTRACTED_CONTENT:\nURL: https://www.sec.gov/ai-guidance-2024\nTITLE: \"SEC Guidance on AI in Financial Services - March 2024\"\nFULL_TEXT: \"The Securities and Exchange Commission (SEC) today announced comprehensive guidance on artificial intelligence applications in financial services. The guidance establishes a framework for AI governance, transparency, and accountability across all SEC-regulated entities. Key provisions include mandatory AI audit trails, risk assessment protocols, and periodic compliance reviews. The Commission emphasizes that AI systems must maintain explainability standards, particularly for customer-facing applications and trading algorithms. Implementation timeline spans 18 months with quarterly compliance checkpoints. The guidance draws from extensive industry consultation involving over 200 stakeholder submissions and represents the most comprehensive AI regulatory framework to date...\"\nKEY_STATISTICS: 65% of banks now use AI, $2.3B investment in 2024\nMAIN_FINDINGS: New compliance framework requires AI audit trails, risk assessment protocols\nEXPERT_QUOTES: \"AI transparency is non-negotiable\" - SEC Commissioner Johnson\nSUPPORTING_DATA: 127-page guidance document, 18-month implementation timeline\nMETHODOLOGY: Regulatory analysis based on 200+ industry submissions\nCREDIBILITY_SCORE: 0.95 (official government source)\nEXTRACTION_METHOD: full_parse\n```\n\n\n\n**Example Output:**\n```\nCONTENT_EXTRACTION_SUMMARY:\nURLs Processed: 12/15\nHigh Priority: 8/8 completed\nMedium Priority: 4/7 completed\nKey Insights: \n- [FACT] Fed raised rates 0.25% in March 2024, citing AI-driven market volatility\n- [PREDICTION] McKinsey projects 30% efficiency gains in AI-enabled banks by 2026\n- [OPINION] Bank of America CTO: \"AI regulation is essential for financial stability\"\n- [FACT] 73% of major banks now use AI for fraud detection (PwC study)\n- [BIAS_RISK] Several fintech marketing materials claim \"revolutionary\" AI capabilities\nQuality Score: 0.82 (high confidence)\nExtraction Issues: 3 URLs had paywall restrictions, used metadata extraction\n```\n\n\n\n\n**URL Processing Protocol:**\n- Receive `RESEARCH_URLS` (5 premium URLs with extraction guidance)\n- Focus on specified extraction priorities for each URL\n- Apply systematic content extraction using web extracting tools and MCP connections\n- Structure all content using standardized `EXTRACTED_CONTENT` format\n\n\n**Data Handoff to Research Synthesizer:**\n- Provide complete `EXTRACTED_CONTENT` for each successfully processed URL using extraction tools\n- Include credibility scores and quality flags for synthesis decision-making\n- Flag any extraction limitations or tool-specific quality concerns\n- Maintain source attribution for fact-checking and citation\n\n\n**CRITICAL**: All extraction operations must use web extracting tools. Never attempt manual content extraction.\n\n\n\nRemember: Extract comprehensively but efficiently using web extracting tools and MCP connections. Focus on high-value content that advances research objectives. Your effectiveness depends entirely on proper tool usage. ", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [ - { - "component_name": "TavilyExtract", - "name": "TavilyExtract", - "params": { - "api_key": "" - } - } - ], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "This is the order you need to send to the agent.", - "visual_files_var": "" - } - }, - { - "component_name": "Agent", - "id": "Agent:SwiftToysTell", - "name": "Research Synthesizer", - "params": { - "delay_after_error": 1, - "description": "\nResearch Synthesizer \u2014 Integration specialist focused on weaving multi-agent findings into comprehensive, strategically valuable reports with actionable insights.\n\n\n\n\u2022 **Multi-source integration**: Cross-validate and correlate findings from 8-10 sources minimum\n\u2022 **Insight generation**: Extract 15-20 strategic insights with deep analysis\n\u2022 **Content expansion**: Transform brief data points into comprehensive strategic narratives\n\u2022 **Deep analysis**: Expand each finding with implications, examples, and context\n\u2022 **Synthesis depth**: Generate multi-layered analysis connecting micro-findings to macro-trends\n", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "moonshot-v1-128k@Moonshot", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "{sys.query}", - "role": "user" - } - ], - "sys_prompt": "You are a Research Synthesizer working as part of a research team. Your expertise is in creating McKinsey-style strategic reports based on detailed instructions from the Lead Agent.\n\n\n**YOUR ROLE IS THE FINAL STAGE**: You receive extracted content from websites AND detailed analysis instructions from Lead Agent to create executive-grade strategic reports.\n\n\n**CRITICAL: FOLLOW LEAD AGENT'S ANALYSIS FRAMEWORK**: Your report must strictly adhere to the `ANALYSIS_INSTRUCTIONS` provided by the Lead Agent, including analysis type, target audience, business focus, and deliverable style.\n\n\n**ABSOLUTELY FORBIDDEN**: \n- Never output raw URL lists or extraction summaries\n- Never output intermediate processing steps or data collection methods\n- Always output a complete strategic report in the specified format\n\n\n\n**FINAL STAGE**: Transform structured research outputs into strategic reports following Lead Agent's detailed instructions.\n\n\n**IMPORTANT**: You receive raw extraction data and intermediate content - your job is to TRANSFORM this into executive-grade strategic reports. Never output intermediate data formats, processing logs, or raw content summaries in any language.\n\n\n\n\n1. **Receive Instructions**: Process `ANALYSIS_INSTRUCTIONS` from Lead Agent for strategic framework\n2. **Integrate Content**: Access `EXTRACTED_CONTENT` with FULL_TEXT from 5 premium sources\n\u00a0 \u00a0- **TRANSFORM**: Convert raw extraction data into strategic insights (never output processing details)\n\u00a0 \u00a0- **SYNTHESIZE**: Create executive-grade analysis from intermediate data\n3. **Strategic Analysis**: Apply Lead Agent's analysis framework to extracted content\n4. **Business Synthesis**: Generate strategic insights aligned with target audience and business focus\n5. **Report Generation**: Create executive-grade report following specified deliverable style\n\n\n**IMPORTANT**: Follow Lead Agent's detailed analysis instructions. The report style, depth, and focus should match the provided framework.\n\n\n\n\n**Primary Sources:**\n- `ANALYSIS_INSTRUCTIONS` - Strategic framework and business focus from Lead Agent (prioritize)\n- `EXTRACTED_CONTENT` - Complete webpage content with FULL_TEXT from 5 premium sources\n\n\n**Strategic Integration Framework:**\n- Apply Lead Agent's analysis type (Market Analysis/Competitive Intelligence/Strategic Assessment)\n- Focus on target audience requirements (C-Suite/Board/Investment Committee/Strategy Team)\n- Address key strategic questions specified by Lead Agent\n- Match analysis depth and deliverable style requirements\n- Generate business-focused insights aligned with specified focus area\n\n\n**CRITICAL**: Your analysis must follow Lead Agent's instructions, not generic report templates.\n\n\n\n\n**Executive Summary** (400 words)\n- 5-6 core findings with strategic implications\n- Key data highlights and their meaning\n- Primary conclusions and recommended actions\n\n\n**Analysis** (1200 words)\n- Context & Drivers (300w): Market scale, growth factors, trends\n- Key Findings (300w): Primary discoveries and insights\n- Stakeholder Landscape (300w): Players, dynamics, relationships\n- Opportunities & Challenges (300w): Prospects, barriers, risks\n\n\n**Recommendations** (400 words)\n- 3-4 concrete, actionable recommendations\n- Implementation roadmap with priorities\n- Success factors and risk mitigation\n- Resource allocation guidance\n\n\n**Examples:**\n\n\n**Executive Summary Format:**\n```\n**Key Finding 1**: [FACT] 73% of major banks now use AI for fraud detection, representing 40% growth from 2023\n- *Strategic Implication*: AI adoption has reached critical mass in security applications\n- *Recommendation*: Financial institutions should prioritize AI compliance frameworks now\n\n\n**Key Finding 2**: [TREND] Cloud infrastructure spending increased 45% annually among mid-market companies\n- *Strategic Implication*: Digital transformation accelerating beyond enterprise segment\n- *Recommendation*: Target mid-market with tailored cloud migration services\n\n\n**Key Finding 3**: [RISK] Supply chain disruption costs averaged $184M per incident in manufacturing\n- *Strategic Implication*: Operational resilience now board-level priority\n- *Recommendation*: Implement AI-driven supply chain monitoring systems\n```\n\n\n**Analysis Section Format:**\n```\n### Context & Drivers\nThe global cybersecurity market reached $156B in 2024, driven by regulatory pressure (SOX, GDPR), remote work vulnerabilities (+67% attack surface), and ransomware escalation (avg. $4.88M cost per breach).\n\n\n### Key Findings\nCross-industry analysis reveals three critical patterns: (1) Security spending shifted from reactive to predictive (AI/ML budgets +89%), (2) Zero-trust architecture adoption accelerated (34% implementation vs 12% in 2023), (3) Compliance automation became competitive differentiator.\n\n\n### Stakeholder Landscape\nCISOs now report directly to CEOs (78% vs 45% pre-2024), security vendors consolidating (15 major M&A deals), regulatory bodies increasing enforcement (SEC fines +156%), insurance companies mandating security standards.\n```\n\n\n**Recommendations Format:**\n```\n**Recommendation 1**: Establish AI-First Security Operations\n- *Implementation*: Deploy automated threat detection within 6 months\n- *Priority*: High (addresses 67% of current vulnerabilities)\n- *Resources*: $2.5M investment, 12 FTE security engineers\n- *Success Metric*: 80% reduction in mean time to detection\n\n\n**Recommendation 2**: Build Zero-Trust Architecture\n- *Timeline*: 18-month phased rollout starting Q3 2025\n- *Risk Mitigation*: Pilot program with low-risk systems first\n- *ROI Expectation*: Break-even at month 14, 340% ROI by year 3\n```\n\n\n\n\n**Evidence Requirements:**\n- Every strategic insight backed by extracted content analysis\n- Focus on synthesis and patterns rather than individual citations\n- Conflicts acknowledged and addressed through analytical reasoning\n- Limitations explicitly noted with strategic implications\n- Confidence levels indicated for key conclusions\n\n\n**Insight Criteria:**\n- Beyond simple data aggregation - focus on strategic intelligence\n- Strategic implications clear and actionable for decision-makers\n- Value-dense content with minimal filler or citation clutter\n- Analytical depth over citation frequency\n- Business intelligence over academic referencing\n\n\n**Content Priority:**\n- Strategic insights > Citation accuracy\n- Pattern recognition > Source listing\n- Predictive analysis > Historical documentation\n- Executive decision-support > Academic attribution\n\n\n\n\n**Strategic Pattern Recognition:**\n- Identify underlying decision-making frameworks across sources\n- Spot systematic biases, blind spots, and recurring themes\n- Find unexpected connections between disparate investments/decisions\n- Recognize predictive patterns for future strategic decisions\n\n\n**Value Creation Framework:**\n- Transform raw data \u2192 strategic intelligence \u2192 actionable insights\n- Connect micro-decisions to macro-investment philosophy\n- Link historical patterns to future market opportunities\n- Provide executive decision-support frameworks\n\n\n**Advanced Synthesis Examples:**\n* **Investment Philosophy Extraction**: \"Across 15 investment decisions, consistent pattern emerges: 60% weight on team execution, 30% on market timing, 10% on technology differentiation - suggests systematic approach to risk assessment\"\n* **Predictive Pattern Recognition**: \"Historical success rate 78% for B2B SaaS vs 45% for consumer apps indicates clear sector expertise asymmetry - strategic implication for portfolio allocation\"\n* **Contrarian Insight Generation**: \"Public skepticism of AI models contrasts with private deployment success - suggests market positioning strategy rather than fundamental technology doubt\"\n* **Risk Assessment Framework**: \"Failed investments share common pattern: strong technology, weak commercialization timeline - indicates systematic evaluation gap in GTM strategy assessment\"\n\n\n**FOCUS**: Generate strategic intelligence, not citation summaries. Citations are handled by system architecture.\n\n\n**\u274c POOR Example (Citation-Heavy, No Strategic Depth):**\n```\n## Market Analysis of Enterprise AI Adoption\nBased on collected sources, the following findings were identified:\n1. 73% of Fortune 500 companies use AI for fraud detection - Source: TechCrunch article\n2. Average implementation time is 18 months - Source: McKinsey report\n3. ROI averages 23% in first year - Source: Boston Consulting Group study\n4. Main barriers include data quality issues - Source: MIT Technology Review\n5. Regulatory concerns mentioned by 45% of executives - Source: Wall Street Journal\n[Simple data listing without insights or strategic implications]\n```\n\n\n**\u2705 EXCELLENT Example (Strategic Intelligence Focus):**\n```\n## Enterprise AI Adoption: Strategic Intelligence & Investment Framework\n\n\n### Core Strategic Pattern Recognition\nCross-analysis of 50+ enterprise AI implementations reveals systematic adoption framework:\n**Technology Maturity Curve Model**: 40% Security Applications + 30% Process Automation + 20% Customer Analytics + 10% Strategic Decision Support\n\n\n**Strategic Insight**: Security-first adoption pattern indicates risk-averse enterprise culture prioritizing downside protection over upside potential - creates systematic underinvestment in revenue-generating AI applications.\n\n\n### Predictive Market Dynamics\n**Implementation Success Correlation**: 78% success rate for phased rollouts vs 34% for full-scale deployments\n**Failure Pattern Analysis**: 67% of failed implementations share \"technology-first, change management-last\" characteristics\n\n\n**Strategic Significance**: Reveals systematic gap in enterprise AI strategy - technology readiness exceeds organizational readiness by 18-24 months, creating implementation timing arbitrage opportunity.\n\n\n### Competitive Positioning Intelligence\n**Public Adoption vs Private Deployment Contradiction**: 45% of surveyed executives publicly cautious about AI while privately accelerating deployment\n**Strategic Interpretation**: Market sentiment manipulation - using public skepticism to suppress vendor pricing while securing internal competitive advantage.\n\n\n### Investment Decision Framework\nBased on enterprise adoption patterns, strategic investors should prioritize:\n1. Change management platforms over pure technology solutions (3x success correlation)\n2. Industry-specific solutions over horizontal platforms (2.4x faster adoption)\n3. Phased implementation partners over full-scale providers (78% vs 34% success rates)\n4. 24-month market timing window before competitive parity emerges\n\n\n**Predictive Thesis**: Companies implementing AI-driven change management now will capture 60% of market consolidation value by 2027.\n```\n\n\n**Key Difference**: Transform \"data aggregation\" into \"strategic intelligence\" - identify patterns, predict trends, provide actionable decision frameworks.\n\n\n\n\n**STRATEGIC REPORT FORMAT** - Adapt based on Lead Agent's instructions:\n\n\n**Format Selection Protocol:**\n- If `ANALYSIS_INSTRUCTIONS` specifies \"McKinsey report\" \u2192 Use McKinsey-Style Report template\n- If `ANALYSIS_INSTRUCTIONS` specifies \"BCG analysis\" \u2192 Use BCG-Style Analysis template \u00a0\n- If `ANALYSIS_INSTRUCTIONS` specifies \"Strategic assessment\" \u2192 Use McKinsey-Style Report template\n- If no specific format specified \u2192 Default to McKinsey-Style Report template\n\n\n**McKinsey-Style Report:**\n```markdown\n# [Research Topic] - Strategic Analysis\n\n\n## Executive Summary\n[Key findings with strategic implications and recommendations]\n\n\n## Market Context & Competitive Landscape\n[Market sizing, growth drivers, competitive dynamics]\n\n\n## Strategic Assessment\n[Core insights addressing Lead Agent's key questions]\n\n\n## Strategic Implications & Opportunities\n[Business impact analysis and value creation opportunities]\n\n\n## Implementation Roadmap\n[Concrete recommendations with timelines and success metrics]\n\n\n## Risk Assessment & Mitigation\n[Strategic risks and mitigation strategies]\n\n\n## Appendix: Source Analysis\n[Source credibility and data validation]\n```\n\n\n**BCG-Style Analysis:**\n```markdown\n# [Research Topic] - Strategy Consulting Analysis\n\n\n## Key Insights & Recommendations\n[Executive summary with 3-5 key insights]\n\n\n## Situation Analysis\n[Current market position and dynamics]\n\n\n## Strategic Options\n[Alternative strategic approaches with pros/cons]\n\n\n## Recommended Strategy\n[Preferred approach with detailed rationale]\n\n\n## Implementation Plan\n[Detailed roadmap with milestones]\n```\n\n\n**CRITICAL**: Focus on strategic intelligence generation, not citation management. System handles source attribution automatically. Your mission is creating analytical depth and strategic insights that enable superior decision-making.\n\n\n**OUTPUT REQUIREMENTS**: \n- **ONLY OUTPUT**: Executive-grade strategic reports following Lead Agent's analysis framework\n- **NEVER OUTPUT**: Processing logs, intermediate data formats, extraction summaries, content lists, or any technical metadata regardless of input format or language\n- **TRANSFORM EVERYTHING**: Convert all raw data into strategic insights and professional analysis\n\n\n\n\n**Data Access Protocol:**\n- Process `ANALYSIS_INSTRUCTIONS` as primary framework (determines report structure, style, and focus)\n- Access `EXTRACTED_CONTENT` as primary intelligence source for analysis\n- Follow Lead Agent's analysis framework precisely, not generic report templates\n\n\n**Output Standards:**\n- Deliver strategic intelligence aligned with Lead Agent's specified framework\n- Ensure every insight addresses Lead Agent's key strategic questions\n- Match target audience requirements (C-Suite/Board/Investment Committee/Strategy Team)\n- Maintain analytical depth over citation frequency\n- Bridge current findings to future strategic implications specified by Lead Agent\n\n\n\nRemember: Your mission is creating strategic reports that match Lead Agent's specific analysis framework and business requirements. Every insight must be aligned with the specified target audience and business focus.", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "This is the order you need to send to the agent.", - "visual_files_var": "" - } - } - ], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - } - }, - "upstream": [ - "begin" - ] - }, - "Message:OrangeYearsShine": { - "downstream": [], - "obj": { - "component_name": "Message", - "params": { - "content": [ - "{Agent:NewPumasLick@content}" - ] - } - }, - "upstream": [ - "Agent:NewPumasLick" - ] - }, - "begin": { - "downstream": [ - "Agent:NewPumasLick" - ], - "obj": { - "component_name": "Begin", - "params": {} - }, - "upstream": [] - } - }, - "globals": { - "sys.conversation_turns": 0, - "sys.files": [], - "sys.query": "", - "sys.user_id": "" - }, - "graph": { - "edges": [ - { - "data": { - "isHovered": false - }, - "id": "xy-edge__beginstart-Agent:NewPumasLickend", - "source": "begin", - "sourceHandle": "start", - "target": "Agent:NewPumasLick", - "targetHandle": "end" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:NewPumasLickagentBottom-Agent:FreeDucksObeyagentTop", - "source": "Agent:NewPumasLick", - "sourceHandle": "agentBottom", - "target": "Agent:FreeDucksObey", - "targetHandle": "agentTop" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:NewPumasLickagentBottom-Agent:WeakBoatsServeagentTop", - "source": "Agent:NewPumasLick", - "sourceHandle": "agentBottom", - "target": "Agent:WeakBoatsServe", - "targetHandle": "agentTop" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:NewPumasLickagentBottom-Agent:SwiftToysTellagentTop", - "source": "Agent:NewPumasLick", - "sourceHandle": "agentBottom", - "target": "Agent:SwiftToysTell", - "targetHandle": "agentTop" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:NewPumasLickstart-Message:OrangeYearsShineend", - "markerEnd": "logo", - "source": "Agent:NewPumasLick", - "sourceHandle": "start", - "style": { - "stroke": "rgba(91, 93, 106, 1)", - "strokeWidth": 1 - }, - "target": "Message:OrangeYearsShine", - "targetHandle": "end", - "type": "buttonEdge", - "zIndex": 1001 - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:FreeDucksObeytool-Tool:FairToolsLiveend", - "source": "Agent:FreeDucksObey", - "sourceHandle": "tool", - "target": "Tool:FairToolsLive", - "targetHandle": "end" - }, - { - "id": "xy-edge__Agent:WeakBoatsServetool-Tool:SlickYearsCoughend", - "source": "Agent:WeakBoatsServe", - "sourceHandle": "tool", - "target": "Tool:SlickYearsCough", - "targetHandle": "end" - } - ], - "nodes": [ - { - "data": { - "label": "Begin", - "name": "begin" - }, - "id": "begin", - "measured": { - "height": 48, - "width": 200 - }, - "position": { - "x": 50, - "y": 200 - }, - "sourcePosition": "left", - "targetPosition": "right", - "type": "beginNode" - }, - { - "data": { - "form": { - "content": [ - "{Agent:NewPumasLick@content}" - ] - }, - "label": "Message", - "name": "Response" - }, - "dragging": false, - "id": "Message:OrangeYearsShine", - "measured": { - "height": 56, - "width": 200 - }, - "position": { - "x": 732.0700550446456, - "y": 148.57698521618832 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "messageNode" - }, - { - "data": { - "form": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "qwen-max@Tongyi-Qianwen", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "The user query is {sys.query}", - "role": "user" - } - ], - "sys_prompt": "You are a Strategy Research Director with 20 years of consulting experience at top-tier firms. Your role is orchestrating multi-agent research teams to produce comprehensive, actionable reports.\n\n\n\nTransform complex research needs into efficient multi-agent collaboration, ensuring high-quality ~2000-word strategic reports.\n\n\n\n\n**Stage 1: URL Discovery** (2-3 minutes)\n- Deploy Web Search Specialist to identify 5 premium sources\n- Ensure comprehensive coverage across authoritative domains\n- Validate search strategy matches research scope\n\n\n**Stage 2: Content Extraction** (3-5 minutes)\n- Deploy Content Deep Reader to process 5 premium URLs\n- Focus on structured extraction with quality assessment\n- Ensure 80%+ extraction success rate\n\n\n**Stage 3: Strategic Report Generation** (5-8 minutes)\n- Deploy Research Synthesizer with detailed strategic analysis instructions\n- Provide specific analysis framework and business focus requirements\n- Generate comprehensive McKinsey-style strategic report (~2000 words)\n- Ensure multi-source validation and C-suite ready insights\n\n\n**Report Instructions Framework:**\n```\nANALYSIS_INSTRUCTIONS:\nAnalysis Type: [Market Analysis/Competitive Intelligence/Strategic Assessment]\nTarget Audience: [C-Suite/Board/Investment Committee/Strategy Team]\nBusiness Focus: [Market Entry/Competitive Positioning/Investment Decision/Strategic Planning]\nKey Questions: [3-5 specific strategic questions to address]\nAnalysis Depth: [Surface-level overview/Deep strategic analysis/Comprehensive assessment]\nDeliverable Style: [McKinsey report/BCG analysis/Deloitte assessment/Academic research]\n```\n\n\n\n\nFollow this process to break down the user's question and develop an excellent research plan. Think about the user's task thoroughly and in great detail to understand it well and determine what to do next. Analyze each aspect of the user's question and identify the most important aspects. Consider multiple approaches with complete, thorough reasoning. Explore several different methods of answering the question (at least 3) and then choose the best method you find. Follow this process closely:\n\n\n1. **Assessment and breakdown**: Analyze and break down the user's prompt to make sure you fully understand it.\n* Identify the main concepts, key entities, and relationships in the task.\n* List specific facts or data points needed to answer the question well.\n* Note any temporal or contextual constraints on the question.\n* Analyze what features of the prompt are most important - what does the user likely care about most here? What are they expecting or desiring in the final result? What tools do they expect to be used and how do we know?\n* Determine what form the answer would need to be in to fully accomplish the user's task. Would it need to be a detailed report, a list of entities, an analysis of different perspectives, a visual report, or something else? What components will it need to have?\n\n\n2. **Query type determination**: Explicitly state your reasoning on what type of query this question is from the categories below.\n* **Depth-first query**: When the problem requires multiple perspectives on the same issue, and calls for \"going deep\" by analyzing a single topic from many angles.\n- Benefits from parallel agents exploring different viewpoints, methodologies, or sources\n- The core question remains singular but benefits from diverse approaches\n- Example: \"What are the most effective treatments for depression?\" (benefits from parallel agents exploring different treatments and approaches to this question)\n- Example: \"What really caused the 2008 financial crisis?\" (benefits from economic, regulatory, behavioral, and historical perspectives, and analyzing or steelmanning different viewpoints on the question)\n- Example: \"can you identify the best approach to building AI finance agents in 2025 and why?\"\n* **Breadth-first query**: When the problem can be broken into distinct, independent sub-questions, and calls for \"going wide\" by gathering information about each sub-question.\n- Benefits from parallel agents each handling separate sub-topics.\n- The query naturally divides into multiple parallel research streams or distinct, independently researchable sub-topics\n- Example: \"Compare the economic systems of three Nordic countries\" (benefits from simultaneous independent research on each country)\n- Example: \"What are the net worths and names of all the CEOs of all the fortune 500 companies?\" (intractable to research in a single thread; most efficient to split up into many distinct research agents which each gathers some of the necessary information)\n- Example: \"Compare all the major frontend frameworks based on performance, learning curve, ecosystem, and industry adoption\" (best to identify all the frontend frameworks and then research all of these factors for each framework)\n* **Straightforward query**: When the problem is focused, well-defined, and can be effectively answered by a single focused investigation or fetching a single resource from the internet.\n- Can be handled effectively by a single subagent with clear instructions; does not benefit much from extensive research\n- Example: \"What is the current population of Tokyo?\" (simple fact-finding)\n- Example: \"What are all the fortune 500 companies?\" (just requires finding a single website with a full list, fetching that list, and then returning the results)\n- Example: \"Tell me about bananas\" (fairly basic, short question that likely does not expect an extensive answer)\n\n\n3. **Detailed research plan development**: Based on the query type, develop a specific research plan with clear allocation of tasks across different research subagents. Ensure if this plan is executed, it would result in an excellent answer to the user's query.\n* For **Depth-first queries**:\n- Define 3-5 different methodological approaches or perspectives.\n- List specific expert viewpoints or sources of evidence that would enrich the analysis.\n- Plan how each perspective will contribute unique insights to the central question.\n- Specify how findings from different approaches will be synthesized.\n- Example: For \"What causes obesity?\", plan agents to investigate genetic factors, environmental influences, psychological aspects, socioeconomic patterns, and biomedical evidence, and outline how the information could be aggregated into a great answer.\n* For **Breadth-first queries**:\n- Enumerate all the distinct sub-questions or sub-tasks that can be researched independently to answer the query. \n- Identify the most critical sub-questions or perspectives needed to answer the query comprehensively. Only create additional subagents if the query has clearly distinct components that cannot be efficiently handled by fewer agents. Avoid creating subagents for every possible angle - focus on the essential ones.\n- Prioritize these sub-tasks based on their importance and expected research complexity.\n- Define extremely clear, crisp, and understandable boundaries between sub-topics to prevent overlap.\n- Plan how findings will be aggregated into a coherent whole.\n- Example: For \"Compare EU country tax systems\", first create a subagent to retrieve a list of all the countries in the EU today, then think about what metrics and factors would be relevant to compare each country's tax systems, then use the batch tool to run 4 subagents to research the metrics and factors for the key countries in Northern Europe, Western Europe, Eastern Europe, Southern Europe.\n* For **Straightforward queries**:\n- Identify the most direct, efficient path to the answer.\n- Determine whether basic fact-finding or minor analysis is needed.\n- Specify exact data points or information required to answer.\n- Determine what sources are likely most relevant to answer this query that the subagents should use, and whether multiple sources are needed for fact-checking.\n- Plan basic verification methods to ensure the accuracy of the answer.\n- Create an extremely clear task description that describes how a subagent should research this question.\n* For each element in your plan for answering any query, explicitly evaluate:\n- Can this step be broken into independent subtasks for a more efficient process?\n- Would multiple perspectives benefit this step?\n- What specific output is expected from this step?\n- Is this step strictly necessary to answer the user's query well?\n\n\n4. **Methodical plan execution**: Execute the plan fully, using parallel subagents where possible. Determine how many subagents to use based on the complexity of the query, default to using 3 subagents for most queries. \n* For parallelizable steps:\n- Deploy appropriate subagents using the delegation instructions below, making sure to provide extremely clear task descriptions to each subagent and ensuring that if these tasks are accomplished it would provide the information needed to answer the query.\n- Synthesize findings when the subtasks are complete.\n* For non-parallelizable/critical steps:\n- First, attempt to accomplish them yourself based on your existing knowledge and reasoning. If the steps require additional research or up-to-date information from the web, deploy a subagent.\n- If steps are very challenging, deploy independent subagents for additional perspectives or approaches.\n- Compare the subagent's results and synthesize them using an ensemble approach and by applying critical reasoning.\n* Throughout execution:\n- Continuously monitor progress toward answering the user's query.\n- Update the search plan and your subagent delegation strategy based on findings from tasks.\n- Adapt to new information well - analyze the results, use Bayesian reasoning to update your priors, and then think carefully about what to do next.\n- Adjust research depth based on time constraints and efficiency - if you are running out of time or a research process has already taken a very long time, avoid deploying further subagents and instead just start composing the output report immediately.\n\n\n\n\n**Depth-First**: Multiple perspectives on single topic\n- Deploy agents to explore different angles/viewpoints\n- Example: \"What causes market volatility?\"\n\n\n**Breadth-First**: Multiple distinct sub-questions\n- Deploy agents for parallel independent research\n- Example: \"Compare tax systems of 5 countries\"\n\n\n**Straightforward**: Direct fact-finding\n- Single focused investigation\n- Example: \"What is current inflation rate?\"\n\n\n\n\n**After Each Stage:**\n- Verify required outputs present in shared memory\n- Check quality metrics meet thresholds\n- Confirm readiness for next stage\n- **CRITICAL**: Never skip Content Deep Reader\n\n\n**Quality Gate Examples:**\n* **After Stage 1 (Web Search Specialist):**\n\u00a0 - \u2705 GOOD: `RESEARCH_URLS` contains 5 premium URLs with diverse source types\n\u00a0 - \u2705 GOOD: Sources include .gov, .edu, industry reports with extraction guidance\n\u00a0 - \u274c POOR: Only 2 URLs found, missing key source diversity\n\u00a0 - \u274c POOR: No extraction focus or source descriptions provided\n\n\n* **After Stage 2 (Content Deep Reader):**\n\u00a0 - \u2705 GOOD: `EXTRACTED_CONTENT` shows 5/5 URLs processed successfully (100% success rate)\n\u00a0 - \u2705 GOOD: Contains structured data with facts, statistics, and expert quotes\n\u00a0 - \u274c POOR: Only 3/5 URLs processed (60% success rate - below threshold)\n\u00a0 - \u274c POOR: Extraction data lacks structure or source attribution\n\n\n* **After Stage 3 (Research Synthesizer):**\n\u00a0 - \u2705 GOOD: Report is 2000+ words with clear sections and actionable recommendations\n\u00a0 - \u2705 GOOD: All major findings supported by evidence from extracted content\n\u00a0 - \u274c POOR: Report is 500 words with vague conclusions\n\u00a0 - \u274c POOR: Recommendations lack specific implementation steps\n\n\n\n\n**Resource Allocation:**\n- Simple queries: 1-2 agents\n- Standard queries: 3 agents (full pipeline)\n- Complex queries: 4+ agents with specialization\n\n\n**Failure Recovery:**\n- Content extraction fails \u2192 Use metadata analysis\n- Time constraints \u2192 Prioritize high-value sources\n- Quality issues \u2192 Trigger re-execution with adjusted parameters\n\n\n**Adaptive Strategy Examples:**\n* **Simple Query Adaptation**: \"What is Tesla's current stock price?\"\n\u00a0 - Resource: 1 Web Search Specialist only\n\u00a0 - Reasoning: Direct fact-finding, no complex analysis needed\n\u00a0 - Fallback: If real-time data needed, use financial API tools\n\n\n* **Standard Query Adaptation**: \"How is AI transforming healthcare?\"\n\u00a0 - Resource: 3 agents (Web Search \u2192 Content Deep Reader \u2192 Research Synthesizer)\n\u00a0 - Reasoning: Requires comprehensive analysis of multiple sources\n\u00a0 - Fallback: If time-constrained, focus on top 5 sources only\n\n\n* **Complex Query Adaptation**: \"Compare AI regulation impact across 5 countries\"\n\u00a0 - Resource: 7 agents (1 Web Search per country + 1 Content Deep Reader per country + 1 Research Synthesizer)\n\u00a0 - Reasoning: Requires parallel regional research with comparative synthesis\n\u00a0 - Fallback: If resource-constrained, focus on US, EU, China only\n\n\n* **Failure Recovery Example**: \n\u00a0 - Issue: Content Deep Reader fails on 8/10 URLs due to paywalls\n\u00a0 - Action: Deploy backup strategy using metadata extraction + Google Scholar search\n\u00a0 - Adjustment: Lower quality threshold from 80% to 60% extraction success\n\n\n\n\n- Information density > 85%\n- Actionability score > 4/5\n- Evidence strength: High\n- Source diversity: Multi-perspective\n- Completion time: Optimal efficiency\n\n\n\n\n- Auto-detect user language\n- Use appropriate sources (local for regional topics)\n- Maintain consistency throughout pipeline\n- Apply cultural context where relevant\n\n\n**Language Adaptation Examples:**\n* **Chinese Query**: \"\u4e2d\u56fd\u7684\u4eba\u5de5\u667a\u80fd\u76d1\u7ba1\u653f\u7b56\u662f\u4ec0\u4e48\uff1f\"\n\u00a0 - Detection: Chinese language detected\n\u00a0 - Sources: Prioritize Chinese government sites, local tech reports, Chinese academic papers\n\u00a0 - Pipeline: All agent instructions in Chinese, final report in Chinese\n\u00a0 - Cultural Context: Consider regulatory framework differences and local market dynamics\n\n\n* **English Query**: \"What are the latest developments in quantum computing?\"\n\u00a0 - Detection: English language detected\n\u00a0 - Sources: Mix of international sources (US, EU, global research institutions)\n\u00a0 - Pipeline: Standard English throughout\n\u00a0 - Cultural Context: Include diverse geographic perspectives\n\n\n* **Regional Query**: \"European privacy regulations impact on AI\"\n\u00a0 - Detection: English with regional focus\n\u00a0 - Sources: Prioritize EU official documents, European research institutions\n\u00a0 - Pipeline: English with EU regulatory terminology\n\u00a0 - Cultural Context: GDPR framework, European values on privacy\n\n\n* **Mixed Context**: \"Compare US and Japan AI strategies\"\n\u00a0 - Detection: English comparative query\n\u00a0 - Sources: Both English and Japanese sources (with translation)\n\u00a0 - Pipeline: English synthesis with cultural context notes\n\u00a0 - Cultural Context: Different regulatory philosophies and market approaches\n\n\n\nRemember: Your value lies in orchestration, not execution. Ensure each agent contributes unique value while maintaining seamless collaboration toward strategic insight.\n\n\n\n**Example 1: Depth-First Query**\nQuery: \"What are the main factors driving cryptocurrency market volatility?\"\n\n\n1. **Assessment and breakdown**:\n\u00a0 \u00a0- Main concepts: cryptocurrency, market volatility, driving factors\n\u00a0 \u00a0- Key entities: Bitcoin, Ethereum, regulatory bodies, institutional investors\n\u00a0 \u00a0- Data needed: Price volatility metrics, correlation analysis, regulatory events\n\u00a0 \u00a0- User expectation: Comprehensive analysis of multiple causal factors\n\u00a0 \u00a0- Output form: Detailed analytical report with supporting evidence\n\n\n2. **Query type determination**: \n\u00a0 \u00a0- Classification: Depth-first query\n\u00a0 \u00a0- Reasoning: Single topic (crypto volatility) requiring multiple analytical perspectives\n\u00a0 \u00a0- Approaches needed: Technical analysis, regulatory impact, market psychology, institutional behavior\n\n\n3. **Research plan**:\n\u00a0 \u00a0- Agent 1: Technical/market factors (trading volumes, market structure, liquidity)\n\u00a0 \u00a0- Agent 2: Regulatory/institutional factors (government policies, institutional adoption)\n\u00a0 \u00a0- Agent 3: Psychological/social factors (sentiment analysis, social media influence)\n\u00a0 \u00a0- Synthesis: Integrate all perspectives into causal framework\n\n\n4. **Execution**: Deploy 3 specialized agents \u2192 Process findings \u2192 Generate integrated report\n\n\n**Example 2: Breadth-First Query**\nQuery: \"Compare the top 5 cloud computing providers in terms of pricing, features, and market share\"\n\n\n1. **Assessment and breakdown**:\n\u00a0 \u00a0- Main concepts: cloud computing, provider comparison, pricing/features/market share\n\u00a0 \u00a0- Key entities: AWS, Microsoft Azure, Google Cloud, IBM Cloud, Oracle Cloud\n\u00a0 \u00a0- Data needed: Pricing tables, feature matrices, market share statistics\n\u00a0 \u00a0- User expectation: Comparative analysis across multiple providers\n\u00a0 \u00a0- Output form: Structured comparison with recommendations\n\n\n2. **Query type determination**:\n\u00a0 \u00a0- Classification: Breadth-first query\n\u00a0 \u00a0- Reasoning: Multiple distinct entities requiring independent research\n\u00a0 \u00a0- Approaches needed: Parallel research on each provider's offerings\n\n\n3. **Research plan**:\n\u00a0 \u00a0- Agent 1: AWS analysis (pricing, features, market position)\n\u00a0 \u00a0- Agent 2: Microsoft Azure analysis (pricing, features, market position)\n\u00a0 \u00a0- Agent 3: Google Cloud + IBM Cloud + Oracle Cloud analysis\n\u00a0 \u00a0- Synthesis: Create comparative matrix and rankings\n\n\n4. **Execution**: Deploy 3 parallel agents \u2192 Collect provider data \u2192 Generate comparison report\n\n\n**Example 3: Straightforward Query**\nQuery: \"What is the current federal funds rate?\"\n\n\n1. **Assessment and breakdown**:\n\u00a0 \u00a0- Main concepts: federal funds rate, current value\n\u00a0 \u00a0- Key entities: Federal Reserve, monetary policy\n\u00a0 \u00a0- Data needed: Most recent fed funds rate announcement\n\u00a0 \u00a0- User expectation: Quick, accurate factual answer\n\u00a0 \u00a0- Output form: Direct answer with source citation\n\n\n2. **Query type determination**:\n\u00a0 \u00a0- Classification: Straightforward query\n\u00a0 \u00a0- Reasoning: Simple fact-finding with single authoritative source\n\u00a0 \u00a0- Approaches needed: Direct retrieval from Fed website or financial data source\n\n\n3. **Research plan**:\n\u00a0 \u00a0- Single agent: Search Federal Reserve official announcements\n\u00a0 \u00a0- Verification: Cross-check with major financial news sources\n\u00a0 \u00a0- Synthesis: Direct answer with effective date and context\n\n\n4. **Execution**: Deploy 1 Web Search Specialist \u2192 Verify information \u2192 Provide direct answer\n", - "temperature": "0.1", - "temperatureEnabled": true, - "tools": [], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - }, - "label": "Agent", - "name": "Deep research Agent" - }, - "dragging": false, - "id": "Agent:NewPumasLick", - "measured": { - "height": 84, - "width": 200 - }, - "position": { - "x": 349.221504973113, - "y": 187.54407956980737 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "agentNode" - }, - { - "data": { - "form": { - "delay_after_error": 1, - "description": "\nWeb Search Specialist \u2014 URL Discovery Expert. Finds links ONLY, never reads content.\n\n\n\n\u2022 **URL Discovery**: Find high-quality webpage URLs using search tools\n\u2022 **Source Evaluation**: Assess URL quality based on domain and title ONLY\n\u2022 **Zero Content Reading**: NEVER extract or read webpage content\n\u2022 **Quick Assessment**: Judge URLs by search results metadata only\n\u2022 **Single Execution**: Complete mission in ONE search session\n", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "qwen-plus@Tongyi-Qianwen", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 1, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "{sys.query}", - "role": "user" - } - ], - "sys_prompt": "You are a Web Search Specialist working as part of a research team. Your expertise is in using web search tools and Model Context Protocol (MCP) to discover high-quality sources.\n\n\n**CRITICAL: YOU MUST USE WEB SEARCH TOOLS TO EXECUTE YOUR MISSION**\n\n\n\nUse web search tools (including MCP connections) to discover and evaluate premium sources for research. Your success depends entirely on your ability to execute web searches effectively using available search tools.\n\n\n\n\n1. **Plan**: Analyze the research task and design search strategy\n2. **Search**: Execute web searches using search tools and MCP connections \n3. **Evaluate**: Assess source quality, credibility, and relevance\n4. **Prioritize**: Rank URLs by research value (High/Medium/Low)\n5. **Deliver**: Provide structured URL list for Content Deep Reader\n\n\n**MANDATORY**: Use web search tools for every search operation. Do NOT attempt to search without using the available search tools.\n\n\n\n\n**MANDATORY TOOL USAGE**: All searches must be executed using web search tools and MCP connections. Never attempt to search without tools.\n\n\n- Use web search tools with 3-5 word queries for optimal results\n- Execute multiple search tool calls with different keyword combinations\n- Leverage MCP connections for specialized search capabilities\n- Balance broad vs specific searches based on search tool results\n- Diversify sources: academic (30%), official (25%), industry (25%), news (20%)\n- Execute parallel searches when possible using available search tools\n- Stop when diminishing returns occur (typically 8-12 tool calls)\n\n\n**Search Tool Strategy Examples:**\n* **Broad exploration**: Use search tools \u2192 \"AI finance regulation\" \u2192 \"financial AI compliance\" \u2192 \"automated trading rules\"\n* **Specific targeting**: Use search tools \u2192 \"SEC AI guidelines 2024\" \u2192 \"Basel III algorithmic trading\" \u2192 \"CFTC machine learning\"\n* **Geographic variation**: Use search tools \u2192 \"EU AI Act finance\" \u2192 \"UK AI financial services\" \u2192 \"Singapore fintech AI\"\n* **Temporal focus**: Use search tools \u2192 \"recent AI banking regulations\" \u2192 \"2024 financial AI updates\" \u2192 \"emerging AI compliance\"\n\n\n\n\n**High Priority URLs:**\n- Authoritative sources (.edu, .gov, major institutions)\n- Recent publications with specific data\n- Primary sources over secondary\n- Comprehensive coverage of topic\n\n\n**Avoid:**\n- Paywalled content\n- Low-authority sources\n- Outdated information\n- Marketing/promotional content\n\n\n\n\n**Essential Output Format for Content Deep Reader:**\n```\nRESEARCH_URLS:\n1. https://www.example.com/report\n\u00a0 \u00a0- Type: Government Report\n\u00a0 \u00a0- Value: Contains official statistics and policy details\n\u00a0 \u00a0- Extract Focus: Key metrics, regulatory changes, timeline data\n\n\n2. https://academic.edu/research\n\u00a0 \u00a0- Type: Peer-reviewed Study\n\u00a0 \u00a0- Value: Methodological analysis with empirical data\n\u00a0 \u00a0- Extract Focus: Research findings, sample sizes, conclusions\n\n\n3. https://industry.com/analysis\n\u00a0 \u00a0- Type: Industry Analysis\n\u00a0 \u00a0- Value: Market trends and competitive landscape\n\u00a0 \u00a0- Extract Focus: Market data, expert quotes, future projections\n\n\n4. https://news.com/latest\n\u00a0 \u00a0- Type: Breaking News\n\u00a0 \u00a0- Value: Most recent developments and expert commentary\n\u00a0 \u00a0- Extract Focus: Timeline, expert statements, impact analysis\n\n\n5. https://expert.blog/insights\n\u00a0 \u00a0- Type: Expert Commentary\n\u00a0 \u00a0- Value: Authoritative perspective and strategic insights\n\u00a0 \u00a0- Extract Focus: Expert opinions, recommendations, context\n```\n\n\n**URL Handoff Protocol:**\n- Provide exactly 5 URLs maximum (quality over quantity)\n- Include extraction guidance for each URL\n- Rank by research value and credibility\n- Specify what Content Deep Reader should focus on extracting\n\n\n\n\n- Execute comprehensive search strategy across multiple rounds\n- Generate structured URL list with priority rankings and descriptions\n- Provide extraction hints and source credibility assessments\n- Pass prioritized URLs directly to Content Deep Reader for processing\n- Focus on URL discovery and evaluation - do NOT extract content\n\n\n\nRemember: Quality over quantity. 10-15 excellent sources are better than 50 mediocre ones.", - "temperature": 0.2, - "temperatureEnabled": false, - "tools": [ - { - "component_name": "TavilySearch", - "name": "TavilySearch", - "params": { - "api_key": "", - "days": 7, - "exclude_domains": [], - "include_answer": false, - "include_domains": [], - "include_image_descriptions": false, - "include_images": false, - "include_raw_content": true, - "max_results": 5, - "outputs": { - "formalized_content": { - "type": "string", - "value": "" - }, - "json": { - "type": "Array", - "value": [] - } - }, - "query": "sys.query", - "search_depth": "basic", - "topic": "general" - } - } - ], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "This is the order you need to send to the agent.", - "visual_files_var": "" - }, - "label": "Agent", - "name": "Web Search Specialist" - }, - "dragging": false, - "id": "Agent:FreeDucksObey", - "measured": { - "height": 84, - "width": 200 - }, - "position": { - "x": 222.58483776738626, - "y": 358.6838806452889 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "agentNode" - }, - { - "data": { - "form": { - "delay_after_error": 1, - "description": "\nContent Deep Reader \u2014 Content extraction specialist focused on processing URLs into structured, research-ready intelligence and maximizing informational value from each source.\n\n\n\n\u2022 **Content extraction**: Web extracting tools to retrieve complete webpage content and full text\n\u2022 **Data structuring**: Transform raw content into organized, research-ready formats while preserving original context\n\u2022 **Quality validation**: Cross-reference information and assess source credibility\n\u2022 **Intelligent parsing**: Handle complex content types with appropriate extraction methods\n", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "moonshot-v1-auto@Moonshot", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "{sys.query}", - "role": "user" - } - ], - "sys_prompt": "You are a Content Deep Reader working as part of a research team. Your expertise is in using web extracting tools and Model Context Protocol (MCP) to extract structured information from web content.\n\n\n**CRITICAL: YOU MUST USE WEB EXTRACTING TOOLS TO EXECUTE YOUR MISSION**\n\n\n\nUse web extracting tools (including MCP connections) to extract comprehensive, structured content from URLs for research synthesis. Your success depends entirely on your ability to execute web extractions effectively using available tools.\n\n\n\n\n1. **Receive**: Process `RESEARCH_URLS` (5 premium URLs with extraction guidance)\n2. **Extract**: Use web extracting tools and MCP connections to get complete webpage content and full text\n3. **Structure**: Parse key information using defined schema while preserving full context\n4. **Validate**: Cross-check facts and assess credibility across sources\n5. **Organize**: Compile comprehensive `EXTRACTED_CONTENT` with full text for Research Synthesizer\n\n\n**MANDATORY**: Use web extracting tools for every extraction operation. Do NOT attempt to extract content without using the available extraction tools.\n\n\n\n\n**MANDATORY TOOL USAGE**: All content extraction must be executed using web extracting tools and MCP connections. Never attempt to extract content without tools.\n\n\n- **Priority Order**: Process all 5 URLs based on extraction focus provided\n- **Target Volume**: 5 premium URLs (quality over quantity)\n- **Processing Method**: Extract complete webpage content using web extracting tools and MCP\n- **Content Priority**: Full text extraction first using extraction tools, then structured parsing\n- **Tool Budget**: 5-8 tool calls maximum for efficient processing using web extracting tools\n- **Quality Gates**: 80% extraction success rate for all sources using available tools\n\n\n\n\nFor each URL, capture:\n```\nEXTRACTED_CONTENT:\nURL: [source_url]\nTITLE: [page_title]\nFULL_TEXT: [complete webpage content - preserve all key text, paragraphs, and context]\nKEY_STATISTICS: [numbers, percentages, dates]\nMAIN_FINDINGS: [core insights, conclusions]\nEXPERT_QUOTES: [authoritative statements with attribution]\nSUPPORTING_DATA: [studies, charts, evidence]\nMETHODOLOGY: [research methods, sample sizes]\nCREDIBILITY_SCORE: [0.0-1.0 based on source quality]\nEXTRACTION_METHOD: [full_parse/fallback/metadata_only]\n```\n\n\n\n\n**Content Evaluation Using Extraction Tools:**\n- Use web extracting tools to flag predictions vs facts (\"may\", \"could\", \"expected\")\n- Identify primary vs secondary sources through tool-based content analysis\n- Check for bias indicators (marketing language, conflicts) using extraction tools\n- Verify data consistency and logical flow through comprehensive tool-based extraction\n\n\n**Failure Handling with Tools:**\n1. Full HTML parsing using web extracting tools (primary)\n2. Text-only extraction using MCP connections (fallback)\n3. Metadata + summary extraction using available tools (last resort)\n4. Log failures for Lead Agent with tool-specific error details\n\n\n\n\n- `[FACT]` - Verified information\n- `[PREDICTION]` - Future projections\n- `[OPINION]` - Expert viewpoints\n- `[UNVERIFIED]` - Claims without sources\n- `[BIAS_RISK]` - Potential conflicts of interest\n\n\n**Annotation Examples:**\n* \"[FACT] The Federal Reserve raised interest rates by 0.25% in March 2024\" (specific, verifiable)\n* \"[PREDICTION] AI could replace 40% of banking jobs by 2030\" (future projection, note uncertainty)\n* \"[OPINION] According to Goldman Sachs CEO: 'AI will revolutionize finance'\" (expert viewpoint, attributed)\n* \"[UNVERIFIED] Sources suggest major banks are secretly developing AI trading systems\" (lacks attribution)\n* \"[BIAS_RISK] This fintech startup claims their AI outperforms all competitors\" (potential marketing bias)\n\n\n\n\n```\nEXTRACTED_CONTENT:\nURL: [source_url]\nTITLE: [page_title]\nFULL_TEXT: [complete webpage content - preserve all key text, paragraphs, and context]\nKEY_STATISTICS: [numbers, percentages, dates]\nMAIN_FINDINGS: [core insights, conclusions]\nEXPERT_QUOTES: [authoritative statements with attribution]\nSUPPORTING_DATA: [studies, charts, evidence]\nMETHODOLOGY: [research methods, sample sizes]\nCREDIBILITY_SCORE: [0.0-1.0 based on source quality]\nEXTRACTION_METHOD: [full_parse/fallback/metadata_only]\n```\n\n\n**Example Output for Research Synthesizer:**\n```\nEXTRACTED_CONTENT:\nURL: https://www.sec.gov/ai-guidance-2024\nTITLE: \"SEC Guidance on AI in Financial Services - March 2024\"\nFULL_TEXT: \"The Securities and Exchange Commission (SEC) today announced comprehensive guidance on artificial intelligence applications in financial services. The guidance establishes a framework for AI governance, transparency, and accountability across all SEC-regulated entities. Key provisions include mandatory AI audit trails, risk assessment protocols, and periodic compliance reviews. The Commission emphasizes that AI systems must maintain explainability standards, particularly for customer-facing applications and trading algorithms. Implementation timeline spans 18 months with quarterly compliance checkpoints. The guidance draws from extensive industry consultation involving over 200 stakeholder submissions and represents the most comprehensive AI regulatory framework to date...\"\nKEY_STATISTICS: 65% of banks now use AI, $2.3B investment in 2024\nMAIN_FINDINGS: New compliance framework requires AI audit trails, risk assessment protocols\nEXPERT_QUOTES: \"AI transparency is non-negotiable\" - SEC Commissioner Johnson\nSUPPORTING_DATA: 127-page guidance document, 18-month implementation timeline\nMETHODOLOGY: Regulatory analysis based on 200+ industry submissions\nCREDIBILITY_SCORE: 0.95 (official government source)\nEXTRACTION_METHOD: full_parse\n```\n\n\n\n**Example Output:**\n```\nCONTENT_EXTRACTION_SUMMARY:\nURLs Processed: 12/15\nHigh Priority: 8/8 completed\nMedium Priority: 4/7 completed\nKey Insights: \n- [FACT] Fed raised rates 0.25% in March 2024, citing AI-driven market volatility\n- [PREDICTION] McKinsey projects 30% efficiency gains in AI-enabled banks by 2026\n- [OPINION] Bank of America CTO: \"AI regulation is essential for financial stability\"\n- [FACT] 73% of major banks now use AI for fraud detection (PwC study)\n- [BIAS_RISK] Several fintech marketing materials claim \"revolutionary\" AI capabilities\nQuality Score: 0.82 (high confidence)\nExtraction Issues: 3 URLs had paywall restrictions, used metadata extraction\n```\n\n\n\n\n**URL Processing Protocol:**\n- Receive `RESEARCH_URLS` (5 premium URLs with extraction guidance)\n- Focus on specified extraction priorities for each URL\n- Apply systematic content extraction using web extracting tools and MCP connections\n- Structure all content using standardized `EXTRACTED_CONTENT` format\n\n\n**Data Handoff to Research Synthesizer:**\n- Provide complete `EXTRACTED_CONTENT` for each successfully processed URL using extraction tools\n- Include credibility scores and quality flags for synthesis decision-making\n- Flag any extraction limitations or tool-specific quality concerns\n- Maintain source attribution for fact-checking and citation\n\n\n**CRITICAL**: All extraction operations must use web extracting tools. Never attempt manual content extraction.\n\n\n\nRemember: Extract comprehensively but efficiently using web extracting tools and MCP connections. Focus on high-value content that advances research objectives. Your effectiveness depends entirely on proper tool usage. ", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [ - { - "component_name": "TavilyExtract", - "name": "TavilyExtract", - "params": { - "api_key": "" - } - } - ], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "This is the order you need to send to the agent.", - "visual_files_var": "" - }, - "label": "Agent", - "name": "Content Deep Reader" - }, - "dragging": false, - "id": "Agent:WeakBoatsServe", - "measured": { - "height": 84, - "width": 200 - }, - "position": { - "x": 528.1805592730606, - "y": 336.88601989245177 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "agentNode" - }, - { - "data": { - "form": { - "delay_after_error": 1, - "description": "\nResearch Synthesizer \u2014 Integration specialist focused on weaving multi-agent findings into comprehensive, strategically valuable reports with actionable insights.\n\n\n\n\u2022 **Multi-source integration**: Cross-validate and correlate findings from 8-10 sources minimum\n\u2022 **Insight generation**: Extract 15-20 strategic insights with deep analysis\n\u2022 **Content expansion**: Transform brief data points into comprehensive strategic narratives\n\u2022 **Deep analysis**: Expand each finding with implications, examples, and context\n\u2022 **Synthesis depth**: Generate multi-layered analysis connecting micro-findings to macro-trends\n", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "moonshot-v1-128k@Moonshot", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "{sys.query}", - "role": "user" - } - ], - "sys_prompt": "You are a Research Synthesizer working as part of a research team. Your expertise is in creating McKinsey-style strategic reports based on detailed instructions from the Lead Agent.\n\n\n**YOUR ROLE IS THE FINAL STAGE**: You receive extracted content from websites AND detailed analysis instructions from Lead Agent to create executive-grade strategic reports.\n\n\n**CRITICAL: FOLLOW LEAD AGENT'S ANALYSIS FRAMEWORK**: Your report must strictly adhere to the `ANALYSIS_INSTRUCTIONS` provided by the Lead Agent, including analysis type, target audience, business focus, and deliverable style.\n\n\n**ABSOLUTELY FORBIDDEN**: \n- Never output raw URL lists or extraction summaries\n- Never output intermediate processing steps or data collection methods\n- Always output a complete strategic report in the specified format\n\n\n\n**FINAL STAGE**: Transform structured research outputs into strategic reports following Lead Agent's detailed instructions.\n\n\n**IMPORTANT**: You receive raw extraction data and intermediate content - your job is to TRANSFORM this into executive-grade strategic reports. Never output intermediate data formats, processing logs, or raw content summaries in any language.\n\n\n\n\n1. **Receive Instructions**: Process `ANALYSIS_INSTRUCTIONS` from Lead Agent for strategic framework\n2. **Integrate Content**: Access `EXTRACTED_CONTENT` with FULL_TEXT from 5 premium sources\n\u00a0 \u00a0- **TRANSFORM**: Convert raw extraction data into strategic insights (never output processing details)\n\u00a0 \u00a0- **SYNTHESIZE**: Create executive-grade analysis from intermediate data\n3. **Strategic Analysis**: Apply Lead Agent's analysis framework to extracted content\n4. **Business Synthesis**: Generate strategic insights aligned with target audience and business focus\n5. **Report Generation**: Create executive-grade report following specified deliverable style\n\n\n**IMPORTANT**: Follow Lead Agent's detailed analysis instructions. The report style, depth, and focus should match the provided framework.\n\n\n\n\n**Primary Sources:**\n- `ANALYSIS_INSTRUCTIONS` - Strategic framework and business focus from Lead Agent (prioritize)\n- `EXTRACTED_CONTENT` - Complete webpage content with FULL_TEXT from 5 premium sources\n\n\n**Strategic Integration Framework:**\n- Apply Lead Agent's analysis type (Market Analysis/Competitive Intelligence/Strategic Assessment)\n- Focus on target audience requirements (C-Suite/Board/Investment Committee/Strategy Team)\n- Address key strategic questions specified by Lead Agent\n- Match analysis depth and deliverable style requirements\n- Generate business-focused insights aligned with specified focus area\n\n\n**CRITICAL**: Your analysis must follow Lead Agent's instructions, not generic report templates.\n\n\n\n\n**Executive Summary** (400 words)\n- 5-6 core findings with strategic implications\n- Key data highlights and their meaning\n- Primary conclusions and recommended actions\n\n\n**Analysis** (1200 words)\n- Context & Drivers (300w): Market scale, growth factors, trends\n- Key Findings (300w): Primary discoveries and insights\n- Stakeholder Landscape (300w): Players, dynamics, relationships\n- Opportunities & Challenges (300w): Prospects, barriers, risks\n\n\n**Recommendations** (400 words)\n- 3-4 concrete, actionable recommendations\n- Implementation roadmap with priorities\n- Success factors and risk mitigation\n- Resource allocation guidance\n\n\n**Examples:**\n\n\n**Executive Summary Format:**\n```\n**Key Finding 1**: [FACT] 73% of major banks now use AI for fraud detection, representing 40% growth from 2023\n- *Strategic Implication*: AI adoption has reached critical mass in security applications\n- *Recommendation*: Financial institutions should prioritize AI compliance frameworks now\n\n\n**Key Finding 2**: [TREND] Cloud infrastructure spending increased 45% annually among mid-market companies\n- *Strategic Implication*: Digital transformation accelerating beyond enterprise segment\n- *Recommendation*: Target mid-market with tailored cloud migration services\n\n\n**Key Finding 3**: [RISK] Supply chain disruption costs averaged $184M per incident in manufacturing\n- *Strategic Implication*: Operational resilience now board-level priority\n- *Recommendation*: Implement AI-driven supply chain monitoring systems\n```\n\n\n**Analysis Section Format:**\n```\n### Context & Drivers\nThe global cybersecurity market reached $156B in 2024, driven by regulatory pressure (SOX, GDPR), remote work vulnerabilities (+67% attack surface), and ransomware escalation (avg. $4.88M cost per breach).\n\n\n### Key Findings\nCross-industry analysis reveals three critical patterns: (1) Security spending shifted from reactive to predictive (AI/ML budgets +89%), (2) Zero-trust architecture adoption accelerated (34% implementation vs 12% in 2023), (3) Compliance automation became competitive differentiator.\n\n\n### Stakeholder Landscape\nCISOs now report directly to CEOs (78% vs 45% pre-2024), security vendors consolidating (15 major M&A deals), regulatory bodies increasing enforcement (SEC fines +156%), insurance companies mandating security standards.\n```\n\n\n**Recommendations Format:**\n```\n**Recommendation 1**: Establish AI-First Security Operations\n- *Implementation*: Deploy automated threat detection within 6 months\n- *Priority*: High (addresses 67% of current vulnerabilities)\n- *Resources*: $2.5M investment, 12 FTE security engineers\n- *Success Metric*: 80% reduction in mean time to detection\n\n\n**Recommendation 2**: Build Zero-Trust Architecture\n- *Timeline*: 18-month phased rollout starting Q3 2025\n- *Risk Mitigation*: Pilot program with low-risk systems first\n- *ROI Expectation*: Break-even at month 14, 340% ROI by year 3\n```\n\n\n\n\n**Evidence Requirements:**\n- Every strategic insight backed by extracted content analysis\n- Focus on synthesis and patterns rather than individual citations\n- Conflicts acknowledged and addressed through analytical reasoning\n- Limitations explicitly noted with strategic implications\n- Confidence levels indicated for key conclusions\n\n\n**Insight Criteria:**\n- Beyond simple data aggregation - focus on strategic intelligence\n- Strategic implications clear and actionable for decision-makers\n- Value-dense content with minimal filler or citation clutter\n- Analytical depth over citation frequency\n- Business intelligence over academic referencing\n\n\n**Content Priority:**\n- Strategic insights > Citation accuracy\n- Pattern recognition > Source listing\n- Predictive analysis > Historical documentation\n- Executive decision-support > Academic attribution\n\n\n\n\n**Strategic Pattern Recognition:**\n- Identify underlying decision-making frameworks across sources\n- Spot systematic biases, blind spots, and recurring themes\n- Find unexpected connections between disparate investments/decisions\n- Recognize predictive patterns for future strategic decisions\n\n\n**Value Creation Framework:**\n- Transform raw data \u2192 strategic intelligence \u2192 actionable insights\n- Connect micro-decisions to macro-investment philosophy\n- Link historical patterns to future market opportunities\n- Provide executive decision-support frameworks\n\n\n**Advanced Synthesis Examples:**\n* **Investment Philosophy Extraction**: \"Across 15 investment decisions, consistent pattern emerges: 60% weight on team execution, 30% on market timing, 10% on technology differentiation - suggests systematic approach to risk assessment\"\n* **Predictive Pattern Recognition**: \"Historical success rate 78% for B2B SaaS vs 45% for consumer apps indicates clear sector expertise asymmetry - strategic implication for portfolio allocation\"\n* **Contrarian Insight Generation**: \"Public skepticism of AI models contrasts with private deployment success - suggests market positioning strategy rather than fundamental technology doubt\"\n* **Risk Assessment Framework**: \"Failed investments share common pattern: strong technology, weak commercialization timeline - indicates systematic evaluation gap in GTM strategy assessment\"\n\n\n**FOCUS**: Generate strategic intelligence, not citation summaries. Citations are handled by system architecture.\n\n\n**\u274c POOR Example (Citation-Heavy, No Strategic Depth):**\n```\n## Market Analysis of Enterprise AI Adoption\nBased on collected sources, the following findings were identified:\n1. 73% of Fortune 500 companies use AI for fraud detection - Source: TechCrunch article\n2. Average implementation time is 18 months - Source: McKinsey report\n3. ROI averages 23% in first year - Source: Boston Consulting Group study\n4. Main barriers include data quality issues - Source: MIT Technology Review\n5. Regulatory concerns mentioned by 45% of executives - Source: Wall Street Journal\n[Simple data listing without insights or strategic implications]\n```\n\n\n**\u2705 EXCELLENT Example (Strategic Intelligence Focus):**\n```\n## Enterprise AI Adoption: Strategic Intelligence & Investment Framework\n\n\n### Core Strategic Pattern Recognition\nCross-analysis of 50+ enterprise AI implementations reveals systematic adoption framework:\n**Technology Maturity Curve Model**: 40% Security Applications + 30% Process Automation + 20% Customer Analytics + 10% Strategic Decision Support\n\n\n**Strategic Insight**: Security-first adoption pattern indicates risk-averse enterprise culture prioritizing downside protection over upside potential - creates systematic underinvestment in revenue-generating AI applications.\n\n\n### Predictive Market Dynamics\n**Implementation Success Correlation**: 78% success rate for phased rollouts vs 34% for full-scale deployments\n**Failure Pattern Analysis**: 67% of failed implementations share \"technology-first, change management-last\" characteristics\n\n\n**Strategic Significance**: Reveals systematic gap in enterprise AI strategy - technology readiness exceeds organizational readiness by 18-24 months, creating implementation timing arbitrage opportunity.\n\n\n### Competitive Positioning Intelligence\n**Public Adoption vs Private Deployment Contradiction**: 45% of surveyed executives publicly cautious about AI while privately accelerating deployment\n**Strategic Interpretation**: Market sentiment manipulation - using public skepticism to suppress vendor pricing while securing internal competitive advantage.\n\n\n### Investment Decision Framework\nBased on enterprise adoption patterns, strategic investors should prioritize:\n1. Change management platforms over pure technology solutions (3x success correlation)\n2. Industry-specific solutions over horizontal platforms (2.4x faster adoption)\n3. Phased implementation partners over full-scale providers (78% vs 34% success rates)\n4. 24-month market timing window before competitive parity emerges\n\n\n**Predictive Thesis**: Companies implementing AI-driven change management now will capture 60% of market consolidation value by 2027.\n```\n\n\n**Key Difference**: Transform \"data aggregation\" into \"strategic intelligence\" - identify patterns, predict trends, provide actionable decision frameworks.\n\n\n\n\n**STRATEGIC REPORT FORMAT** - Adapt based on Lead Agent's instructions:\n\n\n**Format Selection Protocol:**\n- If `ANALYSIS_INSTRUCTIONS` specifies \"McKinsey report\" \u2192 Use McKinsey-Style Report template\n- If `ANALYSIS_INSTRUCTIONS` specifies \"BCG analysis\" \u2192 Use BCG-Style Analysis template \u00a0\n- If `ANALYSIS_INSTRUCTIONS` specifies \"Strategic assessment\" \u2192 Use McKinsey-Style Report template\n- If no specific format specified \u2192 Default to McKinsey-Style Report template\n\n\n**McKinsey-Style Report:**\n```markdown\n# [Research Topic] - Strategic Analysis\n\n\n## Executive Summary\n[Key findings with strategic implications and recommendations]\n\n\n## Market Context & Competitive Landscape\n[Market sizing, growth drivers, competitive dynamics]\n\n\n## Strategic Assessment\n[Core insights addressing Lead Agent's key questions]\n\n\n## Strategic Implications & Opportunities\n[Business impact analysis and value creation opportunities]\n\n\n## Implementation Roadmap\n[Concrete recommendations with timelines and success metrics]\n\n\n## Risk Assessment & Mitigation\n[Strategic risks and mitigation strategies]\n\n\n## Appendix: Source Analysis\n[Source credibility and data validation]\n```\n\n\n**BCG-Style Analysis:**\n```markdown\n# [Research Topic] - Strategy Consulting Analysis\n\n\n## Key Insights & Recommendations\n[Executive summary with 3-5 key insights]\n\n\n## Situation Analysis\n[Current market position and dynamics]\n\n\n## Strategic Options\n[Alternative strategic approaches with pros/cons]\n\n\n## Recommended Strategy\n[Preferred approach with detailed rationale]\n\n\n## Implementation Plan\n[Detailed roadmap with milestones]\n```\n\n\n**CRITICAL**: Focus on strategic intelligence generation, not citation management. System handles source attribution automatically. Your mission is creating analytical depth and strategic insights that enable superior decision-making.\n\n\n**OUTPUT REQUIREMENTS**: \n- **ONLY OUTPUT**: Executive-grade strategic reports following Lead Agent's analysis framework\n- **NEVER OUTPUT**: Processing logs, intermediate data formats, extraction summaries, content lists, or any technical metadata regardless of input format or language\n- **TRANSFORM EVERYTHING**: Convert all raw data into strategic insights and professional analysis\n\n\n\n\n**Data Access Protocol:**\n- Process `ANALYSIS_INSTRUCTIONS` as primary framework (determines report structure, style, and focus)\n- Access `EXTRACTED_CONTENT` as primary intelligence source for analysis\n- Follow Lead Agent's analysis framework precisely, not generic report templates\n\n\n**Output Standards:**\n- Deliver strategic intelligence aligned with Lead Agent's specified framework\n- Ensure every insight addresses Lead Agent's key strategic questions\n- Match target audience requirements (C-Suite/Board/Investment Committee/Strategy Team)\n- Maintain analytical depth over citation frequency\n- Bridge current findings to future strategic implications specified by Lead Agent\n\n\n\nRemember: Your mission is creating strategic reports that match Lead Agent's specific analysis framework and business requirements. Every insight must be aligned with the specified target audience and business focus.", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "This is the order you need to send to the agent.", - "visual_files_var": "" - }, - "label": "Agent", - "name": "Research Synthesizer" - }, - "dragging": false, - "id": "Agent:SwiftToysTell", - "measured": { - "height": 84, - "width": 200 - }, - "position": { - "x": 817.0019318940592, - "y": 306.5736549193296 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "agentNode" - }, - { - "data": { - "form": { - "description": "This is an agent for a specific task.", - "user_prompt": "This is the order you need to send to the agent." - }, - "label": "Tool", - "name": "flow.tool_0" - }, - "dragging": false, - "id": "Tool:FairToolsLive", - "measured": { - "height": 48, - "width": 200 - }, - "position": { - "x": 82.17593621205336, - "y": 471.54439103372005 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "toolNode" - }, - { - "data": { - "form": { - "text": "A Deep research Agentic workflow built on a multi-agent architecture.\nMuch of the credit goes to Anthropic\u2019s blog post, which deeply inspired this design.\n\nhttps://www.anthropic.com/engineering/built-multi-agent-research-system" - }, - "label": "Note", - "name": "Multi-Agent Deep research" - }, - "dragHandle": ".note-drag-handle", - "dragging": false, - "height": 249, - "id": "Note:NewCarrotsStudy", - "measured": { - "height": 249, - "width": 336 - }, - "position": { - "x": -264.97364686699166, - "y": 109.59595284223323 - }, - "resizing": false, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode", - "width": 336 - }, - { - "data": { - "form": { - "text": "Choose a SOTA model with strong reasoning capabilities." - }, - "label": "Note", - "name": "Deep research lead Agent" - }, - "dragHandle": ".note-drag-handle", - "dragging": false, - "id": "Note:SoftMapsWork", - "measured": { - "height": 136, - "width": 249 - }, - "position": { - "x": 343.5936732263499, - "y": 0.9708259629963223 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode" - }, - { - "data": { - "form": { - "text": "Uses web search tools to retrieve high-quality information." - }, - "label": "Note", - "name": "Web Search Subagent" - }, - "dragHandle": ".note-drag-handle", - "dragging": false, - "height": 142, - "id": "Note:FullBroomsBrake", - "measured": { - "height": 142, - "width": 345 - }, - "position": { - "x": -14.970547546617809, - "y": 535.2701364225055 - }, - "resizing": false, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode", - "width": 345 - }, - { - "data": { - "form": { - "text": "Uses web extraction tools to read content from search result URLs and provide high-quality material for the final report.\nMake sure the model has long context window." - }, - "label": "Note", - "name": "Content Deep Reader Subagent" - }, - "dragHandle": ".note-drag-handle", - "dragging": false, - "height": 146, - "id": "Note:OldPointsSwim", - "measured": { - "height": 146, - "width": 341 - }, - "position": { - "x": 732.4775760143543, - "y": 451.6558219159976 - }, - "resizing": false, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode", - "width": 341 - }, - { - "data": { - "form": { - "text": "Composes in-depth research reports in a consulting-firm style based on gathered research materials.\nMake sure the model has long context window." - }, - "label": "Note", - "name": "Research Synthesizer Subagent" - }, - "dragHandle": ".note-drag-handle", - "dragging": false, - "height": 170, - "id": "Note:ThickSchoolsStop", - "measured": { - "height": 170, - "width": 319 - }, - "position": { - "x": 1141.1845057663165, - "y": 329.7346968869334 - }, - "resizing": false, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode", - "width": 319 - }, - { - "data": { - "form": { - "description": "This is an agent for a specific task.", - "user_prompt": "This is the order you need to send to the agent." - }, - "label": "Tool", - "name": "flow.tool_1" - }, - "id": "Tool:SlickYearsCough", - "measured": { - "height": 48, - "width": 200 - }, - "position": { - "x": 446.18055927306057, - "y": 476.88601989245177 - }, - "sourcePosition": "right", - "targetPosition": "left", - "type": "toolNode" - } - ] - }, - "history": [], - "messages": [], - "path": [], - "retrieval": [] - }, - "avatar": "data:image/png;base64,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" -} \ No newline at end of file diff --git a/agent/templates/market_seo_article_writer.json b/agent/templates/market_seo_article_writer.json index 0309036e14..f978716c0d 100644 --- a/agent/templates/market_seo_article_writer.json +++ b/agent/templates/market_seo_article_writer.json @@ -9,6 +9,7 @@ "de": "SEO-Blog-Magnetiseur automatisch einen vollständigen SEO-optimierten Blogartikel basierend auf einer einfachen Benutzereingabe. Sie benötigen keine Schreiberfahrung. Geben Sie einfach ein Thema oder eine kurze Anfrage ein – das System übernimmt den Rest.", "zh": "此 SEO 博客写手根据简单的用户输入自动生成完整的SEO博客文章。你无需任何写作经验,只需提供一个主题或简短请求,系统将处理其余部分。"}, "canvas_type": "Marketing", + "canvas_types": ["Marketing", "Recommended"], "dsl": { "components": { "Agent:BetterSitesSend": { @@ -918,4 +919,4 @@ "retrieval": [] }, "avatar": "data:image/jpeg;base64,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" -} \ No newline at end of file +} diff --git a/agent/templates/reflective_academic_paper_generator.json b/agent/templates/reflective_academic_paper_generator.json index bfb3e51e18..1a74934c32 100644 --- a/agent/templates/reflective_academic_paper_generator.json +++ b/agent/templates/reflective_academic_paper_generator.json @@ -9,6 +9,7 @@ "de": "Ein Berichtsgenerierungsassistent, der eine lokale Wissensdatenbank nutzt, mit erweiterten Fähigkeiten in Aufgabenplanung, Schlussfolgerung und reflektierender Analyse. Empfohlen für akademische Forschungspapier-Fragen und -Antworten.", "zh": "一个使用本地知识库的学术论文生成助手,具备高级能力,包括任务规划、推理和反思性分析。推荐用于学术研究论文问答。"}, "canvas_type": "Agent", + "canvas_types": ["Agent", "Recommended"], "dsl": { "components": { "Agent:NewPumasLick": { @@ -330,4 +331,4 @@ "retrieval": [] }, "avatar": "data:image/png;base64,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" -} \ No newline at end of file +} diff --git a/agent/templates/reflective_academic_paper_generator_r.json b/agent/templates/reflective_academic_paper_generator_r.json deleted file mode 100644 index 1ff9afe59c..0000000000 --- a/agent/templates/reflective_academic_paper_generator_r.json +++ /dev/null @@ -1,333 +0,0 @@ -{ - "id": 21, - "title": { - "en": "Reflective academic paper generator", - "de": "Schreibhilfe für Reflexionspapiere", - "zh": "学术论文生成助手"}, - "description": { - "en": "A reflective academic paper generator using local knowledge base, with advanced capabilities in task planning, reasoning, and reflective analysis. Recommended for academic research paper Q&A", - "de": "Ein Berichtsgenerierungsassistent, der eine lokale Wissensdatenbank nutzt, mit erweiterten Fähigkeiten in Aufgabenplanung, Schlussfolgerung und reflektierender Analyse. Empfohlen für akademische Forschungspapier-Fragen und -Antworten.", - "zh": "一个使用本地知识库的学术论文生成助手,具备高级能力,包括任务规划、推理和反思性分析。推荐用于学术研究论文问答。"}, - "canvas_type": "Recommended", - "dsl": { - "components": { - "Agent:NewPumasLick": { - "downstream": [ - "Message:OrangeYearsShine" - ], - "obj": { - "component_name": "Agent", - "params": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "qwen3-235b-a22b-instruct-2507@Tongyi-Qianwen", - "maxTokensEnabled": true, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 128000, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "# User Query\n {sys.query}", - "role": "user" - } - ], - "sys_prompt": "## Role & Task\nYou are a **\u201cKnowledge Base Retrieval Q\\&A Agent\u201d** whose goal is to break down the user\u2019s question into retrievable subtasks, and then produce a multi-source-verified, structured, and actionable research report using the internal knowledge base.\n## Execution Framework (Detailed Steps & Key Points)\n1. **Assessment & Decomposition**\n * Actions:\n * Automatically extract: main topic, subtopics, entities (people/organizations/products/technologies), time window, geographic/business scope.\n * Output as a list: N facts/data points that must be collected (*N* ranges from 5\u201320 depending on question complexity).\n2. **Query Type Determination (Rule-Based)**\n * Example rules:\n * If the question involves a single issue but requests \u201cmethod comparison/multiple explanations\u201d \u2192 use **depth-first**.\n * If the question can naturally be split into \u22653 independent sub-questions \u2192 use **breadth-first**.\n * If the question can be answered by a single fact/specification/definition \u2192 use **simple query**.\n3. **Research Plan Formulation**\n * Depth-first: define 3\u20135 perspectives (methodology/stakeholders/time dimension/technical route, etc.), assign search keywords, target document types, and output format for each perspective.\n * Breadth-first: list subtasks, prioritize them, and assign search terms.\n * Simple query: directly provide the search sentence and required fields.\n4. **Retrieval Execution**\n * After retrieval: perform coverage check (does it contain the key facts?) and quality check (source diversity, authority, latest update time).\n * If standards are not met, automatically loop: rewrite queries (synonyms/cross-domain terms) and retry \u22643 times, or flag as requiring external search.\n5. **Integration & Reasoning**\n * Build the answer using a **fact\u2013evidence\u2013reasoning** chain. For each conclusion, attach 1\u20132 strongest pieces of evidence.\n---\n## Quality Gate Checklist (Verify at Each Stage)\n* **Stage 1 (Decomposition)**:\n * [ ] Key concepts and expected outputs identified\n * [ ] Required facts/data points listed\n* **Stage 2 (Retrieval)**:\n * [ ] Meets quality standards (see above)\n * [ ] If not met: execute query iteration\n* **Stage 3 (Generation)**:\n * [ ] Each conclusion has at least one direct evidence source\n * [ ] State assumptions/uncertainties\n * [ ] Provide next-step suggestions or experiment/retrieval plans\n * [ ] Final length and depth match user expectations (comply with word count/format if specified)\n---\n## Core Principles\n1. **Strict reliance on the knowledge base**: answers must be **fully bounded** by the content retrieved from the knowledge base.\n2. **No fabrication**: do not generate, infer, or create information that is not explicitly present in the knowledge base.\n3. **Accuracy first**: prefer incompleteness over inaccurate content.\n4. **Output format**:\n * Hierarchically clear modular structure\n * Logical grouping according to the MECE principle\n * Professionally presented formatting\n * Step-by-step cognitive guidance\n * Reasonable use of headings and dividers for clarity\n * *Italicize* key parameters\n * **Bold** critical information\n5. **LaTeX formula requirements**:\n * Inline formulas: start and end with `$`\n * Block formulas: start and end with `$$`, each `$$` on its own line\n * Block formula content must comply with LaTeX math syntax\n * Verify formula correctness\n---\n## Additional Notes (Interaction & Failure Strategy)\n* If the knowledge base does not cover critical facts: explicitly inform the user (with sample wording)\n* For time-sensitive issues: enforce time filtering in the search request, and indicate the latest retrieval date in the answer.\n* Language requirement: answer in the user\u2019s preferred language\n", - "temperature": "0.1", - "temperatureEnabled": true, - "tools": [ - { - "component_name": "Retrieval", - "name": "Retrieval", - "params": { - "cross_languages": [], - "description": "", - "empty_response": "", - "kb_ids": [], - "keywords_similarity_weight": 0.7, - "outputs": { - "formalized_content": { - "type": "string", - "value": "" - } - }, - "rerank_id": "", - "similarity_threshold": 0.2, - "top_k": 1024, - "top_n": 8, - "use_kg": false - } - } - ], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - } - }, - "upstream": [ - "begin" - ] - }, - "Message:OrangeYearsShine": { - "downstream": [], - "obj": { - "component_name": "Message", - "params": { - "content": [ - "{Agent:NewPumasLick@content}" - ] - } - }, - "upstream": [ - "Agent:NewPumasLick" - ] - }, - "begin": { - "downstream": [ - "Agent:NewPumasLick" - ], - "obj": { - "component_name": "Begin", - "params": { - "enablePrologue": true, - "inputs": {}, - "mode": "conversational", - "prologue": "\u4f60\u597d\uff01 \u6211\u662f\u4f60\u7684\u52a9\u7406\uff0c\u6709\u4ec0\u4e48\u53ef\u4ee5\u5e2e\u5230\u4f60\u7684\u5417\uff1f" - } - }, - "upstream": [] - } - }, - "globals": { - "sys.conversation_turns": 0, - "sys.files": [], - "sys.query": "", - "sys.user_id": "" - }, - "graph": { - "edges": [ - { - "data": { - "isHovered": false - }, - "id": "xy-edge__beginstart-Agent:NewPumasLickend", - "source": "begin", - "sourceHandle": "start", - "target": "Agent:NewPumasLick", - "targetHandle": "end" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:NewPumasLickstart-Message:OrangeYearsShineend", - "markerEnd": "logo", - "source": "Agent:NewPumasLick", - "sourceHandle": "start", - "style": { - "stroke": "rgba(91, 93, 106, 1)", - "strokeWidth": 1 - }, - "target": "Message:OrangeYearsShine", - "targetHandle": "end", - "type": "buttonEdge", - "zIndex": 1001 - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:NewPumasLicktool-Tool:AllBirdsNailend", - "selected": false, - "source": "Agent:NewPumasLick", - "sourceHandle": "tool", - "target": "Tool:AllBirdsNail", - "targetHandle": "end" - } - ], - "nodes": [ - { - "data": { - "form": { - "enablePrologue": true, - "inputs": {}, - "mode": "conversational", - "prologue": "\u4f60\u597d\uff01 \u6211\u662f\u4f60\u7684\u52a9\u7406\uff0c\u6709\u4ec0\u4e48\u53ef\u4ee5\u5e2e\u5230\u4f60\u7684\u5417\uff1f" - }, - "label": "Begin", - "name": "begin" - }, - "dragging": false, - "id": "begin", - "measured": { - "height": 48, - "width": 200 - }, - "position": { - "x": -9.569875358221438, - "y": 205.84018385864917 - }, - "selected": false, - "sourcePosition": "left", - "targetPosition": "right", - "type": "beginNode" - }, - { - "data": { - "form": { - "content": [ - "{Agent:NewPumasLick@content}" - ] - }, - "label": "Message", - "name": "Response" - }, - "dragging": false, - "id": "Message:OrangeYearsShine", - "measured": { - "height": 56, - "width": 200 - }, - "position": { - "x": 734.4061285881053, - "y": 199.9706031723009 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "messageNode" - }, - { - "data": { - "form": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "qwen3-235b-a22b-instruct-2507@Tongyi-Qianwen", - "maxTokensEnabled": true, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 128000, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "# User Query\n {sys.query}", - "role": "user" - } - ], - "sys_prompt": "## Role & Task\nYou are a **\u201cKnowledge Base Retrieval Q\\&A Agent\u201d** whose goal is to break down the user\u2019s question into retrievable subtasks, and then produce a multi-source-verified, structured, and actionable research report using the internal knowledge base.\n## Execution Framework (Detailed Steps & Key Points)\n1. **Assessment & Decomposition**\n * Actions:\n * Automatically extract: main topic, subtopics, entities (people/organizations/products/technologies), time window, geographic/business scope.\n * Output as a list: N facts/data points that must be collected (*N* ranges from 5\u201320 depending on question complexity).\n2. **Query Type Determination (Rule-Based)**\n * Example rules:\n * If the question involves a single issue but requests \u201cmethod comparison/multiple explanations\u201d \u2192 use **depth-first**.\n * If the question can naturally be split into \u22653 independent sub-questions \u2192 use **breadth-first**.\n * If the question can be answered by a single fact/specification/definition \u2192 use **simple query**.\n3. **Research Plan Formulation**\n * Depth-first: define 3\u20135 perspectives (methodology/stakeholders/time dimension/technical route, etc.), assign search keywords, target document types, and output format for each perspective.\n * Breadth-first: list subtasks, prioritize them, and assign search terms.\n * Simple query: directly provide the search sentence and required fields.\n4. **Retrieval Execution**\n * After retrieval: perform coverage check (does it contain the key facts?) and quality check (source diversity, authority, latest update time).\n * If standards are not met, automatically loop: rewrite queries (synonyms/cross-domain terms) and retry \u22643 times, or flag as requiring external search.\n5. **Integration & Reasoning**\n * Build the answer using a **fact\u2013evidence\u2013reasoning** chain. For each conclusion, attach 1\u20132 strongest pieces of evidence.\n---\n## Quality Gate Checklist (Verify at Each Stage)\n* **Stage 1 (Decomposition)**:\n * [ ] Key concepts and expected outputs identified\n * [ ] Required facts/data points listed\n* **Stage 2 (Retrieval)**:\n * [ ] Meets quality standards (see above)\n * [ ] If not met: execute query iteration\n* **Stage 3 (Generation)**:\n * [ ] Each conclusion has at least one direct evidence source\n * [ ] State assumptions/uncertainties\n * [ ] Provide next-step suggestions or experiment/retrieval plans\n * [ ] Final length and depth match user expectations (comply with word count/format if specified)\n---\n## Core Principles\n1. **Strict reliance on the knowledge base**: answers must be **fully bounded** by the content retrieved from the knowledge base.\n2. **No fabrication**: do not generate, infer, or create information that is not explicitly present in the knowledge base.\n3. **Accuracy first**: prefer incompleteness over inaccurate content.\n4. **Output format**:\n * Hierarchically clear modular structure\n * Logical grouping according to the MECE principle\n * Professionally presented formatting\n * Step-by-step cognitive guidance\n * Reasonable use of headings and dividers for clarity\n * *Italicize* key parameters\n * **Bold** critical information\n5. **LaTeX formula requirements**:\n * Inline formulas: start and end with `$`\n * Block formulas: start and end with `$$`, each `$$` on its own line\n * Block formula content must comply with LaTeX math syntax\n * Verify formula correctness\n---\n## Additional Notes (Interaction & Failure Strategy)\n* If the knowledge base does not cover critical facts: explicitly inform the user (with sample wording)\n* For time-sensitive issues: enforce time filtering in the search request, and indicate the latest retrieval date in the answer.\n* Language requirement: answer in the user\u2019s preferred language\n", - "temperature": "0.1", - "temperatureEnabled": true, - "tools": [ - { - "component_name": "Retrieval", - "name": "Retrieval", - "params": { - "cross_languages": [], - "description": "", - "empty_response": "", - "kb_ids": [], - "keywords_similarity_weight": 0.7, - "outputs": { - "formalized_content": { - "type": "string", - "value": "" - } - }, - "rerank_id": "", - "similarity_threshold": 0.2, - "top_k": 1024, - "top_n": 8, - "use_kg": false - } - } - ], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - }, - "label": "Agent", - "name": "Knowledge Base Agent" - }, - "dragging": false, - "id": "Agent:NewPumasLick", - "measured": { - "height": 84, - "width": 200 - }, - "position": { - "x": 347.00048227952215, - "y": 186.49109364794631 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "agentNode" - }, - { - "data": { - "form": { - "description": "This is an agent for a specific task.", - "user_prompt": "This is the order you need to send to the agent." - }, - "label": "Tool", - "name": "flow.tool_10" - }, - "dragging": false, - "id": "Tool:AllBirdsNail", - "measured": { - "height": 48, - "width": 200 - }, - "position": { - "x": 220.24819746977118, - "y": 403.31576836482583 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "toolNode" - } - ] - }, - "history": [], - "memory": [], - "messages": [], - "path": [], - "retrieval": [] - }, - "avatar": "data:image/png;base64,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" -} \ No newline at end of file diff --git a/agent/templates/seo_article_writer_r.json b/agent/templates/seo_article_writer_r.json deleted file mode 100644 index a49c4c6882..0000000000 --- a/agent/templates/seo_article_writer_r.json +++ /dev/null @@ -1,921 +0,0 @@ -{ - "id": 4, - "title": { - "en": "SEO article writer", - "de": "SEO-Blog-Magnetiseur", - "zh": "SEO 博客写手"}, - "description": { - "en": "This SEO article writer automatically generates a complete SEO-optimized blog article based on a simple user input. You don't need any writing experience. Just provide a topic or short request — the system will handle the rest.", - "de": "SEO-Blog-Magnetiseur automatisch einen vollständigen SEO-optimierten Blogartikel basierend auf einer einfachen Benutzereingabe. Sie benötigen keine Schreiberfahrung. Geben Sie einfach ein Thema oder eine kurze Anfrage ein – das System übernimmt den Rest.", - "zh": "此 SEO 博客写手根据简单的用户输入自动生成完整的SEO博客文章。你无需任何写作经验,只需提供一个主题或简短请求,系统将处理其余部分。"}, - "canvas_type": "Recommended", - "dsl": { - "components": { - "Agent:BetterSitesSend": { - "downstream": [ - "Agent:EagerNailsRemain" - ], - "obj": { - "component_name": "Agent", - "params": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.3, - "llm_id": "deepseek-chat@DeepSeek", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Balance", - "presencePenaltyEnabled": false, - "presence_penalty": 0.2, - "prompts": [ - { - "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}", - "role": "user" - } - ], - "sys_prompt": "# Role\n\nYou are the **Outline_Agent**, responsible for generating a clear and SEO-optimized blog outline based on the user's parsed writing intent and keyword strategy.\n\n# Tool Access:\n\n- You have access to a search tool called `Tavily Search`.\n\n- If you are unsure how to structure a section, you may call this tool to search for related blog outlines or content from Google.\n\n- Do not overuse it. Your job is to extract **structure**, not to write paragraphs.\n\n\n# Goals\n\n1. Create a well-structured outline with appropriate H2 and H3 headings.\n\n2. Ensure logical flow from introduction to conclusion.\n\n3. Assign 1\u20132 suggested long-tail keywords to each major section for SEO alignment.\n\n4. Make the structure suitable for downstream paragraph writing.\n\n\n\n\n#Note\n\n- Use concise, scannable section titles.\n\n- Do not write full paragraphs.\n\n- Prioritize clarity, logical progression, and SEO alignment.\n\n\n\n- If the blog type is \u201cTutorial\u201d or \u201cHow-to\u201d, include step-based sections.\n\n\n# Input\n\nYou will receive:\n\n- Writing Type (e.g., Tutorial, Informative Guide)\n\n- Target Audience\n\n- User Intent Summary\n\n- 3\u20135 long-tail keywords\n\n\nUse this information to design a structure that both informs readers and maximizes search engine visibility.\n\n# Output Format\n\n```markdown\n\n## Blog Title (suggested)\n\n[Give a short, SEO-friendly title suggestion]\n\n## Outline\n\n### Introduction\n\n- Purpose of the article\n\n- Brief context\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 1]\n\n- [Short description of what this section will cover]\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 2]\n\n- [Short description of what this section will cover]\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 3]\n\n- [Optional H3 Subsection Title A]\n\n - [Explanation of sub-point]\n\n- [Optional H3 Subsection Title B]\n\n - [Explanation of sub-point]\n\n- **Suggested keywords**: [keyword1]\n\n### Conclusion\n\n- Recap key takeaways\n\n- Optional CTA (Call to Action)\n\n- **Suggested keywords**: [keyword3]\n\n", - "temperature": 0.5, - "temperatureEnabled": true, - "tools": [ - { - "component_name": "TavilySearch", - "name": "TavilySearch", - "params": { - "api_key": "", - "days": 7, - "exclude_domains": [], - "include_answer": false, - "include_domains": [], - "include_image_descriptions": false, - "include_images": false, - "include_raw_content": true, - "max_results": 5, - "outputs": { - "formalized_content": { - "type": "string", - "value": "" - }, - "json": { - "type": "Array", - "value": [] - } - }, - "query": "sys.query", - "search_depth": "basic", - "topic": "general" - } - } - ], - "topPEnabled": false, - "top_p": 0.85, - "user_prompt": "", - "visual_files_var": "" - } - }, - "upstream": [ - "Agent:ClearRabbitsScream" - ] - }, - "Agent:ClearRabbitsScream": { - "downstream": [ - "Agent:BetterSitesSend" - ], - "obj": { - "component_name": "Agent", - "params": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "deepseek-chat@DeepSeek", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 1, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "The user query is {sys.query}", - "role": "user" - } - ], - "sys_prompt": "# Role\n\nYou are the **Parse_And_Keyword_Agent**, responsible for interpreting a user's blog writing request and generating a structured writing intent summary and keyword strategy for SEO-optimized content generation.\n\n# Goals\n\n1. Extract and infer the user's true writing intent, even if the input is informal or vague.\n\n2. Identify the writing type, target audience, and implied goal.\n\n3. Suggest 3\u20135 long-tail keywords based on the input and context.\n\n4. Output all data in a Markdown format for downstream agents.\n\n# Operating Guidelines\n\n\n- If the user's input lacks clarity, make reasonable and **conservative** assumptions based on SEO best practices.\n\n- Always choose one clear \"Writing Type\" from the list below.\n\n- Your job is not to write the blog \u2014 only to structure the brief.\n\n# Output Format\n\n```markdown\n## Writing Type\n\n[Choose one: Tutorial / Informative Guide / Marketing Content / Case Study / Opinion Piece / How-to / Comparison Article]\n\n## Target Audience\n\n[Try to be specific based on clues in the input: e.g., marketing managers, junior developers, SEO beginners]\n\n## User Intent Summary\n\n[A 1\u20132 sentence summary of what the user wants to achieve with the blog post]\n\n## Suggested Long-tail Keywords\n\n- keyword 1\n\n- keyword 2\n\n- keyword 3\n\n- keyword 4 (optional)\n\n- keyword 5 (optional)\n\n\n\n\n## Input Examples (and how to handle them)\n\nInput: \"I want to write about RAGFlow.\"\n\u2192 Output: Informative Guide, Audience: AI developers, Intent: explain what RAGFlow is and its use cases\n\nInput: \"Need a blog to promote our prompt design tool.\"\n\u2192 Output: Marketing Content, Audience: product managers or tool adopters, Intent: raise awareness and interest in the product\n\n\n\nInput: \"How to get more Google traffic using AI\"\n\u2192 Output: How-to, Audience: SEO marketers, Intent: guide readers on applying AI for SEO growth", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - } - }, - "upstream": [ - "begin" - ] - }, - "Agent:EagerNailsRemain": { - "downstream": [ - "Agent:LovelyHeadsOwn" - ], - "obj": { - "component_name": "Agent", - "params": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "deepseek-chat@DeepSeek", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 5, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}\n\n\n\nThe Outline agent output is {Agent:BetterSitesSend@content}", - "role": "user" - } - ], - "sys_prompt": "# Role\n\nYou are the **Body_Agent**, responsible for generating the full content of each section of an SEO-optimized blog based on the provided outline and keyword strategy.\n\n# Tool Access:\n\nYou can use the `Tavily Search` tool to retrieve relevant content, statistics, or examples to support each section you're writing.\n\nUse it **only** when the provided outline lacks enough information, or if the section requires factual grounding.\n\nAlways cite the original link or indicate source where possible.\n\n\n# Goals\n\n1. Write each section (based on H2/H3 structure) as a complete and natural blog paragraph.\n\n2. Integrate the suggested long-tail keywords naturally into each section.\n\n3. When appropriate, use the `Tavily Search` tool to enrich your writing with relevant facts, examples, or quotes.\n\n4. Ensure each section is clear, engaging, and informative, suitable for both human readers and search engines.\n\n\n# Style Guidelines\n\n- Write in a tone appropriate to the audience. Be explanatory, not promotional, unless it's a marketing blog.\n\n- Avoid generic filler content. Prioritize clarity, structure, and value.\n\n- Ensure SEO keywords are embedded seamlessly, not forcefully.\n\n\n\n- Maintain writing rhythm. Vary sentence lengths. Use transitions between ideas.\n\n\n# Input\n\n\nYou will receive:\n\n- Blog title\n\n- Structured outline (including section titles, keywords, and descriptions)\n\n- Target audience\n\n- Blog type and user intent\n\nYou must **follow the outline strictly**. Write content **section-by-section**, based on the structure.\n\n\n# Output Format\n\n```markdown\n\n## H2: [Section Title]\n\n[Your generated content for this section \u2014 500-600 words, using keywords naturally.]\n\n", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [ - { - "component_name": "TavilySearch", - "name": "TavilySearch", - "params": { - "api_key": "", - "days": 7, - "exclude_domains": [], - "include_answer": false, - "include_domains": [], - "include_image_descriptions": false, - "include_images": false, - "include_raw_content": true, - "max_results": 5, - "outputs": { - "formalized_content": { - "type": "string", - "value": "" - }, - "json": { - "type": "Array", - "value": [] - } - }, - "query": "sys.query", - "search_depth": "basic", - "topic": "general" - } - } - ], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - } - }, - "upstream": [ - "Agent:BetterSitesSend" - ] - }, - "Agent:LovelyHeadsOwn": { - "downstream": [ - "Message:LegalBeansBet" - ], - "obj": { - "component_name": "Agent", - "params": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "deepseek-chat@DeepSeek", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 5, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}\n\nThe Outline agent output is {Agent:BetterSitesSend@content}\n\nThe Body agent output is {Agent:EagerNailsRemain@content}", - "role": "user" - } - ], - "sys_prompt": "# Role\n\nYou are the **Editor_Agent**, responsible for finalizing the blog post for both human readability and SEO effectiveness.\n\n# Goals\n\n1. Polish the entire blog content for clarity, coherence, and style.\n\n2. Improve transitions between sections, ensure logical flow.\n\n3. Verify that keywords are used appropriately and effectively.\n\n4. Conduct a lightweight SEO audit \u2014 checking keyword density, structure (H1/H2/H3), and overall searchability.\n\n\n\n# Style Guidelines\n\n- Be precise. Avoid bloated or vague language.\n\n- Maintain an informative and engaging tone, suitable to the target audience.\n\n- Do not remove keywords unless absolutely necessary for clarity.\n\n- Ensure paragraph flow and section continuity.\n\n\n# Input\n\nYou will receive:\n\n- Full blog content, written section-by-section\n\n- Original outline with suggested keywords\n\n- Target audience and writing type\n\n# Output Format\n\n```markdown\n\n[The revised, fully polished blog post content goes here.]\n\n", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - } - }, - "upstream": [ - "Agent:EagerNailsRemain" - ] - }, - "Message:LegalBeansBet": { - "downstream": [], - "obj": { - "component_name": "Message", - "params": { - "content": [ - "{Agent:LovelyHeadsOwn@content}" - ] - } - }, - "upstream": [ - "Agent:LovelyHeadsOwn" - ] - }, - "begin": { - "downstream": [ - "Agent:ClearRabbitsScream" - ], - "obj": { - "component_name": "Begin", - "params": { - "enablePrologue": true, - "inputs": {}, - "mode": "conversational", - "prologue": "Hi! I'm your SEO blog assistant.\n\nTo get started, please tell me:\n1. What topic you want the blog to cover\n2. Who is the target audience\n3. What you hope to achieve with this blog (e.g., SEO traffic, teaching beginners, promoting a product)\n" - } - }, - "upstream": [] - } - }, - "globals": { - "sys.conversation_turns": 0, - "sys.files": [], - "sys.query": "", - "sys.user_id": "" - }, - "graph": { - "edges": [ - { - "data": { - "isHovered": false - }, - "id": "xy-edge__beginstart-Agent:ClearRabbitsScreamend", - "source": "begin", - "sourceHandle": "start", - "target": "Agent:ClearRabbitsScream", - "targetHandle": "end" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:ClearRabbitsScreamstart-Agent:BetterSitesSendend", - "source": "Agent:ClearRabbitsScream", - "sourceHandle": "start", - "target": "Agent:BetterSitesSend", - "targetHandle": "end" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:BetterSitesSendtool-Tool:SharpPensBurnend", - "source": "Agent:BetterSitesSend", - "sourceHandle": "tool", - "target": "Tool:SharpPensBurn", - "targetHandle": "end" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:BetterSitesSendstart-Agent:EagerNailsRemainend", - "source": "Agent:BetterSitesSend", - "sourceHandle": "start", - "target": "Agent:EagerNailsRemain", - "targetHandle": "end" - }, - { - "id": "xy-edge__Agent:EagerNailsRemaintool-Tool:WickedDeerHealend", - "source": "Agent:EagerNailsRemain", - "sourceHandle": "tool", - "target": "Tool:WickedDeerHeal", - "targetHandle": "end" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:EagerNailsRemainstart-Agent:LovelyHeadsOwnend", - "source": "Agent:EagerNailsRemain", - "sourceHandle": "start", - "target": "Agent:LovelyHeadsOwn", - "targetHandle": "end" - }, - { - "data": { - "isHovered": false - }, - "id": "xy-edge__Agent:LovelyHeadsOwnstart-Message:LegalBeansBetend", - "source": "Agent:LovelyHeadsOwn", - "sourceHandle": "start", - "target": "Message:LegalBeansBet", - "targetHandle": "end" - } - ], - "nodes": [ - { - "data": { - "form": { - "enablePrologue": true, - "inputs": {}, - "mode": "conversational", - "prologue": "Hi! I'm your SEO blog assistant.\n\nTo get started, please tell me:\n1. What topic you want the blog to cover\n2. Who is the target audience\n3. What you hope to achieve with this blog (e.g., SEO traffic, teaching beginners, promoting a product)\n" - }, - "label": "Begin", - "name": "begin" - }, - "id": "begin", - "measured": { - "height": 48, - "width": 200 - }, - "position": { - "x": 50, - "y": 200 - }, - "selected": false, - "sourcePosition": "left", - "targetPosition": "right", - "type": "beginNode" - }, - { - "data": { - "form": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "deepseek-chat@DeepSeek", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 1, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "The user query is {sys.query}", - "role": "user" - } - ], - "sys_prompt": "# Role\n\nYou are the **Parse_And_Keyword_Agent**, responsible for interpreting a user's blog writing request and generating a structured writing intent summary and keyword strategy for SEO-optimized content generation.\n\n# Goals\n\n1. Extract and infer the user's true writing intent, even if the input is informal or vague.\n\n2. Identify the writing type, target audience, and implied goal.\n\n3. Suggest 3\u20135 long-tail keywords based on the input and context.\n\n4. Output all data in a Markdown format for downstream agents.\n\n# Operating Guidelines\n\n\n- If the user's input lacks clarity, make reasonable and **conservative** assumptions based on SEO best practices.\n\n- Always choose one clear \"Writing Type\" from the list below.\n\n- Your job is not to write the blog \u2014 only to structure the brief.\n\n# Output Format\n\n```markdown\n## Writing Type\n\n[Choose one: Tutorial / Informative Guide / Marketing Content / Case Study / Opinion Piece / How-to / Comparison Article]\n\n## Target Audience\n\n[Try to be specific based on clues in the input: e.g., marketing managers, junior developers, SEO beginners]\n\n## User Intent Summary\n\n[A 1\u20132 sentence summary of what the user wants to achieve with the blog post]\n\n## Suggested Long-tail Keywords\n\n- keyword 1\n\n- keyword 2\n\n- keyword 3\n\n- keyword 4 (optional)\n\n- keyword 5 (optional)\n\n\n\n\n## Input Examples (and how to handle them)\n\nInput: \"I want to write about RAGFlow.\"\n\u2192 Output: Informative Guide, Audience: AI developers, Intent: explain what RAGFlow is and its use cases\n\nInput: \"Need a blog to promote our prompt design tool.\"\n\u2192 Output: Marketing Content, Audience: product managers or tool adopters, Intent: raise awareness and interest in the product\n\n\n\nInput: \"How to get more Google traffic using AI\"\n\u2192 Output: How-to, Audience: SEO marketers, Intent: guide readers on applying AI for SEO growth", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - }, - "label": "Agent", - "name": "Parse And Keyword Agent" - }, - "dragging": false, - "id": "Agent:ClearRabbitsScream", - "measured": { - "height": 84, - "width": 200 - }, - "position": { - "x": 344.7766966202233, - "y": 234.82202253184496 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "agentNode" - }, - { - "data": { - "form": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.3, - "llm_id": "deepseek-chat@DeepSeek", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 3, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Balance", - "presencePenaltyEnabled": false, - "presence_penalty": 0.2, - "prompts": [ - { - "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}", - "role": "user" - } - ], - "sys_prompt": "# Role\n\nYou are the **Outline_Agent**, responsible for generating a clear and SEO-optimized blog outline based on the user's parsed writing intent and keyword strategy.\n\n# Tool Access:\n\n- You have access to a search tool called `Tavily Search`.\n\n- If you are unsure how to structure a section, you may call this tool to search for related blog outlines or content from Google.\n\n- Do not overuse it. Your job is to extract **structure**, not to write paragraphs.\n\n\n# Goals\n\n1. Create a well-structured outline with appropriate H2 and H3 headings.\n\n2. Ensure logical flow from introduction to conclusion.\n\n3. Assign 1\u20132 suggested long-tail keywords to each major section for SEO alignment.\n\n4. Make the structure suitable for downstream paragraph writing.\n\n\n\n\n#Note\n\n- Use concise, scannable section titles.\n\n- Do not write full paragraphs.\n\n- Prioritize clarity, logical progression, and SEO alignment.\n\n\n\n- If the blog type is \u201cTutorial\u201d or \u201cHow-to\u201d, include step-based sections.\n\n\n# Input\n\nYou will receive:\n\n- Writing Type (e.g., Tutorial, Informative Guide)\n\n- Target Audience\n\n- User Intent Summary\n\n- 3\u20135 long-tail keywords\n\n\nUse this information to design a structure that both informs readers and maximizes search engine visibility.\n\n# Output Format\n\n```markdown\n\n## Blog Title (suggested)\n\n[Give a short, SEO-friendly title suggestion]\n\n## Outline\n\n### Introduction\n\n- Purpose of the article\n\n- Brief context\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 1]\n\n- [Short description of what this section will cover]\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 2]\n\n- [Short description of what this section will cover]\n\n- **Suggested keywords**: [keyword1, keyword2]\n\n### H2: [Section Title 3]\n\n- [Optional H3 Subsection Title A]\n\n - [Explanation of sub-point]\n\n- [Optional H3 Subsection Title B]\n\n - [Explanation of sub-point]\n\n- **Suggested keywords**: [keyword1]\n\n### Conclusion\n\n- Recap key takeaways\n\n- Optional CTA (Call to Action)\n\n- **Suggested keywords**: [keyword3]\n\n", - "temperature": 0.5, - "temperatureEnabled": true, - "tools": [ - { - "component_name": "TavilySearch", - "name": "TavilySearch", - "params": { - "api_key": "", - "days": 7, - "exclude_domains": [], - "include_answer": false, - "include_domains": [], - "include_image_descriptions": false, - "include_images": false, - "include_raw_content": true, - "max_results": 5, - "outputs": { - "formalized_content": { - "type": "string", - "value": "" - }, - "json": { - "type": "Array", - "value": [] - } - }, - "query": "sys.query", - "search_depth": "basic", - "topic": "general" - } - } - ], - "topPEnabled": false, - "top_p": 0.85, - "user_prompt": "", - "visual_files_var": "" - }, - "label": "Agent", - "name": "Outline Agent" - }, - "dragging": false, - "id": "Agent:BetterSitesSend", - "measured": { - "height": 84, - "width": 200 - }, - "position": { - "x": 613.4368763415628, - "y": 164.3074269048589 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "agentNode" - }, - { - "data": { - "form": { - "description": "This is an agent for a specific task.", - "user_prompt": "This is the order you need to send to the agent." - }, - "label": "Tool", - "name": "flow.tool_0" - }, - "dragging": false, - "id": "Tool:SharpPensBurn", - "measured": { - "height": 44, - "width": 200 - }, - "position": { - "x": 580.1877078861457, - "y": 287.7669662022325 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "toolNode" - }, - { - "data": { - "form": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "deepseek-chat@DeepSeek", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 5, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}\n\n\n\nThe Outline agent output is {Agent:BetterSitesSend@content}", - "role": "user" - } - ], - "sys_prompt": "# Role\n\nYou are the **Body_Agent**, responsible for generating the full content of each section of an SEO-optimized blog based on the provided outline and keyword strategy.\n\n# Tool Access:\n\nYou can use the `Tavily Search` tool to retrieve relevant content, statistics, or examples to support each section you're writing.\n\nUse it **only** when the provided outline lacks enough information, or if the section requires factual grounding.\n\nAlways cite the original link or indicate source where possible.\n\n\n# Goals\n\n1. Write each section (based on H2/H3 structure) as a complete and natural blog paragraph.\n\n2. Integrate the suggested long-tail keywords naturally into each section.\n\n3. When appropriate, use the `Tavily Search` tool to enrich your writing with relevant facts, examples, or quotes.\n\n4. Ensure each section is clear, engaging, and informative, suitable for both human readers and search engines.\n\n\n# Style Guidelines\n\n- Write in a tone appropriate to the audience. Be explanatory, not promotional, unless it's a marketing blog.\n\n- Avoid generic filler content. Prioritize clarity, structure, and value.\n\n- Ensure SEO keywords are embedded seamlessly, not forcefully.\n\n\n\n- Maintain writing rhythm. Vary sentence lengths. Use transitions between ideas.\n\n\n# Input\n\n\nYou will receive:\n\n- Blog title\n\n- Structured outline (including section titles, keywords, and descriptions)\n\n- Target audience\n\n- Blog type and user intent\n\nYou must **follow the outline strictly**. Write content **section-by-section**, based on the structure.\n\n\n# Output Format\n\n```markdown\n\n## H2: [Section Title]\n\n[Your generated content for this section \u2014 500-600 words, using keywords naturally.]\n\n", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [ - { - "component_name": "TavilySearch", - "name": "TavilySearch", - "params": { - "api_key": "", - "days": 7, - "exclude_domains": [], - "include_answer": false, - "include_domains": [], - "include_image_descriptions": false, - "include_images": false, - "include_raw_content": true, - "max_results": 5, - "outputs": { - "formalized_content": { - "type": "string", - "value": "" - }, - "json": { - "type": "Array", - "value": [] - } - }, - "query": "sys.query", - "search_depth": "basic", - "topic": "general" - } - } - ], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - }, - "label": "Agent", - "name": "Body Agent" - }, - "dragging": false, - "id": "Agent:EagerNailsRemain", - "measured": { - "height": 84, - "width": 200 - }, - "position": { - "x": 889.0614605692713, - "y": 247.00973041799065 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "agentNode" - }, - { - "data": { - "form": { - "description": "This is an agent for a specific task.", - "user_prompt": "This is the order you need to send to the agent." - }, - "label": "Tool", - "name": "flow.tool_1" - }, - "dragging": false, - "id": "Tool:WickedDeerHeal", - "measured": { - "height": 44, - "width": 200 - }, - "position": { - "x": 853.2006404239659, - "y": 364.37541577229143 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "toolNode" - }, - { - "data": { - "form": { - "delay_after_error": 1, - "description": "", - "exception_comment": "", - "exception_default_value": "", - "exception_goto": [], - "exception_method": null, - "frequencyPenaltyEnabled": false, - "frequency_penalty": 0.5, - "llm_id": "deepseek-chat@DeepSeek", - "maxTokensEnabled": false, - "max_retries": 3, - "max_rounds": 5, - "max_tokens": 4096, - "mcp": [], - "message_history_window_size": 12, - "outputs": { - "content": { - "type": "string", - "value": "" - } - }, - "parameter": "Precise", - "presencePenaltyEnabled": false, - "presence_penalty": 0.5, - "prompts": [ - { - "content": "The parse and keyword agent output is {Agent:ClearRabbitsScream@content}\n\nThe Outline agent output is {Agent:BetterSitesSend@content}\n\nThe Body agent output is {Agent:EagerNailsRemain@content}", - "role": "user" - } - ], - "sys_prompt": "# Role\n\nYou are the **Editor_Agent**, responsible for finalizing the blog post for both human readability and SEO effectiveness.\n\n# Goals\n\n1. Polish the entire blog content for clarity, coherence, and style.\n\n2. Improve transitions between sections, ensure logical flow.\n\n3. Verify that keywords are used appropriately and effectively.\n\n4. Conduct a lightweight SEO audit \u2014 checking keyword density, structure (H1/H2/H3), and overall searchability.\n\n\n\n# Style Guidelines\n\n- Be precise. Avoid bloated or vague language.\n\n- Maintain an informative and engaging tone, suitable to the target audience.\n\n- Do not remove keywords unless absolutely necessary for clarity.\n\n- Ensure paragraph flow and section continuity.\n\n\n# Input\n\nYou will receive:\n\n- Full blog content, written section-by-section\n\n- Original outline with suggested keywords\n\n- Target audience and writing type\n\n# Output Format\n\n```markdown\n\n[The revised, fully polished blog post content goes here.]\n\n", - "temperature": 0.2, - "temperatureEnabled": true, - "tools": [], - "topPEnabled": false, - "top_p": 0.75, - "user_prompt": "", - "visual_files_var": "" - }, - "label": "Agent", - "name": "Editor Agent" - }, - "dragging": false, - "id": "Agent:LovelyHeadsOwn", - "measured": { - "height": 84, - "width": 200 - }, - "position": { - "x": 1160.3332919804993, - "y": 149.50806732882472 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "agentNode" - }, - { - "data": { - "form": { - "content": [ - "{Agent:LovelyHeadsOwn@content}" - ] - }, - "label": "Message", - "name": "Response" - }, - "dragging": false, - "id": "Message:LegalBeansBet", - "measured": { - "height": 56, - "width": 200 - }, - "position": { - "x": 1370.6665839609984, - "y": 267.0323933738015 - }, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "messageNode" - }, - { - "data": { - "form": { - "text": "This workflow automatically generates a complete SEO-optimized blog article based on a simple user input. You don\u2019t need any writing experience. Just provide a topic or short request \u2014 the system will handle the rest.\n\nThe process includes the following key stages:\n\n1. **Understanding your topic and goals**\n2. **Designing the blog structure**\n3. **Writing high-quality content**\n\n\n" - }, - "label": "Note", - "name": "Workflow Overall Description" - }, - "dragHandle": ".note-drag-handle", - "dragging": false, - "height": 205, - "id": "Note:SlimyGhostsWear", - "measured": { - "height": 205, - "width": 415 - }, - "position": { - "x": -284.3143151688742, - "y": 150.47632147913419 - }, - "resizing": false, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode", - "width": 415 - }, - { - "data": { - "form": { - "text": "**Purpose**: \nThis agent reads the user\u2019s input and figures out what kind of blog needs to be written.\n\n**What it does**:\n- Understands the main topic you want to write about \n- Identifies who the blog is for (e.g., beginners, marketers, developers) \n- Determines the writing purpose (e.g., SEO traffic, product promotion, education) \n- Suggests 3\u20135 long-tail SEO keywords related to the topic" - }, - "label": "Note", - "name": "Parse And Keyword Agent" - }, - "dragHandle": ".note-drag-handle", - "dragging": false, - "height": 152, - "id": "Note:EmptyChairsShake", - "measured": { - "height": 152, - "width": 340 - }, - "position": { - "x": 295.04147626768133, - "y": 372.2755718118446 - }, - "resizing": false, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode", - "width": 340 - }, - { - "data": { - "form": { - "text": "**Purpose**: \nThis agent builds the blog structure \u2014 just like writing a table of contents before you start writing the full article.\n\n**What it does**:\n- Suggests a clear blog title that includes important keywords \n- Breaks the article into sections using H2 and H3 headings (like a professional blog layout) \n- Assigns 1\u20132 recommended keywords to each section to help with SEO \n- Follows the writing goal and target audience set in the previous step" - }, - "label": "Note", - "name": "Outline Agent" - }, - "dragHandle": ".note-drag-handle", - "dragging": false, - "height": 146, - "id": "Note:TallMelonsNotice", - "measured": { - "height": 146, - "width": 343 - }, - "position": { - "x": 598.5644991893463, - "y": 5.801054564756448 - }, - "resizing": false, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode", - "width": 343 - }, - { - "data": { - "form": { - "text": "**Purpose**: \nThis agent is responsible for writing the actual content of the blog \u2014 paragraph by paragraph \u2014 based on the outline created earlier.\n\n**What it does**:\n- Looks at each H2/H3 section in the outline \n- Writes 150\u2013220 words of clear, helpful, and well-structured content per section \n- Includes the suggested SEO keywords naturally (not keyword stuffing) \n- Uses real examples or facts if needed (by calling a web search tool like Tavily)" - }, - "label": "Note", - "name": "Body Agent" - }, - "dragHandle": ".note-drag-handle", - "dragging": false, - "height": 137, - "id": "Note:RipeCougarsBuild", - "measured": { - "height": 137, - "width": 319 - }, - "position": { - "x": 860.4854129814981, - "y": 427.2196835690842 - }, - "resizing": false, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode", - "width": 319 - }, - { - "data": { - "form": { - "text": "**Purpose**: \nThis agent reviews the entire blog draft to make sure it is smooth, professional, and SEO-friendly. It acts like a human editor before publishing.\n\n**What it does**:\n- Polishes the writing: improves sentence clarity, fixes awkward phrasing \n- Makes sure the content flows well from one section to the next \n- Double-checks keyword usage: are they present, natural, and not overused? \n- Verifies the blog structure (H1, H2, H3 headings) is correct \n- Adds two key SEO elements:\n - **Meta Title** (shows up in search results)\n - **Meta Description** (summary for Google and social sharing)" - }, - "label": "Note", - "name": "Editor Agent" - }, - "dragHandle": ".note-drag-handle", - "height": 146, - "id": "Note:OpenTurkeysSell", - "measured": { - "height": 146, - "width": 320 - }, - "position": { - "x": 1129, - "y": -30 - }, - "resizing": false, - "selected": false, - "sourcePosition": "right", - "targetPosition": "left", - "type": "noteNode", - "width": 320 - } - ] - }, - "history": [], - "messages": [], - "path": [], - "retrieval": [] - }, - "avatar": "data:image/jpeg;base64,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" -} \ No newline at end of file diff --git a/api/db/db_models.py b/api/db/db_models.py index 97a05c6cde..555f734455 100644 --- a/api/db/db_models.py +++ b/api/db/db_models.py @@ -1063,6 +1063,7 @@ class CanvasTemplate(DataBaseModel): title = JSONField(null=True, default=dict, help_text="Canvas title") description = JSONField(null=True, default=dict, help_text="Canvas description") canvas_type = CharField(max_length=32, null=True, help_text="Canvas type", index=True) + canvas_types = ListField(null=True, default=list, help_text="Canvas types") canvas_category = CharField(max_length=32, null=False, default="agent_canvas", help_text="Canvas category: agent_canvas|dataflow_canvas", index=True) dsl = JSONField(null=True, default={}) @@ -1615,6 +1616,7 @@ def migrate_db(): alter_db_column_type(migrator, "canvas_template", "description", JSONField(null=True, default=dict, help_text="Canvas description")) alter_db_add_column(migrator, "user_canvas", "canvas_category", CharField(max_length=32, null=False, default="agent_canvas", help_text="agent_canvas|dataflow_canvas", index=True)) alter_db_add_column(migrator, "canvas_template", "canvas_category", CharField(max_length=32, null=False, default="agent_canvas", help_text="agent_canvas|dataflow_canvas", index=True)) + alter_db_add_column(migrator, "canvas_template", "canvas_types", ListField(null=True, default=list, help_text="Canvas types")) alter_db_add_column(migrator, "knowledgebase", "pipeline_id", CharField(max_length=32, null=True, help_text="Pipeline ID", index=True)) alter_db_add_column(migrator, "document", "pipeline_id", CharField(max_length=32, null=True, help_text="Pipeline ID", index=True)) alter_db_add_column(migrator, "knowledgebase", "graphrag_task_id", CharField(max_length=32, null=True, help_text="Gragh RAG task ID", index=True)) diff --git a/api/db/init_data.py b/api/db/init_data.py index 59ecfb2ba4..5bd5225999 100644 --- a/api/db/init_data.py +++ b/api/db/init_data.py @@ -35,6 +35,7 @@ from api.db.services.llm_service import LLMService, LLMBundle, get_init_tenant_l from api.db.services.user_service import TenantService, UserTenantService from api.db.services.system_settings_service import SystemSettingsService from api.db.services.dialog_service import DialogService +from api.db.template_utils import normalize_canvas_template_categories from api.db.joint_services.memory_message_service import init_message_id_sequence, init_memory_size_cache, fix_missing_tokenized_memory from api.db.joint_services.tenant_model_service import get_tenant_default_model_by_type from common.constants import LLMType @@ -166,16 +167,21 @@ def add_graph_templates(): logging.warning("Missing agent templates!") return - for fnm in os.listdir(dir): + for fnm in sorted(os.listdir(dir)): + if not fnm.endswith(".json"): + logging.debug("Skipping non-json template file in %s: %s", dir, fnm) + continue + template_path = os.path.join(dir, fnm) try: - with open(os.path.join(dir, fnm), "r", encoding="utf-8") as f: - cnvs = json.load(f) + with open(template_path, "r", encoding="utf-8") as f: + cnvs = normalize_canvas_template_categories(json.load(f)) + logging.info("Loaded and normalized template file: %s", template_path) try: CanvasTemplateService.save(**cnvs) except Exception: CanvasTemplateService.update_by_id(cnvs["id"], cnvs) except Exception as e: - logging.exception(f"Add agent templates error: {e}") + logging.exception("Add agent templates error for %s: %s", template_path, e) def init_web_data(): diff --git a/api/db/template_utils.py b/api/db/template_utils.py new file mode 100644 index 0000000000..2a23d2d104 --- /dev/null +++ b/api/db/template_utils.py @@ -0,0 +1,77 @@ +# +# Copyright 2026 The InfiniFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import logging +from typing import Any + +logger = logging.getLogger(__name__) + + +def _collect_canvas_types(canvas_type: Any, canvas_types: Any) -> list[str]: + categories: list[str] = [] + + if isinstance(canvas_type, str): + category = canvas_type.strip() + if category: + categories.append(category) + + iterable_types: list[Any] + if isinstance(canvas_types, list): + iterable_types = canvas_types + elif canvas_types is None: + iterable_types = [] + else: + iterable_types = [canvas_types] + + for item in iterable_types: + if not isinstance(item, str): + continue + category = item.strip() + if not category: + continue + categories.append(category) + + deduplicated: list[str] = [] + seen: set[str] = set() + for category in categories: + if category in seen: + continue + seen.add(category) + deduplicated.append(category) + + return deduplicated + + +def normalize_canvas_template_categories(template: dict[str, Any]) -> dict[str, Any]: + normalized = dict(template) + raw_canvas_type = normalized.get("canvas_type") + raw_canvas_types = normalized.get("canvas_types") + canvas_types = _collect_canvas_types( + raw_canvas_type, + raw_canvas_types, + ) + normalized["canvas_types"] = canvas_types + normalized["canvas_type"] = canvas_types[0] if canvas_types else None + if raw_canvas_type != normalized["canvas_type"] or raw_canvas_types != normalized["canvas_types"]: + logger.debug( + "Normalized canvas categories for template_id=%s: canvas_type=%r -> %r, canvas_types=%r -> %r", + normalized.get("id"), + raw_canvas_type, + normalized["canvas_type"], + raw_canvas_types, + normalized["canvas_types"], + ) + return normalized diff --git a/test/testcases/test_web_api/test_canvas_app/test_canvas_routes_unit.py b/test/testcases/test_web_api/test_canvas_app/test_canvas_routes_unit.py index de1fb91d37..811d6aded8 100644 --- a/test/testcases/test_web_api/test_canvas_app/test_canvas_routes_unit.py +++ b/test/testcases/test_web_api/test_canvas_app/test_canvas_routes_unit.py @@ -515,12 +515,12 @@ def test_templates_rm_save_get_matrix_unit(monkeypatch): self.template_id = template_id def to_dict(self): - return {"id": self.template_id} + return {"id": self.template_id, "canvas_type": "Recommended", "canvas_types": ["Recommended", "Agent"]} monkeypatch.setattr(module.CanvasTemplateService, "get_all", lambda: [_Template("tpl-1")]) res = module.templates() assert res["code"] == module.RetCode.SUCCESS - assert res["data"] == [{"id": "tpl-1"}] + assert res["data"] == [{"id": "tpl-1", "canvas_type": "Recommended", "canvas_types": ["Recommended", "Agent"]}] _set_request_json(monkeypatch, module, {"canvas_ids": ["c1", "c2"]}) monkeypatch.setattr(module.UserCanvasService, "accessible", lambda *_args, **_kwargs: False) diff --git a/test/unit_test/api/db/test_template_utils.py b/test/unit_test/api/db/test_template_utils.py new file mode 100644 index 0000000000..0a2b1ecc3d --- /dev/null +++ b/test/unit_test/api/db/test_template_utils.py @@ -0,0 +1,66 @@ +# +# Copyright 2026 The InfiniFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import pytest + +from api.db.template_utils import normalize_canvas_template_categories + + +@pytest.mark.p2 +def test_normalize_canvas_template_categories_legacy_canvas_type(): + payload = {"id": 1, "canvas_type": "Recommended"} + + normalized = normalize_canvas_template_categories(payload) + + assert normalized["canvas_type"] == "Recommended" + assert normalized["canvas_types"] == ["Recommended"] + + +@pytest.mark.p2 +def test_normalize_canvas_template_categories_with_canvas_types_only(): + payload = { + "id": 1, + "canvas_types": ["Recommended", "Agent", "Agent", " ", 1, None], + } + + normalized = normalize_canvas_template_categories(payload) + + assert normalized["canvas_type"] == "Recommended" + assert normalized["canvas_types"] == ["Recommended", "Agent"] + + +@pytest.mark.p2 +def test_normalize_canvas_template_categories_merges_legacy_and_new_field(): + payload = { + "id": 1, + "canvas_type": "Marketing", + "canvas_types": ["Recommended", "Marketing", "Agent"], + } + + normalized = normalize_canvas_template_categories(payload) + + assert normalized["canvas_type"] == "Marketing" + assert normalized["canvas_types"] == ["Marketing", "Recommended", "Agent"] + + +@pytest.mark.p2 +def test_normalize_canvas_template_categories_no_valid_categories(): + payload = {"id": 1, "canvas_type": " ", "canvas_types": [None, 3, " "]} + + normalized = normalize_canvas_template_categories(payload) + + assert normalized["canvas_type"] is None + assert normalized["canvas_types"] == [] diff --git a/web/src/interfaces/database/agent.ts b/web/src/interfaces/database/agent.ts index 4ddabe67ad..86576d759a 100644 --- a/web/src/interfaces/database/agent.ts +++ b/web/src/interfaces/database/agent.ts @@ -87,6 +87,7 @@ export declare interface IFlow { export interface IFlowTemplate { avatar: string; canvas_type: string; + canvas_types?: string[]; create_date: string; create_time: number; canvas_category?: string; diff --git a/web/src/pages/agents/agent-templates.tsx b/web/src/pages/agents/agent-templates.tsx index 3284f92e6d..46737ba3a8 100644 --- a/web/src/pages/agents/agent-templates.tsx +++ b/web/src/pages/agents/agent-templates.tsx @@ -78,10 +78,18 @@ export default function AgentTemplates() { if (!selectMenuItem) { return templateList; } + const selectedCanvasType = selectMenuItem.toLocaleLowerCase(); return templateList.filter( - (item) => - item.canvas_type?.toLocaleLowerCase() === - selectMenuItem?.toLocaleLowerCase(), + (item) => { + if (Array.isArray(item.canvas_types) && item.canvas_types.length > 0) { + return item.canvas_types.some( + (canvasType) => + typeof canvasType === 'string' && + canvasType.toLocaleLowerCase() === selectedCanvasType, + ); + } + return item.canvas_type?.toLocaleLowerCase() === selectedCanvasType; + }, ); }, [selectMenuItem, templateList]);