VoiceInput/README.md
JOJO 76fcda7210 docs: 更新 AGENTS.md 和 README.md,反映 Better Siri 改造
AGENTS.md:
- 新增记忆系统、对话持久化、新建对话、弹窗统一等架构说明
- 更新项目结构(MemoryWindow.swift、recall/remember/set_identity.js)
- 新增配置项速查表(助手名字/语气/阈值/自动发送等)
- 新增注意事项 8-10(消息顺序、弹窗状态、去重)
- 更新录音调度流程(Agent 走 handleTextInput)

README.md:
- Agent 重新定位为 Better Siri 个人助手
- 新增记忆系统、统一弹窗、Mac 原生集成等功能亮点
- 新增三种模式详解中的 Agent 记忆系统描述
2026-04-30 18:21:39 +08:00

125 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 纠错(可选)→ 注入光标。适合日常输入。
### AssistAI 助手)
语音提问 → 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.jsarm64
├── prompts/ # System prompt
├── src/ # bridge.js + 工具实现(记忆/身份/文件/命令/搜索等)
└── node_modules/ # npm 依赖
```
## 许可
MIT