[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-github-copilot-sdk-lets-apps-run-agents-en":3,"article-related-github-copilot-sdk-lets-apps-run-agents-en":30,"series-tools-be61d518-74a6-4482-986f-cd0d3bcae472":73},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"be61d518-74a6-4482-986f-cd0d3bcae472","github-copilot-sdk-lets-apps-run-agents-en","GitHub Copilot SDK lets apps run agents","\u003Cp data-speakable=\"summary\">I used to wire agents by hand; this SDK makes \u003Ca href=\"\u002Ftag\u002Fcopilot\">Copilot\u003C\u002Fa> run them for you.\u003C\u002Fp>\u003Cp>I've been building agent workflows for a while now, and the part that keeps annoying me is not the model call. It's everything around it. Planning, tool selection, permission checks, file edits, retries, process cleanup, and the weird glue code that turns a demo into something I can ship. I’ve seen teams spend days stitching that together, then spend more days trying to make it behave the same way in Node, Python, and Go. That’s the part that always felt off.\u003C\u002Fp>\u003Cp>Then I hit the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fcopilot-sdk\">GitHub Copilot SDK\u003C\u002Fa> repo and the pitch was blunt: don’t build your own orchestration, use the engine behind Copilot CLI. That immediately changed how I looked at it. I’m not interested in another “agent framework” that gives me a few abstractions and then quietly asks me to solve the hard parts anyway. I want the runtime, the tool lifecycle, and the permission model already wired. And yes, the repo says BYOK is supported too, which matters if you don’t want every call pinned to GitHub auth.\u003C\u002Fp>\u003Ch2>What GitHub actually shipped here, not the marketing version\u003C\u002Fh2>\u003Cblockquote>“The GitHub Copilot SDK exposes the same engine behind Copilot CLI: a production-tested agent runtime you can invoke programmatically.”\u003C\u002Fblockquote>\u003Cp>That line is the whole story. \u003Ca href=\"\u002Ftag\u002Fgithub\">GitHub\u003C\u002Fa> is not selling me a cute wrapper around chat completions. It’s exposing the agent runtime that already powers \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fcopilot-cli\">Copilot CLI\u003C\u002Fa>, then letting me call it from app code. That means planning, tool invocation, file edits, and the process lifecycle are not my problem by default.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784122406117-28v5.png\" alt=\"GitHub Copilot SDK lets apps run agents\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>What this actually means is: the SDK is trying to be the control plane for agent behavior, not just a model client. If I’ve got an app that needs a code-editing assistant, an internal support bot, or a workflow agent that can touch files and call tools, I don’t need to invent my own state machine first.\u003C\u002Fp>\u003Cp>I ran into this exact mess when I tried to keep a Python agent and a \u003Ca href=\"\u002Ftag\u002Ftypescript\">TypeScript\u003C\u002Fa> agent in sync. Same prompts, different tool behavior, different cleanup bugs, different permission code. The repo’s pitch is basically a middle finger to that whole pattern: put the runtime behind a language SDK, keep the behavior consistent, and let the app decide what tools are allowed.\u003C\u002Fp>\u003Cp>How I’d apply it:\u003C\u002Fp>\u003Cul>\u003Cli>Use the SDK when you need an agent to do real work, not just answer text prompts.\u003C\u002Fli>\u003Cli>Keep your app logic thin and let the SDK own the CLI process and tool orchestration.\u003C\u002Fli>\u003Cli>Treat the agent runtime as infrastructure, not a prompt wrapper.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If you want the source of truth, start with the repo README and the linked docs in the project root, not blog-post summaries. The README is where GitHub spells out the language support, architecture, and auth paths.\u003C\u002Fp>\u003Ch2>BYOK is the escape hatch I actually care about\u003C\u002Fh2>\u003Cp>The repo’s FAQ says the SDK supports \u003Cstrong>BYOK\u003C\u002Fstrong>, and that matters more than it sounds like it should. GitHub says I can configure the SDK to use my own API keys from supported providers like \u003Ca href=\"https:\u002F\u002Fopenai.com\u002F\">OpenAI\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fazure.microsoft.com\u002Fen-us\u002Fproducts\u002Fai-foundry\">Azure AI Foundry\u003C\u002Fa>, and \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002F\">Anthropic\u003C\u002Fa>. It also says this is key-based auth only, so no \u003Ca href=\"\u002Ftag\u002Fmicrosoft\">Microsoft\u003C\u002Fa> Entra ID, managed identities, or third-party identity providers.\u003C\u002Fp>\u003Cp>What this actually means is I can keep the SDK and agent runtime, but swap the billing and model access layer. That’s useful when I’m building for a customer who already has vendor contracts, or when I need to keep a project off my \u003Ca href=\"\u002Ftag\u002Fgithub-copilot\">GitHub Copilot\u003C\u002Fa> quota. It also means the SDK is not forcing me into one identity story just to test the runtime.\u003C\u002Fp>\u003Cp>I like this a lot because it gives me a clean split: GitHub handles the agent mechanics, and the model provider handles the key. That’s a much saner boundary than stuffing everything behind one login and hoping the enterprise team never asks questions.\u003C\u002Fp>\u003Cp>How I’d apply it:\u003C\u002Fp>\u003Cul>\u003Cli>Use BYOK when your org already has OpenAI, Azure, or Anthropic billing.\u003C\u002Fli>\u003Cli>Use GitHub auth when you want the default Copilot-backed path.\u003C\u002Fli>\u003Cli>Do not assume enterprise identity features are supported just because the SDK is enterprise-friendly.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>One detail I’d keep front and center: the repo says BYOK uses key-based authentication only. If your deployment model depends on managed identity, this is not the path. I’d rather know that early than discover it after I’ve built half the integration.\u003C\u002Fp>\u003Ch2>The JSON-RPC layer is the part you should respect\u003C\u002Fh2>\u003Cp>The architecture section is refreshingly direct: your app talks to the SDK client, the SDK talks JSON-RPC to the Copilot CLI in server mode, and the SDK manages the CLI process lifecycle automatically. That’s not glamorous, but it’s the part that makes the whole thing feel real.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784122418129-keb2.png\" alt=\"GitHub Copilot SDK lets apps run agents\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>What this actually means is the SDK is acting like a local agent gateway. Your app does not talk to a remote black box and hope for the best. It talks to a client that can spawn or connect to a CLI server, then route agent actions over a protocol that is explicit enough to debug.\u003C\u002Fp>\u003Cp>I’ve had enough “agent SDKs” hide everything behind a single async call and then leave me guessing when tool invocation stalls. JSON-RPC is boring in the best way. Boring means inspectable. Boring means I can trace failures. Boring means I can connect to an external server when I need to control runtime placement.\u003C\u002Fp>\u003Cp>How I’d apply it:\u003C\u002Fp>\u003Cul>\u003Cli>Think of the CLI server as a runtime you can host, not just a binary the SDK casually invokes.\u003C\u002Fli>\u003Cli>Use the SDK’s lifecycle management when you want fewer moving pieces.\u003C\u002Fli>\u003Cli>Connect to an external CLI server when you need tighter control over process placement or isolation.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If you’re building on top of this, the relevant docs are the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fcopilot-sdk#getting-started\">Getting Started Guide\u003C\u002Fa> and the language-specific READMEs in the repo. I’d read the architecture section before I wrote any product code, because that’s where the operational shape shows up.\u003C\u002Fp>\u003Ch2>Tool permissions are where this gets practical\u003C\u002Fh2>\u003Cp>GitHub says the SDK exposes the Copilot CLI’s first-party tools by default, similar to running the CLI with \u003Ccode>--allow-all\u003C\u002Fcode>, but tool execution is still governed by each SDK’s permission handler. That’s the part I care about. If an agent can edit files, run commands, or touch services, I want my app to approve, deny, or customize those calls.\u003C\u002Fp>\u003Cp>What this actually means is the SDK is not a free-for-all. It gives the agent broad capability, then asks the application to decide what is acceptable. That’s the right order. I don’t want a framework that assumes every tool call is okay and leaves me to bolt on safety later.\u003C\u002Fp>\u003Cp>I’ve had to retrofit permission layers onto tools before, and it’s miserable. You end up with scattered checks, inconsistent prompts, and a weird trust gap between “the model suggested it” and “the app let it happen.” Here, the permission handler is part of the story from the start, which is exactly where it belongs.\u003C\u002Fp>\u003Cp>How I’d apply it:\u003C\u002Fp>\u003Cul>\u003Cli>Start with a strict permission handler and open it up only for trusted workflows.\u003C\u002Fli>\u003Cli>Separate read-only tools from write-capable tools in your app policy.\u003C\u002Fli>\u003Cli>Log tool requests before approval so you can audit agent behavior later.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>GitHub also says you can customize tool availability through client options. That’s the part I’d use to keep risky tools out of default flows and only enable them for specific roles or environments. If you’re shipping to production, that matters more than whatever demo the README shows.\u003C\u002Fp>\u003Ch2>Multi-language support is useful, but only if you keep the contract tight\u003C\u002Fh2>\u003Cp>The SDK is available for Python, TypeScript, Go, .NET, Java, and Rust. GitHub even lists install commands for each one, plus cookbooks and API docs. That sounds like a lot, and honestly, it is. But the important part is not the number of languages. It’s that the runtime contract is supposed to stay consistent across them.\u003C\u002Fp>\u003Cp>What this actually means is I can choose the host language based on the app I’m already building instead of rewriting the agent layer for every stack. If my service is in Go, I do not need to jump to Node just to get agent support. If my internal tool is in Python, I can stay there.\u003C\u002Fp>\u003Cp>I ran into this exact problem when I tried to standardize agent behavior across a backend service and a desktop tool. The model calls were easy. The host-language differences were the headache. A shared SDK story is valuable only if the behavior stays aligned, so I’d treat the language choice as an implementation detail and the agent contract as the real asset.\u003C\u002Fp>\u003Cp>How I’d apply it:\u003C\u002Fp>\u003Cul>\u003Cli>Pick the SDK language that matches the app you already own.\u003C\u002Fli>\u003Cli>Use the language-specific cookbook before you design your own abstractions.\u003C\u002Fli>\u003Cli>Keep prompts, tool names, and permission rules consistent across stacks.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>There’s also a practical note in the README: Node.js, Python, and .NET bundle the Copilot CLI automatically, while Go, Java, and Rust expect you to install the CLI manually or ensure it’s on your PATH. That is the sort of detail that saves an afternoon.\u003C\u002Fp>\u003Ch2>Production-ready here means versioned, not magical\u003C\u002Fh2>\u003Cp>GitHub says the SDK is generally available and follows semantic versioning. That’s good, and it’s the kind of line I actually trust because it tells me how to think about upgrades. It does not promise that everything will be painless. It just says the surface is stable enough to build against.\u003C\u002Fp>\u003Cp>What this actually means is I should treat it like a real dependency, not a prototype. Read the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fcopilot-sdk\u002Fblob\u002Fmain\u002FCHANGELOG.md\">CHANGELOG\u003C\u002Fa>, watch for breaking changes, and stop pretending that “agent SDK” means “we can ignore release discipline.”\u003C\u002Fp>\u003Cp>I’ve learned the hard way that agent tooling gets messy fast when nobody owns versioning. One minor update changes tool behavior, another tweaks auth defaults, and suddenly the app team is debugging a runtime issue that should have been a release note. Semantic versioning is not exciting, but it’s how I keep my own sanity.\u003C\u002Fp>\u003Cp>How I’d apply it:\u003C\u002Fp>\u003Cul>\u003Cli>Pin SDK versions instead of floating them.\u003C\u002Fli>\u003Cli>Read the changelog before every upgrade.\u003C\u002Fli>\u003Cli>Test auth, tool calls, and file edits in CI, not just happy-path prompt output.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>The repo also points to GitHub Issues for bugs and feature requests, which is exactly what I’d expect from something that wants to be used in production. If I’m depending on it, I want a clear place to report regressions and ask for behavior changes.\u003C\u002Fp>\u003Ch2>The template you can copy\u003C\u002Fh2>\u003Cpre>\u003Ccode># GitHub Copilot SDK integration template\n\n## Goal\nBuild an app or service that can run Copilot-powered agent workflows with explicit tool control and optional BYOK.\n\n## Assumptions\n- I already have an app in one of these languages: TypeScript, Python, Go, .NET, Java, or Rust.\n- I want the SDK to manage the Copilot CLI lifecycle when possible.\n- I want to approve or deny agent tool calls in my app.\n- I may want BYOK instead of GitHub auth.\n\n## Integration steps\n1. Pick the SDK that matches my host language.\n2. Install the SDK using the repo instructions.\n3. Decide auth mode:\n   - GitHub auth for Copilot-backed usage\n   - BYOK for provider keys from OpenAI, Azure AI Foundry, or Anthropic\n4. Configure the SDK client.\n5. Add a permission handler for tool calls.\n6. Start with a narrow tool allowlist.\n7. Log every agent request, tool call, and approval decision.\n8. Pin the SDK version and review the changelog before upgrades.\n\n## Suggested policy\n- Default to deny for write-capable tools.\n- Allow read-only tools for all trusted users.\n- Require explicit approval for file edits, shell commands, and external side effects.\n- Keep BYOK and GitHub auth paths separate in configuration.\n\n## Pseudocode\ntext\nif auth_mode == \"byok\":\n    load_provider_key()\nelse:\n    load_github_copilot_credentials()\n\nsdk = create_copilot_sdk(\n    cli_mode=\"managed\",\n    permission_handler=permission_handler,\n    tools=allowed_tools,\n)\n\nresult = sdk.run_agent(\n    prompt=user_request,\n    context=app_context,\n)\n\nreturn result\n\n\n## Permission handler template\ntext\nfunction permission_handler(tool_call):\n    if tool_call.name in read_only_tools:\n        allow()\n    if tool_call.name in write_tools:\n        require_manual_approval()\n    if tool_call.name in forbidden_tools:\n        deny()\n\n\n## BYOK config checklist\n- Provider key stored securely\n- Provider selected explicitly\n- No Entra ID \u002F managed identity assumptions\n- Separate config for GitHub auth and BYOK\n- Usage\u002Fbilling tracked per provider\n\n## Production checklist\n- [ ] SDK version pinned\n- [ ] CLI availability verified\n- [ ] Tool permissions tested\n- [ ] Auth mode documented\n- [ ] Audit logs enabled\n- [ ] Upgrade path reviewed\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>The template above is my distilled version of the repo’s README, FAQ, and architecture notes. It is derivative, not official. The original source lives at \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fcopilot-sdk\">https:\u002F\u002Fgithub.com\u002Fgithub\u002Fcopilot-sdk\u003C\u002Fa>, and the repo’s README plus linked docs are where the exact install commands, auth details, and language-specific examples belong.\u003C\u002Fp>\u003Cp>If you want to go deeper, I’d also keep the official GitHub docs close: \u003Ca href=\"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\">GitHub Copilot docs\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fmanaging-copilot\u002Fusing-copilot-in-your-organization\">organization usage guidance\u003C\u002Fa>, and the GitHub Issues tab in the repo for implementation questions. My version here is the practical breakdown I’d hand a teammate before we started wiring this into a real app.\u003C\u002Fp>","I broke down GitHub Copilot SDK’s BYOK path, tool control, and multi-language setup into a copyable integration template.","github.com","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fcopilot-sdk",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784122406117-28v5.png","tools","en","50e0da68-0c32-482d-9f11-2f0498ac7b29",[17,18,19,20,21],"GitHub Copilot SDK","BYOK","agent runtime","JSON-RPC","tool permissions",[23,24,25],"The SDK is a programmatic wrapper around the Copilot CLI agent runtime, not just a model client.","BYOK is supported with key-based auth from providers like OpenAI, Azure AI Foundry, and Anthropic.","Tool permission handling is built into the integration story, which makes production controls much easier.",0,"2026-07-15T13:32:56.664571+00:00","2026-07-15T13:32:56.654+00:00","0c42cb32-a243-4a33-92ed-0549a19cbd89",{"tags":31,"relatedLang":32,"relatedPosts":36},[],{"id":15,"slug":33,"title":34,"language":35},"github-copilot-sdk-lets-apps-run-agents-zh","Copilot SDK 讓應用直接跑 Agent","zh",[37,43,49,55,61,67],{"id":38,"slug":39,"title":40,"cover_image":41,"image_url":41,"created_at":42,"category":13},"6f7ab80c-abc0-4a66-90a8-52755a624481","databricks-query-foundation-models-guide-en","Databricks lets you query foundation models","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784144058128-58rk.png","2026-07-15T19:33:45.40417+00:00",{"id":44,"slug":45,"title":46,"cover_image":47,"image_url":47,"created_at":48,"category":13},"1a0db5c8-1638-496a-82c2-3c8953ac207a","sglang-inference-is-the-product-en","SGLang is winning because inference is the product","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784140363231-i2js.png","2026-07-15T18:32:19.539863+00:00",{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"dcdffb2f-a2f3-4079-8f6c-cdb2af13cc8e","redmi-note-17-battery-camera-price-breakdown-en","Redmi Note 17 turns mid-range into battery bulk","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784138630965-83b5.png","2026-07-15T18:03:19.453561+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"60938346-4517-4a62-a8c0-ca6db24ed5d6","foundry-ship-agents-without-rewrites-en","Foundry lets you ship agents without rewrites","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784120662308-flld.png","2026-07-15T13:03:49.567537+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"b821ec63-b837-4634-99f0-3b359d3c892f","kimi-k26-turns-prompt-into-brand-sites-en","Kimi K2.6 turns a prompt into brand sites","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784053990583-sulp.png","2026-07-14T18:32:49.279795+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"4d4694ff-c317-4c1b-8564-4c310ca8d41b","cloudflare-one-partner-program-ai-security-rollout-en","Cloudflare One partner program speeds AI security rollout","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1784037810533-69nw.png","2026-07-14T14:02:57.550961+00:00",[74,79,84,89,94,99,104,109,114,119],{"id":75,"slug":76,"title":77,"created_at":78},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":80,"slug":81,"title":82,"created_at":83},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":85,"slug":86,"title":87,"created_at":88},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":90,"slug":91,"title":92,"created_at":93},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"6d1bf3f6-e191-4d30-b55b-8a0722fa6afe","ai-trending-github-repos-and-research-feeds-en","AI Trending Tracks Repos and Research Feeds","2026-03-27T01:31:35.709532+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"010539a1-4c3a-4bd3-937a-26616422ee0d","awesome-ai-for-science-research-tools-map-en","Awesome AI for Science Is Becoming a Real Research Map","2026-03-27T01:46:50.89513+00:00"]