AGENTS.md: - 新增记忆系统、对话持久化、新建对话、弹窗统一等架构说明 - 更新项目结构(MemoryWindow.swift、recall/remember/set_identity.js) - 新增配置项速查表(助手名字/语气/阈值/自动发送等) - 新增注意事项 8-10(消息顺序、弹窗状态、去重) - 更新录音调度流程(Agent 走 handleTextInput) README.md: - Agent 重新定位为 Better Siri 个人助手 - 新增记忆系统、统一弹窗、Mac 原生集成等功能亮点 - 新增三种模式详解中的 Agent 记忆系统描述
125 lines
4.7 KiB
Markdown
125 lines
4.7 KiB
Markdown
# VoiceInput
|
||
|
||
macOS 菜单栏语音输入应用 —— 按住 Fn 键录音,AI 帮你处理。
|
||
|
||
## 功能
|
||
|
||
### 三种模式(双击 Control 切换)
|
||
|
||
| 模式 | 图标 | 功能 |
|
||
|------|------|------|
|
||
| **Input** 语音输入 | 🎤 | 语音转文字 + LLM 纠错 → 注入光标 |
|
||
| **Assist** AI 助手 | 💬 | 语音提问 → AI 回复(弹窗 + 可选朗读) |
|
||
| **Agent** 个人助手 | 🤖 | Better Siri — 多轮对话 + 记忆系统 + 工具调用 + 流式输出 |
|
||
|
||
### Agent 个人助手亮点
|
||
|
||
- 🧠 **记忆系统**:自动记住你的偏好、习惯、待办,跨对话持久化
|
||
- 🖥 **Mac 原生集成**:充分利用 osascript、系统命令等 macOS 能力
|
||
- 🎤⌨️ **统一弹窗**:语音/打字输入使用同一刘海界面,按 Fn 即弹出
|
||
- 📝 **语音自动发送**:说话内容自动填入输入框并发送(可关闭)
|
||
- 💬 **对话持久化**:对话自动保存,启动时恢复;token 计数跟踪
|
||
- 🔄 **自动新建对话**:token 超限时自动开启新对话(阈值可配)
|
||
- ⚙️ **可定制身份**:设置 AI 助手名字、语气、对你的称呼
|
||
- 🔧 **工具调用**:读写文件、执行命令、网络搜索等
|
||
|
||
### 其他亮点
|
||
|
||
- 🎤 **按住 Fn 说话**:全局监听,长按录音松开注入
|
||
- 📝 **流式识别**:Apple Speech Recognition 实时转录
|
||
- 🌐 **多语言**:简中 / 繁中 / English / 日本語 / 한국어
|
||
- 🪟 **刘海弹窗**:AI 回复在 DynamicNotch 弹窗展示,支持复制和继续对话
|
||
- 🔊 **语音朗读**:macOS 原生 TTS 朗读 AI 回复(Assist/Agent 可独立开关)
|
||
- 🎚 **实时波形**:5 条 RMS 驱动的球形波动画
|
||
|
||
## 系统要求
|
||
|
||
- macOS 14+
|
||
- 辅助功能权限(监听 Fn 键)
|
||
- 输入监控权限(Fn 键长按检测)
|
||
- 麦克风权限
|
||
- 语音识别权限
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
make build # 编译 + 生成 .app
|
||
make run # 构建并启动
|
||
make dmg # 生成分发包(自动清空 API Key)
|
||
```
|
||
|
||
首次运行需授权**辅助功能**和**输入监控**两个系统权限。
|
||
|
||
## 使用
|
||
|
||
1. 点击任意文本输入框
|
||
2. 双击 **Control** 切换到想要模式
|
||
3. 按住键盘左下角 **Fn / 🌐 键**
|
||
4. 说话,胶囊窗口显示实时转录
|
||
5. 松开 Fn → 文本注入(Input)/AI 回复弹窗(Assist/Agent)
|
||
|
||
点击菜单栏图标可切换语言、模式或配置 LLM。Agent 模式下可从菜单进入**助手设置**和**记忆管理**。
|
||
|
||
## 三种模式详解
|
||
|
||
### Input(语音输入)
|
||
语音转文字 → LLM 纠错(可选)→ 注入光标。适合日常输入。
|
||
|
||
### Assist(AI 助手)
|
||
语音提问 → LLM 回复。可选择**直接注入**或**刘海弹窗**展示。
|
||
弹窗模式下可开启**朗读**,AI 回复自动语音播报。
|
||
|
||
### Agent(个人助手 / Better Siri)
|
||
语音或打字输入 → 多轮对话 → 工具调用 → 流式输出。
|
||
Agent 被设计为**个人 Mac 助手**,会自动记住你的偏好、习惯和待办,
|
||
熟练使用 macOS 原生能力(如 osascript、系统命令)帮你完成任务。
|
||
|
||
**记忆系统**自动工作,跨对话持久化:
|
||
- 你说"记住明天下午3点开会"→ Agent 记下待办
|
||
- 你说"我不喜欢蓝色"→ Agent 记下偏好
|
||
- 你下次问"给我推荐一个壁纸"→ Agent 自动避开蓝色
|
||
|
||
内置 Node.js 运行时,无需额外安装。
|
||
|
||
## 配置
|
||
|
||
| 模块 | 配置方式 | 存储位置 |
|
||
|------|---------|---------|
|
||
| Input LLM | 菜单栏 `🎤 Input LLM` → Settings | UserDefaults |
|
||
| Assist LLM | 菜单栏 `💬 Assist LLM` → Settings | UserDefaults |
|
||
| Agent LLM + 助手设置 | 菜单栏 `🤖 Agent LLM` → Settings / `⚙️ 助手设置` | `~/Library/Application Support/VoiceInput/` |
|
||
| 记忆管理 | 菜单栏 `🧠 记忆管理` | `~/Library/Application Support/VoiceInput/memory/` |
|
||
|
||
Agent 支持多模型配置,在 Settings 中添加/编辑/删除。覆盖安装不会丢失配置。
|
||
|
||
## 构建
|
||
|
||
```bash
|
||
make build # Debug 构建
|
||
make release # Release 构建
|
||
make run # 构建并启动
|
||
make install # 安装到 /Applications
|
||
make dmg # 签名 + 创建 DMG(自动清空 API Key)
|
||
make clean # 清理
|
||
```
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
Sources/
|
||
├── App/ # AppDelegate + 菜单栏控制器
|
||
├── Core/ # 按键监听、语音识别、LLM、Agent 桥接、弹窗管理
|
||
├── UI/ # 浮动窗口、波形、设置面板、Agent 弹窗、记忆管理窗口
|
||
└── Utils/ # 配置持久化
|
||
|
||
Agent/ # Node.js CLI(智能体运行时)
|
||
├── bin/node # 内置 Node.js(arm64)
|
||
├── prompts/ # System prompt
|
||
├── src/ # bridge.js + 工具实现(记忆/身份/文件/命令/搜索等)
|
||
└── node_modules/ # npm 依赖
|
||
```
|
||
|
||
## 许可
|
||
|
||
MIT
|