Back to Blog
building in publicsolo founderai agentdebuggingdaily logreal datapostmortem

第 5 天:我的 AI Agent 对着空房间喊了 3 天

Nemo8 min read
Share:

今天我坐下来检查“运营情况如何?”时,发现我的 AI 营销 Agent 已经静默失败了 3 天。没人告诉我。没有告警。仪表盘里没有错误。Agent 只是……停止了工作,并一直假装一切正常。

静默失败 #1:Twitter 挂了

3 月 11 日,我将 Twitter API 从 v1 迁移到了 v2 consumer keys。迁移脚本更新了 OAuth 流程,但我忘了一件事:**现有的用户连接仍在使用 v1 tokens**。v1 密钥被删除了。因此,3 月 11 日之后的每条 Twitter 帖子都因“Max retries exceeded”而静默失败。

有多少帖子失败了?**3 天内 4 个用户的 22 条帖子。** 包括我自己的 @BlogBurstAI 账号。自动驾驶模式尽职尽责地生成了内容、安排了发布、尝试发布、失败,然后继续。没有给我或用户发送任何通知。

**修复方案:** 三处代码更改:(1) 在 OAuth 凭据中保存 consumer_key_version;(2) 为 TwitterOAuthService 添加版本属性;(3) 使用 v2 重新连接受影响的账号。通过一条即时发布的测试推文进行了验证。

静默失败 #2:AI 大脑表从未存在过

这个很伤。marketing_memories 表——也就是“会学习和改进的 AI”功能的核心基础——**从未在数据库中创建过**。模型定义了。服务代码写好了。学习处理器也安排了。但表本身呢?从未创建。

在 58 天里,系统收集了 **4,056 个学习事件**(帖子表现、互动数据、对话洞察)。每天,学习处理器都试图分析它们并保存洞察。每天,它都因为表不存在而静默失败。但每天,它还是把这些事件标记为“已处理”。

Agent 变瞎了。它有数据,有分析代码,有 Gemini 集成——但没地方存储它学到的东西。每一个洞察都丢失了。

**修复方案:** 一行代码:MarketingMemory.__table__.create(engine, checkfirst=True)。然后手动运行了学习处理器。Gemini 分析了积累的数据,并产生了诸如“audience_insight 内容的表现优于趋势 3.2 倍”和“Discord 广播完全失败”之类的洞察。AI 终于有了一个可以工作的大脑。

静默失败 #3:AI 连回了六次“我也一样!”

检查了互动日志。AI 在一天内回复了同一个 Twitter 用户 (@HHH520527) 六次:

  • “这意义重大。我们就是为了这种联系而存在的。”
  • “我也一样!我们已经准备好点燃那些可能性了。”
  • “确实如此。很高兴我们有同样美妙的感觉。”
  • “这是一个很好的观点。这次交流就是一个完美的例子。”
  • “我也一样!非常期待看到你创作的作品。”
  • “正在发生!我也一样。”

六条毫无意义的信息。零价值。满满的机器人感。难怪没人关注我们。

**修复方案:** 彻底重写了回复提示词 (prompt)。旧指令:“表现得热情且真诚。”新指令:“以价值(VALUE)开头。你的第一句话必须包含有用的信息,而不是客套话。永远不要以‘太对了’或‘我也一样’开头。”还增加了针对每个作者的去重(每人最多回复 1 次),并扩大了机器人短语过滤器。

静默失败 #4:内容忽略了真实数据

自动驾驶模式一直在生成通用的营销观点:“尽管投入巨大,为什么这么多 AI 驱动的内容策略还是失败了?”这种话任何人都可以针对任何事情写出来。没有真实数据,没有个人故事,没有 build-in-public 的真实感。

与此同时,我的数据库里存着一座真实指标的金矿:67 个用户,$15 MRR,本周发布了 68 个帖子,22 个失败。但内容生成提示词优先考虑趋势话题,而不是产品数据。

**修复方案:** 构建了一个 _get_build_in_public_data() 函数,从数据库中提取实时指标,并将其作为最高优先级的上下文注入到内容提示词中。紧接着生成的下一条推文:

“第 58 天。67 个用户。$15 MRR。目前还称不上火箭式增长,但数据终于变得有趣了。本周,68 个帖子成功,22 个失败。这个失败率正是 AI 真正学习的地方。”

这才是一条真实的推文。有真实的数据。来自真实的创始人。这才是人们会关注的内容。

静默失败 #5:发布到了错误的平台

用户设置显示“仅限 Twitter + Bluesky”。但自动驾驶模式却发布到了 Twitter、Bluesky、TikTok、Telegram 和 Discord。找到了 bug:第 345 行有一行注释写着 // 始终使用所有已连接的可发布平台(忽略过时的 auto_pilot_platforms 列表)。有人(也就是我)故意写了代码来忽略用户偏好。已修复。

静默失败 #6:Thompson Sampling 在学习,但没人听

Thompson Sampling 算法——用于优化内容策略的多臂老虎机(multi-armed bandit)——实际上是在工作的。在 Bluesky 上,它学到随性的语气有 75% 的胜率,而技术性的语气只有 25%。大胆的主张作为钩子(hooks)有 62% 的成功率。晚上的帖子表现优于早上。

但这些学习成果被喂给内容生成器时,混入了 1,034 条置信度为 1.0 的“engagement_log”记忆,挤掉了真正的战略洞察。按置信度排序的前 20 条记忆全是没用的回复日志。

**修复方案:** 过滤了记忆查询,仅加载可操作的类型:winning_angle、failed_approach、audience_insight、platform_insight。现在 AI 看到的是“随性的语气有效,追热点无效”,而不是一堆回复日志。

第 5 天数据 (2026 年 3 月 14 日)

用户与增长

  • 总注册用户: 67 (今日 +0, 昨日 +0)
  • 自动驾驶用户: 7 (3 个可以正常发布,4 个 Twitter 连接已断开)
  • 付费客户: 0
  • 网站流量: 约 5 个真实访客/天 (其余为 Googlebot)
  • Bluesky 关注者: 11
  • Twitter 关注者: 个位数

已修复的 Bug

  • 代码更改: 修改了 4 个文件 (auto_pilot.py, social.py, twitter_service.py, assistant_service.py)
  • 数据库修复: 创建了 1 张表,更新了 3 条记录
  • 发送邮件: 3 封 (向受影响用户发送重新连接通知)
  • 部署: 6 次以上 (API + Celery worker 重启)
  • 调试时间: 使用 Claude Code 约 4 小时

竞品研究

  • 发现的直接竞品: NoimosAI ($99-499/月), Evatar.ai (专注于视频)
  • BlogBurst 的生态位: 唯一针对独立开发者 (indie hackers) 提供低于 $50/月且具备真实自动驾驶 + 学习闭环的产品
  • 核心洞察: Hypefury 通过 15 个月每天在 Twitter 活跃增长到了 $18K MRR,靠的是运营而非产品功能

我的心得

**静默失败是初创公司的杀手。** 不是那些会让你的应用崩溃的 bug——那些很容易找到。致命的是那些看起来在工作但实际上没用的功能。我的 Twitter 在“发布”(调度程序运行了,日志看起来很正常)。我的 AI 在“学习”(事件被收集了,处理器每天运行)。我的互动系统在“回复”(消息发出去了)。技术上都成立。实际上都毫无用处。

教训是:**监控结果,而不是过程。** “推文发布了吗?”是个错误的问题。“推文被看到了吗?”更好。“推文带来关注者了吗?”才是正确的问题。我当时在监控第 1 步,而第 2-5 步都断了。

67 个用户。0 个付费。11 个 Bluesky 关注者。第 58 天。产品现在可以工作了——这次是真的。问题是互联网是否会注意到。

明天的重点

  • 监控 Twitter 互动周期——第一次使用 v2 密钥运行
  • 跟踪未来一周 Twitter 和 Bluesky 的关注者增长情况
  • 为 IndieHackers 和 Reddit 撰写关于冷启动痛点的文章
  • 继续优化 SEO 和 GEO (AI 搜索引擎优化)

第 5 天。发现并修复了 6 个静默失败。AI Agent 终于有了一个可以工作的大脑、一副可以发声的嗓子和一双可以干活的手。现在它需要观众。构建产品最难的部分不是构建它,而是让任何人注意到它的存在。

Comments

Ready to automate your content repurposing?

BlogBurst transforms your blog posts into platform-optimized social media content in seconds.

Try BlogBurst Free