mattpocock/sandcastle

Orchestrate sandboxed coding agents in TypeScript with sandcastle.run()

解決する課題

Sandcastleは、隔離された環境でAIコーディングエージェントを実行するための、安全かつ自動化された方法を提供します。エージェントがホストマシンへの無制限なアクセスを持つことを防ぎつつ、gitブランチの作成、サンドボックスの管理、メインコードベースへの変更のマージといった、開発サイクルにおける退屈な作業を自動化します。

仕組み

このライブラリは、AIエージェントの作業ライフサイクルをオーケストレーションします。ユーザーがエージェントを呼び出すと、Sandcastleは隔離されたサンドボックス(Docker、Podman、Vercelなどのプロバイダーを使用)を作成し、特定のgitブランチ戦略を割り当てます。エージェントはこのサンドボックス内でコーディングタスクを実行し、完了すると、Sandcastleはエージェントが行ったコミットを収集してホストリポジトリにマージします。

対象ユーザー

並列化されたエージェントタスク、自動コードレビューパイプライン、またはコーディングエージェント用のカスタムオーケストレーションツールなど、AIを活用したコーディングワークフローを構築している開発者向けに設計されています。

ハイライト

  • プロバイダーに依存しないサンドボックス化: Docker、Podman、Vercelを標準サポートしており、カスタムプロバイダーを作成することも可能です。
  • ブランチ管理: エージェントが生成したコミットのブランチ作成とマージを自動的に処理します。
  • 柔軟な実行: run() によるワンショット実行、またはコンテナの起動コストを避けるための createSandbox() による再利用可能なウォームサンドボックスをサポートしています。
  • ライフサイクルフック: セットアップ中に、ホストとサンドボックス内の両方でカスタムシェルコマンドを実行できます。
  • プログラマブルAPI: CIパイプラインやスクリプトへの統合のためのTypeScript APIを提供し、構造化された出力の抽出もサポートしています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト