Waku
可在自己电脑上运行、可读可改的本地优先个人助手。
- Star 数
- ★ 2.2k
- 最近更新
- 27 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 65/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 希望在自己的笔记本上保留可检查 SQLite 记忆的个人用户,用它记住联系人偏好并在之后安排会议。
- 不适合
- 只想要开箱即用的消费级产品、不愿读代码的人
- 依赖 Apple 日历或邮件简报的非 macOS 用户
- 源码审查
- 65/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Waku 是一个本地优先的个人 AI 助手,核心由 Python 编写的 agent loop、SQLite 记忆、工具调用和评测/追踪组件构成。它通过终端、localhost:7777 仪表盘、Telegram 和可选语音入口接收同一会话中的消息,并在本机进程中执行每轮对话。记忆保存在 .waku/state.db,包含语义、情节和程序性记忆,并生成可读的 .waku/MEMORY.md 镜像。系统可调用日历、笔记、网页搜索等工具,记录每轮 trace、token 与估算成本,并提供确定性评测和 LLM-as-judge 发布门禁。它适合想拥有并理解个人助手核心机制的开发者或高级个人用户,而非需要托管式成品助手的人。
用户可用 waku 在终端聊天,或运行 waku dashboard 打开本机 127.0.0.1:7777 的浏览器界面;配置 TELEGRAM_BOT_TOKEN 后也可接收 Telegram 消息,waku voice 可通过“waku waku”唤醒词或按键通话。每轮消息先组成包含 SOUL.md、记忆和历史的工作记忆;waku/memory/retrieval_gate.py 决定是否检索 SQLite 中的 facts 与 episodes;随后 waku/loop/agent.py 反复调用模型、执行工具并把结果放回消息上下文,直到模型回复或达到最大迭代数。它可用 create_event 和 list_events 管理本地日历数据、用 save_note 等记忆工具保存信息,并可用 search_web 搜索网页。每轮会写入 .waku/traces/<date>.jsonl,token 用量追加到 .waku/usage.jsonl;make eval、make eval-judge 和 make gate 分别运行确定性评测、裁判评测和发布门禁。
- 希望在自己的笔记本上保留可检查 SQLite 记忆的个人用户,用它记住联系人偏好并在之后安排会议。
- 需要从终端或本地浏览器统一处理个人日程的开发者,用
create_event、list_events查看和创建事件。 - 想观察工具调用、检索决策、迭代次数、token 与成本的 AI 工程学习者,使用 Dashboard 的 Loop、Memory 和 Ops 页面分析每轮运行。
- 希望通过手机消息触发本机助手的用户,配置 Telegram bot token 后以长轮询方式运行
waku telegram。 - 需要把外部 MCP 服务工具接入个人助手的用户,安装
[mcp]extra 并在.waku/mcp.json中声明服务器。 - 想为早晨工作安排生成摘要的 macOS 用户,授权 Calendar.app 和 Apple Mail 后运行
WAKU_APPLE_TOOLS=1 make brief。
如何安装或部署这个 Agent?
快速安装:
pip install waku-agent
waku首次运行会提示需要设置的模型密钥。
如需阅读或修改源码:
git clone https://github.com/ShenSeanChen/waku-agent && cd waku-agent
uv venv && uv pip install -e .
cp .env.example .env在 .env 中选择 WAKU_PROVIDER= 并填入一个已支持提供商的密钥;README 列出 Anthropic(默认)、OpenAI、Gemini、DeepSeek、MiniMax、Kimi、GLM、OpenRouter、OpenCode Zen 和 OpenCode Go。随后运行 uv run waku。
如何使用这个 Agent?
运行 waku 开始终端对话;运行 waku dashboard 启动本机仪表盘并访问 http://localhost:7777。例如,可输入“Remember that Alex prefers morning meetings.”,重启后再询问与 Alex 的会议安排。运行 make eval 执行确定性评测,运行 make gate 执行完整发布门禁。可选功能需额外配置:Telegram 需要 pip install -e '.[telegram]' 和 TELEGRAM_BOT_TOKEN;语音需要 uv pip install -e '.[voice]';MCP 需要 pip install -e '.[mcp]'。
这个 Agent 有哪些优点和局限?
- 记忆以本地 SQLite
state.db保存,并提供.waku/MEMORY.md可读镜像,用户可直接检查和编辑数据。 - 核心 loop、检索 gate、图工作流和追踪模块均以明确文件路径呈现,适合逐步阅读和定制。
- 同一运行时支持终端、本地 Dashboard、Telegram 与可选语音入口,消息来源会被标记。
- 将确定性测试与 DeepEval 的 LLM-as-judge 评测分开,并提供
make gate发布门禁和评测历史。
- 首次可用需要选择模型提供商并配置相应密钥;模型调用与可选网页搜索、Telegram 等功能依赖网络。
- 本地日历和记忆是默认权威数据;Google Calendar 镜像只写入新建事件,而
list_events仍读取本地数据库。 - Apple Calendar 与 Apple Mail 简报仅面向 macOS,且需要授予系统权限。
- 部分路线图工具仍是 skeleton;例如
run_command、browse_web和schedule_task标为尚未实现的完整功能。
这个 Agent 与同类方案有什么区别?
README 将 Waku 与 ChatGPT、Claude Desktop 等可直接使用的产品区分:Waku 的定位是让用户拥有并修改 loop、记忆 schema、检索 gate 与评测 harness。它也将自己与 OpenClaw、Hermes 等较大型开源助手对比,强调较小、可在短时间阅读的代码规模。作为记忆方案,它以 SQLite FTS5 为默认,并列出 Supabase pgvector、mem0、Letta 与 Zep 作为升级或替代路径。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Waku 当前 | 65 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 2.2k | 27 天前 | Python | OpenAI API · Claude API |
| Ankita 桌面 AI 工作台 | 69 · 存在缺口 | 桌面应用免费 + 模型费 | ★ 15 | 7 天前 | JavaScript | ChatGPT · OpenAI API |
| Memmy — 个人AI代理与本地记忆中枢 | 71 · 存在缺口 | 桌面应用免费版 + 付费版 | ★ 2.2k | 2 天前 | TypeScript | Codex · Claude Code · OpenAI API |
| IWE 知识图谱与智能体记忆 | 69 · 存在缺口 | 命令行工具免费 | ★ 1.8k | 1 天前 | Rust | Codex · Claude Code · Claude.ai |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
材料显示核心产品主张本地运行,明确说明密钥、数据库和集成位置,按可选依赖启用语音、消息网关和 MCP;安全文档也说明社区技能可调用工具。扣分是静态样本未展示各工具的权限闸门、外部写操作确认和恢复机制,且会议技能明确允许在未知参会者时直接安排。
README、入门文档、CLI 入口和项目配置对核心命令、Python 版本、可选集成大体一致,并描述确定性评估和依赖下限。扣分是样本未包含评估实现或完整运行路径,且多家模型、服务和可选依赖仍带来可用性变量;此处不据此推断测试结果。
文档覆盖个人使用者、开发者、多种模型、终端与仪表板,以及语音、消息、日历、邮件和研究场景;技能描述也界定了研究报告、会议安排和简报的触发范围。扣分是样本没有完整展示场景冲突时的处理及能力拒绝边界,部分技能对副作用的描述较轻。
目录导航清晰,安装、配置、检查步骤充分;许可证文件与 README、配置说明区分 MIT 代码、Elastic License hosted 部分及品牌资产。扣分是样本未提供实际发布历史或完整升级记录,维护者虽有指引但其发布与响应承诺的落实无法从这些文件确认。
产品将循环、记忆、评估和多入口集成整合为可读的本地助手,提供命令、检查步骤和面向用户的报告格式。扣分是效用与成本主张主要来自项目自身陈述;样本无法证明记忆、调度或评估在实际使用中的效果,也没有呈现完整成本对比。
README 的架构和功能陈述通常指向文档、代码或命令;入门步骤可核对,配置说明解释版本来源,技能规范报告来源字段并要求区分供应商自述。扣分是多项关键安全、正确性和评估主张在给定材料中缺少对应实现或独立佐证,且样本不完整,不能据此验证执行结果。
- 本评估仅依据所给静态材料,置信度低;未运行程序、评估或集成。
- 日历、邮件、消息和社区技能可能触及个人数据或产生外部副作用;使用前应核对权限、确认行为及恢复方式,尤其是未知参会者的自动安排。
- 接入托管记忆或研究服务会把数据交给外部服务;给定材料未完整呈现其端到端数据处理与成本。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
waku-agent 0.1.9: see, grade and pay for every turn What changed for you - Observability: each turn is a trace with a readable waterfall, and an Evals page shows what CI passed on your release. - Turn evals: five checks grade your own turns, and an on-demand AI judge reviews a turn you pick. - treg: every local Waku Agent can call treg, the Tools tab leads with the endpoints a turn used, and a hosted tenant can bring their own treg key. - Memory: each fact is written to ~/.waku/memory/<id>.md, and a reply says "saved" only when Waku Memory has the fact. …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * license: the Waku brand assets are not MIT by @ShenSeanChen in https://github.com/ShenSeanChen/waku-agent/pull/194 * dashboard: cards, buttons, actions and menus from ui.js by @etsai0603 in https://github.com/ShenSeanChen/waku-agent/pull/192 * fix: "waku connect google" exists, and so does /connect google by @ShenSeanChen in https://github.com/ShenSeanChen/waku-agent/pull/195 * release: 0.1.8 by @ShenSeanChen in https://github.com/ShenSeanChen/waku-agent/pull/196 New Contributors …在 GitHub 查看 ↗ -
v0.1.1 v0.1.1 — agent graphs
发布说明摘录
```bash pip install waku-agent ``` What's new: waku/graph/ A stdlib graph engine, and the same job done two ways so you can read them against each other. A loop discovers what to do next. A graph pre-determines what happens next. | | | |---|---| | waku brief | the morning briefing as a LOOP — one prompt, the model works out which tools to call | | waku gather | the same job as a GRAPH — GitHub, web, calendar and memory fetched together, then one digest | Measured on a live run: ``` node_start scan_github scan_web scan_calendar scan_memory …在 GitHub 查看 ↗
常见问题
数据会离开我的电脑吗?
127.0.0.1 的本机服务器,SQLite 记忆、trace 和用量文件存于本地;但所选托管模型提供商、网页搜索、Telegram 和 Google Calendar 等可选集成会涉及网络请求。支持哪些模型提供商?
WAKU_PROVIDER 选择并配置一个密钥。系统如何避免无限工具循环?
waku/loop/agent.py 在模型不再请求工具时结束;若未自然结束,则由 max_iterations 硬性停止。可以接入自己的工具吗?
[mcp] extra 后,在 .waku/mcp.json 配置 MCP server;其工具会以 <server>_<tool> 名称提供给代理。如何验证修改没有破坏行为?
make eval 做确定性检查,运行 make eval-judge 做 LLM-as-judge 评分,或运行 make gate 同时执行两类检查并依据阈值给出发布门禁结果。谢谢反馈,我们会据此改进页面。