
Ami 是一款本地运行的开源AI助手,被设计为用户的影子工人与协作式聊天伙伴。它通过个人令牌连接应用程序、数据源、代码仓库和各类工具,维护一个实时更新的待办事项列表,并学习用户的工作习惯,代表用户执行重复性任务。所有操作均在本地完成,数据存储于 ~/.ami/ 目录下,采用 SQLite 和 Markdown 格式的上下文记忆系统。Ami 的权限严格受限于用户自身权限——它只能访问用户能访问的内容,且任何数据外传都需经过用户主动确认。
首次运行时,`./ami` 命令会自动完成依赖安装(通过 corepack 管理的 pnpm)、控制台构建与服务启动。随后,浏览器将打开本地地址 `http://localhost:4141`,进入引导界面。用户需配置模型来源:可接入 Claude API 密钥,使用 Kimi、GLM、DeepSeek、MiniMax 等支持 Anthropic 协议的托管开放模型,或部署完全本地的模型。后者可通过 LiteLLM 代理层对接 Ollama、vLLM 或 llama.cpp,例如 `ollama pull qwen3:32b` 后启动 `litellm --model ollama/qwen3:32b`,即可在本地提供兼容 Anthropic 协议的接口。无论何种模式,所有连接器均优先本地轮询,确保无数据离开设备。
Ami 控制台包含多个核心页面:首页展示待办事项与会议日程;待办事项页整合来自各工具的统一任务流,支持计划与启动任务;聊天页提供与任务执行相同界面的协作对话能力,可提问、发起工作、创建新任务或更新记忆;代理页用于设定定时运行的自动化流程;历史页归档过往任务记录;记忆页以可视化上下文图形式呈现当前知识结构;设置页管理连接器、模型参数与使用数据。全局搜索与通知功能位于顶部导航栏。
其工作流程分为四个阶段:摄入阶段,系统轮询各连接器获取新提及、私信、邮件、邀请与通知;分类阶段,由大模型判断每条信号是否为任务、信息参考或忽略,并分配截止日期,同时将用户的反馈(修正、驳回、覆盖)转化为决策轨迹,嵌入上下文图中;行动阶段,每个待办项支持五种操作:计划(仅读探索并提出可编辑方案)、开始(在隔离环境中执行任务)、解决(标记已自行完成,仅更新记忆)、忽略/推迟(前者阻止未来同类提醒,后者次日重新出现)、审查(任务完成后,交付成果如 PR 链接、文档、会议链接等出现在任务页,并附带草拟回复)。所有输出均由用户审阅后手动发送至原始渠道(如 Slack 线程、邮件线程或 Linear 工单),而用户的修改与迭代会被版本化记录,持续优化 Ami 的后续表现与写作风格。
每一次任务执行与聊天对话都会扩展上下文图。该图以 Obsidian 风格的 Markdown 文件形式存储于 ~/.ami/knowledge/,每份笔记具备 wiki 链接与 Git 版本历史,支持追溯与恢复。这一记忆系统不仅作为任务执行的首要参考,还支撑多项功能:会议准备阶段,自动匹配参会人员与关键议题,生成简报;会议录音功能可在本地录制麦克风与系统音频,利用 whisper.cpp 实现设备端转录,并将结果输入记忆库,全程无音频外传;写作风格学习基于用户真实消息与对草案的修改,使回复自然贴近个人表达;决策轨迹机制则在相似情境重现时调用过往例外与覆盖记录,实现与用户一致的自动化判断。
目前 Ami 支持有限数量的预置连接器,但允许用户自定义扩展。进入设置后点击“添加连接器”,填写名称、主页 URL 与使用意图,Ami 将利用用户提供的 LLM 令牌自动构建适配的连接逻辑,使其可用于任务执行与聊天交互。所有配置信息与凭证仅保存在本地,删除 ~/.ami/ 目录即彻底清除全部数据。唯一外发请求仅为模型服务端点(Anthropic / 自托管 / 本地)与用户授权工具的接口调用。
Ami 当前仍处于开发阶段,最初作为团队内部工具打造,因实际效用显著而决定开源共享。项目遵循 MIT 许可证,未来将发布更稳定版本。
夜雨聆风