Echolot
教程

让智能体安全地使用你的工作区

把 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. 开启智能体

  1. 选取 Echolot › 设置…(⌘,)并打开智能体。
  2. 在访问下,开启允许智能体使用打开的工作区。
  3. 在供智能体使用的工具下,保持请求和流程开启。请求允许智能体列出、读取、创建和发送请求;流程运行你提供给智能体的流程。其他项(工作区、环境、规范、模拟服务器、MCP 服务器、历史记录、流程编辑)在你开启之前是关闭的。

有些工具无论你开启什么都不会提供:策略本身、代理、证书、认证设置、脚本,以及启动你未提供的流程。

2. 连接 Claude Code

  1. 在 Alpenglow 窗口中,选取页面顶部的智能体。

  2. 在连接客户端下找到 Claude Code,选取拷贝命令。命令类似这样:

    claude mcp add --scope user echolot-alpenglow -- /Applications/Echolot.app/Contents/Helpers/echolot mcp serve /Users/you/Projects/Alpenglow.echolot
  3. 把它粘贴到“终端”中并运行。

其他客户端有各自的按钮:添加到 Cursor 和添加到 VS Code 会打开安装链接,拷贝 config.toml 条目用于 Codex,拷贝 JSON 会给出适用于任何其他客户端的 mcpServers 块,Claude Desktop 的添加到 Claude 则安装一个扩展。每个客户端都运行 echolot mcp serve,它把调用交给已打开的窗口,所以你的批准和窗口的环境都会生效。

Mac App Store 版

App Store 版本不包含命令行工具或 Claude Desktop 扩展。请先单独安装命令行工具;你拷贝的命令和代码片段指向它。

比较两个版本
Alpenglow 窗口的“智能体”弹出窗口,其中的“连接客户端”按钮对应 Claude Desktop、Claude Code、Cursor、VS Code 和 Codex

3. 让它读取和发送

  1. 在“终端”中启动 claude 并提问:

    Using echolot-alpenglow, list the requests in the Catalog folder, send List products, and tell me the most expensive tent in stock.

  2. 它会列出请求并发送 List products,不会询问你:默认情况下,智能体可以读取工作区并进行安全的发送(GET、GraphQL 查询、MCP 读取)。

  3. 在 Echolot 中,智能体按钮现在显示为智能体 · 1。它的弹出窗口在最近的调用下列出该客户端,并带有一个已允许开关,可以切断它。

智能体的发送会记录在历史记录中,并标明发送者(⌘Y)。

4. 批准会更改数据的发送

  1. 提问:

    Place an order for one TNT-MH-2P with Create order.

  2. Echolot 会显示一张面板:Claude Code 想要发送可能更改数据的请求,其中有请求和即将发出内容的预览。Authorization 标头显示为 Bearer ••••••。

  3. 选择其一:

    • 允许一次(↩):仅此一次发送。
    • 在本次会话中允许:在窗口关闭之前,允许类似的发送。
    • 拒绝(Esc):告知智能体你拒绝了。
  4. 选取允许一次。商店返回 201 Created,智能体会报告新订单。

5. 让机密远离智能体

向智能体提问:

What is the value of the token variable?

它无法告诉你。机密变量的值永远不会到达智能体:无论它会出现在请求、响应还是错误的什么位置,智能体看到的都是 ••••••。这涵盖原样的值,以及 JSON、百分号编码和 Base64 形式。对响应正文的搜索也不会统计或定位到机密上的匹配。

6. 设定工作区的规则

默认值只是起点。每个工作区都可以设定自己的规则,它们会写入 workspace.toml,因此会随工作区一起通过 Git 流转。

  1. 打开边栏底部的工作区菜单,选取工作区设置…,然后打开智能体标签页。
  2. 智能体可以使用此工作区只为这个工作区关闭智能体。
  3. 在智能体可以做什么下,每种动作都有允许、询问或拒绝(或默认):读取请求和环境、安全的发送(GET、GraphQL 查询、MCP 读取)、其他发送、发送到受保护的环境、发送到新主机、对工作区的更改和删除。把其他发送设为拒绝。
  4. 在主机和限制下,列出允许的主机,并设置每个会话发送次数或每分钟发送次数。
  5. 选取完成,然后让智能体再下一个订单。它会被直接拒绝,不会出现面板。

比默认值更严格的规则会立即生效。会不经询问就放行某些操作的规则,例如在从 Git 拉取的工作区中,则要等你确认:智能体弹出窗口会说明它会放行什么,在你信任这些规则之前智能体仍会询问,而信任这些规则会在这台 Mac 上接受它们。

发送到受保护的环境和发送到新主机只提供询问或拒绝:没有任何规则能让智能体不经询问就发送到那里。智能体发送的请求所遇到的重定向,绝不会把机密标头带到工作区不认识的主机。

7. 保护环境

  1. 在页面标题栏的环境菜单中选取 Production。它是受保护的,所以带有红色标记和锁图标。
  2. 让智能体再次发送 List products。面板显示 Claude Code 想要发送到受保护的环境,并且在上面按 ↩ 不起作用:你必须做出选择。选取拒绝。(Alpenglow 的 Production 是个虚构的地址,所以发送无论如何都会失败。)
  3. 你自己发送 List products。按钮显示为发送到 Production…,并有一个提示询问要发送到 Production 吗?。取消是默认选项;切换环境之前不再询问会在你选择另一个环境之前不再提问。选取取消。
  4. 切换回无环境。

用环境页面上的受保护开关把环境标记为受保护。参见受保护的环境。

8. 没有 App 的情况:策略

echolot mcp serve 也可以独立运行,供服务器上或 CI 中的智能体使用,在那里没有人能够批准任何事。这时由策略决定,任何需要询问的操作都会被拒绝:

echolot mcp serve Alpenglow.echolot --policy readonly
策略直接运行的需要询问的(无人可问时拒绝)
standard(默认)读取和安全的发送其他发送和更改
readonly读取发送;更改和删除会被拒绝
permissive发送和更改删除、受保护的环境、新主机

无界面运行时,它只运行工作区在启动时就已有的脚本。详见智能体和 echolot mcp。

9. 内置助手

Echolot 自己的助手使用同样的工具和同样的批准流程,在每个页面旁边的面板中工作。

  1. 选取 Echolot › 设置… › 助手。在添加提供商下,选择一个提供商(Anthropic、OpenAI、Google Gemini,或 Ollama 之类兼容 OpenAI 的服务器),输入 API 密钥或地址,然后选取添加。密钥保存在钥匙串中。
  2. 在 Alpenglow 窗口中,按 ⌘J(或选取页面标题栏末端的魔棒)。
  3. 在询问助手…中输入:Send every request in Catalog and tell me which checks fail.
  4. 在工作区中的任何内容第一次发送给提供商之前,Echolot 会询问要发送到 Anthropic 吗?(或你选择的提供商)。取消是默认选项;选取允许。它对每个提供商只询问一次,而设置 › 助手可以收回这个许可。Mac 上或本地服务器上的模型从不询问。
  5. 它的发送会经过同一张面板,上面写着智能体想要…。

面板标题栏中的模型看到的内容会准确显示发送给模型的是什么。参见助手。

仅限直接下载版

在直接下载版中,助手也可以使用 Mac 上的命令行智能体(CLI 智能体(ACP):Claude Code、Codex、Gemini CLI)。

比较两个版本

后续步骤

本页内容