{"id":598,"date":"2026-02-02T00:11:49","date_gmt":"2026-02-01T16:11:49","guid":{"rendered":"https:\/\/blog.itsmygo.uk\/2026\/02\/02\/ithy-%e5%8e%9f%e5%a7%8b%e7%a2%bc%e8%a7%a3%e8%ae%80%ef%bc%9a50-%e8%a1%8c%e7%a8%8b%e5%bc%8f%e7%a2%bc%e8%a3%a1%e7%9a%84-mixture-of-agents-%e8%a8%ad%e8%a8%88%e5%93%b2%e5%ad%b8\/"},"modified":"2026-02-08T23:18:38","modified_gmt":"2026-02-08T15:18:38","slug":"ithy-%e5%8e%9f%e5%a7%8b%e7%a2%bc%e8%a7%a3%e8%ae%80%ef%bc%9a50-%e8%a1%8c%e7%a8%8b%e5%bc%8f%e7%a2%bc%e8%a3%a1%e7%9a%84-mixture-of-agents-%e8%a8%ad%e8%a8%88%e5%93%b2%e5%ad%b8","status":"publish","type":"post","link":"https:\/\/blog.itsmygo.uk\/wordpress\/2026\/02\/02\/ithy-%e5%8e%9f%e5%a7%8b%e7%a2%bc%e8%a7%a3%e8%ae%80%ef%bc%9a50-%e8%a1%8c%e7%a8%8b%e5%bc%8f%e7%a2%bc%e8%a3%a1%e7%9a%84-mixture-of-agents-%e8%a8%ad%e8%a8%88%e5%93%b2%e5%ad%b8\/","title":{"rendered":"Ithy \u539f\u59cb\u78bc\u89e3\u8b80\uff1a50 \u884c\u7a0b\u5f0f\u78bc\u88e1\u7684 Mixture-of-Agents \u8a2d\u8a08\u54f2\u5b78"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ithy \u662f\u4e00\u500b\u5c07 Mixture-of-Agents\uff08MoA\uff09\u6982\u5ff5\u6fc3\u7e2e\u5230 50 \u884c Python \u7a0b\u5f0f\u78bc\u7684\u958b\u6e90\u5c08\u6848\uff0c\u6838\u5fc3\u601d\u60f3\u662f\uff1a\u540c\u6642\u5411\u591a\u500b LLM \u767c\u554f\uff0c\u518d\u7531\u4e00\u500b\u805a\u5408\u5668\u6a21\u578b\u628a\u6240\u6709\u56de\u7b54\u5408\u6210\u70ba\u4e00\u500b\u66f4\u9ad8\u54c1\u8cea\u7684\u6700\u7d42\u56de\u61c9\u3002\u9019\u500b\u5c08\u6848\u503c\u5f97\u8b80\u539f\u59cb\u78bc\uff0c\u4e0d\u662f\u56e0\u70ba\u5b83\u9f90\u5927\u8907\u96dc\uff0c\u6070\u6070\u76f8\u53cd\u2014\u2014\u5b83\u6975\u5ea6\u7cbe\u7c21\uff0c\u7528\u6700\u5c11\u7684\u7a0b\u5f0f\u78bc\u5c55\u793a\u4e86\u591a\u6a21\u578b\u5354\u4f5c\u7684\u5b8c\u6574\u67b6\u69cb\u3002\u8b80\u5b8c\u4f60\u80fd\u5b78\u5230\uff1a\u5982\u4f55\u8a2d\u8a08\u591a\u6a21\u578b\u4e26\u884c\u547c\u53eb\u3001\u5982\u4f55\u7528 Prompt Engineering \u9a45\u52d5\u805a\u5408\u908f\u8f2f\u3001\u4ee5\u53ca\u5982\u4f55\u5c07\u7814\u7a76\u578b AI \u7cfb\u7d71\u7684 prompt \u6a21\u7d44\u5316\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/winsonluk\/ithy\">Ithy GitHub Repository<\/a> \u2014 \u5c08\u6848\u539f\u59cb\u78bc\uff0c\u5305\u542b 50 \u884c\u6838\u5fc3\u5be6\u4f5c\u8207\u5b8c\u6574\u7684 prompt \u6a21\u7d44\u8a2d\u8a08<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5c08\u6848\u6982\u89bd<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ithy \u7684\u9748\u611f\u4f86\u81ea Together.ai \u7684 <a href=\"https:\/\/github.com\/togethercomputer\/MoA\">MoA \u5c08\u6848<\/a> \u548c <a href=\"https:\/\/github.com\/assafelovic\/gpt-researcher\">GPT Researcher<\/a>\uff0c\u76ee\u6a19\u662f\u5c07\u300c\u591a\u6a21\u578b\u6df7\u5408\u63a8\u7406\u300d\u7684\u6982\u5ff5\u901a\u7528\u5316\u3002\u6574\u500b\u5009\u5eab\u53ea\u6709 6 \u500b\u6a94\u6848\uff0c\u537b\u6db5\u84cb\u4e86\u5f9e\u57fa\u790e MoA \u5be6\u4f5c\u5230\u5b8c\u6574\u7814\u7a76\u5831\u544a\u751f\u6210\u7684 prompt \u9ad4\u7cfb\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6280\u8853\u68e7<\/strong>\uff1aPython\u3001asyncio\u3001Together API <strong>\u6388\u6b0a<\/strong>\uff1aMIT License <strong>\u898f\u6a21<\/strong>\uff1a6 \u500b\u6a94\u6848\uff0c\u6838\u5fc3\u908f\u8f2f 50 \u884c\uff0cprompt \u6a21\u7d44\u7d04 500 \u884c<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u67b6\u69cb\u7e3d\u89bd<\/h2>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">ithy\/\n\u251c\u2500\u2500 main.py                          <span class=\"hljs-comment\"># 50 \u884c\u6838\u5fc3\u5be6\u4f5c\uff1aMoA \u7684\u6700\u5c0f\u53ef\u884c\u7bc4\u4f8b<\/span>\n\u251c\u2500\u2500 prompts\/\n\u2502   \u251c\u2500\u2500 aggregator_prompts.py        <span class=\"hljs-comment\"># \u805a\u5408\u5668 prompt\uff1a\u6307\u5c0e\u6a21\u578b\u6574\u5408\u591a\u6e90\u56de\u61c9<\/span>\n\u2502   \u251c\u2500\u2500 search_prompts.py            <span class=\"hljs-comment\"># \u641c\u5c0b prompt\uff1a\u67e5\u8a62\u6539\u5beb\u8207\u7dda\u4e0a\u641c\u5c0b\u7d50\u679c\u6574\u5408<\/span>\n\u2502   \u2514\u2500\u2500 research_prompts.py          <span class=\"hljs-comment\"># \u7814\u7a76 prompt\uff1a\u5b8c\u6574\u7684\u7814\u7a76\u5831\u544a\u751f\u6210\u9ad4\u7cfb<\/span>\n\u251c\u2500\u2500 README.md                        <span class=\"hljs-comment\"># \u82f1\u6587\u5c08\u6848\u8aaa\u660e<\/span>\n\u251c\u2500\u2500 README-CN.md                     <span class=\"hljs-comment\"># \u4e2d\u6587\u5c08\u6848\u8aaa\u660e<\/span>\n\u2514\u2500\u2500 LICENSE                          <span class=\"hljs-comment\"># MIT \u6388\u6b0a<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u500b\u67b6\u69cb\u7684\u8a2d\u8a08\u54f2\u5b78\u975e\u5e38\u6e05\u6670\uff1a<strong>\u4e00\u500b\u6975\u7c21\u7684\u57f7\u884c\u5f15\u64ce + \u4e00\u5957\u53ef\u66ff\u63db\u7684 prompt \u6a21\u7d44<\/strong>\u3002<code>main.py<\/code> \u8ca0\u8cac\u300c\u600e\u9ebc\u8dd1\u300d\uff0c<code>prompts\/<\/code> \u76ee\u9304\u8ca0\u8cac\u300c\u8dd1\u4ec0\u9ebc\u300d\u3002\u9019\u7a2e\u5206\u96e2\u8b93\u540c\u4e00\u5957\u4e26\u884c\u547c\u53eb\u6a5f\u5236\u53ef\u4ee5\u670d\u52d9\u65bc\u4e0d\u540c\u7684\u61c9\u7528\u5834\u666f\u2014\u2014\u5f9e\u7c21\u55ae\u7684\u554f\u7b54\u805a\u5408\u5230\u8907\u96dc\u7684\u7814\u7a76\u5831\u544a\u751f\u6210\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u6838\u5fc3\u8a2d\u8a08\u89e3\u6790<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u4e00\uff1a\u6975\u7c21\u7684 Fan-out \/ Fan-in \u67b6\u69cb<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ithy \u7684 <code>main.py<\/code> \u53ea\u6709 50 \u884c\uff0c\u537b\u5be6\u73fe\u4e86\u5b8c\u6574\u7684 Mixture-of-Agents \u6d41\u7a0b\u3002\u9019\u500b\u8a2d\u8a08\u7684\u6838\u5fc3\u662f\u4e00\u500b\u7d93\u5178\u7684 Fan-out \/ Fan-in \u6a21\u5f0f\uff1a\u5148\u628a\u540c\u4e00\u500b\u554f\u984c\u300c\u6247\u51fa\u300d\u7d66\u591a\u500b\u6a21\u578b\uff0c\u518d\u628a\u6240\u6709\u56de\u61c9\u300c\u6247\u5165\u300d\u5230\u4e00\u500b\u805a\u5408\u5668\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/winsonluk\/ithy\/blob\/main\/main.py\"><code>main.py<\/code><\/a> \u2014 50 \u884c\u6838\u5fc3\u5be6\u4f5c\uff0c\u5c55\u793a MoA \u7684\u6700\u5c0f\u53ef\u884c\u67b6\u69cb<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">reference_models = &#91;\n    <span class=\"hljs-string\">\"meta-llama\/Llama-3.3-70B-Instruct-Turbo\"<\/span>,\n    <span class=\"hljs-string\">\"Qwen\/Qwen2.5-72B-Instruct-Turbo\"<\/span>,\n    <span class=\"hljs-string\">\"Qwen\/Qwen2.5-Coder-32B-Instruct\"<\/span>,\n    <span class=\"hljs-string\">\"microsoft\/WizardLM-2-8x22B\"<\/span>\n]\naggregator_model = <span class=\"hljs-string\">\"Qwen\/Qwen2.5-72B-Instruct-Turbo\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u6a21\u578b\u6e05\u55ae\u7684\u8a2d\u8a08\u503c\u5f97\u6ce8\u610f\uff1a\u56db\u500b reference models \u523b\u610f\u9078\u64c7\u4e86\u4e0d\u540c\u5ee0\u5546\u3001\u4e0d\u540c\u898f\u6a21\u3001\u4e0d\u540c\u5c08\u9577\u7684\u6a21\u578b\u3002Llama 3.3 70B \u662f\u901a\u7528\u5927\u6a21\u578b\u3001Qwen 2.5 72B \u662f\u53e6\u4e00\u500b\u901a\u7528\u9078\u624b\u3001Qwen 2.5 Coder 32B \u5c08\u7cbe\u7a0b\u5f0f\u78bc\u3001WizardLM-2 8x22B \u5247\u662f MoE \u67b6\u69cb\u6a21\u578b\u3002\u9019\u7a2e\u300c\u591a\u6a23\u6027\u512a\u5148\u300d\u7684\u9078\u64c7\u7b56\u7565\u9ad4\u73fe\u4e86 MoA \u7684\u6838\u5fc3\u5047\u8a2d\uff1a<strong>\u4e0d\u540c\u6a21\u578b\u7684\u504f\u5dee\u65b9\u5411\u4e0d\u540c\uff0c\u805a\u5408\u5f8c\u80fd\u4e92\u76f8\u4fee\u6b63<\/strong>\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u800c\u805a\u5408\u5668\u9078\u7528\u4e86\u8207 reference model \u76f8\u540c\u7684 Qwen 2.5 72B\uff0c\u9019\u6697\u793a\u4e86\u4e00\u500b\u8a2d\u8a08\u53d6\u6368\uff1a\u805a\u5408\u5668\u4e0d\u9700\u8981\u662f\u300c\u6700\u5f37\u300d\u7684\u6a21\u578b\uff0c\u5b83\u9700\u8981\u7684\u662f\u8db3\u5920\u7684\u8a9e\u8a00\u7406\u89e3\u80fd\u529b\u4f86\u5224\u65b7\u548c\u6574\u5408\u591a\u500b\u56de\u61c9\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u4e8c\uff1aasyncio \u4e26\u884c\u547c\u53eb\u8207\u6307\u6578\u9000\u907f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6574\u500b\u4e26\u884c\u547c\u53eb\u6a5f\u5236\u7528\u4e0d\u5230 15 \u884c\u5c31\u5be6\u73fe\u4e86\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">async<\/span> def run_llm(model):\n    <span class=\"hljs-string\">\"\"<\/span><span class=\"hljs-string\">\"Run a single LLM call with a reference model.\"<\/span><span class=\"hljs-string\">\"\"<\/span>\n    <span class=\"hljs-keyword\">for<\/span> sleep_time <span class=\"hljs-keyword\">in<\/span> &#91;<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">4<\/span>]:\n        <span class=\"hljs-keyword\">try<\/span>:\n            response = <span class=\"hljs-keyword\">await<\/span> async_client.chat.completions.create(\n                model=model,\n                messages=&#91;{<span class=\"hljs-string\">\"role\"<\/span>: <span class=\"hljs-string\">\"user\"<\/span>, <span class=\"hljs-string\">\"content\"<\/span>: user_prompt}],\n                temperature=<span class=\"hljs-number\">0.7<\/span>,\n                max_tokens=<span class=\"hljs-number\">512<\/span>,\n            )\n            <span class=\"hljs-keyword\">break<\/span>\n        except together.error.RateLimitError <span class=\"hljs-keyword\">as<\/span> e:\n            print(e)\n            <span class=\"hljs-keyword\">await<\/span> asyncio.sleep(sleep_time)\n    <span class=\"hljs-keyword\">return<\/span> response.choices&#91;<span class=\"hljs-number\">0<\/span>].message.content\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u88e1\u6709\u5e7e\u500b\u7d30\u5fae\u4f46\u91cd\u8981\u7684\u8a2d\u8a08\u6c7a\u7b56\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>\u6307\u6578\u9000\u907f\u7528\u786c\u7de8\u78bc\u5217\u8868 <code>[1, 2, 4]<\/code><\/strong>\uff1a\u4e0d\u7528\u8a08\u7b97\u516c\u5f0f\uff0c\u76f4\u63a5\u7528\u4e00\u500b\u53ef\u8b80\u7684\u5217\u8868\u3002\u6700\u591a\u91cd\u8a66 3 \u6b21\uff0c\u7e3d\u7b49\u5f85\u6642\u9593 7 \u79d2\u3002\u9019\u662f\u300c\u5920\u7528\u5c31\u597d\u300d\u7684\u5de5\u7a0b\u54f2\u5b78\u2014\u2014\u5c0d\u65bc\u4e00\u500b\u793a\u7bc4\u5c08\u6848\uff0c\u4e0d\u9700\u8981\u5f15\u5165 tenacity \u6216\u81ea\u8a02\u7684 retry decorator\u3002<\/li>\n\n\n<li><strong><code>temperature=0.7<\/code><\/strong>\uff1a\u9019\u500b\u6eab\u5ea6\u503c\u4e0d\u662f\u96a8\u610f\u9078\u7684\u3002\u592a\u4f4e\uff08\u5982 0.1\uff09\u6703\u8b93\u6240\u6709\u6a21\u578b\u50be\u5411\u65bc\u7d66\u51fa\u76f8\u4f3c\u7684\u56de\u7b54\uff0c\u5931\u53bb\u591a\u6a23\u6027\uff1b\u592a\u9ad8\uff08\u5982 1.0\uff09\u5247\u6703\u5f15\u5165\u592a\u591a\u566a\u97f3\u30020.7 \u662f\u4e00\u500b\u7d93\u904e\u5be6\u8e10\u9a57\u8b49\u7684\u5e73\u8861\u9ede\uff0c\u8b93\u6bcf\u500b\u6a21\u578b\u4fdd\u6709\u81ea\u5df1\u7684\u300c\u89c0\u9ede\u300d\u3002<\/li>\n\n\n<li><strong><code>max_tokens=512<\/code><\/strong>\uff1a\u9650\u5236\u6bcf\u500b reference model \u7684\u8f38\u51fa\u9577\u5ea6\uff0c\u78ba\u4fdd\u805a\u5408\u5668\u4e0d\u6703\u88ab\u904e\u9577\u7684\u4e0a\u4e0b\u6587\u6df9\u6c92\u3002\u9019\u4e5f\u662f\u4e00\u7a2e\u6210\u672c\u63a7\u5236\u7b56\u7565\u2014\u2014\u56db\u500b\u6a21\u578b\u5404 512 tokens\uff0c\u7e3d\u5171 2048 tokens \u7684\u4e0a\u4e0b\u6587\u9935\u7d66\u805a\u5408\u5668\uff0c\u662f\u4e00\u500b\u5408\u7406\u7684\u898f\u6a21\u3002<\/li>\n\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u4e09\uff1a\u805a\u5408\u7684\u96d9\u901a\u9053\u8a2d\u8a08\u2014\u2014System Prompt \u6ce8\u5165\u56de\u61c9<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u805a\u5408\u968e\u6bb5\u7684\u8a2d\u8a08\u662f\u6574\u500b\u5c08\u6848\u6700\u7cbe\u5de7\u7684\u90e8\u5206\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">async<\/span> def main():\n    results = <span class=\"hljs-keyword\">await<\/span> asyncio.gather(*&#91;run_llm(model) <span class=\"hljs-keyword\">for<\/span> model <span class=\"hljs-keyword\">in<\/span> reference_models])\n    finalStream = client.chat.completions.create(\n        model=aggregator_model,\n        messages=&#91;\n            {<span class=\"hljs-string\">\"role\"<\/span>: <span class=\"hljs-string\">\"system\"<\/span>, <span class=\"hljs-string\">\"content\"<\/span>: aggreagator_system_prompt + <span class=\"hljs-string\">\"\\n\"<\/span> +\n             <span class=\"hljs-string\">\"\\n\"<\/span>.join(&#91;f<span class=\"hljs-string\">\"{i+1}. {str(element)}\"<\/span> <span class=\"hljs-keyword\">for<\/span> i, element <span class=\"hljs-keyword\">in<\/span> enumerate(results)])},\n            {<span class=\"hljs-string\">\"role\"<\/span>: <span class=\"hljs-string\">\"user\"<\/span>, <span class=\"hljs-string\">\"content\"<\/span>: user_prompt},\n        ],\n        stream=True,\n    )\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\u610f reference models \u7684\u56de\u61c9\u662f\u88ab\u6ce8\u5165\u5230 <strong>system prompt<\/strong> \u800c\u975e user message \u4e2d\u7684\u3002\u9019\u500b\u8a2d\u8a08\u6709\u6df1\u610f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>System prompt \u4f4d\u7f6e<\/strong>\u8b93\u805a\u5408\u5668\u628a\u9019\u4e9b\u56de\u61c9\u8996\u70ba\u300c\u80cc\u666f\u77e5\u8b58\u300d\u800c\u975e\u300c\u9700\u8981\u56de\u7b54\u7684\u554f\u984c\u300d<\/li>\n\n\n<li><strong>User message \u91cd\u8907\u539f\u59cb\u554f\u984c<\/strong>\u8b93\u805a\u5408\u5668\u77e5\u9053\u6700\u7d42\u8981\u56de\u7b54\u4ec0\u9ebc<\/li>\n\n\n<li><strong>\u7de8\u865f\u5217\u8868\u683c\u5f0f<\/strong>\uff08<code>1. response1\\n2. response2<\/code>\uff09\u8b93\u805a\u5408\u5668\u80fd\u6e05\u695a\u5340\u5206\u4e0d\u540c\u4f86\u6e90<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b64\u5916\uff0c\u805a\u5408\u968e\u6bb5\u4f7f\u7528\u4e86 <code>stream=True<\/code> \u800c reference \u968e\u6bb5\u6c92\u6709\u3002\u9019\u53cd\u6620\u4e86\u4e0d\u540c\u7684\u4f7f\u7528\u8005\u9ad4\u9a57\u8003\u91cf\uff1areference \u968e\u6bb5\u662f\u5f8c\u53f0\u904b\u7b97\uff0c\u4e0d\u9700\u8981\u5373\u6642\u53cd\u994b\uff1b\u4f46\u6700\u7d42\u56de\u7b54\u9700\u8981\u4e32\u6d41\u8f38\u51fa\uff0c\u8b93\u4f7f\u7528\u8005\u4e0d\u7528\u7b49\u5f85\u5b8c\u6574\u751f\u6210\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u56db\uff1a\u805a\u5408\u5668 Prompt \u7684\u5206\u5c64\u8a2d\u8a08<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u805a\u5408\u5668\u7684 prompt \u5728 <code>aggregator_prompts.py<\/code> \u4e2d\u88ab\u5206\u6210\u4e86\u5169\u5c64\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/winsonluk\/ithy\/blob\/main\/prompts\/aggregator_prompts.py\"><code>prompts\/aggregator_prompts.py<\/code><\/a> \u2014 \u805a\u5408\u5668 prompt \u6a21\u7d44\uff0c\u5c55\u793a\u4e86\u57fa\u790e\u6307\u4ee4\u8207\u589e\u5f37\u6307\u4ee4\u7684\u5206\u5c64\u8a2d\u8a08<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7b2c\u4e00\u5c64\uff1a\u57fa\u790e\u6307\u4ee4\uff08\u4f86\u81ea Together.ai MoA\uff09<\/strong><\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">prompt_aggregator = <span class=\"hljs-string\">\"\"<\/span><span class=\"hljs-string\">\"\n- You have been provided with a set of responses from various open-source models to the latest user query.\n- Your task is to synthesize these responses into a single, high-quality response.\n- It is crucial to critically evaluate the information provided in these responses, recognizing that some of it may be biased or incorrect.\n- Your response should not simply replicate the given answers but should offer a refined, accurate, and comprehensive reply to the instruction.\n- Ensure your response is well-structured, coherent, and adheres to the highest standards of accuracy and reliability.\n\"<\/span><span class=\"hljs-string\">\"\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7b2c\u4e8c\u5c64\uff1aIthy \u589e\u5f37\u6307\u4ee4<\/strong><\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">prompt_aggregator = prompt_aggregator + <span class=\"hljs-string\">\"\"<\/span><span class=\"hljs-string\">\"\n- Your knowledge cutoff is today's date, {datetime.now().strftime(\"<\/span>%A, %Y-%m-%d<span class=\"hljs-string\">\")}.\n- Determine the prevalent points of agreement (consensus) among the provided sources.\n- Your strongest points should be concepts directly related to the user's query.\n- Prioritize consensus ideas found in multiple sources or websites.\n- Combine similar concepts into single, comprehensive points, presenting each unique point only once in your response.\n- Do not speculate. Do not use hypotheticals. Do not make assumptions. Do not include placeholders.\n\"<\/span><span class=\"hljs-string\">\"\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u7a2e\u300c\u57fa\u790e + \u589e\u5f37\u300d\u7684\u5206\u5c64\u7b56\u7565\u975e\u5e38\u503c\u5f97\u5b78\u7fd2\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li><strong>\u5171\u8b58\u512a\u5148<\/strong>\uff08consensus\uff09\uff1a\u8981\u6c42\u805a\u5408\u5668\u5148\u627e\u51fa\u591a\u500b\u6a21\u578b\u7684\u5171\u8b58\u9ede\uff0c\u9019\u662f MoA \u7684\u7d71\u8a08\u5b78\u57fa\u790e\u2014\u2014\u5982\u679c\u591a\u6578\u6a21\u578b\u90fd\u540c\u610f\u67d0\u500b\u89c0\u9ede\uff0c\u5b83\u66f4\u53ef\u80fd\u662f\u6b63\u78ba\u7684<\/li>\n\n\n<li><strong>\u53bb\u91cd\u5408\u4f75<\/strong>\uff1a\u300cpresenting each unique point only once\u300d\u907f\u514d\u4e86\u805a\u5408\u5f8c\u7684\u5197\u9918<\/li>\n\n\n<li><strong>\u7981\u6b62\u63a8\u6e2c<\/strong>\uff1a\u6700\u5f8c\u4e00\u884c\u7684\u516d\u500b\u300cDo not\u300d\u5f62\u6210\u4e86\u56b4\u683c\u7684\u8b77\u6b04\uff0c\u9632\u6b62\u805a\u5408\u5668\u5728\u6574\u5408\u6642\u6dfb\u52a0\u81ea\u5df1\u7684\u81c6\u6e2c<\/li>\n\n\n<li><strong>\u52d5\u614b\u65e5\u671f\u6ce8\u5165<\/strong>\uff1a\u900f\u904e <code>datetime.now()<\/code> \u8b93\u6a21\u578b\u77e5\u9053\u7576\u524d\u6642\u9593\uff0c\u89e3\u6c7a\u77e5\u8b58\u622a\u65b7\u554f\u984c<\/li>\n\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u4e94\uff1a\u641c\u5c0b Prompt \u7684\u5169\u968e\u6bb5\u67b6\u69cb<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>search_prompts.py<\/code> \u8a2d\u8a08\u4e86\u4e00\u5957\u300c\u67e5\u8a62\u6539\u5beb \u2192 \u641c\u5c0b\u7d50\u679c\u6574\u5408\u300d\u7684\u5169\u968e\u6bb5\u6d41\u7a0b\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/winsonluk\/ithy\/blob\/main\/prompts\/search_prompts.py\"><code>prompts\/search_prompts.py<\/code><\/a> \u2014 \u641c\u5c0b prompt \u6a21\u7d44\uff0c\u5c55\u793a\u4e86\u67e5\u8a62\u6539\u5beb\u8207\u641c\u5c0b\u6574\u5408\u7684\u5169\u968e\u6bb5\u8a2d\u8a08<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u968e\u6bb5\u4e00\uff1a\u67e5\u8a62\u6539\u5beb<\/strong><\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">prompt_search_query = {\n    <span class=\"hljs-string\">\"role\"<\/span>: <span class=\"hljs-string\">\"user\"<\/span>,\n    <span class=\"hljs-string\">\"content\"<\/span>: f<span class=\"hljs-string\">\"\"<\/span><span class=\"hljs-string\">\"\n- Your task: Rephrase the user's input into 2 concise online search queries of under 6 keywords each.\n- Googling these queries should find all information needed to respond to the user.\n- You must only output the search queries, which should contain fewer than 6 online search keywords each.\n- You must output exactly 2 search queries, formatted as &#91;\"<\/span>&lt;query_str_0&gt;<span class=\"hljs-string\">\", \"<\/span>&lt;query_str_1&gt;<span class=\"hljs-string\">\"].\n- Absolutely do not output anything else.\n\"<\/span><span class=\"hljs-string\">\"\"<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u88e1\u7684\u8a2d\u8a08\u6c7a\u7b56\u5305\u62ec\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>\u9650\u5236 6 \u500b\u95dc\u9375\u5b57<\/strong>\uff1a\u641c\u5c0b\u5f15\u64ce\u5c0d\u77ed\u67e5\u8a62\u6548\u679c\u66f4\u597d\uff0c\u904e\u9577\u7684\u67e5\u8a62\u53cd\u800c\u6703\u964d\u4f4e\u7d50\u679c\u54c1\u8cea<\/li>\n\n\n<li><strong>\u751f\u6210 2 \u500b\u67e5\u8a62<\/strong>\uff1a\u8986\u84cb\u4e0d\u540c\u9762\u5411\uff0c\u4f46\u4e0d\u6703\u592a\u591a\u9020\u6210\u641c\u5c0b\u6210\u672c\u904e\u9ad8<\/li>\n\n\n<li><strong>\u56b4\u683c\u7684\u8f38\u51fa\u683c\u5f0f<\/strong>\uff08JSON array\uff09\uff1a\u65b9\u4fbf\u7a0b\u5f0f\u89e3\u6790\uff0c\u907f\u514d\u6a21\u578b\u8f38\u51fa\u984d\u5916\u6587\u5b57<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u968e\u6bb5\u4e8c\uff1a\u641c\u5c0b\u7d50\u679c\u6574\u5408<\/strong><\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">prompt_online_response = &#91;\"<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">instructions<\/span>&gt;<\/span>\n...\n- If the search results can be relevant to the user's query as of today's date, create a bullet point list of relevant references with their href URLs. Skip irrelevant or out-of-date sources.\n- Do not speculate. Do not use hypotheticals. Do not make assumptions. Do not include placeholders. Only provide citations from the search results.\n...\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">instructions<\/span>&gt;<\/span>\n...\n\"]\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u641c\u5c0b\u7d50\u679c\u6574\u5408 prompt \u4f7f\u7528\u4e86 XML \u98a8\u683c\u7684\u6a19\u7c64\uff08<code>&lt;instructions&gt;<\/code>, <code>&lt;search_results&gt;<\/code>, <code>&lt;user&gt;<\/code>\uff09\u4f86\u7d50\u69cb\u5316\u4e0d\u540c\u5340\u584a\u3002\u9019\u7a2e\u505a\u6cd5\u8b93\u6a21\u578b\u80fd\u66f4\u6e05\u695a\u5730\u5340\u5206\u300c\u6307\u4ee4\u300d\u3001\u300c\u4e0a\u4e0b\u6587\u300d\u548c\u300c\u67e5\u8a62\u300d\u4e09\u8005\u7684\u908a\u754c\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u516d\uff1a\u7814\u7a76\u5831\u544a Prompt \u7684 Strategy \u6a21\u5f0f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>research_prompts.py<\/code> \u662f\u6574\u500b\u5c08\u6848\u4e2d\u6700\u9f90\u5927\u7684\u6a21\u7d44\uff0c\u5b83\u5be6\u73fe\u4e86\u4e00\u500b\u985e\u4f3c Strategy Pattern \u7684\u5831\u544a\u751f\u6210\u7cfb\u7d71\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/winsonluk\/ithy\/blob\/main\/prompts\/research_prompts.py\"><code>prompts\/research_prompts.py<\/code><\/a> \u2014 \u7814\u7a76 prompt \u6a21\u7d44\uff0c\u5305\u542b\u5b8c\u6574\u7684\u5831\u544a\u751f\u6210\u7b56\u7565\u9ad4\u7cfb<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">report_type_mapping = {\n    ReportType.ResearchReport.value: generate_report_prompt,\n    ReportType.ResourceReport.value: generate_resource_report_prompt,\n    ReportType.OutlineReport.value: generate_outline_report_prompt,\n    ReportType.CustomReport.value: generate_custom_report_prompt,\n    ReportType.SubtopicReport.value: generate_subtopic_report_prompt,\n    ReportType.DeepResearch.value: generate_deep_research_prompt,\n}\n\ndef get_prompt_by_report_type(report_type):\n    prompt_by_type = report_type_mapping.get(report_type)\n    default_report_type = ReportType.ResearchReport.value\n    <span class=\"hljs-keyword\">if<\/span> not prompt_by_type:\n        warnings.warn(...)\n        prompt_by_type = report_type_mapping.get(default_report_type)\n    <span class=\"hljs-keyword\">return<\/span> prompt_by_type\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u500b mapping \u8a2d\u8a08\u8b93\u5831\u544a\u985e\u578b\u8207 prompt \u751f\u6210\u51fd\u6578\u89e3\u8026\u3002\u65b0\u589e\u4e00\u7a2e\u5831\u544a\u985e\u578b\u53ea\u9700\u8981\uff1a\u5beb\u4e00\u500b\u65b0\u7684 prompt \u51fd\u6578\uff0c\u7136\u5f8c\u5728 mapping \u4e2d\u52a0\u4e00\u884c\u3002\u540c\u6642\uff0c<code>get_prompt_by_report_type<\/code> \u63d0\u4f9b\u4e86\u512a\u96c5\u7684\u964d\u7d1a\u6a5f\u5236\u2014\u2014\u672a\u77e5\u7684\u5831\u544a\u985e\u578b\u6703 fallback \u5230\u9810\u8a2d\u7684 ResearchReport\uff0c\u4e26\u767c\u51fa warning \u800c\u975e\u62cb\u51fa\u7570\u5e38\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u4e03\uff1a\u5831\u544a Prompt \u4e2d\u7684\u5f15\u7528\u683c\u5f0f\u63a7\u5236<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6bcf\u500b\u5831\u544a\u751f\u6210 prompt \u90fd\u5305\u542b\u4e86\u7cbe\u7d30\u7684\u5f15\u7528\u683c\u5f0f\u63a7\u5236\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">reference_prompt = <span class=\"hljs-string\">\"\"<\/span>\n<span class=\"hljs-keyword\">if<\/span> report_source == ReportSource.Web.value:\n    reference_prompt = f<span class=\"hljs-string\">\"\"<\/span><span class=\"hljs-string\">\"\nYou MUST write all used source urls at the end of the report as references, and make sure to not add duplicated sources, but only one reference for each.\nEvery url should be hyperlinked: &#91;url website](url)\nAdditionally, you MUST include hyperlinks to the relevant URLs wherever they are referenced in the report:\n\neg: Author, A. A. (Year, Month Date). Title of web page. Website Name. &#91;url website](url)\n\"<\/span><span class=\"hljs-string\">\"\"<\/span>\n<span class=\"hljs-keyword\">else<\/span>:\n    reference_prompt = f<span class=\"hljs-string\">\"\"<\/span><span class=\"hljs-string\">\"\nYou MUST write all used source document names at the end of the report as references, and make sure to not add duplicated sources, but only one reference for each.\"<\/span>\n<span class=\"hljs-string\">\"\"<\/span><span class=\"hljs-string\">\"\n<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u88e1\u7684\u8a2d\u8a08\u6839\u64da\u8cc7\u6599\u4f86\u6e90\uff08Web vs \u672c\u5730\u6587\u4ef6\uff09\u52d5\u614b\u5207\u63db\u5f15\u7528\u683c\u5f0f\u3002Web \u4f86\u6e90\u8981\u6c42\u5305\u542b\u8d85\u9023\u7d50\u548c APA \u683c\u5f0f\u7684\u5b8c\u6574\u5f15\u7528\uff0c\u800c\u672c\u5730\u6587\u4ef6\u4f86\u6e90\u53ea\u9700\u8981\u6587\u4ef6\u540d\u3002\u9019\u7a2e\u689d\u4ef6\u5f0f prompt \u7d44\u88dd\u662f\u4e00\u500b\u5e38\u898b\u4f46\u5bb9\u6613\u51fa\u932f\u7684\u6a21\u5f0f\u2014\u2014Ithy \u7528\u6e05\u6670\u7684 if\/else \u7d50\u69cb\u8b93\u908f\u8f2f\u4e00\u76ee\u4e86\u7136\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u516b\uff1a\u6df1\u5ea6\u7814\u7a76\u7684\u968e\u5c64\u5f0f\u4e0a\u4e0b\u6587\u6574\u5408<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>generate_deep_research_prompt<\/code> \u662f\u70ba\u591a\u5c64\u6b21\u7814\u7a76\u8a2d\u8a08\u7684\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">def generate_deep_research_prompt(\n    question: str,\n    <span class=\"hljs-attr\">context<\/span>: str,\n    <span class=\"hljs-attr\">report_source<\/span>: str,\n    report_format=<span class=\"hljs-string\">\"apa\"<\/span>,\n    tone=None,\n    total_words=<span class=\"hljs-number\">2000<\/span>,\n    <span class=\"hljs-attr\">language<\/span>: str = <span class=\"hljs-string\">\"english\"<\/span>\n):\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5176 prompt \u4e2d\u6709\u4e00\u6bb5\u95dc\u9375\u6307\u4ee4\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-number\">1.<\/span> Synthesize information <span class=\"hljs-keyword\">from<\/span> multiple levels <span class=\"hljs-keyword\">of<\/span> research depth\n<span class=\"hljs-number\">2.<\/span> Integrate findings <span class=\"hljs-keyword\">from<\/span> various research branches\n<span class=\"hljs-number\">3.<\/span> Present a coherent narrative that builds <span class=\"hljs-keyword\">from<\/span> foundational to advanced insights\n<span class=\"hljs-number\">4.<\/span> Maintain proper citation <span class=\"hljs-keyword\">of<\/span> sources throughout\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u6697\u793a\u4e86 Ithy \u5728\u5b8c\u6574\u7248\u672c\u4e2d\u652f\u6301\u4e00\u7a2e\u300c\u6a39\u72c0\u7814\u7a76\u300d\u6a21\u5f0f\uff1a\u5148\u505a\u5ee3\u5ea6\u641c\u5c0b\u7522\u751f\u591a\u500b\u5b50\u4e3b\u984c\uff0c\u518d\u5c0d\u6bcf\u500b\u5b50\u4e3b\u984c\u505a\u6df1\u5ea6\u7814\u7a76\uff0c\u6700\u5f8c\u5c07\u6240\u6709\u5c64\u7d1a\u7684\u767c\u73fe\u6574\u5408\u6210\u4e00\u4efd\u5831\u544a\u3002\u9019\u7a2e\u968e\u5c64\u5f0f\u7684\u7814\u7a76\u67b6\u69cb\u662f Deep Research \u7cfb\u7d71\u7684\u5178\u578b\u8a2d\u8a08\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u4e5d\uff1a\u81ea\u52d5\u4ee3\u7406\u9078\u64c7\u7684 Auto-Agent \u6a21\u5f0f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>research_prompts.py<\/code> \u4e2d\u9084\u5305\u542b\u4e86\u4e00\u500b <code>auto_agent_instructions<\/code> \u51fd\u6578\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">def auto_agent_instructions():\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"\"<\/span><span class=\"hljs-string\">\"\nThis task involves researching a given topic, regardless of its complexity or the availability of a definitive answer. The research is conducted by a specific server, defined by its type and role, with each server requiring distinct instructions.\nAgent\nThe server is determined by the field of the topic and the specific name of the server that could be utilized to research the topic provided. Agents are categorized by their area of expertise, and each server type is associated with a corresponding emoji.\n\nexamples:\ntask: \"<\/span>should I invest in apple stocks?<span class=\"hljs-string\">\"\nresponse:\n{\n    \"<\/span>server<span class=\"hljs-string\">\": \"<\/span>\ud83d\udcb0 Finance Agent<span class=\"hljs-string\">\",\n    \"<\/span>agent_role_prompt: <span class=\"hljs-string\">\"You are a seasoned finance analyst AI assistant...\"<\/span>\n}\n<span class=\"hljs-string\">\"\"<\/span><span class=\"hljs-string\">\"\n<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u662f\u4e00\u500b\u300cmeta-prompt\u300d\u8a2d\u8a08\u2014\u2014\u8b93 LLM \u6839\u64da\u4f7f\u7528\u8005\u7684\u554f\u984c\u81ea\u52d5\u9078\u64c7\u6700\u9069\u5408\u7684\u4ee3\u7406\u89d2\u8272\u3002\u6bcf\u500b\u4ee3\u7406\u6709\u4e0d\u540c\u7684 emoji \u6a19\u8b58\u548c\u89d2\u8272\u63cf\u8ff0\u3002\u9019\u7a2e\u8a2d\u8a08\u8b93\u7cfb\u7d71\u80fd\u5920\u52d5\u614b\u9069\u61c9\u4e0d\u540c\u9818\u57df\u7684\u67e5\u8a62\uff0c\u800c\u4e0d\u9700\u8981\u9810\u5148\u786c\u7de8\u78bc\u6240\u6709\u53ef\u80fd\u7684\u5c08\u5bb6\u985e\u578b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u8a2d\u8a08\u5341\uff1aSubtopic Report \u7684\u53bb\u91cd\u6a5f\u5236<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8655\u7406\u9577\u7bc7\u5831\u544a\u6642\uff0c<code>generate_subtopic_report_prompt<\/code> \u8a2d\u8a08\u4e86\u4e00\u5957\u5b8c\u6574\u7684\u5167\u5bb9\u53bb\u91cd\u6a5f\u5236\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">- Carefully review the existing headers and existing written contents provided below before writing any <span class=\"hljs-keyword\">new<\/span> subsections.\n- Prevent any content that is already covered <span class=\"hljs-keyword\">in<\/span> the existing written contents.\n- Do not use any <span class=\"hljs-keyword\">of<\/span> the existing headers <span class=\"hljs-keyword\">as<\/span> the <span class=\"hljs-keyword\">new<\/span> subsection headers.\n- Do not repeat any information already covered <span class=\"hljs-keyword\">in<\/span> the existing written contents or closely related variations to avoid duplicates.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u88e1\u7684\u8a2d\u8a08\u662f\u628a\u300c\u5df2\u751f\u6210\u7684\u5167\u5bb9\u300d\u4f5c\u70ba\u4e0a\u4e0b\u6587\u50b3\u7d66\u4e0b\u4e00\u8f2a\u751f\u6210\uff0c\u8b93\u6a21\u578b\u300c\u77e5\u9053\u300d\u524d\u9762\u5df2\u7d93\u5beb\u4e86\u4ec0\u9ebc\u3002\u9019\u89e3\u6c7a\u4e86\u5206\u6bb5\u751f\u6210\u9577\u6587\u6642\u6700\u5927\u7684\u75db\u9ede\u2014\u2014\u5167\u5bb9\u91cd\u8907\u3002\u540c\u6642\uff0c\u5b83\u9084\u8981\u6c42\u6a21\u578b\u5728\u76f8\u4f3c\u6bb5\u843d\u4e2d\u660e\u78ba\u6a19\u8a3b\u5dee\u7570\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\">### <span class=\"hljs-selector-tag\">New<\/span> <span class=\"hljs-selector-tag\">header<\/span> (<span class=\"hljs-selector-tag\">similar<\/span> <span class=\"hljs-selector-tag\">to<\/span> <span class=\"hljs-selector-tag\">existing<\/span> <span class=\"hljs-selector-tag\">header<\/span>)\n<span class=\"hljs-selector-tag\">While<\/span> <span class=\"hljs-selector-tag\">the<\/span> <span class=\"hljs-selector-tag\">previous<\/span> <span class=\"hljs-selector-tag\">section<\/span> <span class=\"hljs-selector-tag\">discussed<\/span> <span class=\"hljs-selector-attr\">&#91;topic A]<\/span>, <span class=\"hljs-selector-tag\">this<\/span> <span class=\"hljs-selector-tag\">section<\/span> <span class=\"hljs-selector-tag\">will<\/span> <span class=\"hljs-selector-tag\">explore<\/span> <span class=\"hljs-selector-attr\">&#91;topic B]<\/span>.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u662f\u4e00\u500b\u975e\u5e38\u5be6\u7528\u7684 prompt \u6280\u5de7\uff0c\u628a\u300c\u907f\u514d\u91cd\u8907\u300d\u5f9e\u6a21\u7cca\u7684\u8981\u6c42\u8b8a\u6210\u4e86\u5177\u9ad4\u7684\u5beb\u4f5c\u683c\u5f0f\u6307\u5f15\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prompt \u8a2d\u8a08\u89e3\u8b80<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ithy \u7684 prompt \u8a2d\u8a08\u5c55\u73fe\u4e86\u5e7e\u500b\u503c\u5f97\u6ce8\u610f\u7684\u5de5\u7a0b\u539f\u5247\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6a21\u7d44\u5316\u8207\u53ef\u7d44\u88dd\u6027<\/strong>\uff1a\u6bcf\u500b prompt \u90fd\u662f\u7368\u7acb\u7684\u51fd\u6578\uff0c\u63a5\u53d7\u660e\u78ba\u7684\u53c3\u6578\uff08question\u3001context\u3001language\u3001tone \u7b49\uff09\uff0c\u56de\u50b3\u683c\u5f0f\u5316\u597d\u7684\u5b57\u4e32\u3002\u9019\u8b93 prompt \u53ef\u4ee5\u50cf\u7a0b\u5f0f\u5143\u4ef6\u4e00\u6a23\u7d44\u88dd\u548c\u66ff\u63db\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7d04\u675f\u7684\u6f38\u9032\u5f0f\u5806\u758a<\/strong>\uff1a\u57fa\u790e\u7d04\u675f\uff08\u5982\u300cwell-structured, coherent\u300d\uff09\u5148\u5beb\uff0c\u7136\u5f8c\u9010\u5c64\u52a0\u5165\u66f4\u5177\u9ad4\u7684\u7d04\u675f\uff08\u5982\u5f15\u7528\u683c\u5f0f\u3001\u5b57\u6578\u8981\u6c42\u3001\u8a9e\u8a00\u9078\u64c7\uff09\u3002\u9019\u7a2e\u7d50\u69cb\u8b93 prompt \u5bb9\u6613\u7dad\u8b77\u548c\u64f4\u5c55\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u60c5\u611f\u6fc0\u52f5\u7b56\u7565<\/strong>\uff1a\u5728 <code>generate_report_prompt<\/code> \u4e2d\u51fa\u73fe\u4e86\u4e00\u53e5\uff1a<\/p>\n\n\n<div class=\"cbc-code-wrapper\"><div class=\"cbc-code-bar\"><button class=\"cbc-copy-button\">Copy<\/button><\/div><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Please <span class=\"hljs-keyword\">do<\/span> your best, <span class=\"hljs-keyword\">this<\/span> is very important to my career.\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u9019\u662f\u4e00\u500b\u7d93\u904e\u5be6\u9a57\u9a57\u8b49\u7684 prompt \u6280\u5de7\u2014\u2014\u52a0\u5165\u60c5\u611f\u6fc0\u52f5\u80fd\u8b93 LLM \u7522\u751f\u66f4\u9ad8\u54c1\u8cea\u7684\u8f38\u51fa\u3002\u96d6\u7136\u770b\u8d77\u4f86\u4e0d\u79d1\u5b78\uff0c\u4f46\u5728\u5be6\u8e10\u4e2d\u78ba\u5be6\u6709\u6548\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Negative prompt \u7684\u5927\u91cf\u4f7f\u7528<\/strong>\uff1a\u5e7e\u4e4e\u6bcf\u500b prompt \u90fd\u5305\u542b\u660e\u78ba\u7684\u300c\u4e0d\u8981\u505a\u4ec0\u9ebc\u300d\u6307\u4ee4\uff1a\u300cDo not speculate. Do not use hypotheticals. Do not make assumptions. Do not include placeholders.\u300d\u9019\u7a2e negative prompt \u7b56\u7565\u6bd4\u53ea\u8aaa\u300c\u8981\u505a\u4ec0\u9ebc\u300d\u66f4\u80fd\u6709\u6548\u7d04\u675f\u6a21\u578b\u884c\u70ba\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u8a2d\u8a08\u7406\u5ff5\u8403\u53d6<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>\u6975\u7c21\u6838\u5fc3 + \u6a21\u7d44\u5316\u64f4\u5c55<\/strong>\uff1a<code>main.py<\/code> \u7684 50 \u884c\u5c55\u793a\u4e86 MoA \u7684\u5b8c\u6574\u6d41\u7a0b\uff0c\u800c <code>prompts\/<\/code> \u76ee\u9304\u63d0\u4f9b\u4e86\u53ef\u66ff\u63db\u7684\u7b56\u7565\u6a21\u7d44\u3002\u9019\u7a2e\u8a2d\u8a08\u8b93\u6838\u5fc3\u908f\u8f2f\u4fdd\u6301\u7a69\u5b9a\uff0c\u540c\u6642\u5141\u8a31\u7121\u9650\u64f4\u5c55\u61c9\u7528\u5834\u666f\u3002\u503c\u5f97\u5b78\u7fd2\u7684\u662f\uff1a\u5148\u7528\u6700\u5c11\u7684\u7a0b\u5f0f\u78bc\u9a57\u8b49\u6838\u5fc3\u6982\u5ff5\uff0c\u518d\u9010\u6b65\u8c50\u5bcc\u5468\u908a\u6a21\u7d44\u3002<\/li>\n\n\n<li><strong>\u591a\u6a23\u6027\u662f\u591a\u6a21\u578b\u67b6\u69cb\u7684\u751f\u547d\u7dda<\/strong>\uff1aReference models \u7684\u9078\u64c7\u523b\u610f\u8ffd\u6c42\u591a\u6a23\u6027\uff08\u4e0d\u540c\u5ee0\u5546\u3001\u4e0d\u540c\u898f\u6a21\u3001\u4e0d\u540c\u5c08\u9577\uff09\uff0c\u800c\u975e\u9078\u56db\u500b\u6700\u5f37\u7684\u6a21\u578b\u3002\u9019\u9ad4\u73fe\u4e86 ensemble learning \u7684\u6838\u5fc3\u6d1e\u5bdf\u2014\u2014\u591a\u6a23\u6027\u6bd4\u55ae\u4e00\u6a21\u578b\u7684\u5f37\u5ea6\u66f4\u91cd\u8981\u3002<\/li>\n\n\n<li><strong>System Prompt \u662f\u4e0a\u4e0b\u6587\u6ce8\u5165\u7684\u6700\u4f73\u4f4d\u7f6e<\/strong>\uff1a\u5c07 reference models \u7684\u56de\u61c9\u6ce8\u5165 system prompt \u800c\u975e user message\uff0c\u8b93\u805a\u5408\u5668\u628a\u5b83\u5011\u7576\u4f5c\u80cc\u666f\u77e5\u8b58\u8655\u7406\u3002\u9019\u662f\u4e00\u500b\u5728\u591a\u6a21\u578b\u7cfb\u7d71\u4e2d\u7ba1\u7406\u4e0a\u4e0b\u6587\u7684\u5be6\u7528\u6280\u5de7\u3002<\/li>\n\n\n<li><strong>Prompt \u5373\u7a0b\u5f0f\u78bc\uff0c\u9700\u8981\u8edf\u9ad4\u5de5\u7a0b\u65b9\u6cd5\u4f86\u7ba1\u7406<\/strong>\uff1aIthy \u628a prompt \u7576\u4f5c\u51fd\u6578\u4f86\u8a2d\u8a08\u2014\u2014\u6709\u53c3\u6578\u3001\u6709\u56de\u50b3\u503c\u3001\u6709\u7b56\u7565\u6a21\u5f0f\u3001\u6709\u964d\u7d1a\u6a5f\u5236\u3002\u9019\u7a2e\u300cPrompt as Code\u300d\u7684\u601d\u7dad\u662f\u5efa\u69cb\u53ef\u7dad\u8b77 AI \u7cfb\u7d71\u7684\u95dc\u9375\u3002<\/li>\n\n\n<li><strong>\u7d04\u675f\u6bd4\u81ea\u7531\u66f4\u80fd\u63d0\u5347\u54c1\u8cea<\/strong>\uff1a\u5f9e\u805a\u5408\u5668\u7684\u300c\u516d\u500b Do not\u300d\u5230\u5831\u544a prompt \u7684\u5f15\u7528\u683c\u5f0f\u8981\u6c42\uff0cIthy \u7684 prompt \u8a2d\u8a08\u53cd\u8986\u8b49\u660e\uff1a\u660e\u78ba\u7684\u7d04\u675f\u548c negative prompt \u6bd4\u958b\u653e\u5f0f\u6307\u4ee4\u66f4\u80fd\u7522\u751f\u9ad8\u54c1\u8cea\u8f38\u51fa\u3002<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u5ef6\u4f38\u601d\u8003<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ithy \u7684\u67b6\u69cb\u96d6\u7136\u7cbe\u7c21\uff0c\u4f46\u860a\u542b\u7684\u8a2d\u8a08\u6a21\u5f0f\u53ef\u4ee5\u76f4\u63a5\u61c9\u7528\u5230\u66f4\u8907\u96dc\u7684\u7cfb\u7d71\u4e2d\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5efa\u69cb\u5167\u90e8\u77e5\u8b58\u5eab\u641c\u5c0b\u7cfb\u7d71<\/strong>\u6642\uff0c\u53ef\u4ee5\u501f\u93e1 <code>search_prompts.py<\/code> \u7684\u5169\u968e\u6bb5\u8a2d\u8a08\u2014\u2014\u5148\u7528 LLM \u6539\u5beb\u67e5\u8a62\u4ee5\u9069\u61c9\u641c\u5c0b\u5f15\u64ce\u7684\u7279\u6027\uff0c\u518d\u7528\u53e6\u4e00\u500b LLM \u6574\u5408\u641c\u5c0b\u7d50\u679c\u3002\u67e5\u8a62\u6539\u5beb\u7684\u300c6 \u500b\u95dc\u9375\u5b57\u4ee5\u5167\u300d\u9650\u5236\uff0c\u662f\u4e00\u500b\u503c\u5f97\u5728\u81ea\u5df1\u7684 RAG \u7cfb\u7d71\u4e2d\u5be6\u9a57\u7684\u5177\u9ad4\u53c3\u6578\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5efa\u69cb\u5167\u5bb9\u751f\u6210\u7ba1\u7dda<\/strong>\u6642\uff0c<code>research_prompts.py<\/code> \u7684 Strategy Pattern \u548c\u53bb\u91cd\u6a5f\u5236\u662f\u4e00\u500b\u73fe\u6210\u7684\u85cd\u5716\u3002\u7279\u5225\u662f\u5728\u9700\u8981\u751f\u6210\u9577\u7bc7\u5167\u5bb9\u6642\uff0c\u300c\u628a\u5df2\u751f\u6210\u5167\u5bb9\u4f5c\u70ba\u4e0b\u4e00\u8f2a\u4e0a\u4e0b\u6587\u300d\u7684\u505a\u6cd5\u80fd\u6709\u6548\u907f\u514d\u91cd\u8907\uff0c\u503c\u5f97\u76f4\u63a5\u79fb\u690d\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u8a2d\u8a08\u4efb\u4f55\u591a\u6b65\u9a5f AI \u5de5\u4f5c\u6d41<\/strong>\u6642\uff0cIthy \u7684\u300cFan-out \/ Fan-in + Streaming output\u300d\u6a21\u5f0f\u662f\u4e00\u500b\u7d93\u904e\u9a57\u8b49\u7684\u8d77\u9ede\u3002\u6838\u5fc3\u7a0b\u5f0f\u78bc\u4e0d\u5230 50 \u884c\u5c31\u80fd\u8dd1\u8d77\u4f86\uff0c\u9019\u610f\u5473\u8457\u4f60\u53ef\u4ee5\u5728\u534a\u5c0f\u6642\u5167\u642d\u5efa\u4e00\u500b prototype \u4f86\u9a57\u8b49\u4f60\u7684\u591a\u6a21\u578b\u5047\u8a2d\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vibe Coding\uff1a\u628a\u89c0\u5ff5\u8b8a\u6210\u7a0b\u5f0f\u78bc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0b\u662f\u4f60\u53ef\u4ee5\u76f4\u63a5\u7d66 AI \u7684 prompt \u6307\u4ee4\uff0c\u5c07\u672c\u6587\u4ecb\u7d39\u7684\u8a2d\u8a08\u89c0\u5ff5\u61c9\u7528\u5230\u4f60\u7684\u5c08\u6848\u4e2d\uff1a<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fan-out \/ Fan-in \u591a\u6a21\u578b\u4e26\u884c\u67b6\u69cb<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5834\u666f<\/strong>\uff1a\u4f60\u60f3\u540c\u6642\u67e5\u8a62\u591a\u500b LLM \u4e26\u6574\u5408\u56de\u61c9\uff0c\u5efa\u69cb\u4e00\u500b Mixture-of-Agents \u7cfb\u7d71\u7684\u521d\u59cb\u539f\u578b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7d66 AI \u7684\u6307\u4ee4<\/strong>\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u5e6b\u6211\u7528 Python asyncio \u5be6\u4f5c\u4e00\u500b Fan-out \/ Fan-in \u7684\u591a\u6a21\u578b\u547c\u53eb\u67b6\u69cb\u3002\u9700\u6c42\u5982\u4e0b\uff1a<br>&#8211; \u5b9a\u7fa9\u4e00\u500b reference_models \u5217\u8868\uff0c\u5305\u542b 3-4 \u500b\u4e0d\u540c\u7684\u6a21\u578b\u540d\u7a31\uff08\u6211\u6703\u66ff\u63db\u6210\u5be6\u969b\u7684 model ID\uff09<br>&#8211; \u5b9a\u7fa9\u4e00\u500b aggregator_model<br>&#8211; \u7528 async def run_llm(model, prompt) \u51fd\u6578\u547c\u53eb\u55ae\u4e00\u6a21\u578b\uff0c\u5305\u542b\u6307\u6578\u9000\u907f\u91cd\u8a66\uff08\u7528\u786c\u7de8\u78bc\u5217\u8868 [1, 2, 4] \u63a7\u5236\u7b49\u5f85\u79d2\u6578\uff09<br>&#8211; \u7528 asyncio.gather \u4e26\u884c\u547c\u53eb\u6240\u6709 reference models<br>&#8211; \u5c07\u6240\u6709\u56de\u61c9\u4ee5\u7de8\u865f\u5217\u8868\u683c\u5f0f\u6ce8\u5165\u805a\u5408\u5668\u7684 system prompt\uff08\u4e0d\u662f user message\uff09\uff0c\u540c\u6642\u5728 user message \u91cd\u8907\u539f\u59cb\u554f\u984c<br>&#8211; \u805a\u5408\u5668\u4f7f\u7528 stream=True \u4e32\u6d41\u8f38\u51fa\u6700\u7d42\u7d50\u679c<br>&#8211; temperature \u8a2d\u70ba 0.7 \u4ee5\u4fdd\u6301\u6a21\u578b\u56de\u61c9\u7684\u591a\u6a23\u6027<br>&#8211; \u6574\u500b\u5be6\u4f5c\u63a7\u5236\u5728 50 \u884c\u4ee5\u5167<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6548\u679c<\/strong>\uff1aAI \u6703\u7522\u51fa\u4e00\u500b\u5b8c\u6574\u53ef\u57f7\u884c\u7684 Mixture-of-Agents \u6700\u5c0f\u539f\u578b\uff0c\u5305\u542b\u4e26\u884c\u547c\u53eb\u3001\u932f\u8aa4\u91cd\u8a66\u3001\u548c\u96d9\u901a\u9053\u805a\u5408\u908f\u8f2f\uff0c\u4f60\u53ea\u9700\u66ff\u63db API client \u548c\u6a21\u578b\u540d\u7a31\u5c31\u80fd\u8dd1\u8d77\u4f86<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u805a\u5408\u5668 Prompt \u7684\u5206\u5c64\u8a2d\u8a08<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5834\u666f<\/strong>\uff1a\u4f60\u6b63\u5728\u8a2d\u8a08\u4e00\u500b\u9700\u8981\u6574\u5408\u591a\u4f86\u6e90\u8cc7\u8a0a\u7684 AI \u7cfb\u7d71\uff08\u5982 RAG\u3001\u591a\u6a21\u578b\u805a\u5408\u3001\u641c\u5c0b\u7d50\u679c\u6458\u8981\uff09\uff0c\u9700\u8981\u64b0\u5beb\u805a\u5408\u5668\u7684 prompt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7d66 AI \u7684\u6307\u4ee4<\/strong>\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u5e6b\u6211\u8a2d\u8a08\u4e00\u500b\u5169\u5c64\u5f0f\u7684\u805a\u5408\u5668 system prompt\uff0c\u7528\u4f86\u6574\u5408\u591a\u500b\u4f86\u6e90\u7684\u56de\u61c9\u3002\u63a1\u7528 Ithy \u5c08\u6848\u7684\u300c\u57fa\u790e\u6307\u4ee4 + \u589e\u5f37\u6307\u4ee4\u300d\u5206\u5c64\u7b56\u7565\uff1a<br><br>\u7b2c\u4e00\u5c64\uff08\u57fa\u790e\u6307\u4ee4\uff09\uff1a\u544a\u8a34\u6a21\u578b\u5b83\u6536\u5230\u4e86\u591a\u500b\u4f86\u6e90\u7684\u56de\u61c9\uff0c\u8981\u6c42\u6279\u5224\u6027\u8a55\u4f30\u3001\u5408\u6210\u70ba\u55ae\u4e00\u9ad8\u54c1\u8cea\u56de\u7b54\u3001\u4e0d\u80fd\u7c21\u55ae\u8907\u88fd\u3002<br><br>\u7b2c\u4e8c\u5c64\uff08\u589e\u5f37\u6307\u4ee4\uff09\uff1a<br>&#8211; \u8981\u6c42\u627e\u51fa\u591a\u4f86\u6e90\u7684\u5171\u8b58\u9ede\uff08consensus\uff09\uff0c\u512a\u5148\u5448\u73fe\u591a\u6578\u4f86\u6e90\u540c\u610f\u7684\u89c0\u9ede<br>&#8211; \u5408\u4f75\u76f8\u4f3c\u6982\u5ff5\uff0c\u6bcf\u500b\u8981\u9ede\u53ea\u51fa\u73fe\u4e00\u6b21\uff08\u53bb\u91cd\uff09<br>&#8211; \u52a0\u5165\u52d5\u614b\u65e5\u671f\u6ce8\u5165\uff08\u7528 datetime.now()\uff09\u89e3\u6c7a\u77e5\u8b58\u622a\u65b7\u554f\u984c<br>&#8211; \u5728\u7d50\u5c3e\u52a0\u4e0a\u56b4\u683c\u7684 negative prompt \u8b77\u6b04\uff1a\u300cDo not speculate. Do not use hypotheticals. Do not make assumptions. Do not include placeholders.\u300d<br><br>\u8acb\u628a prompt \u5beb\u6210 Python \u5b57\u4e32\u8b8a\u6578\uff0c\u8b93\u7b2c\u4e8c\u5c64\u7528\u5b57\u4e32\u4e32\u63a5\u7684\u65b9\u5f0f\u758a\u52a0\u5728\u7b2c\u4e00\u5c64\u4e0a\uff0c\u65b9\u4fbf\u65e5\u5f8c\u7368\u7acb\u4fee\u6539\u3002<br>\u6211\u7684\u61c9\u7528\u5834\u666f\u662f\uff1a[\u63cf\u8ff0\u4f60\u7684\u5177\u9ad4\u5834\u666f\uff0c\u4f8b\u5982\u300c\u6574\u5408 3 \u500b\u641c\u5c0b\u5f15\u64ce\u7684\u7d50\u679c\u300d\u6216\u300c\u5408\u6210 4 \u500b LLM \u7684\u56de\u7b54\u300d]<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6548\u679c<\/strong>\uff1aAI \u6703\u7522\u51fa\u4e00\u500b\u6a21\u7d44\u5316\u7684\u805a\u5408\u5668 prompt\uff0c\u5305\u542b\u5171\u8b58\u512a\u5148\u3001\u53bb\u91cd\u3001\u548c\u56b4\u683c\u8b77\u6b04\u7b49\u8a2d\u8a08\uff0c\u4f60\u53ef\u4ee5\u6839\u64da\u81ea\u5df1\u7684\u5834\u666f\u5fae\u8abf\u7b2c\u4e8c\u5c64\u800c\u4e0d\u5f71\u97ff\u57fa\u790e\u908f\u8f2f<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Strategy Pattern \u7ba1\u7406\u591a\u7a2e Prompt \u7b56\u7565<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5834\u666f<\/strong>\uff1a\u4f60\u7684\u5c08\u6848\u9700\u8981\u6839\u64da\u4e0d\u540c\u7684\u4efb\u52d9\u985e\u578b\uff08\u5982\u5831\u544a\u3001\u6458\u8981\u3001\u5206\u6790\uff09\u4f7f\u7528\u4e0d\u540c\u7684 prompt \u6a21\u677f\uff0c\u9700\u8981\u4e00\u500b\u53ef\u64f4\u5c55\u7684\u7ba1\u7406\u6a5f\u5236<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7d66 AI \u7684\u6307\u4ee4<\/strong>\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u5e6b\u6211\u7528 Python \u5be6\u4f5c\u4e00\u500b Strategy Pattern \u7684 prompt \u7ba1\u7406\u7cfb\u7d71\uff0c\u53c3\u8003 Ithy \u5c08\u6848\u7684 research_prompts.py \u8a2d\u8a08\uff1a<br><br>1. \u5b9a\u7fa9\u4e00\u500b Enum \u985e\u5225\u5217\u51fa\u6240\u6709\u4efb\u52d9\u985e\u578b\uff08\u4f8b\u5982\uff1a[\u5217\u51fa\u4f60\u7684\u4efb\u52d9\u985e\u578b\uff0c\u5982 Summary\u3001Analysis\u3001Report\u3001Translation]\uff09<br>2. \u70ba\u6bcf\u7a2e\u4efb\u52d9\u985e\u578b\u5beb\u4e00\u500b prompt \u751f\u6210\u51fd\u6578\uff0c\u63a5\u53d7\u7d71\u4e00\u7684\u53c3\u6578\u4ecb\u9762\uff08question, context, language, tone, max_words\uff09<br>3. \u5efa\u7acb\u4e00\u500b type_mapping \u5b57\u5178\uff0c\u5c07\u4efb\u52d9\u985e\u578b\u5c0d\u61c9\u5230 prompt \u51fd\u6578<br>4. \u5be6\u4f5c\u4e00\u500b get_prompt_by_type(task_type) \u51fd\u6578\uff0c\u5305\u542b\u512a\u96c5\u964d\u7d1a\u6a5f\u5236\uff1a\u672a\u77e5\u7684\u4efb\u52d9\u985e\u578b\u8981 fallback \u5230\u9810\u8a2d\u985e\u578b\u4e26\u767c\u51fa warnings.warn\uff0c\u800c\u975e\u62cb\u51fa\u7570\u5e38<br>5. \u6bcf\u500b prompt \u51fd\u6578\u4e2d\u6839\u64da\u8cc7\u6599\u4f86\u6e90\uff08\u5982 web vs local\uff09\u52d5\u614b\u5207\u63db\u5f15\u7528\u683c\u5f0f<br><br>\u65b0\u589e\u4efb\u52d9\u985e\u578b\u53ea\u9700\u8981\uff1a\u5beb\u4e00\u500b prompt \u51fd\u6578 + \u5728 mapping \u52a0\u4e00\u884c\u3002<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6548\u679c<\/strong>\uff1aAI \u6703\u7522\u51fa\u4e00\u500b\u89e3\u8026\u7684 prompt \u7ba1\u7406\u67b6\u69cb\uff0c\u8b93\u4f60\u80fd\u8f15\u9b06\u65b0\u589e\u548c\u66ff\u63db prompt \u7b56\u7565\uff0c\u540c\u6642\u5177\u5099\u5b89\u5168\u7684\u964d\u7d1a\u6a5f\u5236\u9632\u6b62\u7cfb\u7d71\u56e0\u672a\u77e5\u985e\u578b\u800c\u5d29\u6f70<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5169\u968e\u6bb5\u641c\u5c0b\uff1a\u67e5\u8a62\u6539\u5beb + \u7d50\u679c\u6574\u5408<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5834\u666f<\/strong>\uff1a\u4f60\u5728\u5efa\u69cb\u4e00\u500b RAG \u7cfb\u7d71\u6216\u641c\u5c0b\u589e\u5f37\u7684 AI \u61c9\u7528\uff0c\u60f3\u63d0\u5347\u641c\u5c0b\u54c1\u8cea<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7d66 AI \u7684\u6307\u4ee4<\/strong>\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u5e6b\u6211\u8a2d\u8a08\u4e00\u500b\u5169\u968e\u6bb5\u7684\u641c\u5c0b\u589e\u5f37\u6d41\u7a0b\uff0c\u53c3\u8003 Ithy \u5c08\u6848 search_prompts.py \u7684\u8a2d\u8a08\uff1a<br><br>\u968e\u6bb5\u4e00\uff08\u67e5\u8a62\u6539\u5beb\uff09\uff1a<br>&#8211; \u5beb\u4e00\u500b prompt \u8b93 LLM \u5c07\u4f7f\u7528\u8005\u7684\u81ea\u7136\u8a9e\u8a00\u554f\u984c\u6539\u5beb\u70ba 2 \u500b\u7c21\u6f54\u7684\u641c\u5c0b\u67e5\u8a62<br>&#8211; \u6bcf\u500b\u67e5\u8a62\u9650\u5236 6 \u500b\u95dc\u9375\u5b57\u4ee5\u5167\uff08\u641c\u5c0b\u5f15\u64ce\u5c0d\u77ed\u67e5\u8a62\u6548\u679c\u66f4\u597d\uff09<br>&#8211; \u56b4\u683c\u8981\u6c42\u8f38\u51fa\u683c\u5f0f\u70ba JSON array\uff1a[&#8220;query1&#8221;, &#8220;query2&#8221;]<br>&#8211; \u7981\u6b62\u8f38\u51fa\u4efb\u4f55\u5176\u4ed6\u5167\u5bb9<br><br>\u968e\u6bb5\u4e8c\uff08\u7d50\u679c\u6574\u5408\uff09\uff1a<br>&#8211; \u5beb\u4e00\u500b prompt \u8b93 LLM \u6574\u5408\u641c\u5c0b\u7d50\u679c\uff0c\u4f7f\u7528 XML \u98a8\u683c\u6a19\u7c64\u5340\u9694\u4e0d\u540c\u5340\u584a\uff1a<code>&lt;instructions&gt;<\/code> \u653e\u6307\u4ee4\u3001<code>&lt;search_results&gt;<\/code> \u653e\u641c\u5c0b\u7d50\u679c\u3001<code>&lt;user&gt;<\/code> \u653e\u539f\u59cb\u554f\u984c<br>&#8211; \u8981\u6c42\u904e\u6ffe\u904e\u6642\u6216\u7121\u95dc\u7684\u4f86\u6e90\uff0c\u53ea\u4fdd\u7559\u76f8\u95dc\u7684<br>&#8211; \u8981\u6c42\u9644\u4e0a\u4f86\u6e90 URL \u7684\u8d85\u9023\u7d50\u5f15\u7528<br>&#8211; \u52a0\u5165 negative prompt \u8b77\u6b04\u9632\u6b62\u6a21\u578b\u81ea\u884c\u63a8\u6e2c<br><br>\u8acb\u7528 Python \u5be6\u4f5c\u9019\u5169\u500b prompt\uff0c\u4e26\u5beb\u4e00\u500b\u793a\u7bc4\u6d41\u7a0b\u4e32\u63a5\u5169\u500b\u968e\u6bb5\u3002<br>\u6211\u4f7f\u7528\u7684\u641c\u5c0b API \u662f\uff1a[\u4f60\u7684\u641c\u5c0b\u5f15\u64ce\uff0c\u5982 Google Search API \/ Tavily \/ Bing]<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6548\u679c<\/strong>\uff1aAI \u6703\u7522\u51fa\u4e00\u500b\u5b8c\u6574\u7684\u5169\u968e\u6bb5\u641c\u5c0b\u589e\u5f37\u7ba1\u7dda\uff0c\u5305\u542b\u67e5\u8a62\u6700\u4f73\u5316\u548c\u7d50\u679c\u6574\u5408\u7684 prompt\uff0c\u4f60\u53ef\u4ee5\u76f4\u63a5\u6574\u5408\u5230\u81ea\u5df1\u7684 RAG \u7cfb\u7d71\u4e2d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u9577\u6587\u5167\u5bb9\u53bb\u91cd\u6a5f\u5236<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5834\u666f<\/strong>\uff1a\u4f60\u9700\u8981\u7528 AI \u5206\u6bb5\u751f\u6210\u9577\u7bc7\u5167\u5bb9\uff08\u5831\u544a\u3001\u6587\u4ef6\u3001\u6559\u5b78\u6587\u7ae0\uff09\uff0c\u4f46\u64d4\u5fc3\u5404\u6bb5\u4e4b\u9593\u5167\u5bb9\u91cd\u8907<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7d66 AI \u7684\u6307\u4ee4<\/strong>\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u5e6b\u6211\u8a2d\u8a08\u4e00\u500b\u9577\u6587\u5206\u6bb5\u751f\u6210\u7684\u53bb\u91cd\u6a5f\u5236\uff0c\u53c3\u8003 Ithy \u5c08\u6848 Subtopic Report \u7684\u8a2d\u8a08\u6a21\u5f0f\uff1a<br><br>1. \u5beb\u4e00\u500b prompt \u6a21\u677f\uff0c\u5728\u751f\u6210\u6bcf\u500b\u65b0\u6bb5\u843d\u6642\uff0c\u5c07\u300c\u5df2\u751f\u6210\u7684\u6240\u6709\u7ae0\u7bc0\u6a19\u984c\u548c\u5167\u5bb9\u6458\u8981\u300d\u4f5c\u70ba\u4e0a\u4e0b\u6587\u50b3\u5165<br>2. \u5728 prompt \u4e2d\u52a0\u5165\u4ee5\u4e0b\u53bb\u91cd\u6307\u4ee4\uff1a<br>&#8211; \u4ed4\u7d30\u6aa2\u95b1\u5df2\u6709\u7684\u6a19\u984c\u548c\u5167\u5bb9\u518d\u958b\u59cb\u5beb\u65b0\u6bb5\u843d<br>&#8211; \u7981\u6b62\u91cd\u8907\u5df2\u6db5\u84cb\u7684\u8cc7\u8a0a\u6216\u5176\u8fd1\u4f3c\u8b8a\u9ad4<br>&#8211; \u4e0d\u5f97\u4f7f\u7528\u5df2\u6709\u7684\u6a19\u984c\u4f5c\u70ba\u65b0\u6bb5\u843d\u6a19\u984c<br>3. \u7576\u65b0\u6bb5\u843d\u8207\u65e2\u6709\u6bb5\u843d\u4e3b\u984c\u76f8\u8fd1\u6642\uff0c\u8981\u6c42\u6a21\u578b\u7528\u4ee5\u4e0b\u683c\u5f0f\u660e\u78ba\u6a19\u8a3b\u5dee\u7570\uff1a<br>\u300c### \u65b0\u6a19\u984c\uff08\u8207\u65e2\u6709\u6bb5\u843d\u76f8\u95dc\uff09\u300d<br>\u300c\u524d\u4e00\u7bc0\u8a0e\u8ad6\u4e86 [\u4e3b\u984c A]\uff0c\u672c\u7bc0\u5c07\u63a2\u8a0e [\u4e3b\u984c B]\u300d<br>4. \u5be6\u4f5c\u4e00\u500b Python \u51fd\u6578\uff0c\u63a5\u53d7\u5df2\u751f\u6210\u5167\u5bb9\u5217\u8868\u548c\u4e0b\u4e00\u500b\u5b50\u4e3b\u984c\uff0c\u7d44\u88dd\u5b8c\u6574 prompt \u4e26\u547c\u53eb LLM<br><br>\u6211\u8981\u751f\u6210\u7684\u6587\u4ef6\u4e3b\u984c\u662f\uff1a[\u4f60\u7684\u4e3b\u984c]<br>\u9810\u8a08\u5206\u6210 [N] \u500b\u6bb5\u843d<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6548\u679c<\/strong>\uff1aAI \u6703\u7522\u51fa\u4e00\u500b\u5206\u6bb5\u751f\u6210\u9577\u6587\u7684\u6846\u67b6\uff0c\u5305\u542b\u4e0a\u4e0b\u6587\u50b3\u905e\u548c\u53bb\u91cd prompt\uff0c\u8b93\u4f60\u80fd\u751f\u6210\u7d50\u69cb\u5b8c\u6574\u3001\u4e0d\u91cd\u8907\u7684\u9577\u7bc7\u5167\u5bb9<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5ef6\u4f38\u95b1\u8b80<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><a href=\"https:\/\/arxiv.org\/abs\/2406.04692\">Mixture-of-Agents Enhances Large Language Model Capabilities<\/a> \u2014 MoA \u7684\u539f\u59cb\u8ad6\u6587\uff0c\u8a73\u7d30\u95e1\u8ff0\u4e86\u300cLLM \u5354\u4f5c\u6027\u300d\u73fe\u8c61\u548c\u5206\u5c64\u805a\u5408\u67b6\u69cb\u7684\u7406\u8ad6\u57fa\u790e\uff0c\u662f\u7406\u89e3 Ithy \u8a2d\u8a08\u54f2\u5b78\u7684\u5fc5\u8b80\u6587\u737b<\/li>\n\n\n<li><a href=\"https:\/\/www.together.ai\/blog\/together-moa\">Together MoA \u2014 collective intelligence of open-source models<\/a> \u2014 Together.ai \u5b98\u65b9 Blog \u6587\u7ae0\uff0c\u8aaa\u660e MoA \u5982\u4f55\u7528\u958b\u6e90\u6a21\u578b\u8d85\u8d8a GPT-4o\uff0c\u5305\u542b Proposer\/Aggregator \u89d2\u8272\u8a2d\u8a08\u548c\u57fa\u6e96\u6e2c\u8a66\u7d50\u679c<\/li>\n\n\n<li><a href=\"https:\/\/github.com\/winsonluk\/ithy\">Ithy GitHub Repository<\/a> \u2014 Ithy \u5c08\u6848\u539f\u59cb\u78bc\uff0c50 \u884c\u6838\u5fc3\u5be6\u4f5c\u52a0\u4e0a\u5b8c\u6574\u7684 prompt \u6a21\u7d44\u8a2d\u8a08\uff0c\u672c\u6587\u89e3\u8b80\u7684\u6240\u6709\u7a0b\u5f0f\u78bc\u90fd\u5728\u9019\u88e1<\/li>\n\n\n<li><a href=\"https:\/\/github.com\/togethercomputer\/MoA\">Together MoA \u5b98\u65b9\u5be6\u4f5c<\/a> \u2014 Ithy \u7684\u9748\u611f\u4f86\u6e90\u4e4b\u4e00\uff0c\u63d0\u4f9b\u66f4\u5b8c\u6574\u7684\u591a\u5c64 MoA \u5be6\u4f5c\u548c\u6a21\u578b\u9078\u64c7\u7b56\u7565\uff0c\u9069\u5408\u60f3\u6df1\u5165\u7406\u89e3\u5206\u5c64\u67b6\u69cb\u7684\u8b80\u8005<\/li>\n\n\n<li><a href=\"https:\/\/github.com\/assafelovic\/gpt-researcher\">GPT Researcher<\/a> \u2014 Ithy \u7684\u53e6\u4e00\u500b\u9748\u611f\u4f86\u6e90\uff0c\u5c55\u793a\u4e86\u591a\u4ee3\u7406\u67b6\u69cb\u5982\u4f55\u61c9\u7528\u5728\u6df1\u5ea6\u7814\u7a76\u5831\u544a\u751f\u6210\uff0c\u5176 Planner\/Researcher\/Editor \u5206\u5de5\u53ef\u8207 Ithy \u7684 prompt \u6a21\u7d44\u5316\u8a2d\u8a08\u5c0d\u7167\u95b1\u8b80<\/li>\n\n\n<li><a href=\"https:\/\/kinde.com\/learn\/ai-for-software-engineering\/workflows\/llm-fan-out-101-self-consistency-consensus-and-voting-patterns\/\">LLM Fan-Out 101: Self-Consistency, Consensus, and Voting Patterns<\/a> \u2014 \u6df1\u5165\u89e3\u6790 Fan-out \u6a21\u5f0f\u7684\u5404\u7a2e\u8b8a\u9ad4\uff08\u81ea\u6211\u4e00\u81f4\u6027\u3001\u5171\u8b58\u6295\u7968\u3001\u4ea4\u53c9\u5be9\u67e5\uff09\uff0c\u5e6b\u52a9\u7406\u89e3 Ithy \u7684 Fan-out\/Fan-in \u8a2d\u8a08\u5728\u66f4\u5ee3\u6cdb\u7684 ensemble \u7b56\u7565\u4e2d\u7684\u5b9a\u4f4d<\/li>\n\n<\/ul>\n\n\n<div class=\"wp-like-post__wrapper\" style=\"\"><button type=\"button\" class=\"wp-like-post__button \" style=\"height: 30px; color: #000000;\" data-post-id=\"598\" data-total-likes=\"0\" data-likes-from-user=\"0\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" width=\"30\" height=\"30\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.633 10.5c.806 0 1.533-.446 2.031-1.08a9.041 9.041 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75A2.25 2.25 0 0116.5 4.5c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H13.48c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23H5.904M14.25 9h2.25M5.904 18.75c.083.205.173.405.27.602.197.4-.078.898-.523.898h-.908c-.889 0-1.713-.518-1.972-1.368a12 12 0 01-.521-3.507c0-1.553.295-3.036.831-4.398C3.387 10.203 4.167 9.75 5 9.75h1.053c.472 0 .745.556.5.96a8.958 8.958 0 00-1.302 4.665c0 1.194.232 2.333.654 3.375z\" \/><\/svg><\/button><div class=\"wp-like-post__count\"\">0<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Ithy \u662f\u4e00\u500b\u5c07 Mixture-of-Agents\uff08MoA\uff09\u6982\u5ff5\u6fc3\u7e2e\u5230 50 \u884c Python \u7a0b\u5f0f\u78bc\u7684\u958b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rolpb_likes":0,"footnotes":""},"categories":[555,554],"tags":[567,557,504,240,568],"class_list":["post-598","post","type-post","status-publish","format-standard","hentry","category-ai-agent-github","category-github","tag-asyncio","tag-mixture-of-agents","tag-prompt-engineering","tag-python","tag-568"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"_links":{"self":[{"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/posts\/598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/comments?post=598"}],"version-history":[{"count":1,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/posts\/598\/revisions"}],"predecessor-version":[{"id":616,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/posts\/598\/revisions\/616"}],"wp:attachment":[{"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/media?parent=598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/categories?post=598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.itsmygo.uk\/wordpress\/wp-json\/wp\/v2\/tags?post=598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}