声で実バグを直す — 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 と打って、
「このバグ直して」「テスト通して」と声で頼むだけです。
sox が必要です — brew install sox)。読み上げは
KOE の音声合成を使います。うまく動かないときは te doctor をどうぞ。