让AI从「帮你写文章」进化到「帮你管博客」——一个插件,20+个API,全量覆盖

痛点:当AI遇上Typecho

最近 AI 写博客越来越流行了。我自己平时用 Typecho 搭了博客,平时写文章、记笔记,零零碎碎积累了不少内容。时间一长就发现,管理博客本身变成了一件烦心事——发新文章要登录后台、改个分类要点好几下、审评论要一条条翻。这些重复操作如果能直接交给 AI 来做,能省下不少精力。

但问题是:Typecho 缺乏一个好用的 JSON API。自带的 XMLRPC 接口不仅操作有限,而且存在一些兼容性问题,很多场景根本覆盖不到。想让 AI 全面地管理博客——发布文章、审核评论、管理分类标签、处理媒体文件——没有一套完善的 API 是行不通的。

所以我想,不如自己动手。

插件诞生:TypechoAgent

与其在现有接口上修修补补,不如从零构建一套完整的 JSON API,直接操作数据库,绕过上层抽象的所有限制。

于是就有了 TypechoAgent,一个让 AI(或任何外部程序)通过 JSON API 管理 Typecho 博客的插件。

设计思路很简单

  1. 在 Typecho 中注册一个路由 POST /action/ta
  2. 接收 JSON 请求,直接读写数据库表
  3. 返回 JSON 响应
  4. 附带一套 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 代码助手可以直接理解参数和返回值的结构,不需要任何额外说明就能正确调用

安装:三步搞定

  1. TypechoAgent 文件夹上传到 usr/plugins/
  2. 后台 → 控制台 → 插件 → 激活 TypechoAgent
  3. 设置 API Key

配置完成后,你的博客就拥有了一个完整的 JSON API,AI 或其他程序都可以通过它来管理博客。

技术实现

插件端由两个文件组成:

Plugin.php — 插件激活时在 Typecho 的路由表中注册 ta 路由,指向 Action 类。

Action.php — 接收 JSON 请求,验证 API Key,通过 Typecho\Db 的 Query Builder 操作 contentscommentsmetasrelationshipsusersoptions 等数据表。setApiKey 还带有频率限制保护(5次/小时)。

开源

项目已完全开源(GPL-2.0 协议),包含完整的插件代码和 TypeScript 客户端。

GitHub 仓库: TypechoAgent

结语:工具应该做工具该做的事

写博客的核心是内容创作,而不是和后台管理面板较劲。

从发文章到审评论,从分类管理到标签维护——这些重复性的管理工作本就不该让人来操心。我的理念一直很简单:重复性的管理工作交给程序(或AI),人只负责创造

从之前的 Typora AI 聊天插件到现在的 TypechoAgent,我都在做同一件事——让工具去适应人,而不是反过来。


如果你也在用 Typecho,并且想让 AI 帮你管理博客,不妨试试这个插件。让你的 AI 助手不仅能「写」文章,还能「发」文章。

项目地址GitHub - TypechoAgent

让AI管理博客,让人专注创作——这就是我做这个插件的全部理由。