以下是解决 AGENTS.md 路径硬编码问题的几种方案,按推荐度排序:
最佳方案:环境变量 + 动态替换
当前项目依赖 B 项目,B 项目的路径在 `$PROJECT_B_PATH`
当需要检索 B 项目的代码时,请使用该路径获取上下文
实现步骤:
在项目根目录创建 .env 文件:
PROJECT_B_PATH=/your/local/path/to/B
- 在 AGENTS.md 中使用
$PROJECT_B_PATH 占位符 添加预处理脚本(如 Python):
# build_agents.py
import os
from pathlib import Path
template = Path("AGENTS.template.md").read_text()
processed = template.replace("$PROJECT_B_PATH", os.environ["PROJECT_B_PATH"])
Path("AGENTS.md").write_text(processed)
在文档中添加说明:
<!-- 重要! 此文件由 build_agents.py 自动生成 -->
<!-- 修改请编辑 AGENTS.template.md -->
替代方案:符号链接(跨平台)
# 在项目A中创建软链接
ln -s /path/to/B ./B_project
# AGENTS.md 中引用
当前依赖的 B 项目位于:`./B_project`
协作方案:版本控制配置
在项目中添加 setup_env.sh 和 setup_env.bat
# setup_env.sh (Linux/Mac)
echo "请设置 B 项目的绝对路径:"
read b_path
echo "export PROJECT_B_PATH=$b_path" >> .env
- 将
.env 加入 .gitignore 在文档中说明:
首次使用请运行:
./setup_env.sh # 或 setup_env.bat
在会话初始提示中声明:
!重要提示!
当前工作区中:
- 项目B的路径为: {{PROJECT_B_PATH}}
请始终使用此路径访问B项目的文件
使用 AI 能识别的相对路径:
项目B位于工作区中的 `../B-project` 目录
### 各方案对比
| 方案 | 优点 | 缺点 |
|--------------------|--------------------------|--------------------------|
| 环境变量+预处理 | 全平台支持,路径隔离性好 | 需增加构建步骤 |
| 符号链接 | 零配置,直观 | Windows 需管理员权限 |
| 环境配置脚本 | 新人上手简单 | 需手动执行初始化 |
| AI 会话声明 | 即时生效 | 每次会话需重复声明 |
为什么不使用 monorepo 方案解决这个问题?