跳转到内容

Monitor Agent 模式

Agent 模式是 Monitor 面板中的 AI Agent。它在运行 Monitor 的机器上,以 Monitor 运行所用的系统账户执行命令。

Agent 模式是面板的功能。手机 App 的 Agent 是另一项功能, 有自己的设置。安装 Monitor 的方法见 Monitor。

在面板中打开 设置 → Agent,可以修改模型、提供商、MCP 服务器、技能和记忆。

运行任务前,Agent 模式需要一个模型。在 提供商 下选择内置提供商,并填写它的 API 密钥。如需使用其他端点,选择 添加提供商,然后填写 名称、Base URL 和 API。API 可选 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages 或 Google Generative AI。

面板会列出端点提供的模型。如果端点不列出模型,请在 其他模型 ID 中填写模型 ID。

API 密钥只能写入。面板只显示是否已设置密钥。要替换密钥,请输入新密钥。要保留当前密钥, 请将输入框留空。要删除密钥,请选择 删除密钥。

在 模型 中选择新任务的默认模型。选择 无(关闭 Agent 模式) 后,Agent 模式不会运行任务。

Base URL 使用明文 http:// 时,只有回环地址(如 127.0.0.1)可以直接使用。其他地址需要 为该提供商开启 允许明文 HTTP。此时密钥和所有 prompt 都以明文传输。不会跟随重定向。

  • 同时运行 设置同时运行的任务数,可选 1 到 8。其余任务排队等待。
  • 思考强度 设置默认的思考级别:关闭、低、中或高。
  • 为 pi 保留副本 默认关闭。见 为 pi 保留副本。

在桌面中打开 Agent 模式。在输入框中描述要完成的事并发送。Agent 随后在服务器上运行 命令来完成任务。

在做出改动前,Agent 会先列出方案。选择 执行 以批准方案。选择 修改方案 可以先告诉 Agent 需要改动什么。

使用 添加附件,将文件拖入输入框,或直接粘贴。每个任务最多 10 个文件,每个文件不超过 20 MB。Agent 会收到每个文件的名称、类型、大小和路径。不超过 16 KiB 的文本文件会放入 prompt。 不超过 5 MB 的图片会以图片形式发送给模型。未随任务发送的附件会在一小时后删除。

每个任务都有自己的 模型 和 思考 级别,在输入框中选择。列表显示自定义端点的模型, 以及已设置密钥的内置提供商的模型。任务运行时修改它们,从下一次模型请求开始生效。

新任务的权限模式在输入框中选择,也可以按 Shift+Tab 切换;它与命令权限中的 新任务的默认模式 是同一个设置,App 的输入框也会修改它。已开始的任务保持开始时的模式。见权限模式。

同时运行的任务数达到 同时运行 的上限后,新任务显示 排队中。前面的任务结束后, 它才会开始。

任务完成后,在回复框中输入内容即可继续该任务。回复在同一个会话中运行,Agent 保留之前的上下文。 任务运行期间也可以补充内容。

选择 停止 结束正在运行的任务。正在执行的命令会和它的进程组一起停止。选择 删除 删除任务。 删除任务时,它为 pi 保留的副本也会一并删除。

每条命令都有时间限制,由模型为该命令设定,范围为 1 到 120 分钟,默认 10 分钟。命令达到限制时, 该命令及其启动的进程会被停止。

命令运行时输出会实时显示。输出较长时,保留前 2000 行和后 8000 行。模型读取的是命令输出的 最后 12 000 个字符。

面板断开连接时,任务在服务器上继续运行。面板重新连接后,输出会继续显示。

每个任务以三种权限模式之一运行。在命令规则生效之后,权限模式决定哪些命令无需确认即可运行。

模式 行为
手动 命令按命令规则处理。没有匹配任何规则的命令,等待你确认。
自动 模型按自动模式规则判断此类命令。允许的命令直接运行。被拒绝的命令会停止,并把原因告诉 Agent。没有结论时询问你。
全部放行 所有命令无需确认直接运行,包括删除、重启和修改配置。拒绝和询问规则仍然生效。

只读命令与其他命令一样按模式处理。

新任务的默认模式在 设置 → Agent → 命令权限 → 新任务的默认模式 中设置。

可以在该页面选择 关闭全部放行。之后,任何任务都不能以全部放行运行。已经以全部放行 发起的任务会按手动模式运行。

在 设置 → Agent → 命令权限 中设置规则。规则分为三组:拒绝、询问 和 允许。 每行写一条规则。

  • * 代表任意文本。例如 systemctl status * 匹配所有 systemctl status 命令。
  • 末尾的 :* 与 * 含义相同。
  • 组合命令(如 a && b)会逐段检查。拒绝和询问只要有一段命中即生效。允许要求每一段都被覆盖。
  • 拒绝和询问规则还会去掉 env、timeout 等前缀,并把带路径的程序按程序名匹配:此时 /bin/rm 会匹配 rm *。除此之外规则按命令原文匹配,sh -c 'rm …' 不会匹配 rm *。
  • 规则不是安全边界。

规则的检查顺序为:拒绝、询问、允许。

在全部放行之外,无法撤销的命令(如删除数据或分区)在执行前会要求你输入服务器名确认。即使允许规则 匹配了该命令,这一要求依然适用。

命令等待确认时,选择 以后都允许,会把该命令的规则加入这台服务器的允许规则,对所有任务生效。 选择 以后都允许 之前,面板会显示将要添加的规则。命中询问规则的命令 不会给出建议规则。

自动模式规则位于同一页面的 自动模式规则 下,用自然语言书写,供模型判断。分为 环境、 允许、软拒绝 和 硬拒绝 四部分。

某一部分为空时使用内置规则。在某一行写 $defaults,可保留内置规则,并在其后追加自己的规则。 模型按以下顺序应用规则:硬拒绝、软拒绝、允许。允许规则,或你明确提出的请求,可以解除软拒绝。

命令使用 sudo 时,面板会要求输入执行该命令的账号的密码。密码只交给 sudo。

每条命令都会重新询问。选择 15 分钟内不再询问 后,密码会在内存中保留 15 分钟。密码不会写入磁盘。 账号的会话结束后(例如修改密码后)密码会被清除。

在 Windows 上,命令通过 Windows PowerShell 运行,不能使用 sudo。

在 设置 → Agent → 记忆 中可以查看 Agent 在你的任务之间保留的文件。 Agent 会读取这些文件,并按需更新。MEMORY.md 是索引,每个任务开始时都会读取。

你可以在此页面新建、编辑和删除文件。

Agent 知道 Monitor 在服务器上部署了哪些 Web 应用。每个任务的 system prompt 中都包含每个应用的 状态、健康检查结果、回环地址、确切的 compose 命令和数据目录。你可以直接询问 Agent 某个应用的情况。 部署应用的方法见 Monitor 应用。

在 设置 → Agent → MCP 服务器 中添加 MCP 服务器。每个任务都会获得已启用服务器的工具。

仅支持 Streamable HTTP 传输。地址必须使用 https://,或使用回环地址(如 127.0.0.1)的 http://。

添加服务器时,填写 名称 和 地址。如服务器需要请求头(如 Authorization),在 请求头 和 值 中填写。面板会显示将要发送的请求头名称。值只能写入:要修改时,选择 新的 Authorization 值(以请求头名称命名)并输入 新值。面板之后不会再显示已保存的值。

面板无法连接服务器时,状态显示 未连接。

工具与命令一样按任务的权限模式处理,标记为只读的工具也一样:手动模式下等待你确认, 自动模式下由模型判断,全部放行下直接运行并记入审计日志。

  1. 在 Home Assistant 中添加 MCP Server 集成。
  2. 在你的 Home Assistant 用户资料页面创建一个长期访问令牌(token)。
  3. 在 设置 → Agent → MCP 服务器 中添加服务器,填写以下内容:
    • 名称:自定义名称
    • 地址:http://127.0.0.1:8123/api/mcp
    • 请求头:Authorization
    • 值:Bearer <token>,其中 <token> 为第 2 步的访问令牌

该地址使用回环地址,因此 Monitor 必须与 Home Assistant 运行在同一台机器上。

在 设置 → Agent → 技能 中管理技能。

要安装技能,选择 安装。在 GitHub 仓库 中输入以下任一形式的来源:

  • owner/repo
  • owner/repo@skill,只安装指定名称的技能
  • github.com 地址
  • npx skills add 命令

如果仓库中没有技能、技能数量过多,或不是 GitHub 仓库,面板会给出提示。

每个技能都有 启用 开关和 移除 按钮。每个任务都会得知哪些技能已启用及其用途,任务匹配某个技能时 会加载它。

也可以将包含 SKILL.md 文件的文件夹放入 Monitor 数据目录下的 skills 文件夹。面板会将这些文件夹与已安装的技能一并列出。

桌面的搜索也可以向 Agent 提问。输入问题、关键词或改动需求即可。搜索以只读方式运行: 它只能运行只读取系统信息的命令。搜索运行的任何命令都不会改变机器。提出改动需求时,搜索返回草稿方案。

可以在 设置 → Agent 中开启 为 pi 保留副本。开启后,每个任务还会以 pi 编码 Agent 会话的形式保存,位于该 Agent 账号的会话目录中。在 Agent 的工作目录中运行 pi -r 即可列出这些会话。 删除任务时,其副本也会被删除。

为生成回复,模型提供商会收到:

  • 你输入的 prompt,以及 system prompt。system prompt 包含记忆索引、已部署应用列表、已启用的技能和 MCP 服务器的说明。
  • 模型读取的命令输出。
  • MCP 工具的返回结果。
  • 任务的附件,见附件。

审计日志记录权限决定和设置变更。日志不记录密码、API 密钥或命令输出。