Firekylin:一个 AI 友好的博客平台
上一篇《用 AI 重新折腾 Firekylin》,聊了我怎么用 AI 给这个老项目做了一轮改造。这篇就来看看,改造之后的 Firekylin 到底能怎么用。
我给它用了一个新的描述:AI 友好的博客平台。
对我来说,这不只是编辑器里多了几个 AI 按钮。写文章时,它能给建议;管理内容时,它能通过工具完成操作;在外部 AI 客户端里,也能连接博客,继续使用过去积累的内容。
下面就从配置开始,实际走一遍。文中的 AI 写作和后台对话演示使用真实模型返回的结果;MCP 部分用独立协议客户端演示授权与工具调用。录屏压缩了等待时间,演示文章都保留为草稿。
先给博客接上 AI
使用内置 AI 功能之前,需要先配置服务商。
进入后台的 插件管理 → 安装插件,找到自己需要的 AI 服务商插件,安装并按提示启用。官方插件目录已经有 OpenAI、Anthropic、DeepSeek、Google Gemini、Ollama 等选择。具体能用哪些模型,取决于安装的插件版本和服务商账号。
插件市场中的服务商扩展。图中的版本是截图时的版本,安装时以市场当前显示为准。
之后进入 系统设置 → AI 连接,配置对应服务商的 API Key、服务地址和模型,保存后测试连接即可。使用 Ollama 等方案时,则按插件要求配置对应服务。
新版支持同时保留多个服务商连接。你可以通过“增加服务商”继续配置其它连接,再选择其中一个作为默认。
但这里还有个比较实用的小功能:不同任务可以使用不同模型。
比如,标题和摘要可以交给一个响应比较快的模型;文章审阅可以单独选一个更适合长文的模型;封面则交给支持图片生成的模型。没有必要为了生成一个标题,把所有请求都交给同一个模型。
进入 系统设置 → 智能内容,就能分别开启功能并设置模型。没有单独指定时,文本功能使用全局默认模型。图片生成需要支持图片能力的服务商和模型,普通聊天模型并不一定能画图。
需要注意的是,Firekylin 本身开源免费,但调用模型产生的费用仍按服务商规则计算。换服务商也不是偷偷把所有任务一起切过去:已经明确绑定模型的功能,需要你自行调整对应配置。
写文章时,AI 能帮上哪些忙
实际运行的 Firekylin 2.18.0 智能内容设置,使用隔离示例站点。
标题、摘要和文章链接
我觉得写文章最容易卡住的地方,除了开头,可能就是标题了。正文已经写了不少,看着上面的标题输入框还是不知道该填什么。
Firekylin 可以根据正文生成标题建议。不满意可以重新生成,也可以在建议上继续修改,再确认使用。
摘要也是一样。生成后会填到内容摘要中,你可以继续编辑,不需要把 AI 给的内容原封不动地留下来。
另外还有文章链接里的 Slug。比如这篇文章的地址可以用 firekylin-ai-upgrade 这样的英文标识。开启对应能力后,AI 会根据文章生成建议,使用时还会检查是否重名。
生成建议前需要先有足够的正文,具体以编辑器的提示为准。
智能分类也是根据正文,从已有的分类和标签中挑选合适的选项。它不会为了显得很懂你,每写一篇就额外造出一堆新标签。
这些操作修改的是编辑器里尚未保存的内容,最后仍然需要正常保存文章。
真实模型生成的标题建议,可以修改、重新生成或确认使用。
审阅比一键重写更有用
相比直接让 AI 把整篇文章重新写一遍,我更希望能看清楚它到底改了什么。
Firekylin 的智能审阅会展示修改建议和差异。你可以接受某一处修改,拒绝另一处,或者自己调整之后再合并。
这点对个人博客挺重要的。有些句子不是最规范的表达,但就是自己平时说话的样子。如果一股脑全改成工整的书面语,文章是顺了,自己的味道也没了。
一个比较合适的使用方式是:先自己把事情讲完,再让 AI 帮忙找表达和结构上的问题。事实和技术判断还得自己看,不能因为句子变流畅了,就默认内容也正确了。
编辑器也支持翻译,可以选择目标语言,并按需一起翻译标题。
真实智能审阅结果,逐处展示原文、建议和修改理由。
写到一半的时候帮你接一句
在“智能内容”里开启“内容自动建议”之后,写作暂停时,编辑器会在光标附近给出浅色的后续内容。
觉得合适,按 Tab 接受;不合适,继续输入或者按 Esc 忽略就好。输入中文的过程中不会因为拼音还没选完就急着补一句。
它更像一个随手递过来的建议,不会直接把后面的文章替你写完,也不会自动保存。
当然,如果你发现它总是打断思路,关掉也完全没问题。辅助功能能不能提高效率,还是得看自己的写作习惯。
封面和配图也可以一起做
开启“图片生成和编辑”,并配置支持图片生成的模型之后,可以根据文章生成 16:9 封面,也可以在媒体管理中输入描述生成图片,再继续调整。
比如给这篇文章准备配图,可以这样描述:
为一篇介绍开源博客平台的文章生成横向封面。画面表现写作者、文章和 AI 助手之间的协作,风格简洁,避免大段文字,预留标题位置。
拿到结果之后,再根据实际效果补充要求,比如减少元素、换一个配色,或者调整主体位置。确认后上传到媒体库,再用于文章。
这里要区分两种能力:**看懂图片和生成图片不是一回事。**一个模型可以分析截图,并不代表它就支持生成封面,配置的时候需要分别看它的能力。
实际操作:生成标题、摘要,查看审阅差异。建议由真实模型返回,录屏压缩了等待时间。
后台也能直接聊了
如果每个功能都得先去找按钮,那其实还是熟悉的后台操作,只是按钮后面换成了 AI。
所以新版后台还增加了对话工作区。选择合适的模型后,可以直接用自然语言描述想做的事情。
比如:
帮我找出还没发布的草稿,按主题整理一下,先不要修改。
或者:
根据这些材料整理一篇文章,保存为私密草稿。缺少的事实单独列出来,不要补写成我的经历。
这时候 AI 不只是回答问题,还可以调用博客工具完成操作。界面会展示相关工具调用和执行结果,需要确认的操作也会给出预览。
查文章、创建和编辑私密草稿可以直接进行;发布、删除、修改已发布内容等操作则需要确认。对话里的操作仍然遵循当前账号的权限,不是换成聊天之后就什么都能做了。
用于管理博客的模型需要支持工具调用。只有文本能力的模型可以聊天,但不代表它能替你操作文章。
后台对话实际录屏:发送要求,模型调用工具创建私密草稿,再打开编辑器核对。等待已加速并压缩。
把截图和材料一起交给它
后台对话还支持添加图片和文本附件。
比如写一篇排障记录,可以把报错截图和 Markdown 排查笔记一起放进去:
结合截图和笔记整理排查时间线。把已验证的原因和仍然只是猜测的部分分开,先给提纲。
之后再围绕提纲补充信息、调整正文,最后保存草稿。
图片需要使用支持视觉输入的模型,目前支持静态 PNG、JPEG 和 WebP;文本支持 Markdown、TXT、CSV、JSON、日志等格式。PDF、Office 文档和动图暂时不在这里的支持范围内。
聊天附件不会因为上传就变成公开媒体链接,不过发给模型时,服务商仍然会接收到这些材料。这个区别需要知道:私有会话不等于内容永远只留在自己的服务器上。
在外面的 AI 客户端里管理博客
后台已经能聊,为什么还要做 MCP?
因为大家不一定希望换一个地方和 AI 工作。文章素材可能已经在自己常用的 AI 客户端里,写作风格、讨论记录和项目代码也都在那里。每次为了写博客再搬一遍上下文,还是挺麻烦的。
MCP 可以简单理解成一套让 AI 调用外部工具的接口。Firekylin 将博客能力通过它开放出来,支持远程 MCP 和 OAuth 的客户端就可以连接。
连接时填写自己博客的地址:
https://你的博客域名/mcp
接下来客户端会打开 Firekylin 的登录和授权页面。登录博客账号,确认申请的权限,授权后就可以在客户端里操作博客,不需要把账号密码或者后台 Cookie 复制给 AI。
连好之后,可以先用一个只读请求确认是否正常:
列出我最近的五篇文章,告诉我各自的标题和日期。
然后再尝试:
找到我以前写过的博客迁移文章,整理一下我当时遇到了什么问题。
或者:
按照我们刚才讨论的提纲生成文章,并保存为私密草稿,不要发布。
实际上,这次写文章之前,我就先让 AI 通过 Firekylin 读取了 2016 年之后的公开文章,整理技术写作和个人记录两种风格,再沿着这个风格准备新文章。
这个流程挺有意思的:博客里过去积累的内容,开始能够反过来帮助之后的写作。前提是把真实经历和事实保留下来,不能只学会几个“于是乎”“遂有此文”,就觉得已经是我本人了,哈哈。
外部客户端最终能用哪些工具,以连接后实际发现的能力和授权范围为准。发布、删除这类操作还有单独的确认要求,不能把第一次 OAuth 授权当成之后所有操作的默认同意。
MCP 实际操作录屏:OAuth 授权、工具发现、读取与创建草稿、后台核对。使用独立协议演示客户端,不是 AI 聊天界面;等待已加速并压缩,未伪造响应。
后台核对结果:AI 对话和 MCP 创建的两篇演示文章均保持草稿状态。
主题也可以好好折腾了
AI 说了这么多,博客本身的样子当然也不能落下。
新版提供了主题市场。进入 外观设置 → 安装主题,可以搜索主题、查看预览和版本信息,再选择安装。安装后切换主题,并根据主题提供的配置项调整外观。
主题市场中的部分主题预览。不同主题支持的配置和页面能力有所区别。
官方目录里已经能看到 Academic CV、Akina、Aquila、Argon、Aria 等不同方向的主题。有人需要个人介绍,有人喜欢文章卡片,也有人更在意安静的阅读页面,可以先从现成的主题里找接近自己需求的。
不过这里并不是说其它博客系统的主题随便复制过来就能运行。市场里的主题需要针对 Firekylin 适配,安装时也要留意版本要求。
Eta 负责页面,Widget 负责数据
主题底层使用 Eta 模板引擎。如果写过 HTML 和 JavaScript,看起来应该不会太陌生。文章、分类、标签和归档等数据,则可以通过 Widget 获取,模板不用自己去拼数据库查询。
比如侧边栏要显示最近五篇文章,就让对应的 Widget 提供文章列表,再用 Eta 输出成自己想要的样子。数据怎么来和页面怎么画,不用混在一起。想改布局或加一个独立页面,也可以让 AI 参考现有主题和接口协助实现,再检查真实页面的效果。
插件把功能继续接出去
Widget 之外,插件还可以接入文章创建、更新等环节,扩展 Markdown、提供接口,或者向主题提供函数和插槽。
以“相关文章”为例,可以让扩展负责查找关联内容,通过 Widget 把结果交给主题,再由 Eta 决定显示成列表还是卡片。
前面配置的 AI 服务商,本身也是插件。核心提供统一的调用能力,服务商插件负责和具体模型对接。以后增加服务商,就不用让标题生成、审阅和聊天功能各自重新接一次。
插件也可以注册供 AI 使用的工具,让 AI 能帮忙做的事情继续增加。能否在后台对话或外部 MCP 中使用,则取决于对应入口的权限和开放规则。
如果想自己做扩展,可以让支持文件操作的 AI 客户端加载 Firekylin Skill,再描述具体需求:
帮我开发一个可配置的站点公告插件,提供源码和配置说明,先在本地验证,不安装到线上。
MCP 提供操作博客的通道,Skill 帮 AI 了解接口和开发约定。具体写代码、安装和部署,还需要客户端具备对应能力。这也算是我理解的另一种“AI 友好”:除了能使用现成的功能,还能比较方便地围绕自己的需求继续折腾。
从一个小场景开始
折腾完这一轮之后,再看“AI 友好”这几个字,我觉得它至少应该体现在三个地方。
写作时,AI 能在需要的地方帮上忙;管理时,AI 能读懂博客里的内容,并通过明确的工具完成操作;想扩展时,主题、Widget 和插件又能提供比较清楚的接口,让 AI 的帮助不只停留在生成一段代码。
但文章最后怎么写、建议要不要接受、内容什么时候发布,还是应该由自己决定。个人博客最有意思的地方,本来就是里面有一个具体的人。
如果想试试,可以先创建一个本地项目:
npx firekylin new my-blog
cd my-blog
npm start
使用 Node.js 24+,或者符合项目要求的 Node.js 22.x 版本。第一次体验可以选择 SQLite,按提示完成初始化后就可以打开后台了。
感兴趣的同学可以看看源码,也欢迎实际用起来之后反馈问题。希望这次折腾,能让写博客和折腾博客这两件事情,都变得稍微轻松一点。
Comments