Git-temp:专为 AI Agent 设计的 Git 临时工作区工具,零侵入式管理 scratchpad 文件

git-temp 是一个轻量级 CLI 工具,通过 `.git-temp` 目录与 `.gitignore` 动态协同,使 AI Agent 可安全生成、读写临时文件(如推理中间产物、调试日志、代码草稿),完全规避 `git status` 污染,不修改 Git 配置、不依赖 hooks 或子模块。
核心定位:解决 AI Agent 在 Git 项目中‘写即污染’的工程痛点
当前多数 AI Agent(如 DevOps 自动化脚本、RAG pipeline 中的检索后重排模块、LLM-based code generation agent)需在本地 Git 仓库内动态创建临时文件——例如 LLM 输出的未验证代码片段、JSON 格式中间状态、或 diff 前后对比快照。传统做法依赖 git update-index --skip-worktree 或手动维护 .gitignore,但易出错、难自动化、且与 Agent 的无状态执行模型冲突。git-temp 由此诞生:它不试图改造 Git,而是定义一套约定优于配置的临时文件协议。
实现机制:隔离目录 + 智能 .gitignore 同步
- 工具强制所有临时文件写入项目根目录下的
.git-temp/子目录(可配置路径,但默认遵循该约定); - 首次运行
git-temp init时,自动检测并追加/\.git-temp/到项目级.gitignore(若不存在则创建),确保该目录对 Git 完全不可见; - 支持
git-temp add <file>/git-temp rm <file>/git-temp list等语义化命令,底层仅做文件移动与.gitignore行级校验,无 Git 内部调用; - 所有操作均绕过 Git index,不触发
git status变更、不产生 untracked files 提示、不干扰git commit -a流程; - 兼容所有 Git 版本(≥2.0),无需 hook 注册、无需全局配置、不修改
.git/config。
技术边界与设计克制性
不做之事,恰是其可靠性来源
- ❌ 不封装
git stash或git worktree:避免引入 Git 内部状态耦合; - ❌ 不监听文件系统事件(inotify/fsevents):杜绝后台进程与资源争抢;
- ❌ 不提供 Web UI 或 daemon 进程:纯 CLI,单二进制(Go 编译),<500KB;
- ❌ 不抽象文件系统层:所有 I/O 直接调用
os包,无第三方 FS 抽象库。
这种极简主义使其成为 AI Agent 工作流中的「隐形基础设施」——例如在 LangChain 的 Tool 节点中调用 git-temp add output.py,或在 Ollama + OpenAI Function Calling 的多步编排中将 reasoning_trace.json 写入 .git-temp/trace/,全程对开发者和 Git 透明。
适用场景与典型集成模式
- Agent-driven development (ADD):LLM 自动生成单元测试后暂存于
.git-temp/test_scaffold/,待人工审核再mv至tests/; - RAG pipeline debug:将 embedding model 的 raw vector dump(如
numpy.save输出)存于.git-temp/embeddings_debug/,避免污染data/目录; - CI/CD 中的 LLM 验证步骤:GitHub Actions job 使用
sebmellen/git-temp@v0.3.1action,自动清理.git-temp/以保障构建环境纯净; - 本地 LLM serving(如 llama.cpp + REST API):前端传入 prompt 后,server 将 token-level attention map 保存至
.git-temp/attn_viz/供后续可视化分析,不影响主仓库状态。
开源现状与演进路线
项目由 Seb Mellen 维护,当前版本为 v0.3.1(2024-07-12 发布),托管于 GitHub 仓库 https://github.com/sebmellen/git-temp,采用 MIT 许可证。已通过 Hugging Face transformers 和 langchain 社区初步验证兼容性。下一步计划包括:支持 .git-temp/.keep 语义化标记(用于空目录保留)、增加 --dry-run 模式用于 CI 安全校验、以及提供 Python bindings(pip install git-temp)以适配更多 Agent runtime(如 AutoGen、CrewAI)。