爱意满满的作品展示区。
fengzhe1983

两个月前发的那个求测试的桌面 Agent,现在已经有 60 个用户了,给大家聊聊踩的坑

  •  
  •   fengzhe1983 · 23h 19m ago · 408 views

    9 月 14 号我在这个节点发过一帖( https://v2ex.com/t/1241860 ),介绍了我的新应用,是一个用 DeepSeek Harness 套了 Electron 壳,做的桌面 Agent 。

    https://mareo.cn/

    一个多月了,一些用户真实的用起来了,一直用到现在。最多的一个账号已经发了一万多次请求,昨天一天还有两千多次。说实话,这比我预期的多。

    我一直坚持的是,用 Mareo 写 Mareo ,一个多月过去,踩了不少坑。其中最崩溃的是一次把自己打挂的迁移。。。

    给产品加邀请功能,数据库要加一个字段和一条索引。迁移代码大概长这样:

    function migrate(db) {
      db.exec(SCHEMA)        // SCHEMA 里有 CREATE UNIQUE INDEX ON users(inviteCode)
      addUsageColumns(db)
    }
    

    看起来没问题,但 SCHEMA 里包含:

    CREATE UNIQUE INDEX idx_users_inviteCode ON users(inviteCode) WHERE inviteCode IS NOT NULL;
    

    而这一列要靠 addUserColumns(db) 加上去。那个函数定义了,但没人调用。

    结果:老数据库启动时 no such column: inviteCode,进程直接退出。Docker 的重启策略是 unless-stopped,于是:启动 → 迁移失败 → 退出 → 重启 → …… 循环了 15 次。

    API 502 了十分钟。

    最讽刺的部分:我自己的模型调用也走这个网关。所以打挂它之后,我失去了「修复它」的能力,最后是靠 codex 帮我修的。

    后来改成什么样:

    • 部署前预演:把生产数据库 VACUUM INTO 一份副本,在隔离容器里跑一次迁移。失败就在这里停,线上一个字节都不动。
    • 双槽位切换:新实例先起在另一个端口,通过健康检查和真实数据读取之后,才把 nginx 指过去。失败就指回来。
    • 迁移必须有覆盖升级路径的测试:我们原来 155 个测试全过,因为它们全部新建数据库、走 fresh 分支,永远不会触发「老库升级」这条路径。

    现在的样子

    • 三个模型:DeepSeek 两档,加上 Sol / Astra ,昨天又加了 Terra (便宜一半)
    • 每天有免费额度,北京时间 0 点恢复;用完可以充值,¥10 起,扫码到账
    • Windows 和 macOS 都有

    这次想请大家帮个忙

    产品里加了邀请码,在额度面板底部。如果你觉得这玩意儿对同事有用,可以把码发给他。

    不过说实话:邀请奖励很小(¥5 ),我更想要的是反馈。

    用下来哪里别扭、哪个任务它做不好、你希望它会做什么——回帖或者发我邮箱都行。官网有个用户群入口,也可以直接加群。

    产品地址: https://mareo.cn

    fengzhe1983
        1
    fengzhe1983  
    OP
       23h 19m ago
    Windows 版也在,之前有人问过。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5272 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 02:11 · PVG 10:11 · LAX 19:11 · JFK 22:11
    ♥ Do have faith in what you're doing.