﻿---
title: "用 shell_environment_policy 收窄子进程环境"
summary: "默认环境可能含有你不想让 agent 命令看见的密钥。显式控制传入子进程的变量。"
category: security
level: advanced
surfaces: [cli]
tags: ["环境变量", "密钥", "沙箱"]
canonical: /tips/shell-environment-policy/
---

# 用 shell_environment_policy 收窄子进程环境

默认环境可能含有你不想让 agent 命令看见的密钥。显式控制传入子进程的变量。

在用户 config 里配置 `[shell_environment_policy]`。官方默认 `ignore_default_excludes = true`，会跳过对名字含 `KEY` / `SECRET` / `TOKEN` 的自动过滤。要启用那层过滤，必须显式关掉：

```toml
[shell_environment_policy]
ignore_default_excludes = false

[shell_environment_policy.filters]
"PATH" = "include"
"HOME" = "include"
```

新配置用 `filters`。同一层不要再写旧的 `exclude` / `include_only`，官方参考说两种形式不能混。要给子进程钉死 PATH，用 `set`，不要靠 `experimental_use_profile` 去 source 整份 rc。

这是防御纵深，不是第一道防线。第一道仍是 sandbox + 不 yolo。

## 来源

- [OpenAI · Config basics](https://learn.chatgpt.com/docs/config-file/config-basic)
