{"id":1870,"date":"2026-08-18T20:14:04","date_gmt":"2026-08-18T12:14:04","guid":{"rendered":"https:\/\/tongchun.website\/index.php\/kimiagent-04-gateway\/"},"modified":"2026-08-18T20:26:26","modified_gmt":"2026-08-18T12:26:26","slug":"kimiagent-04-gateway","status":"publish","type":"page","link":"https:\/\/tongchun.website\/index.php\/kimiagent-04-gateway\/","title":{"rendered":"04-gateway\uff1a\u4e91\u7aef\u7f51\u5173\u4e0e\u5916\u90e8\u8fde\u63a5"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u2190 \u8fd4\u56de\u4e3b\u62a5\u544a\uff1a<a href=\"https:\/\/tongchun.website\/index.php\/2026\/kimi-agent%ef%bc%88%e4%ba%91%e7%ab%af%e6%b2%99%e7%ae%b1%ef%bc%89%e6%8a%80%e6%9c%af%e6%8a%a5%e5%91%8a\/\">Kimi Agent\uff08\u4e91\u7aef\u6c99\u7bb1\uff09\u6280\u672f\u62a5\u544a<\/a> \uff5c <a href=\"https:\/\/github.com\/SHAWNTRIBBIANI\/kimiagent-analysis\/blob\/main\/sections\/04-gateway.md\">GitHub \u539f\u6587<\/a><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>\u5408\u89c4\u4e0e\u98ce\u9669\u58f0\u660e<\/strong>\uff1a\u672c\u62a5\u544a\u4e3a\u5b89\u5168\u7814\u7a76\u4e0e\u4e92\u64cd\u4f5c\u5b66\u4e60\u76ee\u7684\u7684\u9006\u5411\u5206\u6790\uff0c\u5168\u7a0b\u53ea\u8bfb\u91c7\u96c6\uff0c\u672a\u5bf9\u76ee\u6807\u7cfb\u7edf\u505a\u4efb\u4f55\u4fee\u6539\uff1b\u6587\u4e2d\u6240\u6709\u5bc6\u94a5\u3001token\u3001\u8d26\u53f7\u7ea7\u6807\u8bc6\uff08chat_id \/ project_id \/ tenant_id \u7b49\uff09\u5747\u5df2\u8131\u654f\uff1b\u6c99\u7bb1\u5185\u53d1\u73b0\u7684\u9ed8\u8ba4\u5f31\u53e3\u4ee4\uff08VNC\/SSH\uff09\u5c5e\u5e73\u53f0\u4fa7\u914d\u7f6e\uff0c\u4ec5\u4f5c\u5b89\u5168\u53d1\u73b0\u62ab\u9732\uff0c\u8bf7\u52ff\u7528\u4e8e\u8bbf\u95ee\u4efb\u4f55\u4e0d\u5c5e\u4e8e\u81ea\u5df1\u7684\u7cfb\u7edf\u3002docx\/pdf\/xlsx\/kimi-slides \u7b49\u5f15\u64ce\u4e8c\u8fdb\u5236\u4e3a Moonshot \u4e13\u6709\u8bb8\u53ef\uff08\u7981\u518d\u5206\u53d1\/\u9006\u5411\uff09\uff0c\u672c\u6587\u4ec5\u4f5c\u884c\u4e3a\u7ea7\u63cf\u8ff0\u3002\u62a5\u544a\u57fa\u4e8e\u5355\u6b21\u5206\u6790\u7a97\u53e3\uff08\u7ea6 50 \u5206\u949f\u751f\u547d\u5468\u671f\uff09\uff0c\u8f6f\u4ef6\u7248\u672c\u4e0e\u6280\u80fd\u5e93\u5b58\u968f\u955c\u50cf\u66f4\u65b0\u53ef\u80fd\u53d8\u5316\u3002<\/p><\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\u91c7\u96c6\u65f6\u95f4\uff1a2026-08-18\uff08CST\uff09\u3002\u6c99\u7bb1\uff1aKimi \u539f\u751f agent\uff08kimiagent\uff09Debian 12 \u5bb9\u5668\u3002 \u8bbf\u95ee\u65b9\u5f0f\uff1a<code>ssh -p 12222 kimi@127.0.0.1<\/code>\uff08frp \u96a7\u9053\uff09+ \u515c\u5e95 HTTP \u6587\u4ef6\u670d\u52a1 <code>http:\/\/127.0.0.1:18080\/<\/code>\u3002 \u672c\u8282\u8986\u76d6\uff1aagent-gw.json\u3001portal \u7f51\u5173\u53c2\u6570\u3001envd\u3001socat \u670d\u52a1\u3001\u6240\u6709\u6307\u5411 msh.team \/ moonshot \/ \u5185\u7f51 IP \u7684\u914d\u7f6e\u3001npm\/pip\/apt \u955c\u50cf\uff0c\u4ee5\u53ca\u6c99\u7bb1\u2194Moonshot \u4e91\u7aef\u7684\u5168\u90e8\u901a\u4fe1\u901a\u9053\u4e0e\u8ba4\u8bc1\u65b9\u5f0f\u3002 \u6ce8\uff1a\u91c7\u96c6\u5c3e\u58f0\uff0817:26 CST\uff09\u8fdc\u7aef frpc \u65ad\u7ebf\uff0c\u5c11\u91cf\u5f85\u9a8c\u8bc1\u9879\u5728\u6587\u672b\u6807\u6ce8\u3002<\/p><\/blockquote>\n\n\n\n<h2 id=\"1-rootkimiagentgwjson-agent-%25e4%25b8%258a%25e8%25a1%258c%25e7%25bd%2591%25e5%2585%25b3%25e5%2587%25ad%25e8%25af%2581\" class=\"wp-block-heading\">1. \/root\/.kimi\/agent-gw.json \u2014\u2014 agent \u4e0a\u884c\u7f51\u5173\u51ed\u8bc1<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u8def\u5f84 <code>\/root\/.kimi\/agent-gw.json<\/code>\uff08root \u6240\u6709\uff0ckimi \u7528\u6237\u4e0d\u53ef\u8bfb\uff0c\u7ecf 18080 \u6587\u4ef6\u670d\u52a1\u8bfb\u53d6\uff09\u3002<code>\/root\/.kimi\/<\/code> \u4e0b\u53ea\u6709\u8fd9\u4e00\u4e2a\u6587\u4ef6\u3002\u5185\u5bb9\uff08api_key \u5df2\u8131\u654f\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"json\">{\n  \"api_key\": \"sk-kimi-8OQEd910...[REDACTED\uff0c\u539f\u59cb\u957f\u5ea6 64 \u5b57\u7b26\u540e\u7f00]\",\n  \"base_url\": \"https:\/\/agent-gw.kimi.com\/coding\",\n  \"kimi_chat_id\": \"1a014098-****-****-****-********15cb\"\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>\u7ed3\u6784<\/strong>\uff1a\u4e09\u4e2a\u5b57\u6bb5\u2014\u2014<code>api_key<\/code>\uff08<code>sk-kimi-<\/code> \u524d\u7f00\u7684\u957f\u671f API key\uff09\u3001<code>base_url<\/code>\uff08agent \u7f51\u5173 HTTPS \u7aef\u70b9\uff0c\u8def\u5f84 <code>\/coding<\/code> \u8868\u660e\u8fd9\u662f Kimi Code\/\u7f16\u7801 agent \u7684\u4e0a\u884c\u901a\u9053\uff09\u3001<code>kimi_chat_id<\/code>\uff08\u5f53\u524d\u4f1a\u8bdd\/\u9879\u76ee ID\uff0c\u4e0e drive9 \u6302\u8f7d\u8def\u5f84\u4e2d\u7684\u9879\u76ee UUID <code>1a01406e-*<em><strong>-<\/strong><strong>-<\/strong><strong>-<\/strong><\/em>*****d0ce<\/code> \u5c5e\u540c\u4e00 UUID \u5bb6\u65cf\u4f46\u4e0d\u76f8\u540c\uff09\u3002<\/li><li><strong>\u8ba4\u8bc1\u65b9\u5f0f<\/strong>\uff1aAPI key\uff0c\u63a8\u6d4b\u4ee5 <code>Authorization: Bearer<\/code> \u6216\u81ea\u5b9a\u4e49\u5934\u968f HTTPS \u8bf7\u6c42\u53d1\u5f80 <code>agent-gw.kimi.com<\/code>\u3002<\/li><li>\u8be5\u6587\u4ef6\u662f&#8221;agent \u56de\u4e91\u7aef&#8221;\u7684\u4e3b\u51ed\u8bc1\uff1b\u6c99\u7bb1\u5185\u672a\u53d1\u73b0\u540d\u4e3a kimi \u7684 CLI \u4e8c\u8fdb\u5236\uff08<code>\/usr\/local\/bin<\/code> \u6e05\u5355\u4e2d\u65e0\uff09\uff0c\u5b9e\u9645\u6d88\u8d39\u65b9\u53ef\u80fd\u662f\u5bbf\u4e3b\u4fa7\/\u63a7\u5236\u9762\u7ec4\u4ef6\uff0c\u6216\u4efb\u52a1\u8fd0\u884c\u65f6\u624d\u6ce8\u5165\u7684 agent \u8fdb\u7a0b\uff08\u91c7\u96c6\u65f6\u6c99\u7bb1\u5904\u4e8e\u7a7a\u95f2\u6001\uff0c<code>ps<\/code> \u4e2d\u65e0 agent \u8fdb\u7a0b\uff09\u3002<\/li><\/ul>\n\n\n\n<h2 id=\"2-portal-%25e5%25ad%2598%25e5%2582%25a8%25e8%2583%25bd%25e5%258a%259b%25e7%25bd%2591%25e5%2585%25b3%25e5%25ae%25a2%25e6%2588%25b7%25e7%25ab%25afdrive9-%25e8%25a6%2586%25e7%259b%2596%25e5%25b1%2582\" class=\"wp-block-heading\">2. portal \u2014\u2014 \u5b58\u50a8\/\u80fd\u529b\u7f51\u5173\u5ba2\u6237\u7aef\uff08drive9 \u8986\u76d6\u5c42\uff09<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u670d\u52a1\u811a\u672c <code>\/etc\/s6-overlay\/s6-rc.d\/portal\/run<\/code>\uff08\u5168\u6587\u53ef\u8bfb\uff09\uff0c\u8fdb\u7a0b <code>PID 65: \/usr\/local\/bin\/portal -http-bind -allow-other -env prod ... \/mnt\/portal-overlay<\/code>\u3002<\/p>\n\n\n\n<h3 id=\"21-%25e7%25bd%2591%25e5%2585%25b3%25e5%259c%25b0%25e5%259d%2580\" class=\"wp-block-heading\">2.1 \u7f51\u5173\u5730\u5740<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u811a\u672c\u6ce8\u91ca\u4e0e\u9ed8\u8ba4\u503c\u660e\u786e\u5199\u51fa\u4e24\u5957\u7f51\u5173\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># dev=https:\/\/kimi.kimi.team\/apiv2\n# prod=https:\/\/kimi-api-sandbox.msh.team\/apiv2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c\u671f\u7531\u73af\u5883\u53d8\u91cf\u6ce8\u5165\uff08<code>\/run\/s6\/container_environment\/<\/code> \u5b9e\u6d4b\u503c\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>KIMI_PROJECT_PORTAL_CAPABILITY_ENABLED=true\nKIMI_PROJECT_PORTAL_CAPABILITY_ENV=prod\nKIMI_PROJECT_PORTAL_CAPABILITY_MOUNT=\/mnt\/portal-overlay\nKIMI_PROJECT_PORTAL_CAPABILITY_PROD_ADDR=https:\/\/kimi-api-sandbox.msh.team\/apiv2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5373\u5f53\u524d\u6c99\u7bb1 portal \u8fde\u7684\u662f <strong><code>https:\/\/kimi-api-sandbox.msh.team\/apiv2<\/code><\/strong>\u3002portal \u4e8c\u8fdb\u5236 strings \u4e2d\u53e6\u53d1\u73b0 dev \u4fa7 agent \u7f51\u5173\uff1a<code>https:\/\/agent-gw-dev.dev.kimi.team\/coding<\/code>\u3002<\/p>\n\n\n\n<h3 id=\"22-%25e8%25ae%25a4%25e8%25af%2581%25e4%25b8%258e%25e7%25bb%2591%25e5%25ae%259a%25e6%25b5%2581%25e7%25a8%258bbindtoken-sts-%25e5%2590%2588%25e5%2590%258c\" class=\"wp-block-heading\">2.2 \u8ba4\u8bc1\u4e0e\u7ed1\u5b9a\u6d41\u7a0b\uff08bind-token STS \u5408\u540c\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u811a\u672c\u6ce8\u91ca\u5b8c\u6574\u63cf\u8ff0\u4e86\u4e09\u65b9\u63e1\u624b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>portal \u4ee5<strong>\u7a7a\u6302\u8f7d\u6e05\u5355<\/strong>\u542f\u52a8\uff0c<code>-http-bind<\/code> \u76d1\u542c <code>:8080<\/code>\uff1b<\/li><li>\u5bbf\u4e3b\u4fa7 <strong>kimiwarden<\/strong> \u5728 claim\uff08\u4efb\u52a1\u8ba4\u9886\uff09\u65f6\u5411 portal <code>POST \/api\/v1\/bind_token<\/code> \u4e0b\u53d1 <strong>warden \u7b7e\u540d\u7684 HS256 JWT<\/strong>\uff1b<\/li><li>portal \u62ff JWT \u5411 kimiapi \u7684 <strong>PortalService<\/strong> \u6362\u53d6<strong>\u9650\u5b9a\u8303\u56f4\u7684 STS \u4e34\u65f6\u51ed\u8bc1<\/strong>\uff1b<\/li><li>kimiwarden \u518d <code>POST \/api\/v1\/bind<\/code> \u4e0b\u53d1\u8986\u76d6\u5c42\u6e05\u5355\uff08skills\/plugins\/auth\/vault\uff09\uff0cportal \u6302\u8f7d\u5230 <code>\/mnt\/portal-overlay<\/code>\u3002<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u5173\u952e\u8bbe\u8ba1\uff1a*<em>\u9759\u6001 <code>K_OSS_<\/em><\/code> \u5bf9\u8c61\u5b58\u50a8\u51ed\u8bc1\u5df2\u88ab\u5e9f\u5f03**\uff08\u6ce8\u91ca\uff1athe new portal fails closed on them\uff09\uff0c\u6539\u7531 claim \u65f6 bind-token\u2192STS \u52a8\u6001\u6362\u8bc1\u3002\u8fd9\u662f\u6700\u77ed\u751f\u547d\u5468\u671f\u7684\u6700\u5c0f\u6743\u9650\u6388\u6743\u3002<\/p>\n\n\n\n<h3 id=\"23-portal-%25e4%25ba%258c%25e8%25bf%259b%25e5%2588%25b6%25e6%258f%25ad%25e7%25a4%25ba%25e7%259a%2584-rpc-%25e9%259d%25a2\" class=\"wp-block-heading\">2.3 portal \u4e8c\u8fdb\u5236\u63ed\u793a\u7684 RPC \u9762<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>strings \/usr\/local\/bin\/portal<\/code> \u663e\u793a\u5b83\u662f Connect-RPC \u5ba2\u6237\u7aef\uff08<code>portalv1connect.PortalServiceClient<\/code>\uff09\uff0cproto \u5305\u8def\u5f84\u66b4\u9732\u5185\u90e8 GitLab\uff1a<code>dev.msh.team\/protos\/kimi-go\/...<\/code>\u3002<code>kimi.portal.v1<\/code> PortalService \u65b9\u6cd5\u5305\u62ec\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>ValidateBindToken<\/code> \u2014\u2014 \u6821\u9a8c warden JWT<\/li><li><code>GetS3Credentials<\/code> \u2014\u2014 \u6362\u53d6 S3 STS \u51ed\u8bc1\uff08\u8986\u76d6\u5c42\u5b58\u50a8\u540e\u7aef\u662f S3 \u517c\u5bb9\u5bf9\u8c61\u5b58\u50a8\uff09<\/li><li><code>GetAPIKey<\/code><\/li><li><code>SetupApp<\/code>\u3001<code>ListChatFiles<\/code>\u3001<code>GetEvoSessionFile<\/code>\u3001<code>ListEvoSessionFiles<\/code><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u53e6\u6709 <code>dev.msh.team\/protos\/kimi-go<\/code> \u4e0b\u7684 <code>kimi\/im\/v1<\/code>\u3001<code>kimi\/chat\/v1<\/code>\u3001<code>kimi\/claw\/v1<\/code>\u3001<code>kimi\/skill\/v1<\/code>\u3001<code>kimi\/file\/v1<\/code> \u7b49\u5305\uff08\u53ef\u80fd\u4ec5\u4e3a\u94fe\u63a5\u8fdb\u6765\u7684\u5171\u4eab proto \u5e93\uff09\u3002<\/p>\n\n\n\n<h2 id=\"3-envd-e2b-%25e5%2585%25bc%25e5%25ae%25b9%25e5%2591%25bd%25e4%25bb%25a4%25e6%2589%25a7%25e8%25a1%258c%25e5%25ae%2588%25e6%258a%25a4\" class=\"wp-block-heading\">3. envd \u2014\u2014 E2B \u517c\u5bb9\u547d\u4ee4\u6267\u884c\u5b88\u62a4<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>\u4e8c\u8fdb\u5236 <code>\/usr\/local\/bin\/envd<\/code>\uff08Go\uff0c18MB\uff0c\u672a strip\uff09\uff0c\u542f\u52a8\u811a\u672c <code>\/etc\/s6-overlay\/s6-rc.d\/envd\/run<\/code> \u4ee5 <code>envd -isnotfc<\/code> \u8fd0\u884c\uff0c\u76d1\u542c\u9ed8\u8ba4\u7aef\u53e3 <strong>49983<\/strong>\uff08<code>ss<\/code> \u5b9e\u6d4b <code>:::49983 LISTEN<\/code>\uff09\u3002<\/li><li><strong>\u6765\u6e90\u786e\u8ba4<\/strong>\uff1astrings \u4e2d\u5927\u91cf <code>github.com\/e2b-dev\/infra\/packages\/envd\/...<\/code> \u7b26\u53f7\u2014\u2014\u8fd9\u662f <strong>E2B infra \u7684\u5f00\u6e90 envd<\/strong>\uff08Connect-RPC \u534f\u8bae\uff09\uff0c\u63d0\u4f9b process\uff08Start\/Connect\/SendInput\/SendSignal\/List\/Update\uff09\u4e0e filesystem\uff08ListDir\/MakeDir\/Stat\/Move\/Remove\/WatchDir\u2026\uff09\u4e24\u5927\u7c7b RPC\u3002<\/li><li><strong><code>-isnotfc<\/code> \u7684\u4f5c\u7528<\/strong>\uff1arun \u811a\u672c\u6ce8\u91ca\u5199\u660e\u2014\u2014AGS \u4e0d\u662f firecracker \u73af\u5883\uff0c\u6ca1\u6709 MMDS\uff08<code>169.254.169.254<\/code> \u4e0d\u53ef\u8fbe\uff09\uff1benvd \u9ed8\u8ba4\u4f1a\u5728 <code>\/init<\/code> \u6821\u9a8c\u548c\u540e\u53f0\u8f6e\u8be2\u8bbf\u95ee MMDS\uff0c\u6bcf\u6b21\u6302\u8d77\u7ea6 10s client timeout\uff0c\u662f create \u8017\u65f6\uff08\u5b9e\u6d4b ~7s\uff09\u7684\u4e3b\u8981\u6784\u6210\u3002<code>-isnotfc<\/code> \u8ba9 envd \u8df3\u8fc7\u4e00\u5207 MMDS \u884c\u4e3a\uff0c<code>\/init<\/code> \u7acb\u5373\u53ef\u8fbe\u3002\u8fd9\u662f Moonshot \u5bf9\u4e0a\u6e38 envd \u7684\u5b9a\u5236\u8865\u4e01\u3002<\/li><li><strong>\u5176\u4ed6 flag<\/strong>\uff1a<code>-cgroup-root<\/code>\uff08\u9ed8\u8ba4 \/sys\/fs\/cgroup\uff09\u3001<code>-cmd<\/code>\uff08daemon \u542f\u52a8\u65f6\u8dd1\u4e00\u6761\u547d\u4ee4\uff09\u3001<code>-commit<\/code>\/<code>-version<\/code>\u3001<code>-port<\/code>\uff08\u9ed8\u8ba4 49983\uff09\u3002<\/li><li><strong>\u7528\u9014<\/strong>\uff1a\u4f9b\u4e91\u7aef\u63a7\u5236\u9762\uff08\u6ce8\u91ca\u79f0 &#8220;Tencent E2B command execution&#8221;\uff09\u8fdc\u7a0b\u5728\u6c99\u7bb1\u5185\u6267\u884c\u547d\u4ee4\/\u8bfb\u5199\u6587\u4ef6\u2014\u2014\u5373 E2B \u534f\u8bae\u517c\u5bb9\u7684\u6c99\u7bb1\u63a7\u5236\u901a\u9053\uff0c\u8d70 Connect-RPC over HTTP\uff0c\u8ba4\u8bc1\u5e94\u7531\u5916\u5c42\u7f51\u5173\/\u7f51\u7edc\u5c42\u627f\u62c5\uff08\u6c99\u7bb1\u5185\u672a\u89c1 envd \u4fa7\u51ed\u8bc1\u6587\u4ef6\uff09\u3002<\/li><\/ul>\n\n\n\n<h2 id=\"4-socat-%25e6%259c%258d%25e5%258a%25a1-%25e5%25ae%259e%25e4%25b8%25ba-cdp-%25e5%258f%258d%25e5%2590%2591%25e4%25bb%25a3%25e7%2590%2586\" class=\"wp-block-heading\">4. &#8220;socat&#8221; \u670d\u52a1 \u2014\u2014 \u5b9e\u4e3a CDP \u53cd\u5411\u4ee3\u7406<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>\/etc\/s6-overlay\/s6-rc.d\/socat\/run<\/code>\uff08\u4e0e <code>user<\/code>\/<code>user2<\/code> \u540c\u76ee\u5f55\uff09\u5e76\u4e0d\u8dd1 socat\uff0c\u800c\u662f\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/usr\/local\/bin\/python3 \/opt\/moonbox-project-template\/bin\/project-cdp-proxy.py<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8be5\u811a\u672c\uff08\u5168\u6587\u53ef\u8bfb\uff09\u662f\u4e00\u4e2a asyncio TCP \u4ee3\u7406\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u76d1\u542c <code>0.0.0.0:9223<\/code>\uff08<code>CDP_PROXY_LISTEN_PORT<\/code>\uff0c<code>ss<\/code> \u5b9e\u6d4b\u5728\u542c\uff09\uff0c\u8f6c\u53d1\u5230\u4e0a\u6e38 <code>127.0.0.1:9222<\/code>\uff08Chromium CDP\uff0cChromium \u81ea\u5df1\u53ea\u7ed1 loopback\uff09\u3002<\/li><li>\u5bf9 <code>\/json<\/code>\u3001<code>\/json\/list<\/code>\u3001<code>\/json\/version<\/code> \u7b49 discovery \u54cd\u5e94\u505a\u6539\u5199\uff1a\u628a <code>webSocketDebuggerUrl<\/code> \u91cc\u7684 <code>ws:\/\/127.0.0.1:9222<\/code> \u91cd\u5199\u4e3a\u5ba2\u6237\u7aef Host \u5934\u5bf9\u5e94\u7684 <code>ws(s):\/\/&lt;\u516c\u7f51\u5165\u53e3&gt;<\/code>\uff0c\u540c\u65f6\u628a\u5165\u7ad9\u8bf7\u6c42\u7684 Host \u5934\u91cd\u5199\u4e3a <code>127.0.0.1:9222<\/code> \u518d\u8f6c\u7ed9 Chromium\u3002<\/li><li>\u4f5c\u7528\uff1a<strong>\u628a\u53ea\u76d1\u542c loopback \u7684 Chromium DevTools \u534f\u8bae\u5b89\u5168\u5730\u66b4\u9732\u7ed9\u5916\u90e8<\/strong>\uff08\u7ecf\u5916\u5c42\u7f51\u5173 wss\uff09\uff0c\u4f9b\u8fdc\u7a0b\u6d4f\u89c8\u5668\u81ea\u52a8\u5316\uff08browser use\uff09\u4f7f\u7528\u3002\u5bb9\u5668\u73af\u5883\u53d8\u91cf <code>USE_CDP=true<\/code> \u4e0e\u4e4b\u547c\u5e94\u3002<\/li><\/ul>\n\n\n\n<h2 id=\"5-%25e6%258c%2587%25e5%2590%2591-mshteam-moonshot-kimi-%25e5%259f%259f%25e5%2590%258d%25e4%25b8%258e%25e5%2586%2585%25e7%25bd%2591-ip-%25e7%259a%2584%25e5%25ae%258c%25e6%2595%25b4%25e6%25b8%2585%25e5%258d%2595\" class=\"wp-block-heading\">5. \u6307\u5411 msh.team \/ moonshot \/ kimi \u57df\u540d\u4e0e\u5185\u7f51 IP \u7684\u5b8c\u6574\u6e05\u5355<\/h2>\n\n\n\n<h3 id=\"51-%25e5%259f%259f%25e5%2590%258d%25e7%25ab%25af%25e7%2582%25b9\" class=\"wp-block-heading\">5.1 \u57df\u540d\u7aef\u70b9<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u57df\u540d<\/th><th>\u7528\u9014<\/th><th>\u51fa\u5904<\/th><\/tr><\/thead><tbody><tr><td><code>agent-gw.kimi.com<\/code><\/td><td>agent \u4e0a\u884c\u7f51\u5173\uff08\/coding\uff09\uff0cAPI key \u8ba4\u8bc1<\/td><td><code>\/root\/.kimi\/agent-gw.json<\/code><\/td><\/tr><tr><td><code>kimi-api-sandbox.msh.team<\/code><\/td><td>portal PortalService \u751f\u4ea7\u7f51\u5173\uff08\/apiv2\uff0cConnect-RPC\uff09<\/td><td>portal run \u811a\u672c + \u5bb9\u5668\u73af\u5883\u53d8\u91cf<\/td><\/tr><tr><td><code>kimi.kimi.team<\/code><\/td><td>portal dev \u7f51\u5173\uff08\/apiv2\uff09<\/td><td>portal run \u811a\u672c\u6ce8\u91ca<\/td><\/tr><tr><td><code>agent-gw-dev.dev.kimi.team<\/code><\/td><td>dev \u73af\u5883 agent \u7f51\u5173\uff08\/coding\uff09<\/td><td>portal \u4e8c\u8fdb\u5236 strings<\/td><\/tr><tr><td><code>dev.msh.team<\/code><\/td><td>\u5185\u90e8 GitLab\uff08proto \u4ed3\u5e93\u3001npm \u79c1\u6709\u5305 registry <code>\/api\/v4\/projects\/1993\/packages\/npm\/<\/code>\uff09<\/td><td>portal \u4e8c\u8fdb\u5236\u3001skills \u6a21\u677f package.json<\/td><\/tr><tr><td><code>npm.mirrors.msh.team<\/code><\/td><td>npm \u955c\u50cf registry<\/td><td>sshd_config SetEnv + <code>npm config get registry<\/code> \u5b9e\u6d4b<\/td><\/tr><tr><td><code>pypi.mirrors.msh.team<\/code><\/td><td>pip \u4e3b\u7d22\u5f15<\/td><td>\u5bb9\u5668\u73af\u5883\u53d8\u91cf <code>PIP_INDEX_URL<\/code><\/td><\/tr><tr><td><code>pypi.msh.team<\/code><\/td><td>pip \u989d\u5916\u7d22\u5f15<\/td><td>\u5bb9\u5668\u73af\u5883\u53d8\u91cf <code>PIP_EXTRA_INDEX_URL<\/code><\/td><\/tr><tr><td><code>msh-sandbox.tencentcloudcr.com<\/code><\/td><td>\u57fa\u7840\u955c\u50cf\u4ed3\u5e93\uff08<code>kimiclaw\/moonbox-okc:project-20260811-2<\/code>\uff09<\/td><td>\u5bb9\u5668\u73af\u5883\u53d8\u91cf <code>MOONBOX_BASE_IMAGE<\/code><\/td><\/tr><tr><td><code>mirrors.volces.com<\/code><\/td><td>apt Debian \u955c\u50cf\uff08\u706b\u5c71\u5f15\u64ce\uff09<\/td><td><code>\/etc\/apt\/sources.list.d\/debian.sources<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 id=\"52-%25e5%2586%2585%25e7%25bd%2591-ip\" class=\"wp-block-heading\">5.2 \u5185\u7f51 IP<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong><code>10.213.5.144<\/code><\/strong> \u2014\u2014 drive9 \u5b58\u50a8\u670d\u52a1\u5668\u3002<code>\/run\/service\/drive9-fuse\/run<\/code> \u4e2d\uff1a<code>drive9 mount --foreground --mode=fuse ... --server http:\/\/10.213.5.144 --profile kimi-project --durability close-sync ':\/projects\/1a01406e-*<em><strong>-<\/strong><strong>-<\/strong><strong>-<\/strong><\/em>*****d0ce' \/mnt\/agents<\/code>\u3002\u5373\u5de5\u4f5c\u533a <code>\/mnt\/agents<\/code> \u662f\u5185\u7f51 drive9 \u5b58\u50a8\u7f51\u5173\u4e0a\u9879\u76ee\u76ee\u5f55\u7684 FUSE \u6302\u8f7d\u3002\u914d\u5957 watchdog\uff08<code>\/run\/service\/drive9-fuse-watchdog\/run<\/code>\uff09\uff1a\u6bcf 15s \u63a2\u6d3b <code>.drive9-health<\/code> \u76ee\u5f55\uff0c\u8fde\u7eed 3 \u6b21\u5931\u8d25 <code>pkill -9 drive9<\/code> \u4ea4\u7ed9 s6 \u91cd\u542f\u3002<\/li><li>DNS\uff1a<code>\/etc\/resolv.conf<\/code> \u6307\u5411 <code>183.60.83.19<\/code> \/ <code>183.60.82.98<\/code>\uff08\u817e\u8baf\u4e91 DNSPod \u7cfb nameserver\uff0cNetworkManager \u751f\u6210\uff09\u3002<\/li><li>\u5bb9\u5668\u8eab\u4efd\u73af\u5883\u53d8\u91cf\uff1a<code>SCF_POD_ID=2d9b504a104a439f9374a6374a236fa7<\/code>\uff08\u4e0e hostname \u524d\u7f00\u4e00\u81f4\uff09\u3001<code>CUBE_CONTAINER_ID_SANDBOX=2d9b504a...<\/code>\u3001<code>CUBE_CONTAINER_ID_MONITOR_SIDECAR=ac4e908b...<\/code>\uff08\u5b58\u5728\u4e00\u4e2a\u540c Pod \u7684\u76d1\u63a7 sidecar \u5bb9\u5668\uff09\u3002<\/li><\/ul>\n\n\n\n<h3 id=\"53-etc-%25e4%25b8%258e-app-%25e7%259a%2584-grep-%25e7%25bb%2593%25e6%259e%259c%25e8%25af%25b4%25e6%2598%258e\" class=\"wp-block-heading\">5.3 \/etc \u4e0e \/app \u7684 grep \u7ed3\u679c\u8bf4\u660e<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><code>\/etc<\/code> \u5185 msh.team \u547d\u4e2d\u53ea\u6709\u4e24\u5904\uff1a<code>\/etc\/ssh\/sshd_config:124<\/code> \u7684 <code>SetEnv NPM_CONFIG_REGISTRY=https:\/\/npm.mirrors.msh.team\/ ...<\/code>\uff08\u540c\u65f6\u7ed9 SSH \u4f1a\u8bdd\u6ce8\u5165\u4e86 skills \u6a21\u677f node_modules\/.bin \u7684 PATH\uff09\uff0c\u4ee5\u53ca portal run \u811a\u672c\u6ce8\u91ca\u3002<\/li><li><code>\/app\/.agents\/skills\/*-swarm<\/code> \u7684\u6a21\u677f <code>package-lock.json<\/code> \u5168\u90e8\u9501\u5230 <code>npm.mirrors.msh.team<\/code>\uff1b<code>plugin-inspect-react-code\/package.json<\/code> \u6307\u5411 GitLab \u79c1\u6709 npm registry <code>dev.msh.team\/api\/v4\/projects\/1993\/packages\/npm\/<\/code>\u3002<\/li><li>\u672a\u53d1\u73b0\u4efb\u4f55\u786c\u7f16\u7801 moonshot.cn \/ moonshot.ai \u57df\u540d\uff08\u4e91\u7aef\u9762\u7edf\u4e00\u8d70 msh.team \u4e0e kimi.com\/kimi.team\uff09\u3002<\/li><\/ul>\n\n\n\n<h2 id=\"6-%25e5%258c%2585%25e7%25ae%25a1%25e7%2590%2586%25e9%2595%259c%25e5%2583%258f%25e9%2585%258d%25e7%25bd%25ae%25e6%25b1%2587%25e6%2580%25bb\" class=\"wp-block-heading\">6. \u5305\u7ba1\u7406\u955c\u50cf\u914d\u7f6e\u6c47\u603b<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>npm<\/strong>\uff1aregistry = <code>https:\/\/npm.mirrors.msh.team\/<\/code>\uff08\u7ecf sshd SetEnv \u6ce8\u5165 <code>NPM_CONFIG_REGISTRY<\/code>\uff0c<code>npm config get registry<\/code> \u5b9e\u6d4b\u751f\u6548\uff09\u3002<code>\/home\/kimi\/.npmrc<\/code> \u53ea\u8bbe <code>prefix=\/home\/kimi\/.npm-global<\/code>\u3001<code>cache=\/home\/kimi\/.npm-cache<\/code>\u3002<\/li><li><strong>pip<\/strong>\uff1a<code>PIP_INDEX_URL=https:\/\/pypi.mirrors.msh.team\/simple<\/code>\u3001<code>PIP_EXTRA_INDEX_URL=https:\/\/pypi.msh.team\/simple<\/code>\u3001<code>PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com<\/code>\uff08\u5bb9\u5668\u7ea7\u73af\u5883\u53d8\u91cf\u6ce8\u5165\uff0c\u65e0 pip.conf \u6587\u4ef6\uff09\u3002<\/li><li><strong>apt<\/strong>\uff1aDebian bookworm \u4e3b\/\u5b89\u5168\u6e90\u8d70\u706b\u5c71\u5f15\u64ce <code>mirrors.volces.com<\/code>\uff08snapshot 2025-09-29\uff09\uff1b\u53e6\u6709 <code>packages.microsoft.com<\/code>\uff08debian\/12 prod\uff09\u4e0e <code>deb.nodesource.com node_20.x<\/code> \u4e24\u4e2a\u5916\u90e8\u6e90\u3002<\/li><\/ul>\n\n\n\n<h2 id=\"7-%25e6%25b2%2599%25e7%25ae%25b1%25e2%2586%2594%25e4%25ba%2591%25e7%25ab%25af%25e9%2580%259a%25e4%25bf%25a1%25e9%2580%259a%25e9%2581%2593%25e5%2585%25a8%25e6%2599%25af\" class=\"wp-block-heading\">7. \u6c99\u7bb1\u2194\u4e91\u7aef\u901a\u4fe1\u901a\u9053\u5168\u666f<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u901a\u9053<\/th><th>\u65b9\u5411<\/th><th>\u7aef\u70b9<\/th><th>\u8ba4\u8bc1<\/th><th>\u672c\u5730\u8f7d\u4f53<\/th><\/tr><\/thead><tbody><tr><td>agent \u4e0a\u884c<\/td><td>\u6c99\u7bb1\u2192\u4e91<\/td><td><code>https:\/\/agent-gw.kimi.com\/coding<\/code><\/td><td><code>sk-kimi-<\/code> API key<\/td><td><code>\/root\/.kimi\/agent-gw.json<\/code><\/td><\/tr><tr><td>portal \u5b58\u50a8\/\u80fd\u529b<\/td><td>\u6c99\u7bb1\u2192\u4e91<\/td><td><code>https:\/\/kimi-api-sandbox.msh.team\/apiv2<\/code>\uff08Connect-RPC PortalService\uff09<\/td><td>warden HS256 JWT \u2192 \u6362 STS\uff08<code>GetS3Credentials<\/code>\/<code>ValidateBindToken<\/code>\uff09<\/td><td>portal :8080 + <code>\/mnt\/portal-overlay<\/code><\/td><\/tr><tr><td>\u5de5\u4f5c\u533a\u5b58\u50a8<\/td><td>\u6c99\u7bb1\u2192\u5185\u7f51<\/td><td><code>http:\/\/10.213.5.144<\/code>\uff08drive9\uff0c\u660e\u6587 HTTP \u5185\u7f51\uff09<\/td><td>profile <code>kimi-project<\/code> + \u9879\u76ee UUID<\/td><td><code>\/mnt\/agents<\/code> FUSE<\/td><\/tr><tr><td>\u547d\u4ee4\u6267\u884c<\/td><td>\u4e91\u2192\u6c99\u7bb1<\/td><td>envd :49983\uff08E2B Connect-RPC\uff09<\/td><td>\u5916\u5c42\u7f51\u5173\u627f\u62c5<\/td><td><code>\/usr\/local\/bin\/envd -isnotfc<\/code><\/td><\/tr><tr><td>\u6d4f\u89c8\u5668\u81ea\u52a8\u5316<\/td><td>\u4e91\u2192\u6c99\u7bb1<\/td><td>CDP :9223 \u2192 127.0.0.1:9222<\/td><td>\u5916\u5c42\u7f51\u5173\uff08wss Host \u6539\u5199\uff09<\/td><td>project-cdp-proxy.py<\/td><\/tr><tr><td>Jupyter<\/td><td>\u4e91\u2192\u6c99\u7bb1<\/td><td>kernel-server :8888<\/td><td>\u672a\u5728\u672c\u8282\u6838\u5b9e<\/td><td><code>\/app\/kernel_server.py<\/code><\/td><\/tr><tr><td>VNC\/\u684c\u9762<\/td><td>\u4e91\u2192\u6c99\u7bb1<\/td><td>:6080\uff08kasmvnc web\uff09\u3001Xvnc :99<\/td><td><code>VNC_PASSWORD=vncpassword<\/code>\uff08\u5f31\u53e3\u4ee4\uff0c\u5bb9\u5668\u73af\u5883\u53d8\u91cf\uff09<\/td><td>kasmvnc<\/td><\/tr><tr><td>SSH<\/td><td>\u8fd0\u7ef4\u2192\u6c99\u7bb1<\/td><td>sshd :22\uff08\u7ecf frp \u96a7\u9053\u66b4\u9732\uff09<\/td><td>\u5bc6\u94a5 + <code>SSH_PASSWORD=sshpassword<\/code>\uff08\u5f31\u53e3\u4ee4\uff09<\/td><td>sshd_config<\/td><\/tr><tr><td>\u53d6\u8bc1\/\u515c\u5e95<\/td><td>\u8fd0\u7ef4\u2192\u6c99\u7bb1<\/td><td>python http.server :18080\uff08root \u6743\u9650\u76ee\u5f55\u5217\u8868\/\u8bfb\u53d6\uff09<\/td><td>\u65e0\uff08\u4ec5\u9760\u96a7\u9053\u9694\u79bb\uff09<\/td><td>PID 17<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bbf\u4e3b\u4fa7\u89d2\u8272\uff08\u4ece\u811a\u672c\u6ce8\u91ca\u4e0e\u4e8c\u8fdb\u5236\u8bc1\u636e\u63a8\u65ad\uff09\uff1a<strong>kimiwarden<\/strong> \u8d1f\u8d23\u4efb\u52a1 claim \u65f6\u4e0b\u53d1 bind token \u4e0e\u6302\u8f7d\u6e05\u5355\uff1b<strong>reception preset<\/strong> \u8bbe\u7f6e legacy <code>KIMI_PROJECT_PORTAL_OVERLAY=1<\/code> \u4fe1\u53f7\u4e0e init_script\uff1b\u4e91\u7aef\u8fd8\u6709\u4e00\u4e2a monitor sidecar \u5bb9\u5668\uff08<code>CUBE_CONTAINER_ID_MONITOR_SIDECAR<\/code>\uff09\u4e0e\u672c\u6c99\u7bb1\u540c Pod\u3002<\/p>\n\n\n\n<h2 id=\"8-%25e5%25af%2586%25e9%2592%25a5%25e5%2587%25ad%25e8%25af%2581%25e7%2599%25bb%25e8%25ae%25b0%25e5%259d%2587%25e5%25b7%25b2%25e8%2584%25b1%25e6%2595%258f\" class=\"wp-block-heading\">8. \u5bc6\u94a5\/\u51ed\u8bc1\u767b\u8bb0\uff08\u5747\u5df2\u8131\u654f\uff09<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u51ed\u8bc1<\/th><th>\u4f4d\u7f6e<\/th><th>\u683c\u5f0f\/\u7528\u9014<\/th><\/tr><\/thead><tbody><tr><td>agent API key<\/td><td><code>\/root\/.kimi\/agent-gw.json<\/code><\/td><td><code>sk-kimi-8OQEd910...<\/code>\uff0c\u8c03 agent-gw.kimi.com<\/td><\/tr><tr><td>bind JWT<\/td><td>\u8fd0\u884c\u65f6\u7531 kimiwarden POST \u6ce8\u5165\uff0c\u4e0d\u843d\u76d8\u53ef\u89c1\u6587\u4ef6<\/td><td>HS256 JWT\uff0cportal \u6362 STS<\/td><\/tr><tr><td>SSH \u5bc6\u7801<\/td><td>\u5bb9\u5668\u73af\u5883\u53d8\u91cf <code>SSH_PASSWORD=sshpassword<\/code><\/td><td>\u5f31\u56fa\u5b9a\u53e3\u4ee4\uff0csshd<\/td><\/tr><tr><td>VNC \u5bc6\u7801<\/td><td>\u5bb9\u5668\u73af\u5883\u53d8\u91cf <code>VNC_PASSWORD=vncpassword<\/code><\/td><td>\u5f31\u56fa\u5b9a\u53e3\u4ee4\uff0ckasmvnc<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"9-%25e6%259c%25aa%25e5%25ae%258c%25e6%2588%2590%25e9%25aa%258c%25e8%25af%2581%25e9%25a1%25b9%25e9%259a%25a7%25e9%2581%2593-1726-cst-%25e6%2596%25ad%25e5%25bc%2580%25e6%2589%2580%25e8%2587%25b4\" class=\"wp-block-heading\">9. \u672a\u5b8c\u6210\u9a8c\u8bc1\u9879\uff08\u96a7\u9053 17:26 CST \u65ad\u5f00\u6240\u81f4\uff09<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>\u51fa\u7ad9 established \u8fde\u63a5\u5feb\u7167\uff08<code>ss -tn state established<\/code>\uff09\u672a\u53d6\u5230\u2014\u2014\u91c7\u96c6\u671f\u95f4\u6c99\u7bb1\u7a7a\u95f2\uff0c\u4e14\u672b\u5c3e\u8fde\u63a5\u4e2d\u65ad\u3002<\/li><li>\u7aef\u53e3 32001\u300118082 \u7684\u5c5e\u4e3b\u672a\u6700\u7ec8\u786e\u8ba4\uff08\u521d\u6b65\uff1a8080=portal\u300149983=envd\u30019223=cdp-proxy\u30018888=kernel\u30016080=kasmvnc \u5df2\u786e\u8ba4\uff1b32001 \u7591\u4f3c kasmvnc \u76f8\u5173\u6216\u5bbf\u4e3b\u6620\u5c04\uff0c18082 \u7591\u4f3c\u5185\u90e8\u8f85\u52a9\u670d\u52a1\uff09\u3002<\/li><li>agent-gw.json \u7684\u5b9e\u9645\u6d88\u8d39\u8fdb\u7a0b\u672a\u6293\u5230\uff08\u91c7\u96c6\u65f6\u6c99\u7bb1\u5185\u65e0 agent \u8fdb\u7a0b\u8fd0\u884c\uff0c\u63a8\u6d4b\u7531\u63a7\u5236\u9762\u4efb\u52a1\u542f\u52a8\u65f6\u62c9\u8d77\uff09\u3002<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u2190 \u8fd4\u56de\u4e3b\u62a5\u544a\uff1aKimi Agent\uff08\u4e91\u7aef\u6c99\u7bb1\uff09\u6280\u672f\u62a5\u544a \uff5c GitHub \u539f\u6587 \u5408\u89c4\u4e0e\u98ce\u9669\u58f0\u660e\uff1a\u672c\u62a5\u544a\u4e3a\u5b89\u5168 &hellip; <a href=\"https:\/\/tongchun.website\/index.php\/kimiagent-04-gateway\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201c04-gateway\uff1a\u4e91\u7aef\u7f51\u5173\u4e0e\u5916\u90e8\u8fde\u63a5\u201d<\/span><\/a><\/p>\n","protected":false},"author":55404,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"wpai_generated_summary":"","wpai_meta_description":"","footnotes":""},"class_list":["post-1870","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tongchun.website\/index.php\/wp-json\/wp\/v2\/pages\/1870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tongchun.website\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tongchun.website\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tongchun.website\/index.php\/wp-json\/wp\/v2\/users\/55404"}],"replies":[{"embeddable":true,"href":"https:\/\/tongchun.website\/index.php\/wp-json\/wp\/v2\/comments?post=1870"}],"version-history":[{"count":1,"href":"https:\/\/tongchun.website\/index.php\/wp-json\/wp\/v2\/pages\/1870\/revisions"}],"predecessor-version":[{"id":1890,"href":"https:\/\/tongchun.website\/index.php\/wp-json\/wp\/v2\/pages\/1870\/revisions\/1890"}],"wp:attachment":[{"href":"https:\/\/tongchun.website\/index.php\/wp-json\/wp\/v2\/media?parent=1870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}