mcpField

Skills

收录 97,905 个为 Agent 打包的专项能力与操作指引,复制一行命令即可安装。

开发

A
azure-mgmt-apicenter-dotnet
azure-mgmt-apicenter-dotnet
sickn33 / agentic-awesome-skills

适用于 .NET 的 Azure API Center SDK。集中式 API 清单管理,支持治理、版本控制和发现。

云与 DevOps52
A
azure-servicebus-dotnet
azure-servicebus-dotnet
sickn33 / agentic-awesome-skills

适用于 .NET 的 Azure Service Bus SDK。企业级消息传递,支持队列、主题、订阅和会话。

云与 DevOps52
B
backend-dev
backend-dev
srbhr / resume-matcher

Resume Matcher 的后端开发 skill。处理 FastAPI 端点、Pydantic schema、TinyDB 操作、LiteLLM 集成和 Python 服务逻辑。在创建或修改后端代码时使用。

开发52
B
base-ui
base-ui
dobroslavradosavljevic / skills

构建、审查、迁移或调试使用 Base UI(`@base-ui/react`)无样式无障碍原语的 React 界面。当用户询问 Base UI 文档、组件结构、样式、组合、render props、TypeScript 包装类型、表单、对话框、抽屉、气泡、菜单、选择器、组合框、自动补全、createItems、标签页、toast、OTP Field、无障碍,或用 Base UI 替换更底层的 UI 原语时使用。

设计与 UI52
B
batch-operations
batch-operations
vudovn / ag-kit

同时对多个文件应用操作。基于模式的批量修改、跨代码库的查找替换、一次性对多个文件做一致的更改。

开发52
B
bento
bento
bentonow / bento-skills

构建正确的 Bento 集成,并在 Bento MCP、Bento CLI 以及面向 Node、Laravel、PHP、Drupal、Go、.NET、Elixir、Python、Ruby 和 n8n 的官方 Bento SDK 之间选择合适的 Bento AI 接口。适用于将 Bento 添加到应用、通过 AI 助手操作实时 Bento 账户、同步订阅者、跟踪事件、发送事务性邮件、创建广播、验证邮箱、配置 API 凭据、审阅 Bento SDK 用法,或为项目选择合适的 Bento 工具时。强调安全的客户账户操作、框架原生设置、批量/upsert 风格的订阅者导入、凭据安全、队列/任务/工作流、SDK 专属的安装命令,以及在存在批量 API 时避免逐用户循环。

营销与增长52
B
bevy-ecs-patterns
bevy-ecs-patterns
laurigates / claude-plugins

进阶 Bevy ECS:复杂查询、系统调度、变更检测与性能调优。在优化 Bevy 架构或实现复杂游戏系统时使用。

开发52
B
bevy-migration-0-17-to-0-18
bevy-migration-0-17-to-0-18
chrisgliddon / bevy-skills

从 Bevy 0.17 升级到 Bevy 0.18 时使用;或当 LLM 用 `EventReader`/`EventWriter`/`Trigger<E>` 替代 `MessageReader`/`MessageWriter`/`On<E>`、`mesh.insert_attribute` 编译失败、`AmbientLight` 不再能作为资源使用,或 `Camera { target: ... }` 报错指出不存在 `target` 字段时使用。包含 0.17→0.18 的所有破坏性变更索引。

开发52
B
bevy-migration-0-18-to-0-19
bevy-migration-0-18-to-0-19
chrisgliddon / bevy-skills

从 Bevy 0.18 升级到 Bevy 0.19、修复资源/查询冲突、用 `WorldAssetRoot` 替换 `SceneRoot`、将文本迁移到 `FontSource` 和 `FontSize`、将渲染图节点转换为渲染系统、用 `Discard` 替换生命周期 `Replace`,或更新资源加载构建器、灯光、输入焦点和 Cargo 功能时使用。

开发52
B
billing-automation
billing-automation
ovachiever / droid-tings

构建自动化账单系统,涵盖定期付款、开票、订阅生命周期和逾期催收管理。在实施订阅计费、自动开票或管理定期付款系统时使用。

开发52
B
biome
biome
tenequm / skills

使用 Biome 2.4 对前端代码进行 lint 与格式化。涵盖类型感知 lint、GritQL 自定义规则、domains、import 整理器与从 ESLint/Prettier 迁移。用于配置 lint 规则、格式化代码、编写自定义 lint 规则或设置 CI 检查。触发词:biome、biome config、biome lint、biome format、biome check、biome ci、gritql、migrate from eslint、migrate from prettier、import sorting、code formatting、lint rules、type-aware linting、noFloatingPromises。

测试与质量52
B
brainstorming
brainstorming
ganyuanran / aegis

在定义模糊或高复杂度的新功能、产品行为、UI/组件设计、架构选择、契约变更,或对计划/设计进行质询、压力测试时使用。常规的小请求仍走快速路径。

开发52
B
bug
bug
shipshitdev / skills

根据描述提交 GitHub 中 Bug 类型的 issue —— 组织一份清晰的 bug 报告(摘要、复现步骤、预期与实际结果、环境),先预览,确认后以 Bug issue 类型创建该 issue(当仓库没有 issue 类型时回退为 bug 标签)。当用户要求提交 bug、打开 bug 报告、创建 GitHub bug issue、记录 bug 或运行 /bug 时使用。

测试与质量52
C
cakephp-migration
cakephp-migration
baserproject / baser-skills

baserCMS 的 CakePHP 版本升级(5.0 → 5.1 → 5.2 ~)对应的废弃・破坏性变更模式集与修正配方。包括「Association alias already set」「A validation rule with the name already exists」「_Token not found」「headers already sent」「Plugin named X is already loaded」「ResultSet/PaginatedResultSet 的错误」「order()/group() 废弃」「事件监听器返回值废弃」「find('all', $options) 废弃」「Table::get 的数组 options 废弃/命名参数」「数组条件中的 null 值导致异常」「_cake_core_ 缓存设置」「pluginBootstrap 中后续插件的 setting.php 未被读取导致 Configure 为 null(live 迭代)」「_checkFilePath 中 .. 模板导致 MissingPluginException/500」「TreeBehavior 中给根节点设置 parent_id=null 导致 lft/rght 损坏」「Entity::set 数组批量赋值废弃」「AbstractMigration/AbstractSeed 废弃 → BaseMigration/BaseSeed(cakephp/migrations 4.5+)」「config/routes.php 的 fallbacks() 导致仅测试时 404」「辅助器的实际方法被委托给魔术方法导致 method_exists 返回 false(TextHelper::truncate→is_callable 判定)」等,在调查・修正由 CakePHP 本体及相关包引起的问题时参考。适配新的 CakePHP 版本时,将按版本在本书中追加。由 PHP 本体引起的问题请参考 php-migration 技能。

开发52
C
check-compiler-errors
check-compiler-errors
poteto / plugins

运行编译和类型检查命令并报告失败

开发52
C
claude-agent-sdk
claude-agent-sdk
ovachiever / droid-tings

使用 Claude Agent SDK 构建自主 AI Agent。结构化输出(v0.1.45,2025 年 11 月)保证 JSON schema 校验,插件系统,面向事件驱动工作流的 hooks。适用于:构建带经验证 JSON 响应的编码 Agent、SRE 系统、安全审计工具,或排查 CLI not found、结构化输出校验、会话分叉错误。

Agent 工作流52
C
claude-md-generator
claude-md-generator
varnan-tech / opendirectory

当用户要求通过扫描代码库生成或更新项目的 CLAUDE 或 AGENTS 上下文文件时使用。写入一个 100 行以内的精炼文件,仅包含 Claude Code 需要的非显而易见构建命令、约定和注意事项。

Agent 工作流52
C
claude-plugin-creator
claude-plugin-creator
bonkey / skills

创建 Claude Code 插件、技能、命令、Agent、钩子、MCP 服务以及市场文件。在构建插件、打包技能以供分享、创建市场、将独立配置转换为插件,或需要在插件、技能、MCP 与独立配置之间做选择时使用。

Agent 工作流52
C
cleanup-changes
cleanup-changes
robot-inventor / agent-skills

用户要求清理更改时,或在提交并创建拉取请求之前,撤销不必要的更改,只保留必要的更改。

开发52
C
cli-reference
cli-reference
goldsky-io / goldsky-agent

Goldsky CLI 命令与标志参考——goldsky turbo、pipeline、subgraph、secret、project、dataset、indexed、telemetry 和 compose 的所有有效子命令、参数与选项。在建议任何 goldsky 命令之前查阅,以避免臆造无效命令或标志。

数据与数据库52
C
cloudbees
cloudbees
membranedev / application-skills

CloudBees 集成。管理数据、记录并自动化工作流。当用户需要与 CloudBees 数据交互时使用。

云与 DevOps52
C
code-explanation
code-explanation
thalysjuvenal / advpl-specialist

当用户要求用通俗语言解释一段 ADVPL/TLPP 代码的作用时使用,可根据对象调整解释深度:初级开发者(逐行)、高级开发者(业务逻辑、设计决策、风险)或功能顾问(不使用技术术语)——例如理解遗留代码、补全缺失的文档,或评估自定义项的影响。也会在葡萄牙语表述如“explicar fonte”“explicar codigo”“o que essa rotina faz”“explicar para o consultor funcional”,或要求按 --level junior/senior/funcional 解释时触发。

开发52
C
code-simplifier
code-simplifier
tisfeng / skills

在不改变行为的前提下简化或重构已有代码。用于明确要求清理、去重或提高可读性;查找缺陷使用 review。

开发52
C
code-that-fits-in-your-head
code-that-fits-in-your-head
codealive-ai / ai-driven-development

基于 Mark Seemann 的《Code That Fits in Your Head》(2021)的软件工程启发式方法,并针对 Agent 驱动的开发做了更新。适用于编写或评审代码、重构意外复杂性或大泥球、控制生成代码中的技术债或架构债、设计 API 与不变量、通过行走骨架和验收测试添加功能、用可复现测试或二分查找调试缺陷、用 STRIDE 对端点和信任边界进行威胁建模、规划带回滚的遗留系统或绞杀者迁移,或搭建可维护的代码库。涵盖分解与圈复杂度、内聚、封装、由外向内 TDD、关注点分离、Git/评审纪律、安全演进和故障排查。不适用于语言语法、框架教程、生产事件响应或性能剖析。

开发52
C
codebase-domain-map
codebase-domain-map
satanlittlehelper / ai-dev-kit

在大型或不熟悉的代码仓库中进行任何搜索或探索之前使用,例如查找某项功能或领域所在位置、定位文件、判断哪个应用/软件包负责某段逻辑。应先使用此技能,再使用 find/grep/Explore 或研究子 Agent。

开发52
C
codebase-teach
codebase-teach
fearovex-labs / agent-config

分析项目的限界上下文,提取业务规则与领域知识,写入 ai-context/features/<context>.md 文件,并生成带有文档覆盖度指标的 teach-report.md。触发:/codebase-teach、teach codebase、extract domain knowledge、update feature docs。

开发52
C
coding
coding
yinhunfeixue / software_development_skills

编码阶段规范:按任务清单逐项开发,每项完成后执行 code review

开发52
C
cohesion
cohesion
toss / frontend-fundamentals

当修改一个功能会涉及多个目录、同一个数字/常量散落在多个文件中,或 import 路径变得像 `../../..` 这么长时使用。

开发52
C
components
components
paragonhq / stealth-skills

以库作者的方式构建组件。决定采用基础组件还是手工实现,覆盖完整状态矩阵,通过组合设计 API,使用数据属性设置样式,有意识地选择受控或非受控模式,并从简短可信的清单中为任务挑选合适的库,而不是安装 npm 上排在最前面的库。创建或重构按钮、输入框、菜单、对话框、抽屉、toast、工具提示、表格、命令面板、标签页或任何可复用 UI 部件时使用。

设计与 UI52
C
computer-vision-warehouse
computer-vision-warehouse
kishorkukreja / awesome-supply-chain

当用户想要在仓库中应用计算机视觉、检测缺陷、追踪包裹、清点库存或自动化视觉检查时使用。当用户提到“计算机视觉”“图像识别”“目标检测”“条码读取”“包裹追踪”“质量检查”“YOLO”“RCNN”“图像分类”或“基于视觉的仓库自动化”时也使用。通用机器学习请参见 ml-supply-chain。

数据与数据库52
C
configure-docs
configure-docs
laurigates / claude-plugins

代码文档:TSDoc、JSDoc、pydoc、rustdoc、TypeDoc、MkDocs、Sphinx。在设置文档字符串、配置文档生成器或在 CI 中强制文档覆盖率时使用。

开发52
C
configure-feature-flags
configure-feature-flags
laurigates / claude-plugins

使用 OpenFeature 和可插拔提供者检查并配置功能开关基础设施。在向新项目添加功能开关基础设施、使用提供者(GOFF、flagd、LaunchDarkly)设置 OpenFeature SDK、审计现有功能开关配置、配置中继代理基础设施或添加功能开关测试辅助工具时使用。自然触发词:"set up feature flags"、"add openfeature"、"configure launchdarkly"。

开发52
C
configure-formatting
configure-formatting
laurigates / claude-plugins

检查并配置代码格式化工具(Biome、Prettier、Ruff format、rustfmt)。在为项目设置格式化工具、从 Prettier 迁移到 Biome 或从 Black 迁移到 Ruff、审计格式化工具配置的最佳实践、添加保存时格式化与 CI 格式检查,或统一 monorepo 中的格式时使用。自然触发词:"set up formatting"、"configure biome"、"migrate to ruff format"、"add prettier"。

开发52
C
context7-docs
context7-docs
upstash / context7

获取任何库、框架、SDK、命令行工具或云服务的最新文档和代码示例。用户询问特定库时务必使用,即使是 React、Next.js、Prisma、Express、Tailwind、Django 或 Spring Boot 等广为人知的库,因为训练数据可能未反映近期的 API 变更或版本更新。以下情况始终使用:API 语法问题、配置选项、版本迁移问题、提及库名称的“如何操作”问题、涉及库特定行为的调试、设置说明和命令行工具用法。即使你认为自己知道答案,也要使用。不要依赖训练数据获取 API 细节、签名或配置选项——这些内容经常过时。查询库文档时优先使用此工具,而不是网页搜索。

开发52
C
cook
cook
duc01226 / easyplatform

[实现] 当你需要[逐步]实现一项功能时使用。

开发52
C
create-plugin-scaffold
create-plugin-scaffold
poteto / plugins

创建新的 Cursor 插件脚手架,包含有效的清单、组件目录和市场配置。适用于启动新插件或向多插件仓库添加插件。

开发52
C
creating-backstage-plugin
creating-backstage-plugin
vinzscam / backstage-skills

当用户想创建任何新的 Backstage 包时使用——插件、模块、processor、provider、scaffolder action 或库。驱动 `yarn new` 以脚手架生成合适的模板,并可根据用户意图选择预置常见模式(catalog 访问、identity 等)。触发短语如“create a new plugin”、“scaffold a Backstage plugin”、“I want to add a frontend/backend plugin”、“build a new module”、“new backend module”、“new catalog processor”、“new entity provider”、“new scaffolder action”,或任何向 Backstage 仓库添加新包的请求。

开发52
C
creator-plugin-development
creator-plugin-development
lottiefiles / creator-plugin-skills

在使用 Creator Plugin API 创建或修改 LottieFiles Creator Plugin 时使用。涵盖插件沙箱/UI 架构、消息传递、场景图操作、素材、存储、动画以及插件开发工作流。

开发52
C
cs
cs
alphaonedev / openclaw-graph

CS 总览:理论基础、问题分类、复杂度理论

开发52
C
cs-build-handoff
cs-build-handoff
codespringapp / codespring-skills

把已完成的 CodeSpring 计划变成付费客户实际收到的一整套交付物——用平实英语说明正在构建什么、原型图及其样式指南、计划与任务链接、诚实的按阶段构建顺序、做了哪些假设、还有哪些未决事项、需要客户提供什么,以及开始构建时下一步该做什么。以非技术负责人能看懂的阅读水平撰写,不含文件路径,不使用术语。当地图、笔记、PRD 和任务都已存在、计划即将交付时运行。触发语:"hand this over to the client"、"create the client pack"、"write the handover"、"send them the plan"、"what do I send the client"、"onboard them onto this plan"、"package this up for delivery"。

开发52
C
cs-build-import-codebase
cs-build-import-codebase
codespringapp / codespring-skills

将现有应用导入 CodeSpring,形成可视化功能地图——一组核心功能(侧边栏层级)及其嵌套子功能,每项附带一条 "how it works" 说明——然后生成 PRD(通过 cs-build-create-prd)和看板任务。接受可选的审计 + 结论:无审计时记录现状;有审计时构建修正后的目标地图(应用应该是什么样)并根据发现生成修复或重建任务。会检测已有地图,判断其质量,并保留或修复而非重复创建——如果代码库看起来有问题,会先提议进行审计。触发语:"import my codebase into CodeSpring"、"map my existing app"、"reverse engineer my app into features"、"bring this project into CodeSpring"、"visualize my code in CodeSpring"。

开发52
C
cxas-dfcx-migration
cxas-dfcx-migration
googlecloudplatform / cxas-scrapi

将 Dialogflow CX(DFCX)Agent 迁移到 CXAS(Customer Experience Agent Studio)Agent。在用户提到 DFCX 迁移、迁移 Agent、将 DFCX 转换为 CXAS、移植 Agent、Agent 迁移,或迁移后优化/合并时使用此技能。四个可独立运行的脚本:migrate.py(1:1)、stage_1.py(变量去重 + 合并)、stage_2.py(指令状态机 + 工具模拟 + lint + 报告)、stage_3.py(根据源依赖图重新接线合并后的拓扑;仅在 stage_1 执行了合并时才需要)。状态通过 <target>_ir.json 在各脚本之间保持,因此每个脚本都可独立运行 / 重新运行 / 恢复。

Agent 工作流52
C
cyclr
cyclr
membranedev / application-skills

Cyclr 集成。管理数据、记录并自动化工作流。当用户需要与 Cyclr 数据交互时使用。

开发52
D
dart-add-unit-test
dart-add-unit-test
dhruvanbhalara / skills

适用于为 Dart 命令行和后端应用编写单元测试、模拟依赖或验证业务逻辑时。

测试与质量52
D
dart-fix-runtime-errors
dart-fix-runtime-errors
dhruvanbhalara / skills

在诊断 Dart 中的运行时故障、类型转换错误、空值检查违规或未处理的异步异常时使用。

开发52
D
db-dump-xml
db-dump-xml
nikolay-shirokov / cc-1c-skills

将 1С 配置导出为 XML 文件。当需要将配置导出为文件、XML、源代码,DumpConfigToFiles 时使用

开发52
D
db-load-git
db-load-git
nikolay-shirokov / cc-1c-skills

将 Git 中的变更加载到 1С 数据库。在需要从 git 加载变更、从仓库更新数据库、partial load 某个 commit 时使用

云与 DevOps52
D
db-run
db-run
nikolay-shirokov / cc-1c-skills

启动 1С:Предприятие。当需要启动 1С、打开信息库、启动企业时使用

开发52
D
db-update
db-update
nikolay-shirokov / cc-1c-skills

更新 1С 数据库配置。当需要更新数据库、应用配置、UpdateDBCfg 时使用

云与 DevOps52
D
ddd-event-storming
ddd-event-storming
yonatankarp / software-design-skills

运行或设计 EventStorming 工作坊时使用——例如“EventStorming”“事件风暴”“领域发现工作坊”“在墙上贴便签”“全景 EventStorming”“流程建模 EventStorming”“软件设计 EventStorming”“关键事件”“热点”“要不要举办 EventStorming 环节”。将 EventStorming 定义为 Alberto Brandolini 提出的轻量协作式工作坊形式,通过将领域映射为一系列过去时事件来探索领域。

开发52
D
ddd4j-core
ddd4j-core
full-stack-skills / ddd-skills

DDD4J Boot 核心开发约定技能。覆盖实体继承链(BaseEntity→Model<T>/PaginationEntity)、DDD 注解规则(@DomainEntity 是 SOURCE/@DomainService≡@Service)、Controller 层级(BaseController→BaseMapperController)、Service 层级(IBaseService→BaseServiceImpl)、返回值约定(ApiRestResponse 三态 success/fail/error、分页返回 rows 非 data)、查询参数位置(beginTime/endTime/keywords/params 在 Entity 上)、国际化 NestedMessageSource、审计字段自动填充、Dozer 对象映射。 当用户在 DDD4J 项目中编写 Entity/Service/Controller、处理返回值格式、使用 DDD 注解时需要此技能。 与 ddd4j-jackson(序列化)、ddd4j-mybatis(持久层)、ddd4j-validation(校验)、ddd4j-satoken(鉴权)协同使用。

开发52
D
ddd4j-jackson
ddd4j-jackson
full-stack-skills / ddd-skills

DDD4J Jackson 序列化规则技能。覆盖日期格式(非 ISO-8601 的 yyyy-MM-dd HH:mm:ss)、Null 值序列化规则(数组→[]、字符串→""、数字/布尔→保持 null)、@Sensitive 敏感数据脱敏(5 种策略)、JacksonKit 与 WebObjectMapper 双实例(Redis 用 JacksonKit/Web 用 ObjectMapper)、ToLongDeserializer(前端 JS 精度丢失处理)。 当用户在 DDD4J 项目中使用 Jackson、需要配置 ObjectMapper、处理敏感数据脱敏、解决前后端 JSON 格式问题时使用。 配合 ddd4j-core 技能使用。

开发52
D
ddd4j-satoken
ddd4j-satoken
full-stack-skills / ddd-skills

DDD4J Sa-Token 鉴权扩展技能。覆盖 StpKit 扩展载荷模式(登录时写 user/org/role、获取时用 StpUtil.getExtra)、SaTempKit 一次性令牌、与 ApiRestResponse 异常处理集成、跨服务 Same-Token 配置、@SaCheckPermission 在 DDD4J Controller 中的使用方式。 当用户在 DDD4J 项目中使用 Sa-Token 做鉴权、需要登录扩展载荷(uuid/username/orgId)、生成一次性临时令牌时需要此技能。 配合 ddd4j-core 和 sa-token 技能使用。

安全52
D
ddd4j-validation
ddd4j-validation
full-stack-skills / ddd-skills

DDD4J 自定义校验规则技能。覆盖四个自定义约束(@AllowedValues/@PhoneNumber/@NumberValue/@StringDateValue)、@StringDateValue 空字符串静默通过规则、校验器禁用默认消息插值约束、校验层位置(Param/DTO 而非独立 Validator)、libphonenumber 国际手机号校验。 当用户在 DDD4J 项目中编写参数校验、手机号/日期格式校验、枚举值校验时需要此技能。 配合 ddd4j-core 技能使用。

开发52
D
ddev-expert
ddev-expert
edutrul / drupal-ai

DDEV 本地开发专业技能。适用于处理 DDEV 项目、容器、配置或排查 DDEV 环境问题。

开发52
D
decay-upkeep
decay-upkeep
bbeierle12 / skill-mcp-claude

为生存类游戏构建衰变与维护系统。适用于实现基于计时器的衰变、Tool Cupboard 模式(Rust 风格的保护半径)、资源维护成本,或通过自动清理进行服务性能管理。在玩法与服务器健康之间取得平衡。

开发52
D
decision-eval
decision-eval
avelikiy / great_cto

在架构师于 ADR 中提出 2 个以上方案后,启动 decision-scorer Agent。生成加权评分表和推荐选择,并保存到 docs/decisions/。

开发52
D
deep-analyse
deep-analyse
chmouel / lazyworktree

彻底的代码分析,不污染主上下文

开发52
D
deepagents
deepagents
joneqian / claude-skills-suite

用于构建自主编码 Agent 的 LangChain Deep Agents 框架。适用于 agent harness、后端、子 Agent、human-in-the-loop、长期记忆、中间件以及基于命令行的 Agent 开发。

Agent 工作流52
D
deepseek-harness
deepseek-harness
henryz838978 / deepseek-harness

当用户想调用 DeepSeek V4-Pro / V4-Flash(或其旧别名 deepseek-chat / deepseek-reasoner),或你看到 `from openai import OpenAI` 且 `base_url="https://api.deepseek.com"` 的代码时,使用此技能。此技能教你避免 16 个已记录缺陷所需的 10 条协议契约规则(reasoning_content 生命周期 400、工具调用泄漏、max_tokens 失控 → V8 字符串上限、并行工具增量交错、前缀缓存失效、/beta 端点重映射等),并附带一个可直接放入用户项目的 `safe_init.py` 脚本。

开发52
第 30121–30180 条,共 37,480 条

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。