関連する接続先と仕様:BeatAPI
Space Bunny Alphaの使い方は、接続先を選び、小さな修正をテストで確認することから始めます。Space Bunny Alphaは、ホストされたAPIやOpenCodeなどの開発用クライアントから使える無料試用中のコーディングモデルです。 最初に接続先を決めます。BeatAPIではspace-bunny-alpha、OpenRouterではstealth/space-bunny-alpha、OpenCode Zenではspace-bunny-freeを使います。別々のサービスのキー、モデル名、接続先を混ぜないでください。
本記事は、小さなコード修正をテストで確認するところまで案内します。長い回答、待ち時間、回数制限、一時的な容量不足、試用終了時の対応も扱います。資料は2026年9月30日に確認しました。APIやクライアントの例は資料に基づいており、認証付きのモデル呼び出しは実行していません。
- 無料のトークン単価は、恒久的な提供や無制限の容量を意味しません。
- 小さな作業と明確なテストから始めます。
- BeatAPIの推論設定は既定で
maxです。簡単な修正ではlowを評価します。 -
429と一時的な503を分け、再試行に上限を設けます。 - 有料モデルへ切り替える前に、利用者の承認と費用の上限を確認します。
Space Bunny Alphaの使い方:接続先を選ぶ
| 接続先 | モデル名 | APIの基底URL | 確認すること |
|---|---|---|---|
| BeatAPI | space-bunny-alpha |
https://api.beatapi.io/v1 |
無料モデルの回数制限とアカウントの利用可否。 |
| OpenRouter | stealth/space-bunny-alpha |
https://openrouter.ai/api/v1 |
回数制限、試用条件、データの扱い。 |
| OpenCode Zen | space-bunny-free |
https://opencode.ai/zen/v1 |
現在の一覧、登録条件、期間限定の提供。 |
出典:BeatAPIの仕様、OpenRouterのモデル掲載、OpenCode Zen。設定項目、回数制限、データ保護の約束を別の接続先にそのまま当てはめないでください。
開発元は公式には公開されていません。1Mの入力領域や画像・動画の入力に対応することから、特定の公表済みモデルだと断定することはできません。画像や動画を生成するモデルでもありません。匿名の試用という前提を理解した上で、ここではコード修正の進め方に集中します。モデルの概要で現在の仕様も確認できます。
OpenCodeから始める
小さな検証用リポジトリでOpenCodeを開き、/connectでOpenCode Zenを選びます。アカウントの接続手順を終えたら、/modelsでSpace Bunny Freeを選択します。OpenCodeの提供元とモデル名を組み合わせた指定は次のとおりです。
opencode -m opencode/space-bunny-free
モデルが見えなければ、キーを変更したり別名を作ったりする前に、アプリを更新して一覧を取得し直します。
opencode upgrade
opencode models --refresh
コマンドの説明とモデルの設定に基づく手順です。試用中は提供が変わるため、一覧にない理由が手元の古い情報だけとは限りません。
OpenRouter経由でOpenCodeを使う場合は、/connectでOpenRouterを選び、そのキーを使います。指定はopenrouter/stealth/space-bunny-alphaです。直接APIを呼ぶときは、先頭の提供元を含めずstealth/space-bunny-alphaを送ります。
トークン料金が無料でも、すべての登録方法で入金が不要とは限りません。また、クライアントが題名生成などに別モデルを使う場合があります。登録時の条件、補助モデル、自動入金を確認してから無人実行を始めてください。
BeatAPIを直接呼び出す
OpenAIのPython SDKをインストールし、環境変数にBEATAPI_API_KEYを設定します。この例はキーをBeatAPIの接続先だけに送ります。
python -m pip install --upgrade openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["BEATAPI_API_KEY"],
base_url="https://api.beatapi.io/v1",
timeout=180.0,
max_retries=0,
)
completion = client.chat.completions.create(
model="space-bunny-alpha",
reasoning_effort="low",
max_tokens=8192,
messages=[{
role: "user",
content: (
"Review this function for a missing final chunk:\n"
"def chunk(items, size):\n"
" return [items[i:i+size] "
"for i in range(0, len(items)-size, size)]\n"
"Assume size must be a positive integer. "
"Return the corrected function and three tests. "
"Keep the explanation under 100 words."
),
}],
)
choice = completion.choices[0]
print("finish_reason:", choice.finish_reason)
print(choice.message.content)
if completion.usage is not None:
print(completion.usage.model_dump())
モデル名、接続先、推論設定、制限はBeatAPIの公開仕様に基づきます。試行回数を把握できるよう、SDKの自動再試行は無効にしています。実際のエラーを確認してから上限付きの再試行を追加できます。finish_reasonが出力の打ち切りを示す場合、途中の関数を完成品と扱わないでください。
現在の設定は接続ガイドで確認できます。この依頼はコードを文章として返すもので、リポジトリへのアクセスやテスト実行を自動的に許可するものではありません。
テストで確認できるコード修正
例のループは、最後の開始位置より前で止まります。要素5件を幅2で分けると最後の1件を失い、要素2件を幅2で分けると何も返しません。入力全体を走査し、0以下の幅を拒否するのが合格条件です。幅は正の整数という前提で評価します。
修正を依頼する前に、次の確認条件を用意します。
def verify(chunk):
assert chunk([1, 2, 3, 4, 5], 2) == [[1, 2], [3, 4], [5]]
assert chunk([1, 2], 2) == [[1, 2]]
assert chunk([], 2) == []
for size in (0, -1):
try:
chunk([1], size)
except ValueError:
pass
else:
raise AssertionError("non-positive size must raise ValueError")
この条件に対する参照実装は次のとおりです。
def chunk(items, size):
if size <= 0:
raise ValueError("size must be positive")
return [items[i:i + size] for i in range(0, len(items), size)]
verify(chunk)
参照実装とテストは手元で実行しました。これは練習の期待結果を確認するもので、Space Bunnyが生成した結果ではありません。モデルが返したコードを同じテストに通し、差分も確認します。テストを書き換えて失敗を隠した場合は、その試行を採用しません。
OpenCodeでは、同じ条件を次のように依頼できます。コピーして使う入力は英語のまま掲載します。
Fix only chunk.py so it preserves the final partial chunk and rejects
non-positive chunk sizes. Do not edit the tests or add dependencies.
Run the existing tests. Return the patch, the actual test result, and a
summary under 100 words. If a tool fails, report the failure instead of
claiming that the tests passed.
小さな課題にすることで、モデルの正しさ、クライアントのツール実行、説明の長さを別々に確認できます。匿名の試用モデルに、いきなり本番全体を任せる必要はありません。
回答や思考が長いとき
Kilo利用者の報告では、日常的なコード作業に役立つ一方、回答が非常に長いという感想があります。個人の体験であり、管理された性能測定ではありませんが、設定を見直す理由になります。
BeatAPIでは推論が常に有効で、既定値はmaxです。簡単な修正では、同じ入力と合格条件のままlowと比較します。待ち時間が減る可能性はありますが、同じ結果を保証しません。短い回答を指定することと、内部の推論を無効にすることも別です。
失敗するテストを渡し、対象ファイルを絞り、最後に必要な形式を指定します。経過時間、終了理由、通ったテスト、使用量を記録してください。短い回答にも多くの推論が含まれる場合があり、長い説明が正しい修正を意味するわけでもありません。
無料枠、エラー、代替モデル
BeatAPIの公開仕様では、初回入金前は毎分1件の成功した無料リクエスト、入金後は金額によらず最大毎分10件です。無料呼び出しは独自の枠を使います。入金で変わるのはこの回数制限で、モデルの能力が上がることや同時実行数の保証ではありません。
| 症状 | 対応 |
|---|---|
401 |
キーの発行元と呼び出した接続先を確認します。 |
| モデルが見つからない | アカウントのモデル一覧と正確な名前を確認します。 |
BeatAPIで429
|
Retry-Afterを守り、回数を制限して再試行します。 |
503 processing_unavailable |
枠内でも容量不足は起こり得ます。少し待ち、上限に達したら失敗を通知します。 |
| 最終回答が途中・空 | 終了理由と予算を確認してから再依頼します。 |
| 説明は自然でもテストに失敗 | 実際の失敗を返し、往復回数の上限で停止します。 |
試用への依存を決める前にGET /v1/modelsで利用可否を確認します。無料で失敗した呼び出しを、黙って有料モデルに送らないでください。代替モデルの名前、費用上限、承認が必要な操作を決めておきます。たとえば一時的な失敗が2回続いたら、上限付きの有料実行を提案するか、待機を選べるようにします。
よくある質問
永久に無料ですか?
保証はありません。OpenCodeは期間限定と説明しています。試用が終了してもモデルを交換できる設計にします。
MiniMax M3.1などの公表済みモデルですか?
開発元は公式には確認されていません。挙動やトークン化の類似だけで特定の版を断定しないでください。
すべて同じモデル名を使いますか?
違います。接続先別の表を確認します。OpenCode内の提供元付き指定と、APIに送る名前も区別します。
入金すると賢くなりますか?
BeatAPIの公開条件で変わるのはリクエスト制限です。モデルの品質向上とは別です。
機密コードを送れますか?
接続先の現在のデータ条件を確認します。OpenCodeの保存しないという説明とOpenRouterの保存に関する説明は異なります。別サービスの約束を流用せず、練習には公開コードや架空のコードを使ってください。
最初の修正が成功したら何をしますか?
正解を確認できる小さな作業をいくつか繰り返し、正しさ、再試行、待ち時間を記録します。接続ガイドとモデル概要で現在の条件を確認してから、大きな作業へ進みましょう。
有料の選択肢を評価する場合は、GPT-6.1 Solの接続ガイドで、別の設定と料金計算を確認できます。
開示:私たちはBeatAPIを開発しています。資料に基づく説明と、実際に実行した検証を本文で区別しています。
