通过 TypeScript SDK 以编程方式访问 Qwen Code
位於您終端機中的開源人工智慧編碼代理。 **多協定**,支援 OpenAI、Anthropic、Gemini 和 Qwen API。
秒懂
- 它是什麼?
- README 中关于 @qwen-code/sdk 包的内容说明了如何从 TypeScript 驱动 Qwen Code:安装、query() API、权限模式、MCP 集成和错误处理。
- 適合誰用?
- 该 SDK 是一个实验性的 TypeScript 封装,将 Qwen Code 的终端代理带入编程使用,API 表面较小,采用 Apache-2.0 许可证。README 没有涵盖完整的 CLI,当前 SDK 版本等细节也未说明。
- 可以商用嗎?
- 可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 1 天前。
- 用什麼語言寫的?
- 主要是 TypeScript(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。
開源專案深度解析
qwen-code:该 SDK 在 Qwen Code 仓库中的角色
仓库 QwenLM/qwen-code 被描述为运行在终端中的开源 AI 编码代理。packages/sdk-typescript 下的 README 记录了 @qwen-code/sdk,这是一个用于以编程方式访问该代理的 TypeScript SDK。该 SDK 被称为最小且实验性的。仓库元数据显示有 26,713 个星标和 2,786 个 fork,但 README 未讨论采用情况、基准测试或生产使用。该 SDK 专注于让开发者从自己的 TypeScript 应用程序启动查询会话、控制权限并处理消息。
qwen-code:安装和版本要求
该 SDK 要求 Node.js 版本 22.0.0 或更高。README 中给出的安装命令是 npm install @qwen-code/sdk。从版本 0.1.1 开始,CLI 与 SDK 捆绑在一起,因此无需单独安装 Qwen Code。版本 0.1.0 的要求不同:它需要单独安装 Qwen Code 0.4.0 或更高版本并在 PATH 中可用,建议的命令是 npm install -g @qwen-code/qwen-code@latest。README 未说明当前版本是哪个,也未说明 0.1.1 何时发布。
qwen-code:query() 函数及其选项
主要入口点是 query(config),它会创建与 Qwen Code 的查询会话。prompt 可以是普通字符串用于单轮查询,也可以是 SDKUserMessage 的异步迭代器用于多轮对话。options 对象接受 cwd、model、pathToQwenExecutable、permissionMode、canUseTool、env、systemPrompt、mcpServers、abortController、debug、maxSessionTurns、coreTools、excludeTools、allowedTools、authType、agents、includePartialMessages、resume 和 sessionId。model 选项优先于 OPENAI_MODEL 和 QWEN_MODEL 环境变量。canUseTool、mcpRequest、controlRequest 和 streamClose 的默认超时时间为一分钟,均可通过 timeout 选项覆盖。README 展示了如何遍历返回的消息并使用 isSDKAssistantMessage 和 isSDKResultMessage 等类型守卫。
qwen-code:权限模式和审批链
有五种权限模式控制工具执行:default、plan、auto-edit、auto 和 yolo。在 default 模式下,写入工具会被拒绝,除非通过 canUseTool 回调或 allowedTools 批准,而只读工具无需确认即可运行。plan 模式阻止所有写入工具,并让 AI 先提出计划。auto-edit 自动批准编辑工具(如 edit、write_file、notebook_edit),但其他工具需要确认。auto 使用内置分类器批准安全调用并阻止有风险的调用,在反复阻止或分类器故障后有手动批准回退。yolo 自动批准所有工具。决策优先级链为:excludeTools 或 permissions.deny、permissions.ask、plan、yolo、allowedTools 或 permissions.allow、auto、canUseTool,然后是默认行为。第一条匹配规则生效。
qwen-code:MCP 服务器、系统提示词和会话控制
该 SDK 支持通过 stdio、SSE 或 HTTP 的外部 MCP 服务器,以及在同一进程中运行的 SDK 嵌入式服务器。tool() 辅助函数使用名称、描述、Zod 输入模式和处理器定义工具,而 createSdkMcpServer() 将工具打包到服务器实例中。systemPrompt 选项可以是字符串以完全覆盖内置提示词,也可以是预设对象以附加额外指令。Query 实例方法包括 getSessionId()、isClosed()、interrupt()、setPermissionMode()、setModel()、getContextUsage() 和 close()。实验性的 DaemonSessionClient 通过 HTTP 和 SSE 连接到正在运行的 qwen serve 守护进程,而离线转录投影辅助函数可将 ChatRecord 值转换为块模型,无需文件或网络访问。
qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证
该 SDK 导出 AbortError 和 isAbortError 来检测中止的查询,abortController 选项允许调用者取消会话。README 中的 FAQ 部分讨论了版本 0.1.0 的要求:必须单独安装 Qwen Code 0.4.0 或更高版本,而从 0.1.1 开始 CLI 已捆绑。该项目采用 Apache-2.0 许可证,如仓库元数据和 LICENSE 文件所示。许可证授予复制、准备衍生作品、公开展示、表演、再许可和分发作品的权利,并包含专利授权。它不提供保证或支持;README 未提及任何支持保证、安全状态或生产就绪性。
Qwen Code 的价值取决于它在当前终端、模型访问方式和代码仓库中的实际交互。第一次运行应先按 README 安装命令完成 CLI 初始化,再确认模型配置、工作目录和权限边界;不要把能启动等同于能安全修改代码。测试一个具体任务时,记录它读取了哪些文件、提出了哪些命令、是否等待确认以及修改后的差异。若使用 TypeScript SDK,则应把导入路径、会话创建和流式输出作为单独的最小样例验证。README 对模型、工具和配置的说明才是能力边界,未写出的上下文长度、成本、隐私处理或成功率不能推断。社区渠道和版本发布信息适合用来追踪变更,但不构成生产支持承诺。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。 qwen-code 的 README 将“qwen-code:错误处理、版本 FAQ 和 Apache-2.0 许可证”作为项目说明的一部分,实际采用时应把这一项与对应版本的文件和命令逐一对照。
編輯結論
该 SDK 是一个实验性的 TypeScript 封装,将 Qwen Code 的终端代理带入编程使用,API 表面较小,采用 Apache-2.0 许可证。README 没有涵盖完整的 CLI,当前 SDK 版本等细节也未说明。 适合谁、不适合谁以及先核对什么,必须结合本项目的启动入口、实际输出和许可证边界作出判断。
社群筆記