← Blog
2026-08-10 · 5 min read

声で実バグを直す — Sente実録

Sente(先手)は teai.io の CLI コーディングエージェントです。te と打てばキーボードで、 sente と打てばで使えます。今回は「デモ用のおもちゃのTODOアプリ」ではなく、 実際の開発で出る本物のバグを、声で「このバグ直して」と頼むだけで直せるかを試した実録です。

動画: 声で『このバグ直して』— Senteが実バグ(レート制限のoff-by-one)を修正(YouTube)

題材 — レートリミッタのオフバイワン

題材は Python 標準ライブラリだけで書いた固定窓のレートリミッタです。 max_requests=3 のはずなのに、実際は4件通ってしまう。判定条件が上限より1件多く許してしまう、 よくあるオフバイワン(off-by-one)です。

# ratelimiter.py(バグ入り)
    def allow(self, key: str) -> bool:
        now = time.time()
        window = int(now // self.window_seconds)
        count = self._hits[(key, window)]
        self._hits[(key, window)] = count + 1
        # ↓ ここが1件多く通す
        return count <= self.max_requests + 1

テスト test_ratelimiter.py は2件とも FAIL(赤) の状態から始めます。 あとは声でこう頼むだけです。

run_test.sh を実行して。落ちたら原因を特定して、直して、もう一度通して」

Senteがやったこと

Sente(この回のエンジンは Claude)は、指示を受けて自分でテストを実行し、原因を特定し、修正し、再テストまでを通しでやりました。 直したのは たった1行です。

  def allow(self, key: str) -> bool:
      ...
-     return count <= self.max_requests + 1
+     return count <= self.max_requests

この1行で、赤かった2件のテストが両方 PASS(緑) になりました。Sente 自身の報告はこうです。

直しました、テストは二件とも合格です。原因は判定条件が上限より一件多く通す書き方になっていたことで、 比較を上限ちょうどまでに修正しました。次の一手として、別々のキーが独立して制限されるかのテストを足しましょうか。

ポイントは、直した後に次の一手を1つだけ提案しているところです。 「キーごとに独立して制限されるか」は、このレートリミッタで次に踏みやすい落とし穴で、 言われてみれば確かに欲しいテストです。

エンジンは選べる。Sente経由なら安く動く

この回のエンジンは Claude でしたが、Sente は Codex でも OpenCode でも同じように動かせます。 エンジンを差し替えても、テストを回して・原因を特定して・直して・もう一度通す、という流れは変わりません。

そして同じモデルを直接使うより、Sente(teai.io)経由の方が安く使えます。 具体的な料金や使い方は使い方ガイド料金ページをどうぞ。

はじめ方

# インストール
curl -fsSL https://teai.io/te | sh

# キーボードで
te

# 声で
sente

あとは、直したいコードのあるディレクトリで sente と打って、 「このバグ直して」「テスト通して」と声で頼むだけです。

環境について: 声モードはmacOSで動作確認しています(録音に sox が必要です — brew install sox)。読み上げは KOE の音声合成を使います。うまく動かないときは te doctor をどうぞ。

関連記事

→ teai.io トップへ