# 我如何使用 Grokbot 跟 Heptabase 联动，进行讨论、更新并让其他 Agent 参与进来

Grokbot 连上 Heptabase、Readwise 和 Todoist，用每天的记录触发讨论。

最近我高频使用 Grokbot 的 agent、ChatGPT，以及 Heptabase 内置的 agent。用得越多我越发现，自己可以在 Heptabase 里记录的内容越来越丰富。我会用 ChatGPT 和 Grokbot 分别去访问 Heptabase。随着用 Grokbot 做的事情变多，我越发觉得需要一个共享的 memory layer，而这个 layer 必然包含大量记录相关信息的笔记。毋庸置疑，我们的笔记软件就是最合适的 context layer 载体，所以我开始让 Grokbot 去访问 Heptabase 相关的 whiteboard 和内容。

这两天我在大规模、高强度地使用 Grokbot 来完成日常生活中的很多工作和讨论，在里面迭代了几个 bot，想把这些实践和体验分享给大家。

首先，我清楚 Grokbot 是一个常驻机器人，而不是像 ChatGPT 那样基于单次会话的单一聊天窗口。刚接触它时我就在思考：自己到底需要什么样的常驻机器人来辅助日常工作和生活，带来足够多的帮助？

我最先尝试的是一个“目标导师”。我人生中有一些想要实现的目标和愿望，比如坚持运动跑步、管理好个人健康等。于是我开始跟 Grokbot 聊，把智能手表里的睡眠数据、心率数据以及各种个人健康情况等 context 喂给它，让它担任健康顾问。它的功能就是每天跟我聊，了解我的健康数据并提供指导。但我发现这并没有太大帮助，创建之后并没真正用起来。

接着我让它做我的博客助手。是的，在发布第一篇博客之前，我就尝试建一个博客机器人来帮我管理博客，简直是脱裤子放屁。这个尝试同样失败了，这也是为什么我到现在才写这篇内容，如果博客机器人真的有效，文章早就发出来了。不成功的原因在于，用 Grokbot 管理博客只能帮你讨论和构思，却不能解决实际的创作过程。

回到前面的核心主题：普通对话聊完一个就会开新会话，而在 Grokbot 里可以做到持续不间断地聊天，所以它能积累越来越多对你的记忆和了解。

基于这种认识，我开始把 Grokbot 当作一些小助手。比如针对我做的一些项目，我尝试让它追踪和管理，把它连到 GitHub 上的一个 project，让它跟我一起讨论项目的演进与更新。但我发现 no, it's not easy：我提供的信息它虽然能读到，但可能是初代版本的缘故，设定一些 automation 太啰嗦，整体表现比较呆，没什么实际意义。

我在使用 Grokbot 的第一代 use case 里，主要是把它当成一个有 long-term memory、能长期对话的 ChatGPT。

我会把公司 ERP 系统的账号和密码发给它，让它帮我做一些查询操作。当我需要了解客户订单和欠款金额等数据时，直接跟它聊天查询就行，不用自己打开 ERP。做 PPT 时，我也会把需求丢给它去搜索调研。我甚至为它录制了几个 skill，教它怎么查询系统。因为它有 long-term memory，可以总结这几个 skill 并替我干活。但除此之外就没别的了，我用得比较少，也找不到更多 use case，总觉得它挺厉害但没太多强需求。

转机发生在刚过去的周末，我开始了第二代迭代，接触到了它的 automation 功能。这个功能可以用 Grokbot 设定定时任务，我以前虽然知道，但一直没打开这方面的脑洞。

上周日，我在聊天中创建了一个 mission tracker，相当于我的“使命导师”。我现在所处的阶段比较迷茫，希望它能推动我找到使命，定期发消息跟我聊聊：“昨天你都干了什么？朝你的 mission 前进了没有？做没做什么有意义的事，还是放假在家什么都没干？”

这是我 automation 的第一版：让 mission tracker 每天晚上发消息骚扰我、逼我反省。

但说实话效果很一般。它虽然抛出了问题，但我往往不想回答。因为如果它只发一个空泛的问题，我就必须输入一大段话来回应，这种体验很不爽，人家找你聊天都是自带话题的，凭什么要我单方面输出？

基于这个痛点，我迭代了第二版（V2）：

我让 Grokbot 去抓取我前一天在 X（Twitter）上存的 bookmarks。说来惭愧，我已经很长时间没打开 Readwise Reader 认真阅读了，但在 Twitter 上每天会存很多书签，这些内容非常容易统计。

于是我让 Grokbot 每天早上 6 点半登录我的 X 账户，去 profile 扒一下过去 24 小时存了哪些 bookmarks，阅读并整理一下，了解我最近在关注什么；然后在每天早上 8 点把它们整理成一个带有适当分组的 list 发给我。

因为我在 X 上存的内容，有时偏鸡汤，有时是 how-to，有时是故事，它们经常会触发我的一些感想。但我不可能一边刷 Twitter 一边复制粘贴到笔记软件里写 annotation，我比较懒。而如果它第二天早上主动把这些内容发给我，我就有话可聊了，可以顺手把想法丢给它，让它陪我一起梳理。

设定好这个之后，我又想到：除了回顾原文，我还可以让 Grokbot 把我在 Readwise Reader 里收藏的文章直接翻译好发给我。很多时候我收藏了文章却“已存不读”，就直接跳过了。现在我希望它把内容发到对话窗里，方便我快速扫一遍，然后直接用语音输入回复它，生成自己的 annotation 和心得感想，进一步丰富内容。

我把 Grokbot 搜集的这些数据称为 trigger（触发器），专门用来触发我的回答和表达灵感。通过不断优化 trigger，Grokbot 拥有了越来越丰富的 context。

很快我就达成了一个相对稳定的状态：它拥有访问我的 Todoist、Heptabase 和 Readwise Reader 这三个工具的权限和能力（通过 CLI、API 和 MCP 等）。

它会在 Readwise Reader 中帮我搞定英文内容的翻译。比如我遇到一篇想读的英文原文并存进 Reader，以前它只能存网页，想看中文就得在电脑端打开沉浸式翻译、等待翻译完成、再用插件存进 Reader。但我大部分时间都是用手机刷 Twitter，不可能专门开电脑去折腾沉浸式翻译，所以很长一段时间里，我的 documents 和 articles 变得非常鸡肋。虽然我有读英文的能力，但读起来真的很累，我就是不想读。

我想了一个新方法，开始让 Grokbot 去调研 Readwise Reader API / CLI 有哪些能力，发现它可以完整实现 document 的获取和导入。

于是我创建了一个 automation：每当我导入一篇文章到 Readwise Reader 时，它就会通过 Webhook 发一条消息给 Grokbot。Grokbot 收到提醒后，会调用 API 获取该 document 的元数据和原文，按照我指定的翻译 prompt 进行翻译，在本地整理好新内容，删除远端的英文原文，再将翻译好的内容重新导入 Readwise Reader。这样我平时刷 Twitter 时只需要随手保存，任何时候打开 Reader 都能直接阅读翻译好的中文版本。

接着，我通过 Readwise Reader 中的 highlights 作为 trigger 来进一步丰富流程。每天早上让它把昨天创建的 highlights 按 document 分组汇总发给我汇报。我要求它针对每个 document 发一条消息，并将其做成一个 thread，里面包含多条 highlights。我在 thread 里进行深入回复和探讨，它就可以基于指定内容去创建相关笔记并回答。

这只是一个草稿版。更进一步，考虑到 Readwise Reader 的内容都会同步到 Heptabase 中，我又做了一番调整：直接让它调用 Heptabase CLI 抓取同步进来的 highlight elements，包括我们在前一天创建和编辑过的卡片，全部作为 trigger 的一部分来进行探讨。

结合这几次迭代，我们目前的最终版本包含以下几个部分：

1. Todo 机器人（Grokbot）：每天早上和晚上分别汇报前一天的 Inbox 和 Today 中有哪些任务，陪我一起讨论整理，早上明确当天要做的任务，晚上清空 Inbox 和 Today 中的任务。

2. Read Agent：接收 Webhook 提示，将 Readwise Reader 中导入的英文内容自动翻译成中文。要求专业名词保留原文格式，且中英文之间保留空格。处理完成后打上 grokbot 的 tag 并导回 Readwise Reader。另外在每天中午我相对空闲的时候，它会发消息告诉我 Reader 的 Inbox 和 Feed 中有哪些值得读的内容，附上带跳转链接的文档标题以及中文 summarization，方便我快速筛选并点击跳转阅读，这极大地促进了我的阅读量。

3. Research Agent：任何时候我跟它聊完天，它都会按照指令调用 Heptabase CLI，在指定位置创建一个 whiteboard，把我们讨论内容的脉络整理进去。

4. Chief of Staff：每天早上发送前一天的内容总结作为 trigger，列出我前一天收藏的 Twitter、标注的 highlights、新建及编辑过的卡片。我会快速浏览并挑选有感触的内容进行回复，它则基于我的回复进一步编辑和调整对应卡片。

目前唯一的短板在于 Heptabase CLI 缺失了对 highlight 的操作能力，特别是编辑 highlight element 以及将 highlight element 放到 whiteboard 上这两个核心功能。否则，当 Grokbot 把内容发给我后，我完全可以直接回复做 annotate，由它更新调整 highlights、将我的感想转成卡片并连接到 whiteboard 上，在对应的 space 中归档脉络。

虽然现在还没办法实现这种完美的闭环，只能每天给我发汇报，但我中间尝试过一个更进阶的方案：让它每天早上生成一个以日期为标题的 Heptabase whiteboard，用名为 "X" 的 section 框住所有推特内容，若为文档 highlights 则以该文档标题作为 section 框住全部高亮。我点击链接即可跳转到 Heptabase 的 whiteboard 查看并调整。

现在唯一的痛点就是等待 Heptabase 团队完善 CLI 能力，届时整个工作流就能真正实现闭环了。

最后再分享两个我自己平时打造的 Grokbot 实现：

第一个是我们的 Health Agent。

从一开始我就给它创建并设定了一个更丰富的架构。Grokbot 的架构是不暴露给用户的，相对来说会追求减少你折腾工具所花的时间，让你沉浸在享受它提供的服务中。这带来的一个缺点是无法频繁微操，或者说微操的成本很高、很麻烦。所以我一般只查到架构级：让它把自己的架构分析汇报给我，说明有几个 automations、几个 ops 以及它自己的 [profile.md](profile.md)。如果觉得某几个标注为 suspended 的 automation 没用了，我就直接让它把相关文件删掉。对于 ops，我会提醒它在 [profile.md](profile.md) 里梳理清楚有哪些能力可供调用和整理，具体内容全部写进 ops，不要冗余重复，主要就是希望它能稍微节约 context，避免浪费。效果虽然不确定，但说了总比没说强。

目前我的健康顾问 Agent 配置分为四个模块：运动、睡眠、体检结果，以及目标追踪。上一次的体检结果我会交给它，让它按照我设定的目标去持续追踪和优化。它在 profile 里能看到这几个部分，但具体内容的讨论是分流的：跟我聊运动时，它就去查运动相关的 .md；聊睡眠就去查睡眠相关的 .md，不会全部混在一起，同时它也清楚自己整体负责这几个板块。

另外是我们的工作 Agent，我也给它分成了几个部分：

1. 日常经常要做的表格工作，单独分了一个 op

2. 读取公司 ERP 系统的数据，分了一个 op

3. PPT 制作：我每个月要做两次月度会议报告的 PPT，我把相关格式和模板提供给它后，它已经学会并创建了对应的 skill

然后再分享一个我自己实现的 Grokbot 玩法：博主 Don't be silent 刚发布了一系列开源 skills，其中像 "don't be silent goal" 这种用福格行为模型来实现的 skill 挺有意思，能帮人把目标精细化。于是我把他的 skills 仓库链接直接丢给 Grokbot，单独创建了一个 Agent 去盯着该仓库，并把这一系列 skills 全部安装下来。

我把这个 Agent 直接命名为 Don't be silent，假设它就是这位博主，放在我的 growth bot team 里。遇到我觉得适合他回答的问题，我就去向他提问，看他能给出什么反馈。

Skill 本质上就是对人的抽象与蒸馏。既然大家都在蒸馏自己、开源自己，那不妨把你觉得很厉害的人也蒸馏出来，加入到自己的团队里，让他为你打工。
