内容
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Deuz-AI/Deuz-SDK/main/assets/banner-dark.svg?v=1.6.1">
<img alt="Deuz SDK — 面向 TypeScript 的零依赖 AI SDK" src="https://raw.githubusercontent.com/Deuz-AI/Deuz-SDK/main/assets/banner-light.svg?v=1.6.1" width="100%">
</picture>
<br>
[](https://www.npmjs.com/package/@deuz-sdk/core)
[](https://github.com/Deuz-AI/Deuz-SDK/blob/main/package.json)
[](https://github.com/Deuz-AI/Deuz-SDK/actions/workflows/ci.yml)
[](https://github.com/Deuz-AI/Deuz-SDK/blob/main/test/surface.test-d.ts)
[](./LICENSE)
**[文档](./docs)** · **[基准测试](#The-cost-of-the-box)** · **[比较](#how-it-compares)** · **[架构](#architecture--the-canonical-line)** · **[更新日志](./CHANGELOG.md)**
</div>
```ts
import { streamChat } from '@deuz-sdk/core';
import { createAnthropic } from '@deuz-sdk/core/anthropic';
// 或:createOpenAI, createGoogle, createXai, createVertex — 调用方式相同
const anthropic = createAnthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
// 返回结果同步且不会抛出异常 — 失败结果以类型化的部分形式返回。
const res = streamChat({
model: anthropic('claude-opus-4-8'),
messages: [{ role: 'user', content: '你好!' }],
});
for await (const chunk of res.textStream) process.stdout.write(chunk);
const usage = await res.usage; // tokens — 以及 USD,如果你配置了 /pricing
```
`@deuz-sdk/core` 是一个从零开始、独立的 AI SDK:聊天、智能工具循环、子智能体、持久会话、结构化输出、嵌入、记忆、RAG、技能、MCP、图像生成和本地可观察性 — **一个包,零运行时依赖**。核心代码纯粹且通过 **lint** 强制执行:没有 `Date.now()`、没有 `Math.random()`、没有 `process.env`、没有 `console` 在 `src/` 目录中 — 所有有状态的内容都通过一个 `Dependencies` 接口注入,以便相同的代码在 Node、Deno、Bun 和边缘运行时中无需修改即可运行,并且每个测试都是确定性的重放。
## 安装
```sh
npm install @deuz-sdk/core # pnpm add / bun add 亦可
```
这就是整个依赖树。
> [!NOTE]
> Node ≥ 22(或带有 `fetch` 的任何边缘运行时)。可选的同级加载仅在您使用它们时加载:`zod`(或任何标准模式库)用于类型化对象,`@modelcontextprotocol/sdk` 用于 MCP,`react` 用于钩子,`unpdf`/`mammoth`/`xlsx` 用于文档解析。
> [!TIP]
> 使用 Claude Code、Cursor 或其他编码代理?安装 [Deuz 技能](./skills/deuz-sdk) — 它教会代理 SDK 的实际调用模式、边缘安全性规则和导出:
>
> ```sh
> npx skills add Deuz-AI/Deuz-SDK
> ```
## 为什么选择 Deuz
- **零运行时依赖** — `npm ls --all` 打印一行;[`package.json`](./package.json) 是收据。
- **2.4 MB 安装,~50 ms 导入** — 比其他 TypeScript AI SDK 少 5–47 倍磁盘空间,速度快 5–20 倍冷启动([测量](#the-cost-of-the-box),可复制)。
- **通过 lint 实现边缘安全性,而不是通过承诺** — 禁止的周围 API 是 CI 失败,并且 [browser-bundle 门控](./tooling) 证明没有 `node:` 导入泄漏到核心。
- **任何后端上的持久代理** — 通过两个方法 `SessionStore` 实现检查点/恢复;没有供应商工作流运行时([游览](#durable-agents))。
- **本地可观察** — 每个运行的版本化事件协议;没有托管服务,默认情况下不会捕获任何内容([游览](#observable-runtime))。
- **一个规范流** — 适配器永远不会代理原始提供者字节,这就是为什么中止、重试、子代理转发和类型化 UI 事件都可以组合([架构](#architecture--the-canonical-line))。
## 成本
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Deuz-AI/Deuz-SDK/main/assets/benchmark-dark.png?v=1.5.0">
<img alt="测量基准:安装占用、安装包、磁盘文件和 @deuz-sdk/core 与 ai、@mastra/core、langchain、llamaindex 和 @openai/agents 的冷导入时间" src="https://raw.githubusercontent.com/Deuz-AI/Deuz-SDK/main/assets/benchmark.png?v=1.5.0">
</picture>
**2.4 MB 安装。1 个包。~50 ms 导入。** 每个数字都来自 [`bench/results.json`](./bench/results.json),在同一台机器上使用相同的程序进行测量 — 使用 `python bench/measure.py && python bench/chart.py` 重新生成所有内容([方法论](./bench))。
> [!NOTE]
> 这些是**裸包**安装,这有利于框架 — `ai` 和 `langchain` 仍然需要单独的提供者包才能达到此包中内置的六个提供者系列。占用空间不是质量分数:它衡量您在第一个 token 之前支付的费用。[比较表](#how-it-compares) 涵盖了每个框架的功能。
## 游览
### 持久代理
一个在每个步骤边界检查点到 `SessionStore` 的代理循环 — 两个方法,`save` 和 `load`,适用于您喜欢的任何存储。 在运行过程中终止进程,或让 gated 工具调用暂停运行以供人工审批,然后在停止的地方恢复:
```ts
import { generateText } from '@deuz-sdk/core';
import { resumeFromCheckpoint, createApprovalSigner } from '@deuz-sdk/core/durable';
// 第一阶段 — 每个步骤后检查点;`needsApproval` 工具暂停运行。
const { pendingApprovals } = await generateText({
model: anthropic('claude-opus-4-8'),
messages: [{ role: 'user', content: '起草并发布发行说明。' }],
tools: { publish: { ...publishTool, needsApproval: true } },
session: { store, runId: 'run-42' },
});
// 第二阶段 — 数小时后,在不同的进程中。 累积使用和步骤索引贯穿整个过程;
// 如果没有判决,默认情况下 resume 会被拒绝。
const done = await resumeFromCheckpoint(store, 'run-42', {
model: anthropic('claude-opus-4-8'),
tools: { publish: publishTool },
approvalResponses: [approved], // HMAC 签名,绑定到 runId,带有过期时间
});
```
审批判决可以使用 `createApprovalSigner({ secret })`(WebCrypto HMAC-SHA256)签名,以便客户端无法伪造通过关卡。 没有工作流运行时,没有 `'use workflow'` 指令,没有基础设施 — 检查点是您自己的数据库中的序列化值。
### 保持监督的子代理
`agentTool` 将嵌套的代理循环包装为一个普通的工具。 两件事情是首要的:子级的**整个流转发到父级的 `fullStream`(带有 `agentPath` 标签)**,以及父级的审批门控在**每个嵌套深度继承** — 子代理的工具调用通过相同的检查点机制挂起和恢复:
```ts
import { agentTool, generateText } from '@deuz-sdk/core';
const { text } = await generateText({
model: anthropic('claude-opus-4-8'),
messages: [{ role: 'user', content: '研究最新的发行说明并总结它们。' }],
maxSteps: 5,
tools: {
researcher: agentTool({
name: 'researcher',
description: '委托研究给一个专注的子代理。',
model: anthropic('claude-haiku-5'),
tools: { webSearch },
}),
},
});
```
底层循环经过生产强化:并行工具执行、自我修复工具错误、失控保护、不可变历史(prompt-cache 安全)、预算停止(`totalTokensExceed`、`costExceeds`、`durationExceeds`)、每步钩子(`prepareStep`、`activeTools`)和可选 `compaction: 'auto'` 当上下文填满时。
### 可观察运行时
每个运行都会发出一个版本化的事件协议 — 模型调用、TTFT、重试(带有原因和回退)、代理步骤、工具计时、审批、检查点、压缩、子代理树、成本。 没有 API 密钥,没有帐户,没有数据离开您的进程,**默认情况下不会记录任何提示或工具内容**(内容捕获是按需开启的,并且始终经过净化):
```ts
import { generateText } from '@deuz-sdk/core';
import { createMemoryObserver, summarizeRun } from '@deuz-sdk/core/observe';
const observer = createMemoryObserver();
await generateText({ model, messages, tools, maxSteps: 5, deps: { observer } });
console.log(summarizeRun(observer.latestRun() ?? []));
// { status: 'completed', stepCount: 3, modelCallCount: 3, toolCallCount: 2,
// retryCount: 1, usage: {…}, costUsd: 0.042, durationMs: 8210, … }
```
以 JSONL(每行一个有效的 JSON 行,安全二进制)持久保存运行:
```ts
import { createJsonlObserver } from '@deuz-sdk/core/observe/node';
const observer = createJsonlObserver({ file: '.deuz/runs.jsonl' });
const res = await generateText({ model, messages, tools, deps: { observer } });
await res.observation?.settled; // 排空异步成本丰富
await observer.close();
```
观察者永远不会破坏运行 — 抛出、缓慢或关闭的观察者是隔离的,如果没有观察者,热点路径只需支付一个布尔分支。 注入的 `Dependencies.tracer` 接收由同一事件驱动的完整 `invoke → step → execute_tool` 跨度层次结构(OTel 导出程序插入到该接口)。 持久运行在挂起/恢复腿上保留一个 `runId`,因此暂停的审批及其恢复在同一时间线中关联。
### 结构化输出
```ts
import { generateObject } from '@deuz-sdk/core';
import { z } from 'zod'; // 任何标准模式库 — 或原始 JSON 模式
const { object } = await generateObject({
model: anthropic('claude-opus-4-8'),
messages: [{ role: 'user', content: '法国首都作为 JSON。' }],
schema: z.object({ city: z.string() }),
});
```
`streamObject` 以渐进方式流式传输相同的内容;`generateObject` 根据模型能力选择 `json`/`tool` 策略,并自我修复一次失败的解析。
### React,基于我们自己的线路
服务器使用版本化的 UI 协议 (`toDeuzStreamResponse`) 进行通信,客户端使用它进行消费 (`useChat` / `useObject`) — 类型化的事件从头到尾传递,绝不使用提供者的原始字节:
```ts
import { useChat } from '@deuz-sdk/core/react';
const { messages, sendMessage, pendingApprovals, addToolApprovalResponse } = useChat({
api: '/api/chat',
onToolCalls: async (call) => runInBrowser(call), // 客户端工具自动往返
});
// 受控工具暂停进入 pendingApprovals;判决自动恢复聊天。
```
**还包含在盒子里** — 每个都是边缘安全、缝隙驱动并涵盖在同一测试学科下:
- **记忆** — mem0 样式的提取→协调→回忆管道,基于向量存储 _或_ Obsidian 样式的 markdown 保险库 ([docs](./docs/content/docs/modules/memory.mdx))
- **RAG** — 魔法字节嗅探、token 感知切分器和混合密集+BM25 检索,带有 RRF 融合 ([docs](./docs/content/docs/modules/rag.mdx))
- **技能** — `SKILL.md` 解析器 + 分级披露,兼容开放代理技能格式 ([docs](./docs/content/docs/modules/skills.mdx))
- **MCP** — 工具、资源、提示、诱导;HTTP/SSE 边缘安全,Node 上使用 stdio ([docs](./docs/content/docs/modules/mcp.mdx))
- **图像** — 同步生成、异步 Midjourney 和 Yunwu 统一中继 ([docs](./docs/content/docs/modules/image-generation.mdx))
- **中间件和定价** — `wrapModel` 组合、PII 净化、提示注入防护和 token→USD 成本计量 ([docs](./docs/content/docs/modules/middleware.mdx))
## 哲学
**没有依赖。** 盒子里的每个字节都是我们测试、版本和安全的对象 — 供应链审计读取一行 `package.json`。
**没有周围状态。** 时钟、随机性、获取、日志记录、跟踪、密钥存储:所有这些都通过一个 `Dependencies` 接口注入。 这就是为什么每个测试都是确定性重放,而核心在任何运行时都运行。
**没有原始 SSE 直通。** 所有内容都标准化为一个规范的增量流;提供者怪癖存在于一个注册表中,而不是在您的代码中。
**没有供应商运行时。** 持久性是您自己的数据库中的序列化检查点;可观察性是您进程中的事件流。 没有内容被记录。
**默认情况下不会记录任何内容。** 内容捕获是按需开启的,始终经过净化,并且针对种植的机密进行回归测试。
对比
在 **2026-07-08** 验证了每个项目的官方文档和 npm 注册表(版本:`ai@7.0.17`,`@mastra/core@1.50.1`,`langchain@1.5.2`,`llamaindex@0.12.1`,`@openai/agents@0.13.)。✅ 是的 · 🟡 部分/有附加条件 · ❌ 否。
| | Deuz 1.6 | ai 7 | Mastra | LangChain | LlamaIndex.TS | OpenAI Agents |
| -------------------------------------------------------- | -------------------------------------- | ------------------------------------------- | ------------------------------------- | -------------------------------------- | --------------------------------- | ------------------------- |
| 零运行时依赖 | ✅ | ❌ | ❌ ❌ | ❌ | ❌ |
| ESM + CJS 双重构建 | ✅ | ❌ 仅 ESM | ✅ | ✅ | ✅ | ✅ |
| 无 Node 兼容性 shim 的边缘运行时 | ✅ 强制检查 Web API | 🟡 | 🟡 `nodejs_compat` | 🟡 | 🟡 | 🟡 有限 |
| 无供应商运行时即可持久检查点/恢复 | ✅ 两种方法存储,任意后端 | ❌ 需要 Vercel Workflow 运行时 | 🟡 存储适配器包 | 🟡 检查点包,默认关闭 | 🟡 仅 workflow-core,需要自带存储 | ✅ 可序列化的 `RunState` |
| 子代理中的人工审批 | ✅ 在任意深度暂停 | ❌ 文档不支持 | ✅ | ✅ | ❌ 不支持 `multiAgent` | ✅ |
| 加密签名的审批 | ✅ 稳定的 HMAC | 🟡 实验性;不支持持久代理 | ❌ | ❌ | ❌ | ❌ |
| **同时具备三项:持久 ∧ 签名 ∧ 子代理审批** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 安装时包含内存 + RAG + 技能 | ✅ 一个软件包 | 🟡 模式/托管 | 🟡 单独的软件包 + 存储 | ❌ 分跨多个软件包 | 🟡 RAG + 内存;无技能 | 🟡 OpenAI 托管中心 |
| 核心软件包中的多供应商 | ✅ 6 个系列 | ❌ 每个供应商的软件包或托管网关 | ✅ 路由器(AI SDK 机制在下) | ❌ 每个供应商的软件包 | ❌ 每个供应商的软件包 | ❌ OpenAI 优先 |
| 库中的 Token→USD 成本计量 | ✅ | ❌ 推送到托管网关 | 🟡 可观察性软件包 + OLAP 存储 | ❌ LangSmith 功能 | ❌ | ❌ |
| 一流的提示缓存控制 | ✅ 顶级 `promptCaching` | 🟡 每个部分的 `providerOptions` | 🟡 直通 | 🟡 直通 | 🟡 仅 Anthropic | 🟡 一个保留旋钮 |
| 本地优先的可观察性(无托管服务,无额外依赖) | ✅ 事件协议 + JSONL + 追踪器桥 | ❌ OTel/网关中心 | 🟡 平台中心 | ❌ 仅 LangSmith | 🟡 工作流插件 | 🟡 自有追踪平台 |
| OpenTelemetry 导出器 | 🟡 追踪器缝隙 + 完整的跨度层次;计划导出 | ✅ `@ai-sdk/otel` | ✅ 内置 | ❌ 仅 LangSmith | 🟡 工作流插件 | 🟡 自有追踪平台 |
**当他们超越我们时:** AI SDK 提供了 24+ 个第一方供应商,加上稳定的语音/转录,重新排序,实时和成熟的 OTel 集成;Mastra 捆绑了一个 600+ 模型路由器和一个完整的可观察性平台;LlamaIndex.TS 仍然是 RAG 工具箱最深;OpenAI Agents 具有最紧密的托管 OpenAI 集成。Deuz 的答案故意狭窄:六个有缺陷的供应商系列,以及所有环境问题都放在一个可注入的缝隙中 - 1.6 的观察事件驱动该缝隙本地,并且 OTel 导出器插入相同的协议。
> **Hermes 怎么样?** Nous Research 的 [`hermes-agent`](https://github.com/NousResearch/hermes-agent) 是一个 Python 自主代理 _产品_ (CLI,桌面,消息网关,一个自我改进的技能循环)- 一个不同的类别,不是可嵌入的 TypeScript 库(`hermes-agent` npm 包是一个非官方的启动器桥)。Deuz 是您将用来在 TypeScript 中构建 Hermes 样式代理的 SDK - 两个甚至共享开放的 `SKILL.md` 技能格式。
<details>
<summary><b>来源</b> — 上面的每个单元格都追溯到官方文档或注册表页面</summary>
- **ai** — [仅 ESM 导出](https://registry.npmjs.org/ai/7.0.17) · [WorkflowAgent 需要 Workflow 运行时](https://ai-sdk.dev/docs/agents/workflow-agent) · [子代理中无审批](https://ai-sdk.dev/docs/agents/subagents#no-tool-approvals-in-subagents) · [`experimental_toolApprovalSecret`,WorkflowAgent 上不可用](https://ai-sdk.dev/docs/agents/tool-approvals#signing-approvals-with-experimental_toolapprovalsecret) · [设计上无价格表](https://github.com/vercel/ai/issues/3932) · [通过 providerOptions 进行缓存](https://ai-sdk.dev/providers/ai-sdk-providers/anthropic#cache-control) · [模式内存](https://ai-sdk.dev/docs/agents/memory) · [供应商](https://ai-sdk.dev/docs/foundations/providers-and-models) · [遥测](https://ai-sdk.dev/docs/ai-sdk-core/telemetry) · [语音](https://ai-sdk.dev/docs/ai-sdk-core/speech)
- **Mastra** — [双重构建 + Node 依赖](https://registry.npmjs.org/@mastra/core/latest) · [通过 nodejs_compat 使用 Workers](https://github.com/mastra-ai/mastra/blob/main/deployers/cloudflare/src/index.ts) · [快照需要存储适配器](https://mastra.ai/docs/workflows/snapshots) · [工具审批](https://mastra.ai/docs/agents/agent-approval) · [网络 + 审批](https://mastra.ai/docs/agents/networks) · [内存软件包](https://mastra.ai/docs/memory/overview) · [模型路由器](https://mastra.ai/models) · [可观察性中的成本估算](https://mastra.ai/docs/observability/metrics/overview) · [OTel 导出器](https://mastra.ai/docs/observability/integrations/exporters/otel)
- **LangChain** — [双重构建](https://registry.npmjs.org/langchain/latest) · [通过检查点进行持久性](https://docs.langchain.com/oss/javascript/langgraph/persistence) · [HITL 中间件,无签名](https://docs.langchain.com/oss/javascript/langchain/human-in-the-loop) · [子代理 + 中断](https://docs.langchain.com/oss/javascript/langchain/multi-agent/subagents) · [v1 软件包拆分](https://docs.langchain.com/oss/javascript/releases/langchain-v1) · [每个供应商的软件包](https://docs.langchain.com/oss/javascript/langchain/install) · [成本 = LangSmith](https://docs.langchain.com/langsmith/cost-tracking) · [缓存](https://docs.com/oss/javascript/lang#prompt-caching [可观察性 =](https://docs.com/oss/javascript/langobservability)
-lamaIndex.TS** — [双重构建 + 边缘条件](https://registry.npmjs.org/llamaindex) · [无服务器指南](https://developers.llamaindex.ai/typescript/framework/getting_started/installation/serverless) · [snapshot/resume + HITL 在 workflow-core 中](https://developers.llamaindex.ai/typescript/workflows/common_patterns/human_in_the_loop) · [multiAgent](https://developers.llamaindex.ai/typescript/framework/modules/agents/agent_workflow) · [内存](https://developers.llamaindex.ai/typescript/framework/modules/data/memory) · [源代码中无成本表](https://github.com/run-llama/LlamaIndexTS) · [工作流 OTel 插件](https://developers.llamaindex.ai/typescript/workflows/common_patterns/tracing)
- **OpenAI Agents** — [双重构建](https://registry.npmjs.org/@openai/agents/latest) · [Workers = 有限支持](https://openai.github.io/openai-agents-js/guides/troubleshooting) · [RunState 序列化/恢复 + 嵌套审批,无签名](https://openai.github.io/openai-agents-js/guides/human-in-the-loop) · [会话](https://openai.github.io/openai-agents-js/guides/sessions) · [模型 + AI SDK 适配器](https://openai.github.io/openai-agents-js/guides/models) · [使用情况无定价](https://openai.github.io/openai-agents-js/openai/agents-core/classes/usage/) · [追踪://openai.github.io/openai-agents-js/guides/tracing)
- **Hermes** — [仓库(Python 82.5%)](https://github.com/NousResearch/hermes-agent) · [文档](https://hermes-agent.nousresearch.com/docs/) · [非官方 npm 桥](https://www.npmjs.com/package/hermes-agent)
</details>
## 一个软件包,28 个子路径
可树形摇动的子路径 - 无需 `@deuz-sdk/anthropic`,`@-sdk/react`,...
| 导入 | 您 |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `@deuz-sdk/core` | `streamChat` · `generateText` · `generateObject` · `streamObject` · `embed` · `agentTool` · `createClient` · 类型 · 错误 |
| `…/anthropic` ·/openai` · `…/xai` · `…/google` · `…/vertex` · `…/voyage` | 供应商工厂(Messages,Chat Completions + Responses,Gemini 兼容 +,Claude-on-Vertex,嵌入) |
| `…/google` | Gemini 显式缓存 + 文件 API | `…urable` |FromCheckpoint` · `resumeStreamFromCheckpoint` · `createApprovalSigner` · `createInMemorySessionStore` |
| `…/memory` · `…/memory/markdown` | 内存管道 + 向量或 markdown 保险库 |
| `…/rag` · `…/rag/node` | 分块器,检索,混合搜索 + Node 文档解析器 |
| `…/skills` · `skills/node` | SKILL.md 注册表 + 文件系统源 |
| `…/mcp` · `…/mcp/stdio` | MCP 客户端(边缘安全 HTTP/SSE;Node stdio) |
| `…/image` · `…/midjourney…/yunwu` | 图像生成表面 |
| `…/ui` · `react` | UI 线路( 客户端)+ React 钩子 |
| `…/observe`…/observe/node` | 观察事件协议:内存/回调/复合观察器 + `summarizeRun` · JSONL 持久性(Node) |
| `…/middleware `…/pricing` · `…/edge` | 模型包装器 · 成本表 · 安全子集 |
## 架构 — 规范线
```mermaid
flowchart TB
A["规范 Message[] / Part[]"] --> B["适配器 — 4 种线路之一"]
B --> C["供应商 SSE → 稳健解析器"]
C --> D["规范 DELTA 流 · StreamPart"]
D --> E["编排 — 重试 · 超时 · 工具循环"]
E --> F["您的代码<br>textStream / fullStream E --> G["Deuz UI 线路<br>toDeuzStreamResponse"]
器永远不会将供应商的原始 SSE 代理到您的代码。所有内容都规范化为一个规范的流 - 这个单独的决定使得中止,重试合并,子代理流转发和类型化 UI 事件成为可能。在此基础上层叠可靠性:第一个字节前的重试,带有确定性抖动的 `Retry-After` 优先级,TTFT + 注入时钟的总超时时间,以及在每个日志,错误和跨度路径中屏蔽的 API 密钥测试)。
## 文档
完整的文档站点位于 [`docs/`](./docs) - 40+ 页涵盖每个模块,并附有 [`llms.txt`](./docs AI 代理。aude Code 技能](./skills/deuz-sdk)编码代理正确集成 SDK,[`CHANGELOG.md`](./CHANGELOG.md) 包含发布历史,[`1.6.0.md`](./1.6.0.md) 是当前版本的代码验证设计规范。
## 贡献
```sh
git clone https://github.com/-AI/Deuz-SDK.git && cd Deuz-SDK
npm install
npm run check # 格式化 + 校验(边缘安全性)+ 类型检查 + 575 测试 + 类型锁定 + 构建 + publint + attw + 运行时/大小/API 网关
```
---
<div align="center">
由 **Umutcan Edizaslan** 构建 — [X @UEdizaslan](https://x.com/UEdizaslan) · [GitHub @U-C4N](https://github.com/U-C4N)
<sub>感谢 <b>Claude Opus 4.8</b> 和 <b>Claude Fable 5</b> 的帮助。</sub>
<sub>[MIT](./LICENSE) 2026</sub>
</div>
连接信息
猜你喜欢
暂无推荐服务器