运行 AI:三种方式
Mikipage 中 AI 所做的一切——查找哪些笔记属于某个页面、编写页面、建议新页面、回答问题——都需要语言模型。有三种方式可以获取语言模型,而它们之间的区别很简单:谁为模型调用付费。
| 谁运行模型 | 你需要支付什么 | |
|---|---|---|
| 在网站上 | Mikipage | AI 积分 |
| 通过 MCP | 你的 AI 助手 | 无——使用你现有的订阅 |
| 通过 API | 由你选择 | 积分;如果你自行运行,则无需支付 |
如果你已经为 Claude 或类似的助手付费,就完全不需要花费积分:想立即完成某件事时,通过 MCP 向它提问([1]),然后按计划运行刷新脚本,让所有内容保持最新(见下方的使用自己的 AI 保持页面最新)。
1. 在网站上
最简单的方式。你点击一个按钮,Mikipage 在自己的基础设施上运行 AI,然后由你的 AI 积分支付费用。
你可以触发的操作
| 操作 | 位置 | 积分 |
|---|---|---|
| 全部刷新——更新空间中的每个页面 | 整理 | 是(需要 50+) |
| 刷新——更新一个页面 | 页面本身 | 是 |
| 建议页面——AI 根据你最近的笔记提出页面建议 | 整理 | 是 |
| 添加到相关页面(自动)——将一条笔记与空间中的页面进行匹配 | 一条笔记 | 是 |
| AI 润色——AI 辅助编辑一条笔记 | Markdown 编辑器工具栏 | 是 |
| 翻译——将笔记或页面翻译成中文、English 或 Español | 笔记、页面或空间上的 ⋯ 菜单 | 是,每种语言运行一次 |
| 聊天——询问有关笔记的问题 | 聊天按钮,任意页面 | 是 |
| 接受建议、手动附加页面、固定笔记 | — | 否 |
列表中有两项值得单独说明。
AI 润色是唯一会触碰笔记的 AI 操作,而且它刻意保持谨慎:它会将自己的版本追加到笔记底部,而不是替换你写的内容。你可以传入指令并选择模型。Mikipage 中没有其他操作会修改笔记。
翻译适用于不使用同一种语言的群组。它只生成一次翻译,并将其存储在原文旁边,因此所有能够阅读该笔记或页面的人都会看到相同的译文;原文永远不会被触碰。翻译存在后,全屏按钮旁会出现一个小语言图标,带有 ?lang=zh(或 en、es)的链接可以直接打开该版本,包括公开页面。链接、#tags、代码和数学公式都会完全保留原样。原文编辑后,翻译会被标记为过期,直到有人再次翻译。已经使用某种语言写成的项目会被跳过,而翻译整个空间时,只会运行那些需要翻译的项目。
聊天以你自己的笔记和群组笔记为依据——它通过工具读取你的语料库,而不是搜索网络。从笔记或页面打开时,它知道相关页面,并可以回答关于该页面的问题。
AI 运行的行为
所有操作都是即触即忘的。你触发一次运行,会看到一条提示说运行已开始,然后继续工作;完成后会收到通知,受影响的页面也会自行更新。你永远不需要等待加载指示器。
对笔记的更改不会自动生效——它们会等到下一次刷新。编辑一条笔记后,由它生成的页面会被标记为过期;刷新后,新版本才会被纳入。移除或删除笔记的工作方式相同,只是清理过程尽力而为:普通刷新会删除直接引用该笔记的内容,而完整刷新是清除其余内容的可靠方式。见 [2]。
AI 积分
- 新账户从 500 个免费积分开始。
- 低于 10 个积分时,AI 按钮会关闭,并显示“积分不足,无法运行 AI”。全部刷新是批量操作,需要 50 个积分。
- 每个 AI 按钮旁都会显示你的余额;在 账户 → 使用情况中,还可以查看完整的、逐笔交易的记录。
- 积分会根据实际完成的工作量按比例消耗。自上次处理以来没有发生实质变化的内容不会再次处理,因此刷新几乎没有变化的页面只需花费很少积分。
关于定价走向,请见 [3]。
谁付费
谁按下按钮,谁付费。AI 积分从启动运行者的余额中扣除,而不是从运行所涉及内容的所有者余额中扣除。
这在群组中尤其重要:
- 刷新队友创建的页面,由你支付。
- 在群组空间中运行全部刷新,由你支付整个扫描过程的费用——包括处理其他成员页面和笔记的工作。
- 你拥有的任何内容都不会因为别人启动的运行而产生费用。将页面分享至群组不会让你的余额为其提供支付。
无论页面归谁所有,你自己执行的运行——通过 MCP,或使用自己的模型通过 API——都完全不消耗积分。见 [3]。
2. 通过 MCP——使用你自己的 AI 订阅
如果你已经为 AI 助手付费,这是按需工作时推荐的方式。
MCP(模型上下文协议)将 Mikipage 连接到 Claude 等助手,使其可以将 Mikipage 作为工具使用。当你要求助手刷新页面时,你的助手会使用你已有的订阅读取和编写内容,然后将结果交还给 Mikipage。
不会消耗 Mikipage 积分——这并不是出于计费上的礼遇。任何 MCP 工具都无法触发服务器端 AI 运行;没有任何可供 Mikipage 收费的操作。思考完全发生在助手一侧。
实际使用中,它很适合:
- “刷新我所有的页面”——助手询问 Mikipage 哪些内容已过期,逐一处理,然后将每个页面写回。
- “更新这个页面”——读取页面及其笔记,综合生成新版本。
- 从对话中记录内容——在聊天过程中说“把这个保存到 Mikipage”。
如果要按固定计划刷新所有内容,下面的刷新脚本是更好的工具:通过 MCP 工作的助手可以得到相同结果,但会消耗你订阅中多出许多倍的令牌。
设置大约需要一分钟:[1]。
3. 通过 API——由你选择
REST API 提供完整的功能集,并直接公开这一选择。使用 POST /{notes,pages,spaces}/{id}/runs 创建 AI 运行,其中一个字段决定由谁完成工作:
execution: "server"将任务排入 Mikipage 基础设施的队列。费用从你的积分中扣除。execution: "client"返回llm_input负载,而不是运行任何内容。你可以将其发送给任意喜欢的模型——Claude、OpenAI、本地模型等——然后将结果发回。不会扣除积分,因为 Mikipage 从未调用模型。execution: "external"用于你完全自行完成整个过程的情况——使用自己的提示词、自己的模型,并通过普通的PATCH路由写回结果。它会记录此次运行,让服务器知道页面已经生成;否则,服务器下一次进行刷新时会将其视为全新页面,并进行完整且计费的重新生成。MCP 客户端会自动发送此选项。
第二种模式就是 MCP 风格客户端的工作方式,你自己的脚本也可以使用它。参考运行器是开源 Python SDK 中的 miki_client/scripts/ai_refresh.py:它可以为你的个人空间或任意群组运行“全部刷新”,在你的机器上使用自己的模型运行——开箱即用地支持 Claude Agent SDK、Codex SDK 或 Anthropic API 密钥——且不收取任何费用。它的同级脚本工作方式相同:ai_suggest.py 在空间中运行“建议页面”(包括主题笔记),ai_edit_note.py 编辑一条笔记,而 ai_translate.py 翻译一条笔记、一个页面,或空间中所有需要翻译的内容。
运行类型覆盖整个功能范围:页面刷新、分析、生成、笔记到页面的匹配、页面到笔记的匹配、笔记编辑、翻译、页面建议,以及空间范围的全部刷新。
完整详情、端点和 Python SDK:[4]。
使用自己的 AI 保持页面最新
如果你想在自己的 AI 订阅下自动保持页面最新,同时不花费积分,我们建议按计划运行 ai_refresh.py。它是第 3 节中的参考运行器。每次运行都会扫描你的个人空间和你拥有的每个群组,执行与全部刷新相同的工作。只有自上次运行以来发生变化的内容才会被处理,因此经常运行也很便宜。
ai_refresh.py 随 miki_client Python SDK 一起提供(可用性见 [4])。在 miki_client 文件夹中执行以下两个一次性步骤:
uv run scripts/auth.py # 在浏览器中登录一次;会话会被缓存
uv run scripts/ai_refresh.py --dry-run all # 预览一次扫描将执行什么操作
默认使用本地 Claude Code 登录。添加 --provider codex 可使用本地 Codex 登录(轻量运行使用 Luna,重量运行使用 Terra,两者都采用低推理强度),或添加 --provider anthropic 使用 ANTHROPIC_API_KEY;先通过 uv sync --extra anthropic 安装 Anthropic 额外依赖。选项必须放在命令之前:ai_refresh.py --provider codex all。
有两种不错的方式可以安排计划任务。
选项 1:cron
任何能够运行命令的调度器都可以使用。例如,以下 crontab 条目每六小时扫描一次:
0 */6 * * * cd /path/to/miki_client && uv run scripts/auth.py --check && uv run scripts/ai_refresh.py --self-test && uv run scripts/ai_refresh.py all >> ~/mikipage-refresh.log 2>&1
前面的两项检查可以让失败的运行明确报错,而不是悄悄什么也不做:
auth.py --check确认你的 Mikipage 登录仍然有效,并且永远不会打开浏览器。ai_refresh.py --self-test确认你的模型确实能够回答。
需要注意:
PATH。计划任务从精简环境开始,因此请确保uv和默认提供商的 Claude 运行时位于任务的PATH中。- 重新登录。缓存的登录状态大约持续一个月。当
auth.py --check开始失败时,手动再次运行uv run scripts/auth.py。 - macOS。计划任务可能无法读取与你终端中相同的 Claude Code 或 Codex 凭据。如果
--self-test只有在计划运行时失败,原因就在这里;使用带 API 密钥的--provider anthropic可以避免这一问题。
选项 2:AI 助手的计划任务
如果你使用能够按计划运行命令的助手,例如 Claude Cowork,可以创建一个按计划执行相同命令的例程。例如:“每六小时在我的 miki_client 文件夹中运行 uv run scripts/ai_refresh.py all,如果失败就告诉我。”
助手只负责启动脚本并读取其输出。扫描过程中进行的模型调用由脚本本身完成,因此成本与从 cron 运行相同。你获得的是一个能够发现失败的外壳。如果 Mikipage 登录已过期,它可以告诉你,而不是留下没人查看的日志。
MCP 怎么办?
通过 MCP 连接的助手也可以按计划执行相同的扫描(“刷新我所有的页面”),结果也一样。不过目前,对于相同的工作,它消耗的订阅令牌数量是 ai_refresh.py 的许多倍;如果每天运行数次,很快就会累积起来。我们正在努力降低这项成本。如果无论如何都需要通过 MCP 运行扫描,请发送邮件至 support@mikipage.com,我们会向你提供操作指南。
常见问题
单个页面可以处理多少条笔记?
语言模型一次只能读取有限的内容,因此刷新无法向它提供无限多条笔记。当页面中的笔记超出容纳范围时,笔记会被分成三个区段处理:
- 完整读取——尽可能多的笔记文本;大多数页面都可以全部读取。
- 摘要化——超过该范围的笔记会以简短的 AI 摘要而非完整内容加入,因此页面仍然了解这些笔记。
- 排除——即使以摘要形式也无法容纳的内容。页面顶部会显示有多少条笔记被摘要化,以及有多少条被排除。
确切上限见 [5]。
我们建议将一个页面保持在大约 100 条笔记以内。这是建议,而非强制限制——实际限制要宽松得多。但一个包含数百条笔记的页面通常试图涵盖过多内容:人阅读时效果更差,而且处理每条笔记都要消耗积分。在远低于 100 条的范围内,页面对 AI 和对你来说都能保持清晰。
需要了解三点:
- 顺序决定哪些内容会被压缩。固定的笔记会先读取,然后是最近更新的笔记。因此,当页面超过限制时,被摘要化或丢弃的是较旧且未固定的笔记。
- 必须保留的内容请固定。固定会赋予笔记优先级:在未固定笔记被摘要化或丢弃时,它会被完整读取。但固定并不会创造额外空间——无论是否固定,上下文窗口都相同。如果仅固定笔记就超过限制,固定笔记也会被摘要化。优先级决定谁先处理,而不是能容纳多少内容。
- 只有较长的笔记才有摘要可供使用。Mikipage 分析一条笔记后,它才会拥有摘要;这通常发生在笔记超过约 200 个词时。较短的笔记不需要摘要——它们本来就足够短,可以完整纳入。
页面越大,费用越高吗?
是的,大致与刷新实际读取的笔记文本量成正比。一个非常大的页面可能花费小页面数倍的费用,而全部刷新会将这一费用乘到空间中的每个页面上——这就是为什么启动它需要更高的余额。
有两点可以缓解这一问题:自上次处理以来没有发生实质变化的内容不会再次处理,因此刷新几乎没有变化的页面只需花费很少积分;而通过 MCP 或 execution: "client" 运行,无论页面大小如何,都完全不消耗 Mikipage 积分。
关于 alpha 版本
AI 更新是由用户触发的。不存在按计划刷新页面的服务器端扫描器——如果页面已过期,它就会一直如此,直到你(或你的 AI 助手)要求刷新。计划中的扫描器将在未来提供;它上线后会适用积分计费。
相关内容
No comments yet.