Sente vs cagent — 実測ベンチ
2つの手作りコーディングエージェントに、
同じ3手を打たせてみた
ローカルLLMでも動く430行のC実装「cagent」と、OpenCodeを土台にした先手読み「Sente」。
どちらもteai.io経由で同じモデル群にアクセスできる。実際にファイル作成・複数ステップのタスクを
やらせて、成功率と所要時間を測った。
2人の打ち手
性格がまったく違う。
CAGENT
Claude Code的ミニマリスト
libcurl + cJSON だけで書かれた ~430行のC。フレームワークなし、依存はlibcurlのみ。
ローカルLLM(mlx-lm)でもteai.ioクラウドでも動く。KOEで声も出せる。
- 実装
- C言語 ~430行
- 既定モデル
- teai/auto(自動選択)
- ツール
- bash / read / write / edit の4つ
SENTE(先手)
OpenCodeの薄いランチャー
OpenCodeをフォークせず、設定を差し込んで起動するだけの薄いラッパー。
「先手」の名は囲碁から — エージェントが最初の一手を代わりに打つ、の意。
- 実装
- OpenCode 1.18.9 + シェルランチャー
- 既定モデル
- Kimi K3(2.8T・1M context)
- ツール
- OpenCodeのフルツールセット
結果
3タスクとも両者が正解した。差は速さと、途中経過の見せ方。
| タスク | cagent | Sente |
| FizzBuzz作成・実行1〜20のFizzBuzzを書いて実行、出力確認 |
✅ 正解 35.5s |
✅ 正解 36.5s |
| JSON書き込み+確認config.jsonを書いてcatで検証 |
✅ 正解 22.0s |
✅ 正解 13.7s |
| 関数+テスト作成add()を実装しassertテストを書いて実行 |
✅ 正解 30.5s |
✅ 正解 15.5s |
| 合計 / 成功率 |
88.0s / 3/3 |
65.7s / 3/3 |
実行ログを見る — Task 3(関数+テスト作成)
$ cagent -b teai -y -p "add.pyに...test_add.pyでテスト..."
write add.py (32 bytes)
write test_add.py (222 bytes)
$ python3 test_add.py
→ 完了しました。All tests passed!
$ te run "add.pyに...test_add.pyでテスト..."
⚡ Kimi K3 (2.8T · 1M context) — 既定
← Write add.py
← Write test_add.py
$ python3 test_add.py
All tests passed
→ ✅完了(証拠あり)— add.py: add(a,b)を実装 / test_add.py: 4ケースをテスト
気づいたこと
- 成功率は互角。3タスクとも両方が一発で正解した。teai.io側のOpenAI互換API(
/v1/chat/completions)がツール呼び出しを崩さず通す設計がそのまま効いている。
- Senteの方が速い。Task2・3で特に差が出た(22.0s→13.7s、30.5s→15.5s)。既定モデルがcagentの
teai/auto(ルーター経由)に対し、SenteはKimi K3を直接指定している差が大きい。
- 途中経過の見え方が違う。cagentはbashコマンドの生出力を省略し最終要約だけを出すのに対し、Senteは
Write/$のツール実行ログをリアルタイムでそのまま流す。デバッグ中の視認性はSenteに軍配。
- cagentはローカルLLMでも同じコードで動く。今回はteai.io経由だが、
AGENT_BASEを切り替えるだけでmlx-lmのローカル推論に戻せる。オフライン耐性はcagentの強み。
まとめ:「どちらか」ではなく「使い分け」。ネットが切れても動かしたい・声で操作したいなら
cagent、速さと視認性を優先するならSente。どちらもteai.io 1つのAPIキーで動く。
teai.ioを無料で試す
クレジットカード不要・サインアップで1,000クレジット。国産 Nemotron-9B は無料。
無料で始める
他の記事を見る