两个 AI 编程工具协作时,高频失败点是上下文范围漂移而非代码质量。提出了「严格交接合同」模式:显式文件列表、密钥隔离、可复现验证命令、人工 diff 接受。
当开发者尝试将两个强大的编码 Agent 连接起来——基于终端的 Claude Code 和代理式编码环境 Antigravity——最常见的失败点往往不是代码生成质量,而是上下文和作用域漂移。发出类似"重构这个模块并更新测试"这样的宽泛指令,往往会导致配置文件被修改、相邻包的依赖被破坏,以及 Token 用量暴涨。
在 AI Agent 之间实现可靠的任务委托,需要一份严格的交接合同:一份明确的可修改文件清单、秘密隔离、可复现的验证命令,以及强制性的手动 Diff 审批机制。
AI Agent 在其提供的上下文窗口和文件树范围内,会严格按照指令执行。如果给 Agent 提供一个不受约束的工作空间,就会引入三大风险:
范围蔓延(Scope Creep):模型单方面决定"清理"无关的辅助函数、重格式化空白字符,或重构项目布局。
秘密泄露与破坏:Agent 读取本地 .env 文件或凭据后,不慎将其泄露到生成的测试日志或脚本中。
冲突的架构假设:一个 Agent 假设了特定的抽象层,而另一个 Agent 在冲突的约定下重构了导入路径。
为了保持控制,API 凭据和环境配置应与任务上下文隔离。当使用 BetterToken 运行 Claude Code 时,身份验证通过终端级别的环境变量进行清晰管理,而非通过任务提示文件传递。开发者可以直接在 BetterToken Dashboard 中监控跨输入和缓存上下文的实时 Token 消耗,在不必要的重试循环膨胀成本之前将其捕获。
使用结构化的交接合同来委托任务,而非非结构化的自然语言描述:
遵循以下四个步骤,在 Claude Code 和 Antigravity 之间执行干净的任务委托:
创建一个专用的规范文件(如 task_handoff.md),包含明确的约束和零嵌入式秘密:
## Handoff Spec: Optimize Parser
## Context & Goal
- Module: `src/parser.py`
- Objective: Reduce memory allocations in `parse_payload()` without altering public API.
## File Boundaries
- Modifiable: `src/parser.py`, `tests/test_parser.py`
- Read-only: all other files.
- Strictly forbidden: `.env*`, `secrets/*`, `infrastructure/*`
## Acceptance Criteria
- All tests pass: `pytest tests/test_parser.py`
- Benchmark demonstrates >= 20% latency reduction.
- No new dependencies in `requirements.txt`.
在调用 Antigravity 或将任务转移到 Claude Code 之前,确保适当的环境卫生:
一旦 Agent 完成代码编辑,运行合同中定义的确切验证命令:
pytest tests/test_parser.py -v
如果验证失败或修改了超出允许范围的文件,立即停止工作流,不应用这些更改。
人类开发者保留最终的合并权限:
git diff src/parser.py
git status --short
验证只有允许范围内的文件被触碰。丢弃任何未经授权的修改(git checkout -- <file>),并如果发生漂移则完善停止条件。
单一函数重构:使用轻量级的 task_handoff.md 并运行本地化单元测试。
集成外部模型 API:将 API 密钥保留在环境变量中,并在 BetterToken Documentation 中审查协议细节。
复杂的多步骤计划:将项目分解为顺序性的、单一职责的交接合同,而非一个庞大的提示词。
Agent 编辑了范围之外的文件(Modified outside scope):
重试循环中的 Token 消耗失控:
身份验证或连接超时:
Originally published on the BetterToken blog.
BetterToken provides pay-as-you-go access to AI model APIs through OpenAI-compatible and Anthropic-compatible endpoints — useful if you are wiring Claude Code, Codex, or your own tooling to a custom base URL. See the docs to get started.