跳转到内容

Agent

Agent 会将语言模型连接到你的服务器。模型提出操作后,App 会先展示操作内容,由你批准后 才会执行;开启自动执行只读命令时除外(见审核操作)。

发送第一条消息前,请先在 设置 → 应用 → AI → 提供商 中添加 provider:选择内置 provider(模型目录中的 OpenAI、Anthropic、Google 等)并填写 API key,或添加自定义的 OpenAI-compatible、Anthropic 或 Google endpoint。新对话使用的 model 也在此页面选择。 API key 保存在系统钥匙串中,不在 App 数据库里,并且只会发送给它所属的 provider。只有 发送消息时,App 才会发起请求。

Server Box 提供两个 Agent 入口:

  • Agent 标签页:可处理已配置的多个服务器,也可通过临时 SSH 连接访问服务器列表外的 主机。它还能读取 App 状态,例如服务器列表和连接状态。
  • SSH Agent:位于终端页面,只针对当前服务器。它可以读取终端显示的内容,并在当前 连接上执行命令。选中终端输出后选择 Ask AI,会新建一个对话,并把这段文字放进输入 框,由你补充问题。

两个入口各有自己的对话列表,终端的对话属于对应服务器。Agent 默认浮在其他标签页上方, 你在终端或文件浏览器中操作时,Agent 在 App 其他地方的操作也能看到;可以用 Agent 标签页标题栏上的 浮动按钮关闭。

设置 → 应用 → AI → 提供商 列出内置 provider 和你添加的自定义 provider。自定义 provider 需要填写包含 API 版本的 base URL(例如 https://api.example.com/v1),并选择 协议:OpenAI Chat Completions、OpenAI Responses、Anthropic Messages 或 Google Generative AI。OpenAI-compatible endpoint 会列出它提供的 model;其他协议需要手动填写 model ID。

位于其他机器上的明文 http:// 地址会被拒绝,除非为该 provider 开启 允许明文 HTTP, 因为 API key 会以明文发送。http://localhost 等本机地址不需要开启。

未填写 key 的内置 provider 会读取 App 启动时环境变量中对应的 key,变量名与该 provider 自家工具使用的相同,例如 OPENAI_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEY; provider 列表会在 系统 分组中列出它,并注明 key 来自哪个变量。在 App 中填写的 key 会优先使用。

设置了 OPENAI_BASE_URL 时,会多出一个名为 系统 的 provider:指向该地址的 OpenAI 兼容端点, key 取 OPENAI_API_KEY,OPENAI_MODEL 用于补充端点没有列出的模型。此时 OPENAI_API_KEY 只供这个端点使用,内置的 OpenAI provider 不会把它发给 api.openai.com;地址本身就是 OpenAI 官方地址时除外。这些都不会被保存,只取 App 启动时的环境。与其他 provider 一样,指向其他机器的 明文 http:// 地址会被拒绝。这适用于从 shell 启动的桌面端 App:在 macOS 上,从访达或程序坞打开的 App 读不到 shell 配置文件中导出的变量。

旧版本中的设置(endpoint、model、protocol 和 key)在更新时已迁移为一个自定义 provider,key 也已迁入钥匙串。

Agent 标签页的工具:

工具 行为
Shell 在服务器上执行完整的非交互命令
读取文件 通过服务器配置的 SFTP 或 SCP 读取 SSH 服务器上的文本文件;开启本机执行后,也可以读取本机文件
写入文件 通过配置的传输方式替换文本文件;开启本机执行后,也可以替换本机文件
SSH 连接 打开到 App 未配置主机的临时连接
断开 SSH 关闭临时 SSH 连接
Server Box 读取 App 状态,包括服务器列表和连接状态
记忆 在本机保存笔记,之后的对话可以读取
对话历史 搜索并读取以前的 Agent 对话
网页读取 从本机读取网页
Snippet 列出 snippet,以及新增、修改、删除;修改前会询问。不会把 snippet 设为在服务器上自动运行
虚拟化 读取虚拟化标签页已加载的虚拟机和容器;尚未加载的宿主机不会被访问
性能测试 读取测试结果,运行或停止测试,每次都会询问。一次测试需要 10 到 20 分钟;结束时会通知发起它的对话,由 Agent 读取结果
远程桌面 列出远程桌面配置,连接(在远程桌面标签页中打开)或断开,操作前会询问。没有保存密码的配置需在 App 中连接

终端的对话只有两个工具:在该终端连接上执行的 Shell,以及 读取屏幕。可在 设置 → 应用 → AI → 工具 中按组关闭工具,也可以在此添加 MCP 服务器,Agent 标签页 会同时提供其中的工具。

点击 MCP 服务器即可编辑。需要密钥的服务器(Streamable HTTP)可以填写请求头,每个请求头 包括名称和值,例如名称 Authorization、值 Bearer <token>。使用 OAuth 的服务器会显示 需要登录,点击 登录 会打开浏览器,App 会保存并自动续期 token。请求头和 token 只保存在本机,不会加入备份;除本机服务器外,只通过 https 发送。

Skill 是针对特定任务的一组操作说明,由一个 SKILL.md 及其旁边的文件组成。在 设置 → 应用 → AI → Skills 中安装,支持的来源与 npx skills add 相同:owner/repo、 owner/repo@skill、GitHub 或 GitLab 链接(仓库或其中的文件夹)、指向 SKILL.md 或压缩包的链接, 以及发布了 /.well-known skills 索引的网站。也可以直接粘贴整条 npx skills add … 命令。 本机的文件夹或 .zip 也可以安装:使用输入框下方的按钮,或直接输入其路径。 来源中有多个 skill 时,可以选择要安装哪些。

模型只看到每个 skill 的名称和描述,任务符合时再读取其余内容;读取不需要确认。Skills 与 工具相互独立:关闭工具不影响 skills,每个 skill 也可以单独关闭。终端的对话同样可以使用 skills。模型会按 skill 的内容执行,请只安装你信任的来源;skill 中的脚本不会自动运行。 App 每天最多一次(启动时或打开 Skills 页时)询问各来源 skill 是否有变化,并标出有更新的 skill;全部更新 会安装这些更新,检查更新 会立即检查一次。不会未经你确认就安装。

App 自带一个 skill:serverbox-help,内容是 Server Box 的用法和 Monitor agent 的部署, Agent 因此可以回答关于 App 本身的问题,也可以在你批准后帮你在服务器上部署 Monitor agent。它随 App 更新,可以关闭,但不能删除。

Agent 的文件工具需要 SSH。仅配置 Monitor HTTP 的服务器不提供这些工具。其独立的 文件 标签页可以在运维人员开启 [remote_access.fs] 且请求路径位于 roots 下时, 使用 Monitor agent 的文件 API。

服务器操作执行前,App 会展示命令、风险等级和模型对该命令的说明;自动执行的只读命令(见下文) 不会弹出审批。请自己阅读命令,再决定 允许或拒绝。拒绝结果会发回模型,让它根据你的反馈继续。在终端的对话中,还可以把命令插入 终端,由你修改后自己执行。模型给出的安全或不安全标记只是审核参考。

不属于自动执行范围的服务器操作每次都会询问,不提供“总是允许”。在 设置 → 应用 → AI 中开启 自动执行 只读命令 后,只有模型和 App 本地检查都判定为只读、幂等且无破坏性的服务器命令才会自动 执行,且每条消息最多自动执行三次。该选项默认关闭,并且从不适用于本机命令。其他工具的 审核卡片提供“总是允许”,可在 工具 中撤销。

Agent 可以在对话中向你提问:由你决定的选择,或它自己查不到的信息。它会一直等到你提交或取消。一次最多 四个问题,每个问题列出几个选项及其含义,可单选或多选;始终可以选 其他 并填写自己的答案。它也可以 请你填写一些内容。标题栏、对话列表和悬浮胶囊会用圆点标出正在等你处理的对话,与运行中的加载圈区分。这时直接 发送消息等于取消表单,你的消息会一并交给 Agent。

密码、密钥或 token 会用专门的保密字段询问。你填写的内容不会发送给模型,也不会写入对话记录:Agent 只拿到 一个一次性的句柄,工具需要时由 App 换成真实的值,例如连接一个没有保存密码的远程桌面配置时。

Agent 可以打开到服务器列表外主机的临时 SSH 连接。需要密码时,App 会在单独的对话框中 询问;请不要在对话中输入密码。对话内容保存在本机,并会发送给 provider。临时连接会单独 列出;如需保留,可将其保存为服务器,其主机信息和密码随后会像其他服务器凭据一样保存。

在本机执行命令 是 设置 → 应用 → AI 中的独立选项,默认关闭。开启后也不会自动 执行:即使命令看起来只读,或开启了 自动执行只读命令,每条本机命令仍需要你确认。

命令的执行位置取决于平台:

  • 桌面端:运行 Server Box 的计算机,包括其中的文件。
  • Android 和 iOS:App 提供的 Alpine Linux 环境。它无法访问手机自身的文件系统、 App 数据或用户文件。详见本机终端。

在无法执行本机命令的平台上,此选项会隐藏。macOS 的 App Store 版本处于沙盒中,无法 启动 shell;不含 Linux 引擎的 iOS 版本也无法执行本机命令。

对话保存在本机的加密 App 数据库中,较长的对话会随着增长自动压缩。可以在历史列表中重新 打开、重命名或删除对话。对话不会加入备份或同步,provider、工具设置和记忆笔记也不会。 消息和工具结果可能包含命令输出、文件内容以及你粘贴的终端文本;在对话中使用时,这些内容 会发送给 provider。

  • 模型可能给出错误的建议或命令。批准每个操作前,请先审核。
  • 命令输出、读取的文件内容、终端文本和读取的网页可能会发送给 provider 供模型分析。发送 消息或批准工具操作前,请检查其中是否有敏感数据。