让智能体安全地使用你的工作区
把 Claude Code 或其他 MCP 客户端连接到工作区,决定它可以做什么,批准它的发送,保护环境,并让机密远离它。
Echolot 是你的工作区的 MCP 服务器:Claude Code 之类的 AI 智能体可以列出你的请求、发送它们并读取响应。你来决定它不经询问就能做什么、必须先询问什么,以及绝不能做什么。机密值永远不会到达它。在本教程中,你会把 Claude Code 连接到 Alpenglow,批准并拒绝它的发送,保护一个环境,然后用 Echolot 内置的助手做同样的事。
- 用时: 20 分钟。
- 你需要: Alpenglow 工作区,以及一个 MCP 客户端:Claude Code(“终端”中的
claude)、Claude Desktop、Cursor、VS Code 或 Codex。最后一部分还需要模型提供商的 API 密钥,或者 Ollama 中的本地模型。 - 你将学到: 设置 › 智能体、批准、工作区的智能体规则、受保护的环境,以及智能体看到的是什么而不是机密。
1. 开启智能体
- 选取 Echolot › 设置…(⌘,)并打开智能体。
- 在访问下,开启允许智能体使用打开的工作区。
- 在供智能体使用的工具下,保持请求和流程开启。请求允许智能体列出、读取、创建和发送请求;流程运行你提供给智能体的流程。其他项(工作区、环境、规范、模拟服务器、MCP 服务器、历史记录、流程编辑)在你开启之前是关闭的。
有些工具无论你开启什么都不会提供:策略本身、代理、证书、认证设置、脚本,以及启动你未提供的流程。
2. 连接 Claude Code
-
在 Alpenglow 窗口中,选取页面顶部的智能体。
-
在连接客户端下找到 Claude Code,选取拷贝命令。命令类似这样:
claude mcp add --scope user echolot-alpenglow -- /Applications/Echolot.app/Contents/Helpers/echolot mcp serve /Users/you/Projects/Alpenglow.echolot -
把它粘贴到“终端”中并运行。
其他客户端有各自的按钮:添加到 Cursor 和添加到 VS Code 会打开安装链接,拷贝 config.toml 条目用于 Codex,拷贝 JSON 会给出适用于任何其他客户端的 mcpServers 块,Claude Desktop 的添加到 Claude 则安装一个扩展。每个客户端都运行 echolot mcp serve,它把调用交给已打开的窗口,所以你的批准和窗口的环境都会生效。

3. 让它读取和发送
-
在“终端”中启动
claude并提问:Using echolot-alpenglow, list the requests in the Catalog folder, send List products, and tell me the most expensive tent in stock.
-
它会列出请求并发送 List products,不会询问你:默认情况下,智能体可以读取工作区并进行安全的发送(
GET、GraphQL 查询、MCP 读取)。 -
在 Echolot 中,智能体按钮现在显示为智能体 · 1。它的弹出窗口在最近的调用下列出该客户端,并带有一个已允许开关,可以切断它。
智能体的发送会记录在历史记录中,并标明发送者(⌘Y)。
4. 批准会更改数据的发送
-
提问:
Place an order for one TNT-MH-2P with Create order.
-
Echolot 会显示一张面板:Claude Code 想要发送可能更改数据的请求,其中有请求和即将发出内容的预览。
Authorization标头显示为Bearer ••••••。 -
选择其一:
- 允许一次(↩):仅此一次发送。
- 在本次会话中允许:在窗口关闭之前,允许类似的发送。
- 拒绝(Esc):告知智能体你拒绝了。
-
选取允许一次。商店返回
201 Created,智能体会报告新订单。
5. 让机密远离智能体
向智能体提问:
What is the value of the token variable?
它无法告诉你。机密变量的值永远不会到达智能体:无论它会出现在请求、响应还是错误的什么位置,智能体看到的都是 ••••••。这涵盖原样的值,以及 JSON、百分号编码和 Base64 形式。对响应正文的搜索也不会统计或定位到机密上的匹配。
6. 设定工作区的规则
默认值只是起点。每个工作区都可以设定自己的规则,它们会写入 workspace.toml,因此会随工作区一起通过 Git 流转。
- 打开边栏底部的工作区菜单,选取工作区设置…,然后打开智能体标签页。
- 智能体可以使用此工作区只为这个工作区关闭智能体。
- 在智能体可以做什么下,每种动作都有允许、询问或拒绝(或默认):读取请求和环境、安全的发送(GET、GraphQL 查询、MCP 读取)、其他发送、发送到受保护的环境、发送到新主机、对工作区的更改和删除。把其他发送设为拒绝。
- 在主机和限制下,列出允许的主机,并设置每个会话发送次数或每分钟发送次数。
- 选取完成,然后让智能体再下一个订单。它会被直接拒绝,不会出现面板。
比默认值更严格的规则会立即生效。会不经询问就放行某些操作的规则,例如在从 Git 拉取的工作区中,则要等你确认:智能体弹出窗口会说明它会放行什么,在你信任这些规则之前智能体仍会询问,而信任这些规则会在这台 Mac 上接受它们。
发送到受保护的环境和发送到新主机只提供询问或拒绝:没有任何规则能让智能体不经询问就发送到那里。智能体发送的请求所遇到的重定向,绝不会把机密标头带到工作区不认识的主机。
7. 保护环境
- 在页面标题栏的环境菜单中选取 Production。它是受保护的,所以带有红色标记和锁图标。
- 让智能体再次发送 List products。面板显示 Claude Code 想要发送到受保护的环境,并且在上面按 ↩ 不起作用:你必须做出选择。选取拒绝。(Alpenglow 的 Production 是个虚构的地址,所以发送无论如何都会失败。)
- 你自己发送 List products。按钮显示为发送到 Production…,并有一个提示询问要发送到 Production 吗?。取消是默认选项;切换环境之前不再询问会在你选择另一个环境之前不再提问。选取取消。
- 切换回无环境。
用环境页面上的受保护开关把环境标记为受保护。参见受保护的环境。
8. 没有 App 的情况:策略
echolot mcp serve 也可以独立运行,供服务器上或 CI 中的智能体使用,在那里没有人能够批准任何事。这时由策略决定,任何需要询问的操作都会被拒绝:
echolot mcp serve Alpenglow.echolot --policy readonly| 策略 | 直接运行的 | 需要询问的(无人可问时拒绝) |
|---|---|---|
standard(默认) | 读取和安全的发送 | 其他发送和更改 |
readonly | 读取 | 发送;更改和删除会被拒绝 |
permissive | 发送和更改 | 删除、受保护的环境、新主机 |
无界面运行时,它只运行工作区在启动时就已有的脚本。详见智能体和 echolot mcp。
9. 内置助手
Echolot 自己的助手使用同样的工具和同样的批准流程,在每个页面旁边的面板中工作。
- 选取 Echolot › 设置… › 助手。在添加提供商下,选择一个提供商(Anthropic、OpenAI、Google Gemini,或 Ollama 之类兼容 OpenAI 的服务器),输入 API 密钥或地址,然后选取添加。密钥保存在钥匙串中。
- 在 Alpenglow 窗口中,按 ⌘J(或选取页面标题栏末端的魔棒)。
- 在询问助手…中输入:
Send every request in Catalog and tell me which checks fail. - 在工作区中的任何内容第一次发送给提供商之前,Echolot 会询问要发送到 Anthropic 吗?(或你选择的提供商)。取消是默认选项;选取允许。它对每个提供商只询问一次,而设置 › 助手可以收回这个许可。Mac 上或本地服务器上的模型从不询问。
- 它的发送会经过同一张面板,上面写着智能体想要…。
面板标题栏中的模型看到的内容会准确显示发送给模型的是什么。参见助手。
仅限直接下载版
在直接下载版中,助手也可以使用 Mac 上的命令行智能体(CLI 智能体(ACP):Claude Code、Codex、Gemini CLI)。
比较两个版本