{"id":21797,"date":"2024-08-20T10:20:41","date_gmt":"2024-08-20T02:20:41","guid":{"rendered":"https:\/\/aif.amtbbs.org\/?p=21797"},"modified":"2024-08-20T10:20:41","modified_gmt":"2024-08-20T02:20:41","slug":"ai-%e7%bd%91%e5%85%b3%e9%9b%b6%e4%bb%a3%e7%a0%81%e8%a7%a3%e5%86%b3-ai-%e5%b9%bb%e8%a7%89%e9%97%ae%e9%a2%98","status":"publish","type":"post","link":"https:\/\/aif.amtbbs.org\/index.php\/2024\/08\/20\/21797\/","title":{"rendered":"AI \u7f51\u5173\u96f6\u4ee3\u7801\u89e3\u51b3 AI \u5e7b\u89c9\u95ee\u9898"},"content":{"rendered":"<div><img data-dominant-color=\"174764\" data-has-transparency=\"false\" style=\"--dominant-color: #174764;\" loading=\"lazy\" decoding=\"async\" class=\"not-transparent alignnone size-full wp-image-21799\" src=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2024\/08\/f7a9b1442e35673aec2244d15e65cd6d3cadd3-300x167-1.jpg\" width=\"300\" height=\"167\" alt=\"\" srcset=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2024\/08\/f7a9b1442e35673aec2244d15e65cd6d3cadd3-300x167-1.jpg 300w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2024\/08\/f7a9b1442e35673aec2244d15e65cd6d3cadd3-300x167-1-150x84.jpg 150w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/div>\n<div><\/div>\n<div class=\"article-desc\">\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4e86 AI Agent \u7684\u80cc\u666f\uff0c\u6982\u5ff5\uff0c\u63a2\u8ba8\u4e86 AI Agent \u7f51\u5173\u63d2\u4ef6\u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u6548\u679c\u4ee5\u53ca\u5b9e\u73b0\u539f\u7406\u3002\u5e0c\u671b\u5bf9\u4f60\u6709\u5e2e\u52a9\uff01<\/div>\n<div id=\"postspictures\" class=\"article-content\">\n<div id=\"container\" class=\"container am-engine\" data-v-1d7a5742=\"\" data-element=\"root\">\n<h2>1.\u524d\u8a00<\/h2>\n<p>&nbsp;<\/p>\n<h3>\u4ec0\u4e48\u662f\u00a0AI Agent<\/h3>\n<p>\u968f\u7740\u5927\u6a21\u578b\u6280\u672f\u7684\u5feb\u901f\u53d1\u5c55\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u516c\u53f8\u5728\u5b9e\u9645\u4e1a\u52a1\u4e2d\u843d\u5730\u4e86\u5927\u6a21\u578b\u5e94\u7528\u3002\u4f46\u662f\u4eba\u4eec\u9010\u6e10\u53d1\u73b0\u4e86\u5927\u6a21\u578b\u80fd\u529b\u7684\u4e0d\u8db3\u3002\u4f8b\u5982\uff1a\u7531\u4e8e\u5927\u6a21\u578b\u7684\u8bad\u7ec3\u6570\u636e\u662f\u6709\u9650\u7684\uff0c\u56e0\u6b64\u4e00\u4e9b\u5782\u76f4\u9886\u57df\u7684\u77e5\u8bc6\uff0c\u5982\u91d1\u878d\uff0c\u533b\u7597\u7b49\u7b49\uff0c\u5927\u6a21\u578b\u65e0\u6cd5\u56de\u7b54\uff0c\u6216\u8005\u5bb9\u6613\u51fa\u73b0\u5e7b\u89c9\u3002\u5e76\u4e14\u968f\u7740\u4e1a\u52a1\u7684\u590d\u6742\u5ea6\u63d0\u9ad8\uff0c\u5982\u4f55\u80fd\u8ba9\u5927\u6a21\u578b\u50cf\u4eba\u4e00\u6837\u601d\u8003\uff0c\u6df1\u5ea6\u7684\u5206\u6790\u89e3\u51b3\u95ee\u9898\uff0c\u4e5f\u5bf9\u5927\u6a21\u578b\u7684\u7406\u89e3\u529b\u63d0\u51fa\u4e86\u6311\u6218\u3002<\/p>\n<p>\u5728\u8fd9\u6837\u7684\u80cc\u666f\u4e0b\uff0c\u4e1a\u754c\u63d0\u51fa\u4e86 AI Agent \u7684\u6982\u5ff5\u3002AI Agent \u4e2d\u6587\u7ffb\u8bd1\u6210\u667a\u80fd\u4f53\uff0c\u65e8\u5728\u8ba9\u5927\u6a21\u578b\u50cf\u4eba\u8111\u4e00\u6837\u601d\u8003\u95ee\u9898\uff0c\u901a\u8fc7\u5728\u601d\u8003\u8fc7\u7a0b\u4e2d\u7684\u4e0d\u65ad\u53cd\u9988\u4ee5\u53ca\u5de5\u5177\u7684\u8c03\u7528\uff0c\u6700\u7ec8\u5b9e\u73b0\u9010\u6b65\u5b8c\u6210\u7ed9\u5b9a\u76ee\u6807\u7684\u8fc7\u7a0b\u3002\u4f8b\u5982\uff0c\u7528\u6237\u4f7f\u7528\u5916\u5356\u52a9\u624b Agent\uff0c\u53ea\u9700\u544a\u8bc9 Agent\uff0c\u6211\u60f3\u70b9\u4e00\u4efd\u80af\u5fb7\u57fa\u7684\u4e0a\u6821\u9e21\u5757\uff0cAgent \u4fbf\u53ef\u4ee5\u5b9e\u73b0\u641c\u7d22\u80af\u5fb7\u57fa\u5546\u5bb6\uff0c\u9009\u62e9\u98df\u7269\uff0c\u4e0b\u5355\uff0c\u652f\u4ed8\u7b49\u4e00\u7cfb\u5217\u7684\u601d\u8003\u8fc7\u7a0b\u4ee5\u53ca\u5de5\u5177\u8c03\u7528\uff0c\u65e0\u9700\u4eba\u5de5\u53c2\u4e0e\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>\u4ec0\u4e48\u662f AI Gateway<\/h3>\n<p>AI Gateway \u7684\u5b9a\u4e49\u662f\u00a0AI Native\u00a0\u7684 API Gateway\uff0c\u662f\u57fa\u4e8e API Gateway \u7684\u80fd\u529b\u6765\u6ee1\u8db3 AI Native \u7684\u9700\u6c42\u3002\u4f8b\u5982\uff1a<\/p>\n<ul data-id=\"ua73dd4b-O1BYETMX\">\n<li data-id=\"ld70c578-TlkIGJPD\">\u5c06\u4f20\u7edf\u7684\u00a0QPS\u00a0\u9650\u6d41\u6269\u5c55\u5230 Token \u9650\u6d41\u3002<\/li>\n<li data-id=\"ld70c578-h5K7jid0\">\u5c06\u4f20\u7edf\u7684\u8d1f\u8f7d\u5747\u8861\/\u91cd\u8bd5\/fallback \u80fd\u529b\u5ef6\u4f38\uff0c\u652f\u6301\u5bf9\u63a5\u591a\u4e2a\u5927\u6a21\u578b\u5382\u5546 API\uff0c\u63d0\u9ad8\u6574\u4f53\u7a33\u5b9a\u6027\u3002<\/li>\n<li data-id=\"ld70c578-ZKb9K3R6\">\u6269\u5c55\u53ef\u89c2\u6d4b\u80fd\u529b\uff0c\u652f\u6301\u4e0d\u540c\u6a21\u578b\u4e4b\u95f4\u6548\u679c\u5bf9\u6bd4\u7684 A\/B Test\uff0c\u4ee5\u53ca\u5bf9\u8bdd\u4e0a\u4e0b\u6587\u94fe\u8def Tracing \u7b49\u3002<\/li>\n<\/ul>\n<p>Higress[1]\u662f\u963f\u91cc\u4e91\u5f00\u6e90\u7684\u4e00\u6b3e AI Gateway\uff0c\u57fa\u4e8e API Gateway \u7684\u80fd\u529b\uff0c\u518d\u52a0\u4e0a\u57fa\u4e8e\u00a0Wasm\u00a0\u63d2\u4ef6\u6269\u5c55\u7684\u5927\u91cf AI \u63d2\u4ef6\uff0c\u5c31\u53ef\u4ee5\u6ee1\u8db3\u4e0a\u8ff0\u6240\u6709 AI Native \u7684\u9700\u6c42\u3002<\/p>\n<p>\u6211\u4e5f\u662f\u57fa\u4e8e Higress \u7684 Wasm \u63d2\u4ef6\u6269\u5c55\u80fd\u529b\uff0c\u5f00\u53d1\u4e86\u4e00\u4e2a AI Agent \u63d2\u4ef6\uff0c\u901a\u8fc7\u53d1\u6325 API Gateway \u5bf9\u4e8e API \u7ba1\u7406\u7684\u4f18\u52bf\uff0c\u7528 API \u8d4b\u80fd AI Agent\uff0c\u57fa\u4e8e Agent ReAct \u80fd\u529b\uff0c\u53ef\u4ee5\u5b9e\u73b0\u96f6\u4ee3\u7801\u5feb\u901f\u6784\u5efa\u4e00\u4e2a AI Agent \u5e94\u7528\u3002<\/p>\n<p>\u672c\u6587\u5c06\u4ee5\u9ad8\u5fb7\u5730\u56fe\u548c\u5fc3\u77e5\u5929\u6c14\u4e24\u4e2a\u670d\u52a1\u4e3a\u4f8b\uff0c\u4ecb\u7ecd\u4e00\u4e0b\u5982\u4f55\u96f6\u4ee3\u7801\u4f7f\u7528 AI Agent \u63d2\u4ef6\u6784\u5efa\u4e00\u4e2a\u540c\u65f6\u652f\u6301\u5730\u56fe\u670d\u52a1\u548c\u5929\u6c14\u670d\u52a1\u7684 Agent\uff0c\u540c\u65f6\u4f1a\u63a2\u8ba8 AI Agent \u63d2\u4ef6\u7684\u5b9e\u73b0\u539f\u7406\u3002<\/p>\n<h2>2.AI Agent \u63d2\u4ef6\u4f7f\u7528<\/h2>\n<p>&nbsp;<\/p>\n<h3>apiKey \u7533\u8bf7<\/h3>\n<p>\u9ad8\u5fb7\u5730\u56fe\u63d0\u4f9b\u4e86\u5730\u56fe\u76f8\u5173\u4e1a\u52a1\u7684 API \u670d\u52a1\uff0c\u4f8b\u5982\u5730\u70b9\u641c\u7d22\uff0c\u5bfc\u822a\u7b49\u7b49\uff1b\u5fc3\u77e5\u5929\u6c14\u63d0\u4f9b\u4e86\u5929\u6c14\u60c5\u51b5\u67e5\u8be2\u7684\u76f8\u5173 API \u670d\u52a1\u3002\u4e24\u4e2a\u670d\u52a1\u90fd\u63d0\u4f9b\u4e86\u6bcf\u65e5\u514d\u8d39\u7684 API \u8c03\u7528\u6b21\u6570\uff0c\u65b9\u4fbf\u7528\u6237\u6d4b\u8bd5\u3002<\/p>\n<p>\u4f7f\u7528\u8fd9\u4e24\u4e2a\u670d\u52a1\u9700\u8981\u53bb\u5176\u5b98\u65b9\u7f51\u5740\uff0c\u6ce8\u518c\u8d26\u53f7\uff0c\u7533\u8bf7 apiKey\uff0c\u6709\u4e86 apiKey\uff0c\u4fbf\u53ef\u4ee5\u6839\u636e\u5b98\u65b9 API \u6587\u6863\u53bb\u8c03\u7528 API\u3002\u5b98\u65b9\u6587\u6863\u7684\u94fe\u63a5\u6211\u653e\u5728\u4e0b\u65b9\uff0c\u8fd9\u91cc\u5c31\u4e0d\u518d\u8d58\u8ff0\u7533\u8bf7 apiKey \u7684\u8fc7\u7a0b\u3002<\/p>\n<p>\u9ad8\u5fb7\u5730\u56fe\uff1a\u5165\u95e8\u6307\u5357-Web \u670d\u52a1 API\u4e28\u9ad8\u5fb7\u5730\u56fe API\uff08amap.com\uff09[2]<\/p>\n<p>\u5fc3\u77e5\u5929\u6c14\uff1a\u67e5\u770b\/\u4fee\u6539\u4f60\u7684 API \u5bc6\u94a5\uff08yuque.com\uff09[3]<\/p>\n<p>&nbsp;<\/p>\n<h3>Higress\u670d\u52a1\u914d\u7f6e<\/h3>\n<p>\u4e3a\u4e86\u8ba9\u63d2\u4ef6\u80fd\u591f\u8bbf\u95ee\u901a\u4e49\u5343\u95ee\u5927\u6a21\u578b\u4ee5\u53ca\u9ad8\u5fb7\u5730\u56fe\u548c\u5fc3\u77e5\u5929\u6c14\u670d\u52a1\uff0c\u9700\u8981\u5728 Higress \u7684\u8def\u7531\u7ba1\u7406-\u670d\u52a1\u4e2d\uff0c\u914d\u7f6e\u670d\u52a1\u3002\u670d\u52a1\u7c7b\u578b\u4e3a DNS \u57df\u540d\uff1a<\/p>\n<p><img decoding=\"async\" title=\"\u56fe\u7247\" src=\"https:\/\/s4.51cto.com\/oss\/202408\/20\/b3601ff66b09e2328db3741acca5756ae76da9.jpg\" alt=\"\u56fe\u7247\" data-type=\"block\" \/><span class=\"data-image-title\">\u56fe\u7247<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3>\u63d2\u4ef6\u53c2\u6570\u914d\u7f6e<\/h3>\n<p>\u5728\u63d2\u4ef6\u914d\u7f6e\u4e2d\uff0c\u9009\u62e9\u5b9e\u4f8b\u7ea7\u63d2\u4ef6\u89c4\u5219\uff0c\u914d\u7f6e\u5982\u4e0b\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_0\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">dashscope: <span class=\"token comment\">#\u901a\u4e49\u5343\u95ee\u5927\u6a21\u578b\u5ba2\u6237\u7aef\u914d\u7f6e<\/span>\r\n  apiKey: sk<span class=\"token operator\">-<\/span>xxxxxxxxxxxxxxxxxxxxxxx\r\n  domain: dashscope<span class=\"token punctuation\">.<\/span>aliyuncs<span class=\"token punctuation\">.<\/span>com\r\n  serviceName: dashscope\r\n  servicePort: <span class=\"token number\">443<\/span>\r\npromptTemplate:\r\n  <span class=\"token keyword\">language<\/span>: CH\r\napis:\r\n<span class=\"token operator\">-<\/span> apiProvider:\r\n    domain: restapi<span class=\"token punctuation\">.<\/span>amap<span class=\"token punctuation\">.<\/span>com\r\n    serviceName: geo\r\n    servicePort: <span class=\"token number\">80<\/span>\r\n    apiKey:\r\n      <span class=\"token operator\">in<\/span>: query\r\n      name: <span class=\"token keyword\">key<\/span>\r\n      <span class=\"token keyword\">value<\/span>: fcxxxxxxxxxxxxxxxxxx\r\n  api: <span class=\"token operator\">|<\/span>\r\n    openapi: <span class=\"token number\">3.1<\/span><span class=\"token number\">.0<\/span>\r\n    info:\r\n      title: \u9ad8\u5fb7\u5730\u56fe\r\n      description: \u83b7\u53d6 POI \u7684\u76f8\u5173\u4fe1\u606f\r\n      version: v1<span class=\"token punctuation\">.<\/span><span class=\"token number\">0.0<\/span>\r\n    servers:\r\n      <span class=\"token operator\">-<\/span> url: https:<span class=\"token comment\">\/\/restapi.amap.com<\/span>\r\n    paths:\r\n      <span class=\"token operator\">\/<\/span>v5<span class=\"token operator\">\/<\/span>place<span class=\"token operator\">\/<\/span><span class=\"token keyword\">text<\/span>:\r\n        get:\r\n          description: \u6839\u636ePOI\u540d\u79f0\uff0c\u83b7\u5f97POI\u7684\u7ecf\u7eac\u5ea6\u5750\u6807\r\n          operationId: get_location_coordinate\r\n          parameters:\r\n            <span class=\"token operator\">-<\/span> name: keywords\r\n              <span class=\"token operator\">in<\/span>: query\r\n              description: POI\u540d\u79f0\uff0c\u5fc5\u987b\u662f\u4e2d\u6587\r\n              required: <span class=\"token boolean\">true<\/span>\r\n              <span class=\"token keyword\">schema<\/span>:\r\n                <span class=\"token keyword\">type<\/span>: string\r\n            <span class=\"token operator\">-<\/span> name: region\r\n              <span class=\"token operator\">in<\/span>: query\r\n              description: POI\u6240\u5728\u7684\u533a\u57df\u540d\uff0c\u5fc5\u987b\u662f\u4e2d\u6587\r\n              required: <span class=\"token boolean\">true<\/span>\r\n              <span class=\"token keyword\">schema<\/span>:\r\n                <span class=\"token keyword\">type<\/span>: string\r\n          deprecated: <span class=\"token boolean\">false<\/span>\r\n      <span class=\"token operator\">\/<\/span>v5<span class=\"token operator\">\/<\/span>place<span class=\"token operator\">\/<\/span>around:\r\n        get:\r\n          description: \u641c\u7d22\u7ed9\u5b9a\u5750\u6807\u9644\u8fd1\u7684POI\r\n          operationId: search_nearby_pois\r\n          parameters:\r\n            <span class=\"token operator\">-<\/span> name: keywords\r\n              <span class=\"token operator\">in<\/span>: query\r\n              description: \u76ee\u6807POI\u7684\u5173\u952e\u5b57\r\n              required: <span class=\"token boolean\">true<\/span>\r\n              <span class=\"token keyword\">schema<\/span>:\r\n                <span class=\"token keyword\">type<\/span>: string\r\n            <span class=\"token operator\">-<\/span> name: location\r\n              <span class=\"token operator\">in<\/span>: query\r\n              description: \u4e2d\u5fc3\u70b9\u7684\u7ecf\u5ea6\u548c\u7eac\u5ea6\uff0c\u7528\u9017\u53f7\u9694\u5f00\r\n              required: <span class=\"token boolean\">true<\/span>\r\n              <span class=\"token keyword\">schema<\/span>:\r\n                <span class=\"token keyword\">type<\/span>: string\r\n          deprecated: <span class=\"token boolean\">false<\/span>\r\n    components:\r\n      schemas: {}\r\n<span class=\"token operator\">-<\/span> apiProvider:\r\n    domain: api<span class=\"token punctuation\">.<\/span>seniverse<span class=\"token punctuation\">.<\/span>com\r\n    serviceName: seniverse\r\n    servicePort: <span class=\"token number\">80<\/span>\r\n    apiKey:\r\n      <span class=\"token operator\">in<\/span>: query\r\n      name: <span class=\"token keyword\">key<\/span>\r\n      <span class=\"token keyword\">value<\/span>: SMxxxxxxxxxxxxxx\r\n  api: <span class=\"token operator\">|<\/span>\r\n    openapi: <span class=\"token number\">3.1<\/span><span class=\"token number\">.0<\/span>\r\n    info:\r\n      title: \u5fc3\u77e5\u5929\u6c14\r\n      description: \u83b7\u53d6 \u5929\u6c14\u9884\u529e\u76f8\u5173\u4fe1\u606f\r\n      version: v1<span class=\"token punctuation\">.<\/span><span class=\"token number\">0.0<\/span>\r\n    servers:\r\n      <span class=\"token operator\">-<\/span> url: https:<span class=\"token comment\">\/\/api.seniverse.com<\/span>\r\n    paths:\r\n      <span class=\"token operator\">\/<\/span>v3<span class=\"token operator\">\/<\/span>weather<span class=\"token operator\">\/<\/span>now<span class=\"token punctuation\">.<\/span>json:\r\n        get:\r\n          description: \u83b7\u53d6\u6307\u5b9a\u57ce\u5e02\u7684\u5929\u6c14\u5b9e\u51b5\r\n          operationId: get_weather_now\r\n          parameters:\r\n            <span class=\"token operator\">-<\/span> name: location\r\n              <span class=\"token operator\">in<\/span>: query\r\n              description: \u6240\u67e5\u8be2\u7684\u57ce\u5e02\r\n              required: <span class=\"token boolean\">true<\/span>\r\n              <span class=\"token keyword\">schema<\/span>:\r\n                <span class=\"token keyword\">type<\/span>: string\r\n            <span class=\"token operator\">-<\/span> name: <span class=\"token keyword\">language<\/span>\r\n              <span class=\"token operator\">in<\/span>: query\r\n              description: \u8fd4\u56de\u5929\u6c14\u67e5\u8be2\u7ed3\u679c\u6240\u4f7f\u7528\u7684\u8bed\u8a00\r\n              required: <span class=\"token boolean\">true<\/span>\r\n              <span class=\"token keyword\">schema<\/span>:\r\n                <span class=\"token keyword\">type<\/span>: string\r\n                <span class=\"token keyword\">default<\/span>: zh<span class=\"token operator\">-<\/span>Hans\r\n                <span class=\"token keyword\">enum<\/span>:\r\n                  <span class=\"token operator\">-<\/span> zh<span class=\"token operator\">-<\/span>Hans\r\n                  <span class=\"token operator\">-<\/span> en\r\n                  <span class=\"token operator\">-<\/span> ja\r\n            <span class=\"token operator\">-<\/span> name: unit\r\n              <span class=\"token operator\">in<\/span>: query\r\n              description: \u8868\u793a\u6e29\u5ea6\u7684\u7684\u5355\u4f4d\uff0c\u6709\u6444\u6c0f\u5ea6\u548c\u534e\u6c0f\u5ea6\u4e24\u79cd\r\n              required: <span class=\"token boolean\">true<\/span>\r\n              <span class=\"token keyword\">schema<\/span>:\r\n                <span class=\"token keyword\">type<\/span>: string\r\n                <span class=\"token keyword\">default<\/span>: c\r\n                <span class=\"token keyword\">enum<\/span>:\r\n                  <span class=\"token operator\">-<\/span> c\r\n                  <span class=\"token operator\">-<\/span> f\r\n          deprecated: <span class=\"token boolean\">false<\/span>\r\n    components:\r\n      schemas: {}<\/code><\/pre>\n<ul id=\"code_id_0\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<li>3.<\/li>\n<li>4.<\/li>\n<li>5.<\/li>\n<li>6.<\/li>\n<li>7.<\/li>\n<li>8.<\/li>\n<li>9.<\/li>\n<li>10.<\/li>\n<li>11.<\/li>\n<li>12.<\/li>\n<li>13.<\/li>\n<li>14.<\/li>\n<li>15.<\/li>\n<li>16.<\/li>\n<li>17.<\/li>\n<li>18.<\/li>\n<li>19.<\/li>\n<li>20.<\/li>\n<li>21.<\/li>\n<li>22.<\/li>\n<li>23.<\/li>\n<li>24.<\/li>\n<li>25.<\/li>\n<li>26.<\/li>\n<li>27.<\/li>\n<li>28.<\/li>\n<li>29.<\/li>\n<li>30.<\/li>\n<li>31.<\/li>\n<li>32.<\/li>\n<li>33.<\/li>\n<li>34.<\/li>\n<li>35.<\/li>\n<li>36.<\/li>\n<li>37.<\/li>\n<li>38.<\/li>\n<li>39.<\/li>\n<li>40.<\/li>\n<li>41.<\/li>\n<li>42.<\/li>\n<li>43.<\/li>\n<li>44.<\/li>\n<li>45.<\/li>\n<li>46.<\/li>\n<li>47.<\/li>\n<li>48.<\/li>\n<li>49.<\/li>\n<li>50.<\/li>\n<li>51.<\/li>\n<li>52.<\/li>\n<li>53.<\/li>\n<li>54.<\/li>\n<li>55.<\/li>\n<li>56.<\/li>\n<li>57.<\/li>\n<li>58.<\/li>\n<li>59.<\/li>\n<li>60.<\/li>\n<li>61.<\/li>\n<li>62.<\/li>\n<li>63.<\/li>\n<li>64.<\/li>\n<li>65.<\/li>\n<li>66.<\/li>\n<li>67.<\/li>\n<li>68.<\/li>\n<li>69.<\/li>\n<li>70.<\/li>\n<li>71.<\/li>\n<li>72.<\/li>\n<li>73.<\/li>\n<li>74.<\/li>\n<li>75.<\/li>\n<li>76.<\/li>\n<li>77.<\/li>\n<li>78.<\/li>\n<li>79.<\/li>\n<li>80.<\/li>\n<li>81.<\/li>\n<li>82.<\/li>\n<li>83.<\/li>\n<li>84.<\/li>\n<li>85.<\/li>\n<li>86.<\/li>\n<li>87.<\/li>\n<li>88.<\/li>\n<li>89.<\/li>\n<li>90.<\/li>\n<li>91.<\/li>\n<li>92.<\/li>\n<li>93.<\/li>\n<li>94.<\/li>\n<li>95.<\/li>\n<li>96.<\/li>\n<li>97.<\/li>\n<li>98.<\/li>\n<li>99.<\/li>\n<li>100.<\/li>\n<li>101.<\/li>\n<li>102.<\/li>\n<li>103.<\/li>\n<li>104.<\/li>\n<li>105.<\/li>\n<li>106.<\/li>\n<li>107.<\/li>\n<li>108.<\/li>\n<li>109.<\/li>\n<li>110.<\/li>\n<li>111.<\/li>\n<li>112.<\/li>\n<li>113.<\/li>\n<li>114.<\/li>\n<li>115.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u63d2\u4ef6\u914d\u7f6e\u5206\u4e09\u90e8\u5206\uff0c\u7b2c\u4e00\u90e8\u5206 dashscope\uff0c\u662f\u901a\u4e49\u5343\u95ee\u5927\u6a21\u578b\u670d\u52a1\u7684\u76f8\u5173\u4fe1\u606f\uff0c\u7b2c\u4e8c\u90e8\u5206 promptTemplate\uff0c\u662f\u81ea\u5b9a\u4e49 agent react \u6a21\u677f\u7684\u914d\u7f6e\u9879\uff0c\u793a\u4f8b\u4e2d\u7684 language \u662f\u6307\u4f7f\u7528\u4e2d\u6587\u6a21\u677f\uff0c\u7b2c\u4e09\u90e8\u5206 apis \u662f\u5916\u90e8 API \u670d\u52a1\u7684\u76f8\u5173\u914d\u7f6e\uff0c\u5305\u542b\u670d\u52a1\u76f8\u5173\u4fe1\u606f apiProvider \u4ee5\u53ca api(tools) \u7684 OpenAPI \u6587\u6863\uff0c\u8fd9\u4e00\u90e8\u5206\u662f\u5b9e\u73b0 agent \u8c03\u7528\u5916\u90e8\u5de5\u5177\u7684\u5173\u952e\uff0cagent \u4f1a\u901a\u8fc7\u7406\u89e3 OpenAPI \u6587\u6863\u6765\u7406\u89e3\u53c2\u6570\u5e94\u8be5\u8d4b\u4ec0\u4e48\u503c\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>\u63d2\u4ef6\u6548\u679c<\/h3>\n<p>\u793a\u4f8b\u8bf7\u6c42\u4e00\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_1\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">curl <span class=\"token string\">'http:\/\/&lt;\u8fd9\u91cc\u6362\u6210\u7f51\u5173\u516c\u7f51IP&gt;\/api\/openai\/v1\/chat\/completions'<\/span> \\\r\n<span class=\"token operator\">-<\/span>H <span class=\"token string\">'Accept: application\/json, text\/event-stream'<\/span> \\\r\n<span class=\"token operator\">-<\/span>H <span class=\"token string\">'Content-Type: application\/json'<\/span> \\\r\n<span class=\"token comment\">--data-raw '{\"messages\":[{\"role\":\"user\",\"content\":\"\u6211\u60f3\u5728\u6d4e\u5357\u5e02\u946b\u76db\u5927\u53a6\u9644\u8fd1\u559d\u5496\u5561\uff0c\u7ed9\u6211\u63a8\u8350\u51e0\u4e2a\"}],\"model\":\"qwen\",\"stream\":false}'<\/span><\/code><\/pre>\n<ul id=\"code_id_1\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<li>3.<\/li>\n<li>4.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u793a\u4f8b\u54cd\u5e94\u4e00\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_2\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">{<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">,<\/span><span class=\"token string\">\"content\"<\/span>:<span class=\"token string\">\" \u5728\u6d4e\u5357\u5e02\u946b\u76db\u5927\u53a6\u9644\u8fd1\uff0c\u60a8\u53ef\u4ee5\u9009\u62e9\u4ee5\u4e0b\u5496\u5561\u5e97\uff1a\\n1. luckin coffee \u745e\u5e78\u5496\u5561(\u946b\u76db\u5927\u53a6\u5e97)\uff0c\u4f4d\u4e8e\u65b0\u6cfa\u5927\u88571299\u53f7\u946b\u76db\u5927\u53a62\u53f7\u697c\u5927\u5802\uff1b\\n2. \u4e09\u5e86\u9f50\u76db\u5e7f\u573a\u632a\u74e6\u5496\u5561(\u4e09\u5e86\u00b7\u9f50\u76db\u5e7f\u573a\u5e97)\uff0c\u4f4d\u4e8e\u65b0\u6cfa\u5927\u8857\u4e0e\u9896\u79c0\u8def\u4ea4\u53c9\u53e3\u897f\u535760\u7c73\uff1b\\n3. luckin coffee \u745e\u5e78\u5496\u5561(\u4e09\u5e86\u00b7\u9f50\u76db\u5e7f\u573a\u5e97)\uff0c\u4f4d\u4e8e\u9896\u79c0\u8def1267\u53f7\uff1b\\n4. \u5e93\u8fea\u5496\u5561(\u9f50\u9c81\u8f6f\u4ef6\u56ed\u5e97)\uff0c\u4f4d\u4e8e\u65b0\u6cfa\u5927\u8857\u4e09\u5e86\u9f50\u76db\u5e7f\u573a4\u53f7\u697c\u5e95\u5546\uff1b\\n5. \u5e93\u8fea\u5496\u5561(\u7f8e\u83b2\u5e7f\u573a\u5e97)\uff0c\u4f4d\u4e8e\u9ad8\u65b0\u533a\u65b0\u6cfa\u5927\u88571166\u53f7\u7f8e\u83b2\u5e7f\u573aL117\u53f7\uff1b\u4ee5\u53ca\u5176\u4ed6\u4e00\u4e9b\u9009\u9879\u3002\u5e0c\u671b\u8fd9\u4e9b\u5efa\u8bae\u5bf9\u60a8\u6709\u6240\u5e2e\u52a9\uff01\"<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span>}<\/code><\/pre>\n<ul id=\"code_id_2\" class=\"pre-numbering\">\n<li>1.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u793a\u4f8b\u8bf7\u6c42\u4e8c\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_3\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">curl <span class=\"token string\">'http:\/\/&lt;\u8fd9\u91cc\u6362\u6210\u7f51\u5173\u516c\u7f51IP&gt;\/api\/openai\/v1\/chat\/completions'<\/span> \\\r\n<span class=\"token operator\">-<\/span>H <span class=\"token string\">'Accept: application\/json, text\/event-stream'<\/span> \\\r\n<span class=\"token operator\">-<\/span>H <span class=\"token string\">'Content-Type: application\/json'<\/span> \\\r\n<span class=\"token comment\">--data-raw '{\"messages\":[{\"role\":\"user\",\"content\":\"\u6d4e\u5357\u5e02\u73b0\u5728\u7684\u5929\u6c14\u60c5\u51b5\u5982\u4f55\uff1f\"}],\"model\":\"qwen\",\"stream\":false}'<\/span><\/code><\/pre>\n<ul id=\"code_id_3\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<li>3.<\/li>\n<li>4.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u793a\u4f8b\u54cd\u5e94\u4e8c\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_4\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">{<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token string\">\"content\"<\/span>:<span class=\"token string\">\" \u6d4e\u5357\u5e02\u73b0\u5728\u7684\u5929\u6c14\u72b6\u51b5\u4e3a\u9634\u5929\uff0c\u6e29\u5ea6\u4e3a31\u2103\u3002\u6b64\u4fe1\u606f\u6700\u540e\u66f4\u65b0\u4e8e2024\u5e748\u67089\u65e515\u65f612\u5206\uff08\u5317\u4eac\u65f6\u95f4\uff09\u3002\"<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span>}<\/code><\/pre>\n<ul id=\"code_id_4\" class=\"pre-numbering\">\n<li>1.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u793a\u4f8b\u8bf7\u6c42\u4e09\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_5\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">curl <span class=\"token string\">'http:\/\/&lt;\u8fd9\u91cc\u6362\u6210\u7f51\u5173\u516c\u7f51IP&gt;\/api\/openai\/v1\/chat\/completions'<\/span> \\\r\n<span class=\"token operator\">-<\/span>H <span class=\"token string\">'Accept: application\/json, text\/event-stream'<\/span> \\\r\n<span class=\"token operator\">-<\/span>H <span class=\"token string\">'Content-Type: application\/json'<\/span> \\\r\n<span class=\"token comment\">--data-raw '{\"messages\":[{\"role\":\"user\",\"content\":\"\u6d4e\u5357\u5e02\u73b0\u5728\u7684\u5929\u6c14\u60c5\u51b5\u5982\u4f55\uff1f\u7528\u534e\u6c0f\u5ea6\u8868\u793a\uff0c\u7528\u65e5\u8bed\u56de\u7b54\"}],\"model\":\"qwen\",\"stream\":false}'<\/span><\/code><\/pre>\n<ul id=\"code_id_5\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<li>3.<\/li>\n<li>4.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u793a\u4f8b\u54cd\u5e94\u4e09\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_6\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">{<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token string\">\"content\"<\/span>:<span class=\"token string\">\" \u6d4e\u5357\u5e02\u306e\u73fe\u5728\u306e\u5929\u6c17\u306f\u96e8\u66c7\u308a\u3067\u3001\u6c17\u6e29\u306f88\u00b0F\u3067\u3059\u3002\u3053\u306e\u60c5\u5831\u306f2024\u5e748\u67089\u65e515\u664212\u5206\uff08\u6771\u4eac\u6642\u9593\uff09\u306b\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002\"<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span>}<\/code><\/pre>\n<ul id=\"code_id_6\" class=\"pre-numbering\">\n<li>1.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h2>3.AI Agent \u5b9e\u73b0\u539f\u7406<\/h2>\n<p>&nbsp;<\/p>\n<h3>ReAct \u539f\u7406<\/h3>\n<p>AI Agent \u63d2\u4ef6\u7684\u5b9e\u73b0\u662f\u4f7f\u7528\u4e86 ReAct\uff08Reasoning and Action\uff09\uff0cReAct \u4e00\u8bcd\u6765\u81ea\u4e8e\u8bba\u6587\u300aReAct: Synergizing Reasoning and Acting in Language Models\u300b\uff0c\u5176\u6838\u5fc3\u601d\u60f3\u662f\u901a\u8fc7\u601d\u7ef4\u94fe\u7684\u65b9\u5f0f\uff0c\u5f15\u5bfc\u6a21\u578b\u5c06\u590d\u6742\u95ee\u9898\u8fdb\u884c\u62c6\u5206\uff0c\u4e00\u6b65\u4e00\u6b65\u5730\u63a8\u7406\uff08Reasoning\uff09\u548c\u884c\u52a8\uff08Action\uff09\uff0c\u540c\u4e8b\u8fd8\u5f15\u5165\u4e86\u89c2\u5bdf\uff08Observation\uff09\u73af\u8282\uff0c\u5728\u6bcf\u6b21\u6267\u884c\uff08Action\uff09\u4e4b\u540e\uff0c\u90fd\u4f1a\u5148\u89c2\u5bdf\uff08Observation\uff09\u5f53\u524d\u73b0\u72b6\uff0c\u7136\u540e\u518d\u8fdb\u884c\u4e0b\u4e00\u6b65\u7684\u63a8\u7406\uff08Reasoning\uff09\u3002<\/p>\n<p>ReAct\uff0c\u5c31\u662f\u8981\u8ba9\u5f00\u53d1\u8005\u5f15\u5bfc\u5927\u6a21\u578b\u8fdb\u884c\u63a8\u7406\uff0c\u7136\u540e\u6839\u636e\u63a8\u7406\u7ed3\u679c\uff0c\u5224\u65ad\u9700\u8981\u91c7\u53d6\u54ea\u4e2a\u884c\u52a8\uff08\u8c03\u7528\u5de5\u5177\uff09\uff0c\u4e0e\u5916\u754c\u73af\u5883\u4e92\u52a8\u3002<\/p>\n<p>ReAct \u7684\u5de5\u4f5c\u6d41\u7a0b\u5982\u4e0b\uff1a<\/p>\n<p><img decoding=\"async\" title=\"\u56fe\u7247\" src=\"https:\/\/s2.51cto.com\/oss\/202408\/20\/65b870c85ab4f730fad47733a85eedcd2db3fe.png\" alt=\"\u56fe\u7247\" data-type=\"block\" \/><span class=\"data-image-title\">\u56fe\u7247<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3>\u63d2\u4ef6\u5b9e\u73b0\u903b\u8f91<\/h3>\n<p>\u63d2\u4ef6\u7684\u5de5\u4f5c\u6d41\u7a0b\u5982\u4e0b\uff1a<\/p>\n<p><img decoding=\"async\" title=\"\u56fe\u7247\" src=\"https:\/\/s9.51cto.com\/oss\/202408\/20\/c342e3c98c96adabcd211289e9087db4bb0eca.jpg\" alt=\"\u56fe\u7247\" data-type=\"block\" \/><span class=\"data-image-title\">\u56fe\u7247<\/span><\/p>\n<p>AI Proxy \u63d2\u4ef6\u914d\u7f6e\u5728\u9ed8\u8ba4\u9636\u6bb5\uff0c\u800c AI Agent \u53ef\u4ee5\u914d\u7f6e\u5728\u786e\u4fdd\u6bd4 AI Agent \u4f18\u5148\u7ea7\u9ad8\u7684\u9636\u6bb5\uff0c\u6bd4\u5982\u8ba4\u8bc1\u9636\u6bb5\u3002\u8fd9\u6837\u53ef\u4ee5\u4fdd\u8bc1\u7528\u6237\u7684 http request \u53ef\u4ee5\u5148\u88ab AI Agent \u62e6\u622a\u5230\u3002<\/p>\n<p>AI Agent \u7684\u5904\u7406\u8fc7\u7a0b\u5206\u4e3a\u4e09\u4e2a\u90e8\u5206\u3002<\/p>\n<h4>1. \u53c2\u6570\u914d\u7f6e<\/h4>\n<p>\u4f7f\u7528 AI Agent \u9700\u8981\u5148\u6309\u4e0a\u4e00\u7ae0\u8282\u7684\u63d2\u4ef6\u53c2\u6570\u914d\u7f6e\u7684\u683c\u5f0f\u914d\u7f6e\u597d\u670d\u52a1\u4ee5\u53ca api \u76f8\u5173\u53c2\u6570\uff0c\u4e5f\u5c31\u662f\u56fe\u4e2d\u7b2c 0 \u6b65\u8981\u505a\u7684\u5de5\u4f5c\u3002<\/p>\n<h4>2. prompt \u6a21\u677f<\/h4>\n<p>\u9996\u5148\uff0c\u56e0\u4e3a Agent \u662f\u4e00\u4e2a\u4e00\u6b65\u4e00\u6b65\u601d\u8003\uff0c\u591a\u6b21\u8c03\u7528\u5de5\u5177\u7684\u8fc7\u7a0b\uff0c\u56e0\u6b64\u662f\u4e00\u4e2a\u591a\u8f6e\u5bf9\u8bdd\u573a\u666f\uff0c\u56e0\u6b64 AI Agent \u7ef4\u62a4\u4e86\u4e00\u4e2a messageStore\uff0c\u7528\u6765\u5b58\u50a8\u5386\u53f2\u5bf9\u8bdd\u3002<\/p>\n<p>\u6574\u4e2a Agent ReAct \u7684\u63a7\u5236\u6838\u5fc3\u5c31\u5728\u4e8e prompt \u6a21\u677f\uff0c\u4e2d\u6587\u7248\u672c\u7684\u6a21\u677f\u5982\u4e0b\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_7\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">\u5c3d\u4f60\u6240\u80fd\u56de\u7b54\u4ee5\u4e0b\u95ee\u9898\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u5de5\u5177\uff1a\r\n\r\n\r\n{tools}\r\n\r\n\r\n\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u683c\u5f0f\uff0c\u5176\u4e2d<span class=\"token keyword\">Action<\/span>\u5b57\u6bb5\u540e\u5fc5\u987b\u8ddf\u7740<span class=\"token keyword\">Action<\/span> Input\u5b57\u6bb5\uff0c\u5e76\u4e14\u4e0d\u8981\u5c06<span class=\"token keyword\">Action<\/span> Input\u66ff\u6362\u6210Input\u6216\u8005tool\u7b49\u5b57\u6bb5\uff0c\u4e0d\u80fd\u51fa\u73b0\u683c\u5f0f\u4ee5\u5916\u7684\u5b57\u6bb5\u540d\uff0c\u6bcf\u4e2a\u5b57\u6bb5\u5728\u6bcf\u4e2a\u8f6e\u6b21\u53ea\u51fa\u73b0\u4e00\u6b21\uff1a\r\nQuestion: \u4f60\u9700\u8981\u56de\u7b54\u7684\u8f93\u5165\u95ee\u9898\r\nThought: \u4f60\u5e94\u8be5\u603b\u662f\u601d\u8003\u8be5\u505a\u4ec0\u4e48\r\n<span class=\"token keyword\">Action<\/span>: \u8981\u91c7\u53d6\u7684\u52a8\u4f5c\uff0c\u52a8\u4f5c\u53ea\u80fd\u662f{tools_name}\u4e2d\u7684\u4e00\u4e2a \uff0c\u4e00\u5b9a\u4e0d\u8981\u52a0\u5165\u5176\u5b83\u5185\u5bb9\r\n<span class=\"token keyword\">Action<\/span> Input: \u884c\u52a8\u7684\u8f93\u5165\uff0c\u5fc5\u987b\u51fa\u73b0\u5728<span class=\"token keyword\">Action<\/span>\u540e\u3002\r\nObservation: \u884c\u52a8\u7684\u7ed3\u679c\r\n<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span>\uff08\u8fd9\u4e2aThought<span class=\"token operator\">\/<\/span><span class=\"token keyword\">Action<\/span><span class=\"token operator\">\/<\/span><span class=\"token keyword\">Action<\/span> Input<span class=\"token operator\">\/<\/span>Observation\u53ef\u4ee5\u91cd\u590dN\u6b21\uff09\r\nThought: \u6211\u73b0\u5728\u77e5\u9053\u6700\u7ec8\u7b54\u6848\r\nFinal Answer: \u5bf9\u539f\u59cb\u8f93\u5165\u95ee\u9898\u7684\u6700\u7ec8\u7b54\u6848\r\n\u518d\u6b21\u91cd\u7533\uff0c\u4e0d\u8981\u4fee\u6539\u4ee5\u4e0a\u6a21\u677f\u7684\u5b57\u6bb5\u540d\u79f0\uff0c\u5f00\u59cb\u5427\uff01\r\n\r\n\r\nQuestion: {input}<\/code><\/pre>\n<ul id=\"code_id_7\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<li>3.<\/li>\n<li>4.<\/li>\n<li>5.<\/li>\n<li>6.<\/li>\n<li>7.<\/li>\n<li>8.<\/li>\n<li>9.<\/li>\n<li>10.<\/li>\n<li>11.<\/li>\n<li>12.<\/li>\n<li>13.<\/li>\n<li>14.<\/li>\n<li>15.<\/li>\n<li>16.<\/li>\n<li>17.<\/li>\n<li>18.<\/li>\n<li>19.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u8be5\u6a21\u677f\u6307\u5bfc\u4e86\u5927\u6a21\u578b\u7684\u63a8\u7406\u8fc7\u7a0b\u3002<\/p>\n<p>\u5728 AI Agent \u7684 onHttpRequestBody \u9636\u6bb5\uff0c\u63a5\u6536\u5230\u7528\u6237\u7684 query \u540e\uff0c\u4f8b\u5982\uff1a\u6211\u8981\u5728\u5317\u4eac\u4e94\u9053\u53e3\u9644\u8fd1\u559d\u5496\u5561\uff0c\u5e2e\u6211\u63a8\u8350\u4e00\u4e0b\uff0c\u4f1a\u5c06 query \u586b\u5165 {input} \u90e8\u5206\uff0c\u540c\u65f6\u5c06\u63d2\u4ef6\u53c2\u6570\u914d\u7f6e\u4e2d\u7684 api \u540d\u79f0\uff0c\u529f\u80fd\u4ee5\u53ca OpenAPI \u6587\u6863\u653e\u5728 {tools} \u90e8\u5206\uff0c\u5c06 api \u540d\u79f0\u653e\u5728 {tools_name} \u90e8\u5206\u3002<\/p>\n<p>\u5c06\u8be5 prompt \u6a21\u677f\u5b58\u5165\u5230 messageStore \u4e2d\uff0c\u683c\u5f0f\u4e3a:<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_8\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">role: <span class=\"token keyword\">user<\/span>\r\nmsg: {prompt\u6a21\u677f}<\/code><\/pre>\n<ul id=\"code_id_8\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u4e4b\u540e\u901a\u8fc7 proxywasm.ReplaceHttpRequestBody \u51fd\u6570\u7528 prompt \u6a21\u677f\u66ff\u6362\u6389\u7528\u6237\u7684\u539f\u59cb query\uff0c\u901a\u8fc7 ai-proxy \u53d1\u9001\u7ed9\u5927\u6a21\u578b\u3002<\/p>\n<p>\u6b64\u90e8\u5206\u5bf9\u5e94\u56fe\u4e2d\u7684 1\uff0c2\uff0c3\uff0c4 \u6b65\u9aa4\u3002<\/p>\n<h4>3. \u63a8\u7406\u8fc7\u7a0b\uff08\u5de5\u5177\u8c03\u7528\uff09<\/h4>\n<p>\u5927\u6a21\u578b\u7684\u8fd4\u56de\u4f1a\u5728 AI Agent \u7684 onHttpResponseBody \u9636\u6bb5\u62e6\u622a\u5230\u3002\u6b64\u65f6\u9996\u5148\u5c06\u56de\u590d\u5185\u5bb9\u5b58\u50a8\u5230 messageStore \u4e2d\uff0c\u683c\u5f0f\u4e3a\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_9\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">role: assistant\r\nmsg: {\u5927\u6a21\u578b\u7684\u56de\u590d}<\/code><\/pre>\n<ul id=\"code_id_9\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u4e4b\u540e\u9700\u8981\u901a\u8fc7\u6b63\u5219\u8868\u8fbe\u5f0f\u6765\u5224\u65ad\u5927\u6a21\u578b\u7684\u8fd4\u56de\u5185\u5bb9\u3002<\/p>\n<p>\u4f8b\u5982\u4e0a\u6587\u7684\u4f8b\u5b50\uff0c\u5927\u6a21\u578b\u4f1a\u8fd4\u56de\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_10\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">Thought: \u4e3a\u4e86\u63d0\u4f9b\u5496\u5561\u5e97\u7684\u63a8\u8350\uff0c\u6211\u9996\u5148\u9700\u8981\u83b7\u53d6\u4e94\u9053\u53e3\u8fd9\u4e00\u5730\u70b9\u7684\u7ecf\u7eac\u5ea6\u5750\u6807\u3002\r\n\r\n\r\n<span class=\"token keyword\">Action<\/span>: get_location_coordinate\r\n\r\n\r\n<span class=\"token keyword\">Action<\/span> Input: {<span class=\"token string\">\"keywords\"<\/span>: <span class=\"token string\">\"\u4e94\u9053\u53e3\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">\"region\"<\/span>: <span class=\"token string\">\"\u5317\u4eac\u5e02\"<\/span>}<\/code><\/pre>\n<ul id=\"code_id_10\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<li>3.<\/li>\n<li>4.<\/li>\n<li>5.<\/li>\n<li>6.<\/li>\n<li>7.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u901a\u8fc7\u6b63\u5219\u8868\u8fbe\u5f0f\u53d6\u51fa Action \u4e0e Action Input \u7684\u503c\uff0c\u5c31\u5f97\u5230\u4e86\u9700\u8981\u8c03\u7528\u7684\u5de5\u5177\u540d\u79f0\u4ee5\u53ca\u53c2\u6570\u7684\u503c\u3002<\/p>\n<p>\u7531\u4e8e\u901a\u5e38\u5916\u90e8 API \u90fd\u4f1a\u63d0\u4f9b\u4e00\u4e2a\u8ba4\u8bc1 apiKey\uff0c\u53ea\u6709\u914d\u7f6e\u4e86 apiKey\uff0c\u624d\u80fd\u4f7f\u7528 api \u63a5\u53e3\u3002\u4ee5\u672c\u4f8b\u5b50\u4e3a\u4f8b\uff0c\u9700\u8981\u5728 url \u4e2d\u5305\u542b key={apiKey} \u7684\u53c2\u6570\uff0c\u6240\u4ee5\u6211\u5728 apiProvider \u4e2d\u5bf9 apiKey \u505a\u4e86\u8bbe\u8ba1\u3002\u5305\u542b name \u548c value \u4e24\u4e2a\u5b57\u6bb5\uff0cname \u8868\u793a\u5b9e\u9645\u670d\u52a1\u5546\u8981\u6c42\u7684 apiKey \u7684\u540d\u79f0\uff0c\u4f8b\u5982\u672c\u4f8b\u4e2d\u7684 key\uff0cvalue \u662f\u5177\u4f53\u7684 apiKey \u503c\u3002<\/p>\n<p>\u7a0b\u5e8f\u8fd8\u4f1a\u6839\u636e OpenAPI \u6587\u6863\u62fc\u63a5\u5904 url \u4ee5\u53ca\u67e5\u770b method \u662f\u4ec0\u4e48\uff0c\u4ece\u800c\u53d1\u9001\u5bf9\u5e94\u7684 http \u8bf7\u6c42\uff0c\u4f8b\u5982\u672c\u4f8b\u5b50\u662f\u8981\u53d1\u9001\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_11\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">GET https:<span class=\"token comment\">\/\/restapi.amap.com\/v5\/place\/text?key=xxxxxx&amp;keywords=\u4e94\u9053\u53e3\u00aeinotallow=\u5317\u4eac\u5e02<\/span><\/code><\/pre>\n<ul id=\"code_id_11\" class=\"pre-numbering\">\n<li>1.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u8be5 API \u7684\u56de\u590d\u4e3a\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_12\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">{<span class=\"token string\">\"status\"<\/span>:<span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token string\">\"message\"<\/span>:<span class=\"token string\">\"\u6210\u529f\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token string\">\"result\"<\/span>:{<span class=\"token string\">\"location\"<\/span>:{<span class=\"token string\">\"lng\"<\/span>:<span class=\"token number\">116.352978<\/span><span class=\"token punctuation\">,<\/span><span class=\"token string\">\"lat\"<\/span>:<span class=\"token number\">39.982849<\/span>}<span class=\"token punctuation\">,<\/span><span class=\"token string\">\"precise\"<\/span>:<span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token string\">\"confidence\"<\/span>:<span class=\"token number\">100<\/span><span class=\"token punctuation\">,<\/span><span class=\"token string\">\"comprehension\"<\/span>:<span class=\"token number\">100<\/span>}}<\/code><\/pre>\n<ul id=\"code_id_12\" class=\"pre-numbering\">\n<li>1.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u5c06\u8be5\u56de\u590d\u62fc\u63a5\u5230 Observation \u540e\u9762\uff0c\u4f5c\u4e3a\u65b0\u7684 query\uff0c\u5728\u5b58\u50a8\u5230 messageStore \u540e\uff0c\u5c06\u6574\u4e2a\u5386\u53f2\u5bf9\u8bdd\u53d1\u9001\u7ed9\u5927\u6a21\u578b\u3002\u6b64\u65f6\u7531\u4e8e\u5904\u5728\u63d2\u4ef6\u7684 onHttpResponseBody \u9636\u6bb5\uff0c\u65e0\u6cd5\u518d\u901a\u8fc7 ai-proxy \u8bbf\u95ee\u5927\u6a21\u578b\uff0c\u56e0\u6b64\u9700\u8981\u81ea\u5df1\u53bb\u8c03\u7528 dashscope client \u8bbf\u95ee\u5927\u6a21\u578b\u3002<\/p>\n<p>\u5927\u6a21\u578b\u4f1a\u8fd4\u56de\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_13\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">Thought: \u73b0\u5728\u6211\u5f97\u5230\u4e86\u4e94\u9053\u53e3\u7684\u7ecf\u7eac\u5ea6\u5750\u6807\uff0c\u63a5\u4e0b\u6765\u6211\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e9b\u5750\u6807\u6765\u641c\u7d22\u9644\u8fd1\u7684\u5496\u5561\u5e97\u3002\r\n\r\n\r\n<span class=\"token keyword\">Action<\/span>: search_nearby_pois\r\n\r\n\r\n<span class=\"token keyword\">Action<\/span> Input: {<span class=\"token string\">\"keywords\"<\/span>: <span class=\"token string\">\"\u5496\u5561\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">\"longitude\"<\/span>: <span class=\"token string\">\"116.352978\"<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">\"latitude\"<\/span>: <span class=\"token string\">\"39.982849\"<\/span>}<\/code><\/pre>\n<ul id=\"code_id_13\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<li>3.<\/li>\n<li>4.<\/li>\n<li>5.<\/li>\n<li>6.<\/li>\n<li>7.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u7a0b\u5e8f\u901a\u8fc7\u6b63\u5219\u5f97\u5230 Action \u4e0e Action Input \u540e\uff0c\u4f1a\u91cd\u590d\u521a\u624d\u7684\u8fc7\u7a0b\uff0c\u7ec4\u88c5\u65b0\u7684 url\uff0c\u5411\u9ad8\u5fb7\u5730\u56fe\u53d1\u8bf7\u6c42\uff0c\u7136\u540e\u628a\u7ed3\u679c\u5b58 messageStore \u540e\u7ed9\u5230\u5927\u6a21\u578b\u3002\u6574\u4e2a\u8fc7\u7a0b\u662f\u4e00\u4e2a\u4e0d\u65ad\u9012\u5f52\u8c03\u7528\u7684\u8fc7\u7a0b\u3002<\/p>\n<p>\u5927\u6a21\u578b\u4f1a\u518d\u6b21\u8fd4\u56de\uff1a<\/p>\n<div>\n<div class=\"hljs-cto\">\n<div class=\"hljs-cto\"><button class=\"copy_btn disable\" data-clipboard-target=\"#code_id_14\">\u590d\u5236<\/button><\/p>\n<div class=\"code-toolbar\">\n<pre class=\"has-pre-numbering language-sql\" tabindex=\"0\"><code class=\"language-sql\">Thought: \u6211\u73b0\u5728\u77e5\u9053\u6700\u7ec8\u7b54\u6848\r\n\r\n\r\nFinal Answer: \u5728\u5317\u4eac\u5e02\u4e94\u9053\u53e3\u9644\u8fd1\u6709\u51e0\u5bb6\u5496\u5561\u5e97\u53ef\u4ee5\u9009\u62e9\uff0c\u5305\u62ec\uff1a\r\n<span class=\"token operator\">-<\/span> \u661f\u5df4\u514b\u4e94\u9053\u53e3\u5e97\r\n<span class=\"token operator\">-<\/span> Costa Coffee\u4e94\u9053\u53e3\u5e97\r\n<span class=\"token operator\">-<\/span> \u6f2b\u5496\u5561\u4e94\u9053\u53e3\u5e97\r\n\r\n\r\n\u60a8\u53ef\u4ee5\u6839\u636e\u4e2a\u4eba\u559c\u597d\u9009\u62e9\u524d\u5f80\u3002<\/code><\/pre>\n<ul id=\"code_id_14\" class=\"pre-numbering\">\n<li>1.<\/li>\n<li>2.<\/li>\n<li>3.<\/li>\n<li>4.<\/li>\n<li>5.<\/li>\n<li>6.<\/li>\n<li>7.<\/li>\n<li>8.<\/li>\n<li>9.<\/li>\n<li>10.<\/li>\n<\/ul>\n<div class=\"toolbar\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u8fd9\u4e00\u6b21\uff0c\u7a0b\u5e8f\u901a\u8fc7\u53ef\u4ee5\u68c0\u6d4b\u5230\u56de\u590d\u4e2d\u5305\u542b\u4e86 Final Answer\uff0c\u8fd9\u8bf4\u660e\u5927\u6a21\u578b\u5df2\u7ecf\u5f97\u5230\u4e86\u6700\u7ec8\u7b54\u6848\uff0c\u65e0\u9700\u518d\u6b21\u8c03\u7528\u5de5\u5177\u4e86\u3002\u56e0\u6b64\u68c0\u6d4b\u5230 Final Answer \u5c31\u662f\u7ed3\u675f\u9012\u5f52\u8c03\u7528\u7684\u6761\u4ef6\uff0c\u6b64\u65f6\u5c31\u53ef\u4ee5\u5c06 Final Answer \u7684\u7b54\u6848\u901a\u8fc7 proxywasm.ReplaceHttpResponseBody \u51fd\u6570\u66ff\u6362\u6389 response body \u8fd4\u56de\u7ed9\u7528\u6237\u4e86\u3002<\/p>\n<p>\u8be5\u90e8\u5206\u5bf9\u5e94\u56fe\u4e2d\u7684 5\uff0c6\uff0c7\uff0c8 \u6b65\u9aa4\u3002<\/p>\n<h2>4.\u603b\u7ed3<\/h2>\n<p>\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4e86 AI Agent \u7684\u80cc\u666f\uff0c\u6982\u5ff5\uff0c\u63a2\u8ba8\u4e86 AI Agent \u7f51\u5173\u63d2\u4ef6\u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u6548\u679c\u4ee5\u53ca\u5b9e\u73b0\u539f\u7406\u3002\u5e0c\u671b\u5bf9\u4f60\u6709\u5e2e\u52a9\uff01\u63d2\u4ef6\u7684\u5b9e\u73b0\u5df2\u7ecf\u63d0\u4ea4 PR \u7ed9 Higress \u5f00\u6e90\u793e\u533a\uff0c\u53ef\u4ee5\u5230\u8fd9\u91cc\u67e5\u770b\u5b8c\u6574\u7684\u4ee3\u7801\u5b9e\u73b0\uff1ahttps:\/\/github.com\/alibaba\/higress\/pull\/1192<\/p>\n<p>\u4e5f\u6b22\u8fce\u5927\u5bb6\u63d0\u51fa\u5b9d\u8d35\u5efa\u8bae\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728\u4e0a\u9762 PR \u4e2d\u8bc4\u8bba\uff0c\u6216\u8005\u5728 Higress \u793e\u533a\u4ea4\u6d41\u7fa4\uff08\u9489\u9489\u7fa4\u53f7\uff1a30735012403\uff09\u91cc\u4e00\u8d77\u6c9f\u901a\u3002<\/p>\n<h4>\u76f8\u5173\u94fe\u63a5\uff1a<\/h4>\n<p>[1]\u00a0Higress<\/p>\n<p>https:\/\/github.com\/alibaba\/higress<\/p>\n<p>[2]\u00a0\u5165\u95e8\u6307\u5357-Web \u670d\u52a1 API\u4e28\u9ad8\u5fb7\u5730\u56fe API\uff08amap.com\uff09<\/p>\n<p>https:\/\/lbs.amap.com\/api\/webservice\/gettingstarted<\/p>\n<p>[3]\u00a0\u67e5\u770b\/\u4fee\u6539\u4f60\u7684 API \u5bc6\u94a5\uff08yuque.com\uff09<\/p>\n<p>https:\/\/seniverse.yuque.com\/hyper_data\/api_v3\/gc03wk<\/p>\n<\/div>\n<\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_21797\" class=\"pvc_stats total_only  \" data-element-id=\"21797\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.0\" viewBox=\"0 0 502 315\" preserveAspectRatio=\"xMidYMid meet\"><g transform=\"translate(0,332) scale(0.1,-0.1)\" fill=\"\" stroke=\"none\"><path d=\"M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z\"\/><path d=\"M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z\"\/><path d=\"M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z\"\/><path d=\"M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z\"\/><path d=\"M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z\"\/><path d=\"M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z\"\/><path d=\"M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z\"\/><path d=\"M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z\"\/><path d=\"M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z\"\/><\/g><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/aif.amtbbs.org\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4e86 AI Agent \u7684\u80cc\u666f\uff0c\u6982\u5ff5\uff0c\u63a2\u8ba8\u4e86 AI Agent \u7f51\u5173\u63d2\u4ef6\u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u6548\u679c\u4ee5\u53ca\u5b9e\u73b0\u539f\u7406 [&hellip;]<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_21797\" class=\"pvc_stats total_only  \" data-element-id=\"21797\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.0\" viewBox=\"0 0 502 315\" preserveAspectRatio=\"xMidYMid meet\"><g transform=\"translate(0,332) scale(0.1,-0.1)\" fill=\"\" stroke=\"none\"><path d=\"M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z\"\/><path d=\"M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z\"\/><path d=\"M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z\"\/><path d=\"M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z\"\/><path d=\"M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z\"\/><path d=\"M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z\"\/><path d=\"M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z\"\/><path d=\"M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z\"\/><path d=\"M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z\"\/><\/g><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/aif.amtbbs.org\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":56,"featured_media":21799,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,20,80],"tags":[124,1264,1218],"class_list":["post-21797","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-23","category-20","category-80","tag-ai","tag-1264","tag-1218"],"_links":{"self":[{"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/posts\/21797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/users\/56"}],"replies":[{"embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/comments?post=21797"}],"version-history":[{"count":1,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/posts\/21797\/revisions"}],"predecessor-version":[{"id":21800,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/posts\/21797\/revisions\/21800"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/media\/21799"}],"wp:attachment":[{"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/media?parent=21797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/categories?post=21797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/tags?post=21797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}