# AI 助手 NyaTerm 内置 AI 助手面板,可以从终端上下文、选中文本、文件操作或手动输入发起请求。它支持两种工作模式:**Ask** 和 **Agent**。 ## 工作模式 ### Ask 模式 Ask 是默认模式,处理单次问答: - 生成命令 - 解释终端输出 - 分析错误 - 从选中文本推导修复命令 AI 返回的命令以结构化卡片展示,带有风险等级标注。 ### Agent 模式 Agent 模式允许 AI 自主执行多步操作。它使用 ReAct 循环:观察终端输出 → 决定下一步命令 → 执行 → 再次观察,直到任务完成或达到步数上限。 Agent 模式的特点: - 需要一个活跃的终端会话 - 每一步命令都会显示执行状态(运行中、已完成、失败、超时、需要审批、被安全策略阻止) - 可在 **设置 → AI → Agent Settings** 中配置最大步数和单步超时 - 可通过 `Terminal Output Lines` 控制 AI 执行命令时在终端中内联展示多少行输出 - 高风险命令仍然需要人工审批后才能执行 ## Agent 工具、计划与询问 Native Agent 与外部 MCP 共用能力契约、scope、风险评估、审批、输出分页与脱敏审计。Native 无需启动 MCP 服务或 helper;Claude/Codex 仍仅通过 MCP 使用能力。 Native 可查询环境与目标会话、执行终端命令、读取最近输出,使用 SFTP 列目录、查询属性和读取文本,并读取工具输出的后续分页。本阶段没有 SFTP 写工具。任务开始时固定可用目标,多目标调用必须明确选择目标。 多步骤任务可建立计划,使用稳定任务 ID 更新待办、进行中、完成或受阻状态;同时最多一个任务进行中。简单任务可直接完成。需要补充信息时,Agent 可提出 1–3 个问题,提供单选项或自由文本输入。答案不会自动提交;提交后在原 run 继续,取消则结束任务。切换会话保留等待状态。 每次工具决策(包括计划和询问)消耗一次 step 配额。达到上限后只能总结;等待审批或回答期间不计命令超时。最终回答明确标注已验证、未验证或受阻及验证说明,未完成的计划不能标记为已验证。 前台执行保留终端捕获,后台执行保留独立后端。quiet observation 的未知退出码、超时和输出丢失会明确呈现,不能当作成功退出。大输出按 run 或 MCP 连接隔离分页,结束任务、关闭连接或凭据失效时清理。 Run、计划和工具 transcript 仅保存在内存中,聊天历史保存展示文本,不恢复执行。设置、历史、审计和 MCP 协议格式保持兼容;能力审计不保存命令、输出、文件内容或用户回答。 ## 会话管理 AI 助手支持多会话管理: - **新建对话**:每次新建对话会创建独立的上下文 - **历史记录**:按时间分组(今天、昨天、最近 7 天、更早)浏览历史对话 - **搜索历史**:模糊搜索历史对话内容 - **删除会话**:清理不需要的历史记录 ## 会话提及 在输入框中输入 `@` 可以提及其他终端会话,将它们的上下文引入当前 AI 对话。这在需要跨会话分析或对比时很有用。 ## 命令卡片与风险控制 AI 返回的命令以结构化卡片展示,包含: - 命令文本 - 风险等级(低风险 / 中风险 / 高风险 / 极高风险) - 执行按钮或审批按钮 - 保存为快捷命令的选项 ### 风险等级怎么定 一条命令的风险等级不是模型单方面说了算。NyaTerm 会取**模型自报等级**和**本地规则判定**中较高的一个作为生效等级,所以模型低估风险时本地规则仍会拦住它。命令卡片显示生效风险。 本地规则按四档划分,判定依据是命令的具体形态而不是命令名: | 等级 | 命中示例 | |------|----------| | 极高风险 | `rm -rf /`、`mkfs`、`wipefs`、写块设备的 `dd`、fork bomb、`shutdown` / `reboot` / `poweroff`、停止 sshd | | 高风险 | 任何 `sudo` 开头的命令、`rm -r` / `rm -f`、`chmod -R` / `chown -R`、包管理器安装卸载、`docker rm` / `system prune`、`kubectl delete` / `drain` / `apply`、`git reset --hard` | | 中风险 | 裸 `chmod` / `chown`、重定向 `>` / `>>`、`cp` / `mv` / `mkdir` / `touch`、`git pull` / `merge`、`npm run`;未命中任何规则的命令也按中风险处理 | | 低风险 | `ls`、`cat`、`ps`、`df`、`docker ps`、`kubectl get`、`git status` 等只读诊断命令 | 注意分档看的是命令形态:裸 `chmod` / `chown` 是中风险,带 `-R` 递归标志才升为高风险;`rm -rf /` 是极高风险,而 `rm -rf ./build` 是高风险。 你手动输入命令时也会走这套规则,见 [终端功能 → 命令风险评估](./terminal#命令风险评估)。 ### 命令执行策略 生效等级决定命令能不能直接跑,取决于 **设置 → AI → Agent Settings** 里的 **命令执行策略**: | 策略 | 行为 | |------|------| | 执行前确认 | 每条命令执行前都需要你确认 | | 全自动 | 普通及敏感读取自动允许;仅分类明确且风险低于高风险的命令自动执行 | | 智能放行 | 在全自动规则上进一步按 **智能模式自动执行上限** 收紧 | 所有 Native 模式下,未知或无法明确分类的命令以及高风险、极高风险命令均需审批。执行前确认模式对每条命令仅提供逐次批准;其他会话授权限定当前 run、目标、工具及相同参数。极高风险和破坏性操作始终逐次审批,不能由会话授权覆盖。审批后还会重新检查 scope、会话状态及执行禁用设置。 **设置 → AI** 中还可以配置: - **智能模式自动执行上限** - 是否开启命令风险检查 - 是否允许把生成命令保存为快捷命令 ### 安全替代建议 当命令被判为高风险时,AI 可能会同时提供更安全的替代命令供选择。 ## 最近输出与终端内联输出 AI 助手不仅能处理选中文本,也可以直接围绕“刚刚发生了什么”来工作。 - 在终端右键菜单中使用 **解释最近输出**,可以把当前会话最近的终端输出直接发送给 AI - 在 Agent 模式下,AI 执行命令时会捕获命令执行事件,并把摘要后的输出以内联片段形式反馈到终端工作流附近 - `Terminal Output Lines` 决定这类终端内联反馈最多展示多少行;设为 `0` 则关闭 ## 推理内容 如果使用的模型支持推理通道(如 DeepSeek R1、QwQ 等),AI 助手会在回复中展示推理过程。推理内容默认折叠,可以展开查看 AI 的思考链路。 ## Provider 与模型配置 在 **设置 → AI** 中管理 provider 和模型: ### Provider 配置 - 支持内置 provider(OpenAI、Anthropic、Google、DeepSeek 等) - 支持自定义 **OpenAI Compatible** provider - 每个 provider 需要配置 API Key 和可选的 Base URL ### 模型管理 - 从 provider 拉取可用模型列表 - 手动添加 provider 未自动返回的模型 - 按 provider 与凭据分组显示 - 可单独启用 / 禁用每个模型 - 选择默认模型 ### 其他设置 - **上下文行数**:发送给 AI 的终端输出行数上限 - **请求超时**:单次 AI 请求的超时时间 - **记录历史**:是否保存 AI 对话历史 - **敏感信息脱敏**:发送前对敏感内容做处理 ## 从终端和文件浏览器唤起 AI 助手不只能从面板手动输入,还可以从以下入口唤起: ### 终端右键菜单 - **解释最近输出**:将当前会话最近的终端输出发送给 AI - **解释选中内容**:对选中的日志、报错或片段做解释 - **分析错误**:把错误上下文交给 AI 生成修复建议 - **修复选中内容**:从选中报错推导下一步命令 - **生成命令**:告诉 AI 你想完成什么 ### 文件浏览器右键菜单 对 SFTP 文件浏览器中的文件,可以通过右键菜单将文件内容发送给 AI 进行分析(受文件大小限制,可在设置中调整上限)。 ### 错误自动检测 当终端输出中检测到错误模式时,AI 助手会提示可以自动分析该错误。