{"id":27726,"date":"2025-03-05T20:52:45","date_gmt":"2025-03-05T12:52:45","guid":{"rendered":"https:\/\/www.aisharenet.com\/?p=27726"},"modified":"2025-03-05T20:52:45","modified_gmt":"2025-03-05T12:52:45","slug":"agentsjson","status":"publish","type":"post","link":"https:\/\/www.kdjingpai.com\/en\/agentsjson\/","title":{"rendered":"agents.json\uff1a\u667a\u80fd\u4f53\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u4e0eAPI\u4ea4\u4e92\u7684\u5f00\u6e90\u89c4\u8303"},"content":{"rendered":"<p>agents.json \u662f Wildcard AI \u56e2\u961f\u5f00\u53d1\u7684\u4e00\u6b3e\u5f00\u6e90\u89c4\u8303\uff0c\u57fa\u4e8e OpenAPI \u6807\u51c6\uff0c\u65e8\u5728\u8ba9\u667a\u80fd\u4f53\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u4e0e API \u5b9e\u73b0\u9ad8\u6548\u901a\u8baf\u3002\u5b83\u901a\u8fc7\u7ed3\u6784\u5316\u7684 JSON \u6587\u4ef6\u5b9a\u4e49\u667a\u80fd\u4f53\u4e0e API \u7684\u4ea4\u4e92\u5951\u7ea6\uff0c\u4f18\u5316\u4e86\u7aef\u70b9\u53d1\u73b0\u548c\u53c2\u6570\u751f\u6210\uff0c\u89e3\u51b3\u4e86\u667a\u80fd\u4f53\u8c03\u7528 API \u65f6\u987a\u5e8f\u6df7\u4e71\u3001\u51c6\u786e\u6027\u4f4e\u7684\u95ee\u9898\u3002\u9879\u76ee\u7248\u672c\u4e3a 0.1.0\uff0c\u6258\u7ba1\u5728 GitHub\uff08https:\/\/github.com\/wild-card-ai\/agents-json\uff09\uff0c\u91c7\u7528 Apache 2.0 \u8bb8\u53ef\u8bc1\uff0c\u9f13\u52b1\u793e\u533a\u53c2\u4e0e\u3002\u501f\u52a9 Wildcard Bridge Python \u5305\uff0c\u5f00\u53d1\u8005\u53ef\u52a0\u8f7d\u3001\u89e3\u6790\u5e76\u8fd0\u884c agents.json \u6587\u4ef6\uff0c\u8f7b\u677e\u5b9e\u73b0\u591a\u6b65\u9aa4 API \u8c03\u7528\u7684\u81ea\u52a8\u5316\u3002<\/p>\n<blockquote><p>Agents.json \u662f\u4e00\u4e2a\u5f00\u6e90\u7684 JSON \u89c4\u8303\uff0c\u5b83\u6b63\u5f0f\u63cf\u8ff0\u4e86 API \u548c AI \u667a\u80fd\u4f53\u4ea4\u4e92\u7684\u5408\u7ea6\uff0c\u5efa\u7acb\u5728 OpenAPI \u6807\u51c6\u4e4b\u4e0a\u3002<\/p><\/blockquote>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-27727\" title=\"agents.json\uff1a\u667a\u80fd\u4f53\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u4e0eAPI\u4ea4\u4e92\u7684\u5f00\u6e90\u89c4\u8303-1\" src=\"https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/03\/da8124c929ef0bb.jpg\" alt=\"agents.json\uff1a\u667a\u80fd\u4f53\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u4e0eAPI\u4ea4\u4e92\u7684\u5f00\u6e90\u89c4\u8303-1\" width=\"2548\" height=\"818\" srcset=\"https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/03\/da8124c929ef0bb.jpg 2548w, https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/03\/da8124c929ef0bb-768x247.jpg 768w, https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/03\/da8124c929ef0bb-1536x493.jpg 1536w, https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/03\/da8124c929ef0bb-2048x657.jpg 2048w, https:\/\/www.kdjingpai.com\/wp-content\/uploads\/2025\/03\/da8124c929ef0bb-18x6.jpg 18w\" sizes=\"auto, (max-width: 2548px) 100vw, 2548px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>\u529f\u80fd\u5217\u8868<\/h2>\n<ul>\n<li><strong>\u81ea\u7136\u8bed\u8a00\u9a71\u52a8 API \u8c03\u7528<\/strong>\uff1a\u667a\u80fd\u4f53\u7528\u65e5\u5e38\u8bed\u8a00\u89e6\u53d1 API \u64cd\u4f5c\u3002<\/li>\n<li><strong>\u57fa\u4e8e OpenAPI \u7684\u6269\u5c55<\/strong>\uff1a\u5728 OpenAPI \u4e0a\u65b0\u589e\u4ea4\u4e92\u89c4\u5219\uff0c\u4f18\u5316\u667a\u80fd\u4f53\u4f7f\u7528\u3002<\/li>\n<li><strong>\u4efb\u52a1\u6d41\u4e0e\u94fe\u63a5<\/strong>\uff1a\u5b9a\u4e49\u591a\u6b65\u9aa4\u4efb\u52a1\u6d41\uff08flows\uff09\u548c\u52a8\u4f5c\u94fe\u63a5\uff08links\uff09\uff0c\u786e\u4fdd\u8c03\u7528\u987a\u5e8f\u3002<\/li>\n<li><strong>\u65e0\u72b6\u6001\u8bbe\u8ba1<\/strong>\uff1a\u5ba2\u6237\u7aef\u7ba1\u7406\u72b6\u6001\uff0c\u652f\u6301\u73b0\u6709\u57fa\u7840\u8bbe\u65bd\u90e8\u7f72\u3002<\/li>\n<li><strong>SDK \u652f\u6301<\/strong>\uff1aWildcard Bridge \u52a0\u8f7d\u5e76\u8fd0\u884c\u89c4\u8303\u6587\u4ef6\uff0c\u7b80\u5316\u5f00\u53d1\u3002<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>\u4f7f\u7528\u5e2e\u52a9<\/h2>\n<h3>\u83b7\u53d6\u4e0e\u51c6\u5907<\/h3>\n<p>agents.json \u662f\u4e00\u4e2a\u89c4\u8303\u6587\u4ef6\uff0c\u4f7f\u7528\u65f6\u9700\u7ed3\u5408 SDK \u6216\u624b\u52a8\u7f16\u5199\u3002\u4ee5\u4e0b\u662f\u5177\u4f53\u64cd\u4f5c\uff1a<\/p>\n<h4>1. \u83b7\u53d6 agents.json \u6587\u4ef6<\/h4>\n<ul>\n<li><strong>\u5b98\u65b9\u793a\u4f8b<\/strong>\uff1a<br \/>\n\u4ece Wildcard AI \u63d0\u4f9b\u7684\u5feb\u901f\u5165\u95e8\u7b14\u8bb0\u672c\u83b7\u53d6\uff0c\u5982\uff1a<\/p>\n<ul>\n<li>Resend\uff1a<a href=\"https:\/\/github.com\/wild-card-ai\/agents-json\/blob\/main\/examples\/resend.ipynb\">resend.ipynb<\/a><\/li>\n<li>Stripe\uff1a<a href=\"https:\/\/github.com\/wild-card-ai\/agents-json\/blob\/main\/examples\/single.ipynb\">single.ipynb<\/a><\/li>\n<li>Google Sheets \u7b49\uff1a<a href=\"https:\/\/github.com\/wild-card-ai\/agents-json\/blob\/main\/examples\/multiple-dynamic.ipynb\">multiple-dynamic.ipynb<\/a><\/li>\n<\/ul>\n<\/li>\n<li><strong>\u81ea\u5b9a\u4e49\u7f16\u5199<\/strong>\uff1a<br \/>\n\u6839\u636e\u00a0<a href=\"https:\/\/docs.wild-card.ai\/agents-json-specification\">\u5b8c\u6574 schema<\/a>\uff0c\u521b\u5efa\u6587\u4ef6\u3002\u4f8b\u5982\uff1a<\/p>\n<pre><code>{\r\n\"apiVersion\": \"0.1.0\",\r\n\"baseUrl\": \"https:\/\/api.example.com\",\r\n\"chains\": {\r\n\"get_data\": {\r\n\"description\": \"\u83b7\u53d6\u6307\u5b9a\u6570\u636e\",\r\n\"agent_instructions\": \"\u6839\u636e\u7528\u6237\u8f93\u5165\u63d0\u53d6\u6570\u636e\",\r\n\"steps\": [{\"endpoint\": \"\/data\", \"method\": \"GET\"}]\r\n}\r\n}\r\n}<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\u5efa\u8bae\u653e\u7f6e\u5728\u00a0<code>\/.well-known\/agents.json<\/code>\u00a0\u8def\u5f84\uff0c\u4fbf\u4e8e\u667a\u80fd\u4f53\u53d1\u73b0\u3002<\/p>\n<h4>2. \u5b89\u88c5 Wildcard Bridge<\/h4>\n<ul>\n<li><strong>\u8981\u6c42<\/strong>\uff1aPython 3.10+\u3002<\/li>\n<li><strong>\u6b65\u9aa4<\/strong>\uff1a\n<ol>\n<li>\u8fd0\u884c\u547d\u4ee4\uff1a\n<pre><code>pip install wildcard-bridge\r\n<\/code><\/pre>\n<\/li>\n<li>\u9a8c\u8bc1\uff1a\n<pre><code>python -c \"import wildcard_bridge; print(wildcard_bridge.__version__)\"\r\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<h4>3. \u914d\u7f6e\u73af\u5883<\/h4>\n<ul>\n<li><strong>\u8ba4\u8bc1\u652f\u6301<\/strong>\uff1a\u652f\u6301 Basic\u3001ApiKey\u3001Bearer \u4e09\u79cd\u8ba4\u8bc1\u3002\u4f8b\u5982\uff1a\n<pre><code>from wildcard_bridge import Bridge\r\nbridge = Bridge(auth={\"type\": \"ApiKey\", \"key\": \"your-api-key\"})\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u8fde\u63a5\u667a\u80fd\u4f53<\/strong>\uff1a\u63a5\u5165\u652f\u6301\u7684 LLM\uff08\u5982 OpenAI\uff09\uff0c\u5e76\u51c6\u5907\u57fa\u7840\u63d0\u793a\u3002<\/li>\n<\/ul>\n<h3>\u64cd\u4f5c\u4e3b\u8981\u529f\u80fd<\/h3>\n<h4>\u529f\u80fd 1\uff1a\u52a0\u8f7d\u5e76\u89e3\u6790\u89c4\u8303\u6587\u4ef6<\/h4>\n<ul>\n<li><strong>\u6b65\u9aa4<\/strong>\uff1a\n<ol>\n<li>\u52a0\u8f7d\u6587\u4ef6\uff1a\n<pre><code>bridge.load_agents_json(\"path\/to\/agents.json\")\r\n<\/code><\/pre>\n<\/li>\n<li>\u67e5\u770b\u4efb\u52a1\u94fe\uff1a\n<pre><code>chains = bridge.get_available_chains()\r\nprint(chains)  # \u8f93\u51fa\u53ef\u7528\u4efb\u52a1\uff0c\u5982 [\"get_data\"]\r\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<\/li>\n<li><strong>\u7528\u9014<\/strong>\uff1a\u4e86\u89e3\u652f\u6301\u7684\u64cd\u4f5c\uff0c\u51c6\u5907\u8fd0\u884c\u3002<\/li>\n<\/ul>\n<h4>\u529f\u80fd 2\uff1a\u6267\u884c\u4efb\u52a1\u6d41<\/h4>\n<ul>\n<li><strong>\u6b65\u9aa4<\/strong>\uff1a\n<ol>\n<li>\u8fd0\u884c\u4efb\u52a1\uff1a\n<pre><code>result = bridge.run_chain(\"get_data\", {\"query\": \"sales report\"})\r\nprint(result)  # \u8f93\u51fa API \u8fd4\u56de\u7ed3\u679c\r\n<\/code><\/pre>\n<\/li>\n<li>\u68c0\u67e5\u8fd4\u56de\u6570\u636e\u3002<\/li>\n<\/ol>\n<\/li>\n<li><strong>\u573a\u666f<\/strong>\uff1a\u7528\u6237\u8bf4\u201c\u7ed9\u6211\u9500\u552e\u62a5\u544a\u201d\uff0c\u667a\u80fd\u4f53\u81ea\u52a8\u8c03\u7528 API\u3002<\/li>\n<\/ul>\n<h4>\u529f\u80fd 3\uff1a\u8c03\u8bd5\u4e0e\u4f18\u5316<\/h4>\n<ul>\n<li><strong>\u8c03\u8bd5<\/strong>\uff1a\n<pre><code>bridge.enable_debug()\r\nresult = bridge.run_chain(\"get_data\", {\"query\": \"test\"})\r\n<\/code><\/pre>\n<p>\u67e5\u770b\u65e5\u5fd7\uff0c\u786e\u4fdd\u6bcf\u6b65\u6b63\u786e\u3002<\/li>\n<li><strong>\u4f18\u5316<\/strong>\uff1a\u8c03\u6574\u00a0<code>agent_instructions<\/code>\u00a0\u6216\u793a\u4f8b\uff0c\u63d0\u5347\u667a\u80fd\u4f53\u51c6\u786e\u6027\u3002<\/li>\n<\/ul>\n<h3>\u7279\u8272\u529f\u80fd\u64cd\u4f5c<\/h3>\n<h4>\u4efb\u52a1\u6d41\u4e0e\u94fe\u63a5\u8bbe\u8ba1<\/h4>\n<ul>\n<li><strong>\u64cd\u4f5c\u6d41\u7a0b<\/strong>\uff1a\n<ol>\n<li>\u5b9a\u4e49\u591a\u6b65\u9aa4\u4efb\u52a1\u6d41\uff0c\u4f8b\u5982 Gmail \u56de\u590d\uff1a\n<pre><code>{\r\n\"chains\": {\r\n\"reply_email\": {\r\n\"description\": \"\u56de\u590d\u90ae\u4ef6\",\r\n\"agent_instructions\": \"\u6839\u636e\u7528\u6237\u8f93\u5165\u56de\u590d\u90ae\u4ef6\",\r\n\"steps\": [\r\n{\"endpoint\": \"\/threads\/{threadId}\", \"method\": \"GET\"},\r\n{\"endpoint\": \"\/messages\/send\", \"method\": \"POST\"}\r\n]\r\n}\r\n}\r\n}\r\n<\/code><\/pre>\n<\/li>\n<li>\u8fd0\u884c\uff1a\n<pre><code>bridge.run_chain(\"reply_email\", {\"threadId\": \"123\", \"reply\": \"\u5df2\u6536\u5230\"})\r\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<\/li>\n<li><strong>\u4eae\u70b9<\/strong>\uff1a\u901a\u8fc7 flows \u548c links \u786e\u4fdd\u8c03\u7528\u987a\u5e8f\u6b63\u786e\uff0c\u667a\u80fd\u4f53\u65e0\u9700\u81ea\u884c\u63a8\u7406\u3002<\/li>\n<\/ul>\n<h4>\u65e0\u72b6\u6001\u4e0e\u73b0\u6709\u7cfb\u7edf\u517c\u5bb9<\/h4>\n<ul>\n<li><strong>\u5b9e\u73b0<\/strong>\uff1a<br \/>\nSDK \u5728\u5ba2\u6237\u7aef\u8fd0\u884c\uff0c\u9002\u914d\u65e0\u670d\u52a1\u5668\u73af\u5883\uff1a<\/p>\n<pre><code>def lambda_handler(event, context):\r\nbridge = Bridge(auth={\"type\": \"Bearer\", \"<a href=\"https:\/\/www.kdjingpai.com\/de\/tokenization\/\">token<\/a>\": event[\"token\"]})\r\nbridge.load_agents_json(\"s3:\/\/bucket\/agents.json\")\r\nreturn bridge.run_chain(\"task\", event[\"args\"])\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u4f18\u52bf<\/strong>\uff1a\u65e0\u9700\u6539\u52a8 API \u670d\u52a1\u7aef\uff0c\u76f4\u63a5\u4f7f\u7528\u3002<\/li>\n<\/ul>\n<h3>\u793a\u4f8b\uff1aStripe \u652f\u4ed8\u67e5\u8be2<\/h3>\n<ul>\n<li><strong>agents.json<\/strong>\uff1a\n<pre><code>{\r\n\"baseUrl\": \"https:\/\/api.stripe.com\/v1\",\r\n\"chains\": {\r\n\"check_payment\": {\r\n\"description\": \"\u67e5\u8be2\u652f\u4ed8\u72b6\u6001\",\r\n\"agent_instructions\": \"\u6839\u636e\u652f\u4ed8 ID \u8fd4\u56de\u72b6\u6001\",\r\n\"steps\": [{\"endpoint\": \"\/charges\/{chargeId}\", \"method\": \"GET\"}]\r\n}\r\n}\r\n}\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u8fd0\u884c<\/strong>\uff1a\n<pre><code>result = bridge.run_chain(\"check_payment\", {\"chargeId\": \"ch_123\"})\r\nprint(result)\r\n<\/code><\/pre>\n<\/li>\n<li><strong>\u6548\u679c<\/strong>\uff1a\u667a\u80fd\u4f53\u76f4\u63a5\u8fd4\u56de\u652f\u4ed8\u72b6\u6001\uff0c\u7b80\u5355\u9ad8\u6548\u3002<\/li>\n<\/ul>\n<h3>\u6ce8\u610f\u4e8b\u9879<\/h3>\n<ul>\n<li><strong>\u5b89\u5168<\/strong>\uff1a\u5bc6\u94a5\u5b58\u50a8\u5728\u73af\u5883\u53d8\u91cf\u4e2d\uff0c\u907f\u514d\u6cc4\u9732\u3002<\/li>\n<li><strong>\u793e\u533a<\/strong>\uff1a\u52a0\u5165\u00a0<a href=\"https:\/\/discord.gg\/wildcard\">Discord<\/a>\u00a0\u83b7\u53d6\u652f\u6301\u3002<\/li>\n<li><strong>\u6587\u6863<\/strong>\uff1a\u53c2\u8003\u00a0<a href=\"https:\/\/docs.wild-card.ai\/agents-json-specification\">\u5b98\u65b9\u6587\u6863<\/a>\u3002<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>agents.json \u662f Wildcard AI \u56e2\u961f\u5f00\u53d1\u7684\u4e00\u6b3e\u5f00\u6e90\u89c4\u8303\uff0c\u57fa\u4e8e OpenAPI \u6807\u51c6\uff0c\u65e8\u5728\u8ba9\u667a\u80fd\u4f53\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u4e0e API \u5b9e\u73b0\u9ad8\u6548\u901a\u8baf\u3002\u5b83\u901a\u8fc7\u7ed3\u6784\u5316\u7684 JSON \u6587\u4ef6\u5b9a\u4e49\u667a\u80fd\u4f53\u4e0e API \u7684\u4ea4\u4e92\u5951\u7ea6\uff0c\u4f18\u5316\u4e86\u7aef\u70b9\u53d1\u73b0\u548c\u53c2\u6570\u751f&#8230;<\/p>\n","protected":false},"author":1,"featured_media":61977,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[230],"class_list":["post-27726","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tool","tag-aikaiyuanxiangmu"],"_links":{"self":[{"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/posts\/27726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/comments?post=27726"}],"version-history":[{"count":0,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/posts\/27726\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/media\/61977"}],"wp:attachment":[{"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/media?parent=27726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/categories?post=27726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kdjingpai.com\/en\/wp-json\/wp\/v2\/tags?post=27726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}