全局上下文应置于 APC 之外
APC 是可移植的上下文层。APX 是本地运行时层。
为了保持这两者的健康运行,请遵循一个原则:如果某些内容必须在重新克隆(clone)后依然存在,请将其放入 APC。如果它依赖于特定的用户、机器或进程,请将其保留在 APC 之外。
随着项目的增长,诱惑也随之而来。你可能会想再添加一个设置或一个本地路径。如果你不够严格,你的仓库(repo)就会变成机器数据的堆填区。这会让仓库变得脆弱。
APC 承载着项目特有的含义。它是仓库所携带的共享契约。
良好的 APC 内容包括:
- 项目身份
- Agent 角色
- 可复用的技能
- 精选的项目记忆
- 项目级 MCP 提示
- AGENTS.md 中的全仓库指令
队友或新机器在执行 checkout 后应能立即读取这些事实。
全局上下文则不同。它属于用户或工作站。
全局上下文的示例:
- API 密钥
- 编辑器偏好
- 本地别名
- 特定机器的工具路径
- 私有运行时内存
- 缓存
- 会话转录
- 消息日志
APX 将这些状态保持在本地。它将运行时状态存储在 ~/.apx/ 下。这保证了项目的可共享性。
混合这些层会导致三个问题:
- 可移植性破坏。依赖本地配置的仓库难以信任。
- 代码审查变得杂乱。Pull request 应该展示项目决策,而不是工作站的杂物。
- 密钥泄露。存储本地细节很容易导致提交错误的文件。
在添加设置之前,请问自己一个问题: 其他贡献者在克隆后是否需要立即使用它?
如果是,请使用 APC。
- 为每次克隆都准备一个审查 Agent?使用 APC。
- 个人 API 密钥?不使用 APC。
- 关于权限的项目决策?使用 APC。
- 本地浏览器路径?不使用 APC。
- 共享的 MCP 提示?使用 APC。
- 运行缓存?不使用 APC。
这一规则使自动化更具持久性。APC 为你提供可移植的含义。APX 为你提供本地状态。
保持界限清晰。这会让你的技术栈更容易调试、共享以及在不同工具间迁移。
对于随仓库一起移动的上下文,请使用 APC。如果是个人或瞬态的,请保持在本地。
Source: https://dev.to/agentprojectcontext/global-context-belongs-outside-apc-4fg8
Optional learning community: https://t.me/GyaanSetuAi
