Modal
ShanoneのModal連携は、サンドボックス内でのコマンド・関数の実行と、それを支えるストレージプリミティブ(ボリューム、Dict、キュー、シークレット)を管理する49個のツールをエージェントに提供します。はじめに
1
Modalトークンを作成する
ModalアカウントでSettings > API Tokensに移動し、トークンを作成します——自動化用途にはService Userトークンが推奨されます。これによりトークンIDとトークンシークレットが発行されます。
2
Shanoneに両方の値を追加する
ShanoneダッシュボードのIntegrations > Modalで、トークンIDとトークンシークレットの両方を入力します——どちらも必須です。
3
リクエストを再実行する
保存が完了すると、
modal_*ツールに対するshanone_execute_tool呼び出しが成功するようになります。利用可能なツール
ShanoneはModal向けに49個のツールを、以下のカテゴリに整理して提供しています。コマンド & プロセス
コマンド & プロセス
modal_exec_command, modal_run_command_background, modal_get_background_output, modal_check_process_status, modal_kill_processサンドボックスのファイルシステム
サンドボックスのファイルシステム
modal_sandbox_list_files, modal_sandbox_read_file, modal_sandbox_write_file, modal_sandbox_make_directory, modal_sandbox_remove_file, modal_sandbox_stat_file, modal_sandbox_get_tunnels関数
関数
modal_call_function, modal_spawn_function, modal_get_function_call_result, modal_cancel_function_call, modal_map_function, modal_call_class_methodボリューム
ボリューム
modal_create_volume, modal_list_volumes, modal_delete_volume, modal_volume_list_files, modal_volume_read_file, modal_volume_write_file, modal_volume_remove_file, modal_volume_copy_filesDict & キュー
Dict & キュー
modal_create_dict, modal_dict_put, modal_dict_get, modal_dict_pop, modal_delete_dict, modal_create_queue, modal_queue_put, modal_queue_get, modal_delete_queueシークレット & ワークスペース
シークレット & ワークスペース
modal_create_secret, modal_list_secrets, modal_delete_secret, modal_get_workspace_billing_summary, modal_list_workspace_members, modal_list_workspace_proxy_tokensよくあるユースケース
一時的なコード実行
サンドボックスを起動してスクリプトを実行し、その出力を読み取る
長時間実行されるジョブ
単一の呼び出しでブロックするのではなく、バックグラウンドコマンドを実行して出力をポーリングする
実行間の状態共有
Dictやキューを使って、別々のサンドボックス/関数呼び出し間でデータをやり取りする
コスト管理
バッチジョブをスケールアップする前に、ワークスペースの利用料サマリーを確認する
トラブルシューティング
modal_exec_commandが長時間ジョブでタイムアウトする
modal_exec_commandが長時間ジョブでタイムアウトする
代わりに
modal_run_command_backgroundを使い、modal_get_background_outputとmodal_check_process_statusをポーリングしてください——modal_exec_commandはプロセスの実行が終わるまでブロックします。modal_call_functionがnot-foundエラーで失敗する
modal_call_functionがnot-foundエラーで失敗する
まず
modal_lookup_appでアプリが実際にデプロイされ実行中であることを確認してください——関数呼び出しはワークスペース内の任意のコードではなく、特定のデプロイ済みアプリ/関数名を対象とします。サンドボックスのファイルシステムへの書き込みが、サンドボックス終了後に消えてしまう
サンドボックスのファイルシステムへの書き込みが、サンドボックス終了後に消えてしまう
サンドボックスのファイルシステムは一時的なものです——永続化したいデータは、サンドボックスのローカルファイルシステムではなく
modal_volume_write_fileを使ってVolumeに書き込んでください。