50.000 krát měsíčně? Přemrštěné volání API bylo konečně vyřešeno.
Nedávno za mnou přišel přítel a řekl, že našel vážný problém v zákulisí vývojáře létající knihy: / open-apis / bot / v3 / info, toto rozhraní se nazývá stokrát za minutu a 50.000 krát za měsíc to bude běžet!

Jak jsi to zjistil?
Přátelé v "API Call Statistics" v zákulisí Flying Book Developer viděl mimořádně vysoký počet volání pro toto rozhraní:
| Ukazatele | Hodnota |
| Počet denních hovorů | 43200 + krát |
| Volat každou minutu | ~ 300 krát |
| Odhadovaná měsíční spotřeba | Skoro 50.000 krát. |
Je pryč, jsem robot. Jak můžu volat tak často?
Základní příčiny problému
Projel jsem rozšiřovací kód OpenClaw a našel jsem ho na dvou místech:
1. Kontrola stavu spoušť API volání
Funkce ProbeFeishu () volá rozhraní botinfo pro létání knih pokaždé, když se ptáte na stav robota. Tato funkce je volána v následujících scénářích:
- Získat OpenID při spuštění
- Pokud stav dotazu externího systému
- Při odpojení WebSocket
2. Nedostatek úschovny
Původní kód byl "Zeptejte se každý hovor", a tam nebyl žádný cache. I když budete žádat o stav desetkrát, budete mít 10 API volání.
Řešení: 5 minutový cache mechanismus
Do probe.ts jsem přidal jednoduchou cache:
// 缓存配置:5分钟内不重复调用 API
const CACHE_TTL_MS = 5 * 60 * 1000;
const botInfoCache = new Map();
Základní logika je jednoduchá:
- První výzva Žádost o letící knihy API
- Zavolej znovu za 5 minut. Η Přímá zádová cache (bez nového požadavku)
- Selhání se také ucpalo. → Vyhněte se opakovaným požadavkům při selhání
Změněné účinky
| Kontrast | Před změnou | modifikováno |
|---|---|---|
| Každý status dotazu | Volejte API | Přímá cache |
| Nepodařilo se to zkusit znovu | Neomezené opakování | Cache 5 minut |
| Odhadovaná měsíční spotřeba | 50000 + krát | ~ 300 krát |
Je to jednoduché.: Maximálně 1 hovor za 5 minut, 24 hodin denně = 288 krát / měsíc, přibližně 3500 krát ročně. Původní limit 50 tisíc za měsíc, to nebude vyčerpat!
Aplikovat scénu
Tento program je vhodný zejména pro:
- Uživatelé rozšířeni o OpenClaw
- Vytvořte si vlastní létající knihu robot a volat botinfo rozhraní často
- Stupnice API je naléhavá a chce optimalizovat počet hovorů
Shrnutí
Problém přerozdělení API v Létající knize je v podstatě způsoben nedostatkem cache mechanismu. Řešení je jednoduché: volat rozhraní s cache.
Někdy je nejjednodušší optimalizace nejúčinnější.