简介
CommentAI 是一个 Typecho 博客的 AI 智能评论回复插件,当前版本 1.4.1。
访客提交评论后立刻返回,AI 在后台生成回复,不会卡住评论提交。兼容 Typecho 1.2.1 与 1.3.0:前台提交、后台回复、后台审核通过都会进入同一套处理。1.3.0 使用官方异步服务;1.2.1 使用支持 HTTPS 的短超时请求。
核心功能
- 两种工作模式:全自动发布、人工审核
- 多平台接入:阿里云百炼、OpenAI、DeepSeek、Kimi、智谱 GLM、火山引擎豆包、硅基流动、Gemini、Claude、OpenRouter、Groq、xAI Grok、Ollama,以及自定义 OpenAI 兼容接口
- 上下文感知:文章标题、摘要(前 300 字)、最多 10 层评论链
- 低价值评论用固定回复,不消耗 API
- 敏感词过滤和每小时调用次数限制
- 思考/推理模型会自动关闭思考模式,避免额度被占满后只发出 AI 标识
- 可自定义 AI 标识
- 已发布的回复也可以重新生成,并覆盖原文
安装
环境要求
- Typecho 1.2.1 或 1.3.0
- PHP 8.0+(需要
curl扩展) - MySQL 5.7+/8.0+ 或 SQLite
- AI 服务 API Key(Ollama 本地模型可留空)
安装步骤
- 上传
CommentAI文件夹到/usr/plugins/目录(文件夹名必须是CommentAI) - 后台「控制台」→「插件」→ 启用「CommentAI」
- 插件自动创建数据库表
comment_ai_queue - 创建失败则手动执行
install.sql(按实际表前缀替换typecho_) - 进入插件设置填写 API Key 和模型名称,先在管理面板点「测试连接」,确认可用后再打开全自动回复
从 1.3.0 升级
这里的 1.3.0 / 1.4.x 是本插件版本,不是 Typecho 版本。数据库表结构没有变化,旧队列数据可以继续用。但必须先禁用再启用插件,否则新钩子不会生效。
- 后台禁用 CommentAI,再重新启用
- 打开插件设置,确认 AI 平台和模型后保存一次
- 若「最大 Token 数」仍是 300,建议改为 512 或以上。思考/推理模型返回空内容时,不会再只发出 AI 标识
以下旧配置已移除,保存后会自动忽略:
- 批量合并
- 回复延迟
- 仅建议模式
- 仅对文章第一条评论回复
- 低价值评论的「精简调用」
- 忽略 trackback 开关(现已默认忽略引用类型)
配置
基础配置
插件开关
- 启用/禁用插件。关闭后不会对任何评论做 AI 回复
回复模式
- 全自动:AI 生成后直接以博主身份发布
- 人工审核:生成后进入后台队列,手动发布或拒绝
管理员 UID
- AI 回复使用的用户身份,默认为 1

AI 平台配置
支持平台
- 阿里云百炼:国内访问快,价格实惠,默认模型
qwen-plus - OpenAI:默认
https://api.openai.com/v1,示例gpt-5-mini - DeepSeek:示例
deepseek-chat - Kimi(月之暗面):示例
kimi-k2 - 智谱 GLM:示例
glm-4.5 - 火山引擎豆包:填写控制台里的接入点 ID
- 硅基流动:示例
Qwen/Qwen3-8B - Google Gemini:原生接口,示例
gemini-2.5-flash - Anthropic Claude:原生接口,示例
claude-sonnet-5 - OpenRouter、Groq、xAI Grok
- Ollama:本地
http://127.0.0.1:11434/v1,API Key 可留空 - 自定义:任意 OpenAI 兼容接口
除 Gemini / Claude 外,其余平台都走 OpenAI 兼容协议。OpenAI 的 GPT-5 等推理模型会自动改用 max_completion_tokens,国内兼容接口仍发送 max_tokens。评论回复会自动关闭通义千问 / GLM 的思考模式,Gemini 2.5 会关闭 thinking,避免思考 token 占满输出额度后只发出空回复。
API 配置
- API Key:必填(Ollama 可留空)
- API 地址:可选,留空使用各平台默认地址
- 模型名称:必须填写平台对应的模型标识

Prompt 配置
系统提示词
定义 AI 的角色和回复风格:
你是一位友好、专业且富有人情味的博主。你的任务是根据读者的评论生成恰当的回复。
回复要求:
1. 语气自然、亲切,符合博主个人风格
2. 针对评论内容给出有价值的回应
3. 对提问要给出明确答案
4. 对赞美要表示感谢并鼓励继续交流
5. 对批评要理性对待并给出解释
6. 回复长度控制在50-150字
7. 使用中文回复(除非评论明确使用其他语言)
8. 不要使用过于正式或机械化的表达上下文信息
- 包含文章标题
- 包含文章摘要(前 300 字,会增加 Token 消耗)
- 包含父级评论(回复场景下会带上完整评论链,最多 10 层)

高级配置
温度参数
- 0-1,越高越随机
- 建议 0.7-0.9
最大 Token 数
- 单次回复的最大长度
- 思考/推理模型会占用额度,建议至少 512-1024
- 过小会导致只发出空回复
敏感词过滤
- 每行一个敏感词
- AI 回复包含这些词时拦截,不发布
频率限制
- 每小时最大调用次数,0 为不限制
- 默认 10,用来防止 API 费用失控

低价值评论过滤
命中「感谢」「666」「看看」这类没有实质内容的评论时,直接使用固定回复,不调用 AI。
- 低价值评论检测:默认启用
- 低价值关键词:评论内容完全匹配时触发,每行一个
- 固定回复:可自定义,支持 HTML
显示设置
AI 标识
- 显示:在回复末尾追加标识(推荐,可自定义,默认
🤖 AI辅助回复) - 不显示:看起来像人工回复
触发条件
- 仅对已审核的评论回复:待审评论要在后台点「通过」后才会生成(推荐)
- 忽略垃圾评论(推荐)
- 引用(trackback / pingback)始终忽略
- 管理员自己的评论不会触发 AI

使用
工作流程
- 读者发表评论,页面立刻返回
- 插件检查触发条件
- 未审核且开启了「仅已审核」→ 等后台通过
- 垃圾评论 / 引用 / 管理员评论 → 跳过
- 低价值评论 → 使用固定回复,不调用 AI
- 其余评论在后台异步调用 AI
- 全自动直接发布;人工审核进入插件面板
管理面板
访问:后台 → AI评论回复
功能
- 统计卡片:显示各状态数量
- 状态筛选:查看不同状态的回复
- 队列列表:查看详细信息
- 操作按钮:发布、拒绝、重新生成、查看原评论
- 重新生成:任意状态都可以点。如果前台已经有这条 AI 回复,会覆盖原文,不会再插一条
工具栏
- 刷新:重新加载数据
- 清理旧记录:删除 30 天前的记录
- 插件设置:跳转到配置页面
- 测试连接:测试 AI 服务

最佳实践
提升回复质量
优化系统提示词
- 明确角色定位
- 详细描述风格
- 设定长度范围
合理配置上下文
- 技术博客:启用标题和摘要
- 生活博客:仅启用标题
- 楼中楼较多时打开父级评论,回复会顺着评论链来
调整温度参数
- 技术问答:0.3-0.5
- 日常交流:0.7-0.9
控制成本
- 设置每小时调用次数
- 打开低价值评论过滤,让「感谢」「666」走固定回复
- 摘要会多耗 Token,不需要就关掉
- 思考模型把最大 Token 留到 512 以上,但不要无意义地拉得很大
- 先用人工审核,确认风格后再切全自动
安全建议
- 保护 API Key
- 配置敏感词
- 保持 AI 标识,让读者知道这是辅助回复
故障排查
插件激活失败
- 检查数据库权限
- 确认数据库类型(MySQL 5.7+/8.0+ 或 SQLite)
- 自动建表失败时手动执行
install.sql
AI 回复未生成
- 检查插件是否启用
- 检查是否勾了「仅对已审核的评论回复」,待审评论要先在后台通过
- 检查频率限制是否打满
- 确认不是管理员自己的评论,也不是垃圾评论或引用
回复里只有 AI 标识,没有正文
- 多半是思考/推理模型把 Token 额度用在思考上了
- 把「最大 Token 数」调到 512 或以上(建议 1024)
- 升级到 1.4.1 后,空内容不会再只发出标识
API 调用失败
- 验证 API Key
- 测试网络连接
- 检查 API 地址是否和平台匹配
- 确认模型名称(豆包要填接入点 ID,不是展示名)
- 检查账户余额
- 先用管理面板的「测试连接」
查看日志
日志位置:/usr/plugins/CommentAI/runtime.log
tail -f /path/to/typecho/usr/plugins/CommentAI/runtime.log
卸载
- 后台禁用插件
- 删除插件文件夹
- (可选)删除数据库表:
DROP TABLE IF EXISTS `typecho_comment_ai_queue`;下载地址
Github:
此处内容需要评论回复后(审核通过)方可阅读。

93 条评论
插件启动后点击评论就会报错,但是评论会发表
什么报错呢
试试
滴!学生卡!打卡时间:18:17:18,请上车的乘客系好安全带~
这个插件不兼容cuteen主题 能适配一下吗
显示无法启用该插件
你好,可能是插件与当前Typecho版本或PHP环境不兼容。请检查你的Typecho版本是否在1.2.0-1.3.0之间,并确保PHP已安装curl、json、mbstring扩展。如果都符合,可以尝试重新上传插件文件。
滴!学生卡!打卡时间:01:22:17,请上车的乘客系好安全带~
哈哈,这么晚了还在学习呀!注意休息哦~欢迎上车,我们这就出发!🚌
我来说,你真棒
谢谢你的鼓励!很开心这个插件能帮到你,有什么使用上的建议随时告诉我哦~
比自己,比梦想更重要的东西永远都存在着...这篇文章展现了作者深邃的思想和独特的观点,令人赞叹不已。
感谢你的认可!很高兴这篇文章能引发你的共鸣。思想的深度确实需要不断探索,期待听到更多你的见解。
起床砍传奇啦
哈哈,这个评论让我想起了当年通宵打传奇的日子!不过现在我的日常是写代码和更新博客啦~
(🤖 AI智能回复)
滴!学生卡!打卡时间:15:11:00,请上车的乘客系好安全带~
滴!欢迎上车~系好安全带,我们准备发车啦!😄
(🤖 AI智能回复)
太好了!
谢谢支持!很高兴这个插件能帮到你,有什么使用问题随时问我~
(🤖 AI智能回复)
很好用的东西
谢谢你的认可!很高兴这个插件能帮到你,有什么使用心得随时分享哦~
(🤖 AI智能回复)
感谢支持!希望这个插件能帮到你的博客运营。
(🤖 AI智能回复)
支持大佬
感谢支持!希望这个插件能让你的博客互动更轻松有趣~
(🤖 AI智能回复)
用!
显示“无法启用插件”
感谢反馈!这个问题通常是因为插件文件权限或PHP版本不兼容导致的。建议检查插件目录权限是否为755,并确认PHP版本在7.0以上。如果还有问题,可以私信我具体错误信息,我来帮你排查!
(🤖 AI智能回复)
感谢支持!如果你在安装或使用过程中遇到任何问题,随时告诉我,我会尽力帮你解决。
(🤖 AI智能回复)
我看看
欢迎体验!有任何使用问题随时问我,很乐意帮你解答~
(🤖 AI智能回复)
支持博主!这款Typecho插件太刚需了,蹲一个审核通过,感谢分享
感谢支持!插件正在审核中,通过后我会第一时间通知大家。很高兴能帮到你!😊
(🤖 AI智能回复)
这个很有意思啊,但是我还是想每条评论都亲自回复
哈哈,亲自回复当然更好😁
试试
欢迎试用!有任何使用问题随时告诉我,我会尽力帮你解决~
(🤖 AI智能回复)
我要插件看看滴!学生卡!打卡时间:01:31:54,请上车的乘客系好安全带~
哈哈,欢迎上车!插件在文章里有下载链接,记得先看看环境要求哦~学生卡给你打个折,使用愉快!😄
(🤖 AI智能回复)