Agent Skills
返回列表
Python 服务与 CLI 工程实践

Python 服务与 CLI 工程实践

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-compound-eng-python-services。

技能介绍

要解决的问题

Python 服务端和 CLI 项目经常卡在工具链碎片化:pip、virtualenv、pyenv 分开维护,lint、format、type check 各有一套规则,同步与异步边界不清,生产服务又缺少韧性、观测和 API 契约。结果是本地能跑、线上难查、接口易漂移。

技能如何工作

它把常见工程实践压缩成可执行规则。先固定现代工具链:用 uv 管依赖和运行环境,用 ruff 统一检查与格式化,用 ty 做类型检查;项目初始化优先 uv init --package,依赖只通过 uv add 管理,并跟踪 uv.lock。并发选择按负载区分:I/O 并发用 asyncio.gather 或 asyncio.TaskGroup,CPU 计算用 multiprocessing,混合场景用 asyncio.to_thread。服务侧强调 FastAPI、后台任务、tenacity 重试、连接池、structlog、Prometheus 与 OpenTelemetry。测试要求 pytest、autospec、参数化用例和共享 conftest;API 先定义 Pydantic 请求/响应模型,统一错误结构,并把第三方响应视为不可信输入。

适用边界

适合 Python 3.11+ 的服务端、CLI 与后台任务场景,尤其是需要依赖、并发、可观测性和接口稳定性的项目。不适合一次性纯脚本、简单同步工具,或团队尚不准备引入异步与结构化日志的场景。数据库迁移的完整生产模式仍需结合 PostgreSQL/Alembic 相关技能。

使用场景

  • 新建可发布 Python 包或服务时,用 uv 初始化、添加依赖,并用 ruff 和 ty 建立检查基线。
  • 服务要并发调用 HTTP、数据库或文件时,用 asyncio.gather、TaskGroup、Semaphore 和 timeout 控制 I/O。
  • 为后台任务加入 Celery 重试、指数退避、幂等键和死信队列,处理外部服务偶发失败。
  • 上线前补全 structlog、Correlation ID、Prometheus 指标、/health 与 /ready,便于排查跨服务请求。

适合人员

  • 维护 FastAPI 服务的后端工程师,需要把依赖、类型检查、错误结构和可观测性统一成可复用规范。
  • 构建 CLI 工具或内部平台脚本的工程师,希望用 uv、ruff、ty 和 pytest 稳定交付可执行文件。
  • 负责 Python 服务上线与排障的平台工程师,需要健康检查、结构化日志、指标、追踪和韧性策略。
  • 带 Python 小团队的技术负责人,需要测试、Alembic 迁移和 API 契约纪律降低评审与返工成本。