設定
extension settings を使用して、IBM i tool の動作を設定します。
IBM Bob Premium Package for i には、一部の tool 動作を制御する extension settings が含まれています。これらの設定は、command palette を開いて Preferences: Open Settings (UI) command を使用し、左側のフィルターから Extensions > IBM Bob Premium Package for i と進むことで確認および編集できます。
一般設定
一般設定では、extension 全体のデータ取得動作を制御します。
取得する最大行数
| Property | Value |
|---|---|
| Setting ID | vscode-ibmi-bob.general.maxRowsToFetch |
| Default | 100 |
| Minimum | 1 |
execute_sql_statement tool が、Db2 for i の query result set から取得する最大行数を制御します。query がさらに多くの行を返す場合でも、Bob は context window の過負荷を避けるため、この上限までに制限します。必要であれば、後でさらに多くの行を取得します。
より大きな result set を日常的に扱い、一度により多くのデータへ Bob からアクセスさせたい場合は、この値を増やしてください。ただし、値が大きいほど応答時間が延びたり、Bob に過剰なデータを渡すことで context poisoning が発生したりする可能性があります。
Guardrails 設定
Guardrails 設定では、IBM i 上で意図しない操作や破壊的な操作を防ぐための安全制御を追加します。
修飾付き CL コマンドを強制する
| Property | Value |
|---|---|
| Setting ID | vscode-ibmi-bob.guardrails.enforceQualifiedCLCommands |
| Default | true |
有効にすると、Bob は execute_cl_command tool に渡す CL コマンドについて、library-qualified 指定(例: QSYS/...)を必須とします。修飾なしのコマンドが指定された場合、Bob は QSYS2.COMMAND_INFO を使って見つかった正しい修飾付き候補とともにエラーを返し、正しい形で tool を再実行しようとします。
修飾付きコマンドを強制すると、library list に依存したコマンド解決のリスクを減らせるため、セキュリティのベストプラクティスとして推奨されます。この設定を false にして修飾なしコマンドを許可している場合でも、Bob はヒントとして修飾付きの代替候補を提案します。
拒否する SQL ステートメント種別
| Property | Value |
|---|---|
| Setting ID | vscode-ibmi-bob.guardrails.deniedSQLStatementTypes |
| Default | ["ALLOCATE", "CALL", "COMMIT", "CONNECT", "DISCONNECT", "DROP", "EXECUTE", "GRANT", "LOCK", "MERGE", "PREPARE", "RENAME", "REVOKE", "ROLLBACK", "SAVEPOINT", "TRUNCATE", "UPDATE"] |
execute_sql_statement tool が実行する前に、常に明示的なユーザー承認を必要とする SQL ステートメント種別の一覧です。Bob がこの一覧に一致する種別のステートメントを実行しようとすると、そのタスクで execute auto-approve permission が付与されていても、実行を承認するか拒否するかをユーザーに確認します。
この一覧は、チームのリスク許容度に合わせて調整してください。たとえば、タスクで stored procedure の呼び出しや transaction 管理が頻繁に必要な場合は、拒否一覧から CALL や COMMIT を外すことを検討できます。