让AI从「帮你写文章」进化到「帮你管博客」——一个插件,20+个API,全量覆盖
痛点:当AI遇上Typecho
最近 AI 写博客越来越流行了。我自己平时用 Typecho 搭了博客,平时写文章、记笔记,零零碎碎积累了不少内容。时间一长就发现,管理博客本身变成了一件烦心事——发新文章要登录后台、改个分类要点好几下、审评论要一条条翻。这些重复操作如果能直接交给 AI 来做,能省下不少精力。
但问题是:Typecho 缺乏一个好用的 JSON API。自带的 XMLRPC 接口不仅操作有限,而且存在一些兼容性问题,很多场景根本覆盖不到。想让 AI 全面地管理博客——发布文章、审核评论、管理分类标签、处理媒体文件——没有一套完善的 API 是行不通的。
所以我想,不如自己动手。
插件诞生:TypechoAgent
与其在现有接口上修修补补,不如从零构建一套完整的 JSON API,直接操作数据库,绕过上层抽象的所有限制。
于是就有了 TypechoAgent,一个让 AI(或任何外部程序)通过 JSON API 管理 Typecho 博客的插件。
设计思路很简单
- 在 Typecho 中注册一个路由
POST /action/ta - 接收 JSON 请求,直接读写数据库表
- 返回 JSON 响应
- 附带一套 TypeScript 客户端,供 AI 开箱使用
20+个API,覆盖博客管理的方方面面
插件提供 20+ 个操作,涵盖了博客管理的所有常见场景:
| 类别 | 操作 | 用途 |
|---|---|---|
| 系统 | ping | 连通性测试 |
setApiKey | 设置 API Key | |
stats | 博客统计概览 | |
| 文章 | listPosts / getPost | 查看文章 |
createPost / updatePost / deletePost | 文章增删改 | |
searchPosts | 按关键词搜索 | |
| 评论 | listComments / getComment | 查看评论 |
editComment | 审核:通过/待审/垃圾 | |
updateComment | 编辑评论正文/作者 | |
deleteComment | 删除评论 | |
| 分类 | getCategories | 所有分类 |
setPostCategories | 设置文章分类 | |
createCategory / deleteCategory | 分类增删 | |
| 标签 | getTags | 所有标签 |
createTag / deleteTag | 标签增删 | |
| 页面 | listPages / getPage | 查看页面 |
createPage / updatePage / deletePage | 页面增删改 | |
| 用户 | listUsers | 所有用户/作者 |
| 媒体 | listMedia | 附件/媒体列表 |
从文章发布到评论审核,从分类设置到用户管理,一个插件全部搞定。
AI原生支持:不只是API,还有客户端
如果只是提供一个 API,AI 要调用还得现写请求代码。所以我额外做了一套 TypeScript 客户端 + Agent Skill,每个方法都有完整的类型定义:
import { createClient } from './skill/client'
const blog = createClient({
url: 'https://your-blog.com',
apiKey: 'your-api-key',
})
// 获取博客统计
await blog.stats()
// { posts: 42, comments: { total: 128, approved: 120, waiting: 5, spam: 3 }, ... }
// 搜索文章
const results = await blog.searchPosts('Typecho')
// { data: [{ cid: 1, title: '...', ... }], total: 1, page: 1, pageSize: 10 }
// 列出待审核评论
const { data: comments } = await blog.listComments(1, 20)
const pending = comments.filter(c => c.status === 'waiting')
for (const c of pending) {
await blog.editComment(c.coid, 'approved') // 一键批准
}
// 发布新文章
await blog.createPost({
title: 'Hello AI',
text: '# 这篇文章由AI发布',
categoryIds: [1],
tags: 'AI, Typecho',
})TypeScript 类型定义让 AI 代码助手可以直接理解参数和返回值的结构,不需要任何额外说明就能正确调用。
安装:三步搞定
- 将
TypechoAgent文件夹上传到usr/plugins/ - 后台 → 控制台 → 插件 → 激活 TypechoAgent
- 设置 API Key
配置完成后,你的博客就拥有了一个完整的 JSON API,AI 或其他程序都可以通过它来管理博客。
技术实现
插件端由两个文件组成:
Plugin.php — 插件激活时在 Typecho 的路由表中注册 ta 路由,指向 Action 类。
Action.php — 接收 JSON 请求,验证 API Key,通过 Typecho\Db 的 Query Builder 操作 contents、comments、metas、relationships、users、options 等数据表。setApiKey 还带有频率限制保护(5次/小时)。
开源
项目已完全开源(GPL-2.0 协议),包含完整的插件代码和 TypeScript 客户端。
GitHub 仓库: TypechoAgent
结语:工具应该做工具该做的事
写博客的核心是内容创作,而不是和后台管理面板较劲。
从发文章到审评论,从分类管理到标签维护——这些重复性的管理工作本就不该让人来操心。我的理念一直很简单:重复性的管理工作交给程序(或AI),人只负责创造。
从之前的 Typora AI 聊天插件到现在的 TypechoAgent,我都在做同一件事——让工具去适应人,而不是反过来。
如果你也在用 Typecho,并且想让 AI 帮你管理博客,不妨试试这个插件。让你的 AI 助手不仅能「写」文章,还能「发」文章。
让AI管理博客,让人专注创作——这就是我做这个插件的全部理由。
没有评论