
lostinpatterns/kassette
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
既存のインフラで構成する埋め込み可能なプリミティブで、エージェントのワークフローを耐久性に保ちます。 サーバなし、専用のランタイムなし、新しいインフラはありません.
概要
既存のインフラで構成する埋め込み可能なプリミティブで、エージェントのワークフローを耐久性に保ちます。 サーバなし、専用のランタイムなし、新しいインフラはありません。 有能なワークフローは、非常に高価な方法で失敗します: 彼らは数分または時間のために実行し、高価なLLM呼び出しを行い、実際の副作用でツールを実行し、多くの場合、人間の入力や外部システムのために一時停止します。 その後、プロセスがクラッシュします。, タイムアウト, 再採用を取得します。, または単に消えます. 状態がメモリにありましたので、Nive retry は既にあなたに与えたモデルに答えるために再ペイメントを意味し、一度起こるはずだった副作用を再検証し、回復の複雑さをアプリコードにバックアップすることを意味します。 kassetteは、付属のジャーナルでこれを解決します。 完成した作業を記録し、次の呼び出しのジャーナルを通して高速フォワードを再生し、最初の未完成ステップから再開するようにします。 既存のキューまたはジョブランナーは、通常再試すことができます.
概要(AI 翻訳)
既存のインフラで構成する埋め込み可能なプリミティブで、エージェントのワークフローを耐久性に保ちます。 サーバなし、専用のランタイムなし、新しいインフラはありません。
有能なワークフローは、非常に高価な方法で失敗します: 彼らは数分または時間のために実行し、高価なLLM呼び出しを行い、実際の副作用でツールを実行し、多くの場合、人間の入力や外部システムのために一時停止します。 その後、プロセスがクラッシュします。, タイムアウト, 再採用を取得します。, または単に消えます. 状態がメモリにありましたので、Nive retry は既にあなたに与えたモデルに答えるために再ペイメントを意味し、一度起こるはずだった副作用を再検証し、回復の複雑さをアプリコードにバックアップすることを意味します。
kassetteは、付属のジャーナルでこれを解決します。 完成した作業を記録し、次の呼び出しのジャーナルを通して高速フォワードを再生し、最初の未完成ステップから再開するようにします。 既存のキューまたはジョブランナーは、通常再試すことができます。 kassetteは、これらの再呼び出しが再び実行するのではなく、完了した手順を再生することによって安全であることを確認します。
問題が「これを再び実行する方法」ではなく、「同じ作業を2回しないようにするにはどうすればよいですか?」というときにカセットを使う。 Ie は、既存のスタックは、簡単に、安全ではなく、リトリートします.
このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。
README
以下は原文 README の抜粋です。原文を見る。
kassette
Make your agentic workflows durable with embeddable primitives that compose with your existing infra. No server, no dedicated runtime, no new infra.
Agentic workflows fail in a frustratingly expensive way: they run for minutes or hours, make costly LLM calls, execute tools with real-world side effects, and often pause for human input or external systems. Then the process crashes, times out, gets redeployed, or simply disappears. Since the state was in memory, naive retry means re-paying for answers the model already gave you, re-firing side effects that were supposed to happen once, and pushing recovery complexity back into app code.
kassette solves this with an append-only journal. It records completed work so that a replay fast-forwards through the journal on the next invocation and resumes live from the first unfinished step. Your existing queue or job runner can retry normally. kassette ensures those re-invocations are safe by replaying completed steps instead of running them again.
Use kassette when the problem is not “how do I run this again?” but “how do I avoid doing the same work twice?” Ie, your existing stack makes retries easy but not safe.
For the longer rationale, see Why kassette.
Properties
Embeddable, not a runtime. kassette is a library that runs inside your process, like SQLite. It’s not a separate server or sidecar or worker that runs or schedules your code.
No new infrastructure. Composes with your existing infra. No database to host, no server to deploy, no queue to provision. Re-invocation is wired up using the queue, webhook, or job runner you already have. Uses the filesystem or object storage.
Plain-text state. Each run is a JSONL journal. Dump it, pipe it to jq, save it as a test fixture, or query S3-backed journals with Athena. See operations.
No compute while waiting. Waiting on human approval, a CI pipeline, or a webhook? The process simply exits. When the signal arrives, replay to the point you suspended and continue.
Serverless-native. The journal is the state; the process is a disposable. Any later process with access to the journal can continue the run. Copy it, sync it, ship it across regions.
What kassette ships, what you bring
Durable execution decomposes into two halves: a journal that records completed work, and a dispatcher that invokes the same runId again after a crash or timeout. Temporal and Inngest ship both. kassette ships only the journal.
You wire up the dispatcher that’s already in your stack: a queue, job runner, or anything else that can run the same work again after failure. If a run doesn’t succeed, the dispatcher invokes it again, and replay skips the steps that already finished. You don’t need heartbeats, sweepers, or a run-status table.
推奨ツール
別のキーワードを試すか、フィルタを外してください。
インストール
npx skillfish add lostinpatterns/kassette