



# AI Shell（aish）Release Notes

## v0.1.0（初始发布）— 2026-02-04

AI Shell 是一个面向日常终端工作的 AI Shell：在不改变你原有命令行习惯的前提下，把“问答/解释/建议/排障”能力带进终端，并提供基于安全策略与沙箱可用性的安全确认/阻断机制，降低误操作风险。

### 一、版本概述

- 终端内置 AI 助手：在aish内用 ; 可直接发起 AI 请求，无需离开命令行即可提问、解释命令、请求方案，并可驱动工具完成任务。
- 多模型/多提供商接入：基于 LiteLLM  可对接多种主流模型服务，支持自定义 API Base。
- 面向 AI 操作的安全机制：对 AI 触发的命令与改动提供风险分级评估与确认/阻断（依赖沙箱能力）。
- Skills 机制（可扩展、可热加载）：支持从指定目录加载 Skills，并在运行期间热加载。

### 二、核心功能与能力

1. 终端交互与 AI 协作

- **交互式 REPL Shell**：常规命令按正常方式执行，完整 PTY 支持，兼容常见交互式程序。
- **AI 模式**：以 `;`（或中文 `；`）开头输入发起 AI 请求；可在对话中结合工具执行命令、读取/编辑文件、完成排障。
- **终端 UI**：基于 Rich 渲染，支持流式输出、思考态提示，以及对长对话/长任务的 Ctrl+C 中断与输入恢复。
- **系统诊断能力**：内置诊断流程，适用于日志分析与故障排查类场景（可结合工具与 Skills 输出结构化结论与建议）。

2. 工具调用与文件/代码操作

- **Tool Call 工具集（内置，面向AI）**：`bash_exec`、`python_exec`、`read_file`、`write_file`、`edit_file`、`ask_user`、`system_diagnose_agent`、`skill`。
  - bash_exec：执行非交互式 shell 命令。
    - python_exec：执行 Python 代码。
    - read_file：读取文件内容。
    - write_file：覆盖写入文件。
    - edit_file：基于字符串替换的文件编辑。
    - ask_user：中断并询问用户选项/输入。
    - system_diagnose_agent：诊断Agent。
    - skill：Skill 调用工具。

- **跨文件操作能力**：支持读取/编辑多个文件以完成批量修改，并可通过 `bash_exec` 执行命令（包括运行测试）验证变更。
- **内置命令兼容**：对需要修改 Shell 状态的命令提供专门处理：`cd`, `pushd`, `popd`, `export`, `unset`, `dirs`, `pwd`, `history`。

3. Skill 扩展机制与热加载

- **Skill 配置与加载**：支持从用户目录 `~/.config/aish/skills/`（或 `$AISH_CONFIG_DIR/skills`）及 `~/.claude/skills/` 加载 Skill；同名 Skill 以用户目录优先。
- **Skill 元数据与权限**：通过 `SKILL.md` 的 YAML Frontmatter 描述能力与 `allowed_tools`（允许使用的工具）等信息。
- **热加载**：运行期间监听 Skill 目录变更，新增/删除/修改在下一次构建工具列表或调用 Skill 时自动生效（lazy reload），无需重启。
- **大输出 Offload**：`bash_exec` 输出超过阈值会落盘并只展示预览，返回完整输出文件路径；PTY 模式也会保留有限字节并将超出部分写入 offload 文件（阈值与目录可配置）。

4. 安全与风险控制

- **AI 命令安全检测**：对 AI 触发的命令/改动进行风险分级（LOW/MEDIUM/HIGH），并输出可解释的命中原因。
- **确认/阻断机制**：当沙箱可用或命中策略时，中风险（MEDIUM）需要确认，高风险（HIGH）会被阻断；沙箱不可用时按 `sandbox_off_action` 规则降级处理（可能直接放行/确认/阻断）。
- **沙箱与策略**：优先使用沙箱进行风险分析；当沙箱不可用时按安全策略的“兜底动作”降级处理（例如要求确认或阻断）。
  - 系统级策略：/etc/aish/security_policy.yaml
  - 用户级策略：~/.config/aish/security_policy.yaml（不存在时会自动生成模板）
  - 建议启用沙箱服务以获得完整保护。

- **可选白名单**：支持对特定 AI 命令进行预批准（仅在沙箱可用时生效），减少重复确认。

### 三、可观测性与配置

- **配置系统**：支持配置文件 + 环境变量 + 命令行参数组合；优先级：命令行参数 > 环境变量 > 配置文件；输出语言可配置/自动检测。
- **交互式配置/模型切换**：首次运行可进入向导选择 Provider/模型并进行工具调用验证；`/setup` 可重新配置，`/model <name>` 会验证并切换模型。
- **可观测性（可选）**：可开启 Langfuse 用于 LLM 调用观测（默认关闭）。
- **历史与会话持久化**：命令与 AI 请求历史写入 SQLite（WAL），支持跨会话查询；可通过 `session_db_path` 配置数据库路径。

### 四、已知限制与后续规划

- **长时间运行/大量输出**：长命令/大输出所生成的输出内容，可能因长度超过模型上下文限制而无法完整处理，建议由用户直接在 Shell 中执行。
- **上下文裁剪与预算**：支持配置 `max_llm_messages`/`max_shell_messages` 与可选 `context_token_budget`，超限会自动裁剪上下文。
- **沙箱不可用**：沙箱不可用会导致安全能力显著降级。

- **迭代方向**：
  - 长时间运行能力优化
  - 优化终端渲染与交互体验，提升大上下文处理性能
  - 基于用户反馈持续迭代，完善功能与安全性
  - 优化沙箱错误处理机制
  - 增强 Skills 执行与可扩展性

### 五、兼容性

- 主要面向 Linux 交互式终端环境。

- 运行环境：Python 3.10+。

- 如下发行版本已验证：

  - Deepin V25
  - Ubuntu 24.04

- 不同平台/发行版下沙箱能力与交互体验可能存在差异。

### 六、社区

- 加入我们的 [Discord](https://discord.com/invite/Pw2mjZt3) 与其他用户和开发者交流。

  