关于 DepTime
DepTime 是供编码 Agent 使用的 Python 库 API 历史查询工具。它通过已索引版本间的静态差异定位符号变更及替代方案,代码和错误信息不会离开本机。
主要功能
- 01结合版本证据解释 Python API 错误
- 02浏览符号的跨版本历史
- 03预先检查符号和关键字参数
- 04比较版本或指定日期以来的变更
- 05基于预构建版本索引本地回答
适用场景
- 01诊断 ImportError 或已移除的参数
- 02生成代码前核实记忆中的 API
- 03升级依赖前检查破坏性变更
MCP 相关
本地 MCP 服务提供错误解释、符号历史、符号预检查、版本差异和索引覆盖范围查询工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
面向编码 Agent 的 Python 库 API 时光机。
当 Agent 在快速演进的库中遇到 ImportError、AttributeError 或“意外的关键字参数”时,只需调用一次 DepTime,就能知道发生了什么变化、在哪个版本中变化,以及应该改用什么。答案根据所有已索引版本的静态差异计算得出,而非来自文档或模型记忆。
免费、开源(MIT),并且在本地运行:你的代码和错误绝不会离开你的设备。
TypeError: Client.__init__() got an unexpected keyword argument 'proxies'
{
"symbol": "httpx.Client.__init__(proxies)",
"issue": "param_removed",
"installed_version": "0.28.1",
"last_version_with": "0.27.2",
"first_version_without": "0.28.0",
"deprecated_in": "0.26.0",
"replacements": [
{"target": "proxy", "confidence": 0.8, "source": "deprecation_message"},
{"target": "mounts", "confidence": 0.79, "source": "deprecation_message"}
],
"pin_to_restore": "httpx<=0.27.2",
"confidence": "high"
}
这就是从已发布索引中得到的真实 explain_error 答案,只是经过了删节。完整答案还会引用 DepTime 在 httpx 自身源码中找到的弃用消息,并添加一句说明,供你的 Agent 转述。
状态: alpha。预构建索引每晚重新构建。已知缺口记录在 BACKLOG.md 中。
安装
需要 uv。
# Claude Code. Cursor, Codex, VS Code and Claude Desktop take the same
# command (uvx deptime mcp) in their MCP config.
claude mcp add deptime -- uvx deptime mcp
首次启动时,DepTime 会在后台下载其预构建索引(来自此仓库 GitHub Releases 的一个文件),随后最多每天检查一次是否有更新。设置 DEPTIME_OFFLINE=1 可使其完全不访问网络。
Claude Code 用户也可以通过 /plugin marketplace add cschmertz/deptime,然后运行 /plugin install deptime@deptime,在 integrations/claude-code 中安装插件。插件会添加一项技能和一个本地钩子,当命令输出中出现 Python 版本变更错误时,会建议使用 DepTime。
工具
| 工具 | 使用场景 |
|---|---|
explain_error(traceback, installed_versions?, pip_freeze?) | 导入库或调用库函数刚刚失败时 |
symbol_history(package, path) | 在依赖记忆中的 API 之前 |
check_symbols(package, version, symbols[{path, kwargs}]) | 预先检查即将使用的符号和 kwargs |
diff_versions(package, from_version | date, to_version?, used_symbols?) | 升级时,或想知道“自训练截止日期以来发生了什么变化?”时 |
coverage() | 查看已索引内容(52 个快速演进的软件包:AI/Agent 技术栈,以及已知会出现重大变更的库) |
每个答案都附带证据和置信度。如果某个软件包未覆盖,DepTime 会如实说明,而不会猜测。接口约定详见 docs/03-product-spec.md。
CLI
uvx deptime explain --installed httpx==0.28.1 < traceback.txt
uvx deptime history httpx Client.__init__
uvx deptime check httpx 0.28.1 'httpx.Client:proxies,proxy'
uvx deptime diff httpx 0.27.2 0.28.1
uvx deptime diff pydantic 2024-06-01 # everything since a date
uvx deptime index status | pull
工作原理
每晚,GitHub Actions 都会使用 griffe 读取每个新版本的公开 API。griffe 会在不运行代码的情况下解析源代码,将其与前一个版本进行比较,并将结果作为单个文件 index.sqlite.gz 发布到此仓库的 Releases 中。在你的计算机上,deptime mcp 会在替换文件前检查其 sha256 和架构,然后在本地以毫秒级速度回答每个问题。完整设计见 docs/04-architecture.md,相关决策见 docs/adr/。
托管(可选)
本地模式适用于编码 Agent。对于只接受 URL 的 Web 客户端或公开演示,可在 Cloud Run(很可能免费)或 Fly.io(每月约 $3–6)上运行 deptime serve(MCP 位于 /mcp,JSON 位于 /v1/*)。项目包含 Dockerfile 和 fly.toml,并设有匿名速率限制。详见 docs/05-hosting-and-sustainability.md。
相关项目与致谢
- griffe 负责静态分析。
- since-cutoff 可在本地按需将你锁定的依赖项与模型的训练截止时间进行比较。DepTime 则通过提供预构建的跨版本索引,并从回溯信息入手,与之有所不同。
- Context7 和 Ref 提供特定版本的文档。DepTime 则回答符号级别的“何时替换,以及由什么替换”问题。
贡献
最有帮助的贡献是报告错误答案,这些报告会成为基准测试用例。详见 CONTRIBUTING.md。开发环境设置:
uv sync && uv run pytest
# build a small local index from real PyPI wheels
uv run deptime ingest httpx --versions 0.27.2 0.28.1
文档
产品规格 · 架构 · 托管与可持续性 · 发布与采用 · 风险与试验 · 隐私与安全
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。