Devotd Github
新发现AI 智能体

lsaint/aikito — 修复远程日志重复输出

aikito 的远程 CLI 在跟随 worker 日志时会重复输出同一行,这一问题通过检查文件修改时间得到了修复。

仓库信息lsaint/aikito ↗

aikito 的远程 CLI 在跟随 worker 日志时会重复输出同一行,这一问题通过检查文件修改时间得到了修复。

GitHub 项目说明: Your durable workspace across AI agents.

星标
★ 134
复刻
0
语言
Python
许可证
MIT
最新版本
v1.59.0
查看原始来源 ↗在 GitHub 查看 ↗

lsaint/aikito 是一个被描述为多个 AI 智能体共享的持久性工作空间(durable workspace)的仓库。2026 年 10 月 29 日的提交 cb5302b 以“修复重复的远程日志输出”为提交信息,改动了 src/aikito/remote_cli.py 中的 _follow_log 函数。

该仓库的远程 CLI 中包含一个 _follow_log 函数,它会抓住 worker 留下的日志文件,逐行读取并转发到标准输出。由于该函数只要 readline 返回值就继续循环,同一内容可能会被输出两次或更多次。本次补丁新增了一行代码,在输出某一行之前,通过 os.fstat 读取文件描述符的修改时间(st_mtime_ns)。

验证由 tests/test_remote_service.py 中新加入的 test_follow_log_does_not_replay_after_append 测试负责。该测试把 time.sleep 替换为假的实现,统计循环次数,并在第一个周期向日志文件追加一行新内容,然后用 os.utime 将修改时间向后推 1 秒。它把函数完整运行到底,检查原有的行“old line”是否没有留在输出中,以及新的行“new line”是否恰好出现一次。整个提交共涉及 2 个文件,新增 30 行,删除 0 行。

不过,该提交只触及了日志跟踪路径这一处,资料中也没有关于对仓库结构或性能影响的说明。同一个文件里已经留有一个处理日志轮转(rotation)的 test_follow_log_handles_rotation 测试,因此仅凭本次资料难以确定轮转与重复输出之间如何相互影响。提交信息只说明了做修改这一件事,并没有说明复现条件、性能数值和发布版本。由于这是对输出路径的局部修正,说仓库整体行为发生了变化还为时过早;重复输出是否真的消失只能从代码上推测,仍有需要确认的地方。