もくじを開く5.6容量・入力・実行条件のリファレンス

PART 5接続・操作・復旧する5.6

容量・入力・実行条件のリファレンス

添付、Media、HTML、文書、メッセージ、Ask、Workflow、Project Database、Trigger、待機、Session起動、一覧の上限と入力単位。超過時の分割・参照・再確認の方法。

同じファイルでも、Sessionへの添付とProject Mediaへの公開では上限が異なる。使う保存先とファイル形式を決めてから、この表で確認する。

KiBは1,024 bytes、MiBは1,024 KiB、GiBは1,024 MiBである。「bytes」の上限は文字数とは異なり、日本語などのUTF-8文字は複数bytesになる。「文字」はUnicodeの文字数を指す。各値は入力・保存の制約であり、処理時間や稼働率の保証ではない。

添付とProject Media

対象上限
添付の画像20 MiB / file
添付のPDF50 MiB / file
添付の動画200 MiB / file
1回のメッセージ送信の添付10件、合計250 MiB
添付の有効期限upload開始から24時間
Project Mediaの画像20 MiB / file
Project MediaのPDF50 MiB / file
Project Mediaの動画2 GiB / file
Project MediaのProject総量20 GiB
WebUIのMediaアップロード一度に20ファイル(完了していないアップロードも数える)

Project Mediaの2 GiBは動画の上限であり、画像やPDFにも適用できる上限ではない。サイズ内でも未対応形式や暗号化PDFは拒否される。添付はProject Mediaへ自動公開されず、Mediaのcanonical URLも外部向けpublic shareではない。

添付は送信前に期限が切れると使えない。WebUIのcomposerは添付カードにAvailable untilと期限の時刻を表示し、期限切れの添付があるとAn attachment has expired. Attach it again or remove it before sending.で送信を止める。serverも送信時に期限切れの添付を拒否する。添付し直すか、外してから送信する。

容量に加えて、次の内容上の制約がある。たとえば20分のMP4添付や501ページのPDFは、ファイルが小さくても受け付けられない。

対象内容上の上限
画像幅・高さそれぞれ12,000 pixels、合計100,000,000 pixels、アニメーション64 frames
PDF500ページ。PDF streamの展開には64 MiBの上限もある
添付動画10分
Project Media動画60分
すべての動画幅3,840 pixels、高さ2,160 pixels。縦横を入れ替えた同等面積という条件ではない

大きすぎる画像は必要な解像度へ縮小し、PDFは必要なページへ分け、動画は長さやbitrateを調整する。単に拡張子を変えて形式制限を回避しない。MediaとWebUIの添付を参照する。

HTMLとShared Documents

対象上限・形式
Project HTMLの1ファイル5 MiB(5,242,880 bytes)
Project HTMLのProject総量50 MiB、500ファイル
Project HTMLのpathhtml/以下のpath全体512 bytes、各segment 128 bytes、深さ8階層まで。segmentは英小文字・数字・.・_・-だけで、.で始められない
Share HTMLの期限1日・7日・30日から選ぶ。既定7日
Shared Document1 MiB
文書のkind名32文字まで。英小文字始まり、英小文字・数字・_・-
通常のdoc ID64文字まで。英小文字・数字で始まり、英小文字・数字・_・-
mindmap200ノード
brainstorm100案。各titleは50 Unicode code points、descriptionは200まで

5 MiBを超えるHTMLファイルは、upload前にそのファイルだけが拒否され、html/_errors.mdに理由が出る。他のHTMLファイルの同期は続くが、拒否されたファイルを参照するページは正しく表示されない可能性がある。ファイルを縮小または分割して保存し直す。

画像やPDFなどの完成ファイルはMediaへ置き、HTMLや文書から参照する。HTMLに大きなファイルをbase64として埋め込むと、HTML自体の上限に数えられる。文書が大きくなったら、独立して読める内容ごとに分割してWikiLinkで結ぶ。

PROJECT.mdとREPORT.mdには予約された用途と大文字のpathがある。pathが正しくても、frontmatter構文や権限などの理由で保存できない場合がある。Shared Documents、HTML、Markdownブロックで詳細を確認する。

メッセージ・Ask・Meeting

対象上限
Project Chatのmessage本文100,000 bytes
Askのquestion2,000 bytes
Askのbody100,000 bytes
Askの各option200 bytes
Askの回答本文32,000 bytes
Meeting title1〜120文字
Meeting participants最大50名、各名前1〜120文字
Meeting本文空白だけは不可、100,000 bytesまで

長い資料をAskのquestionやoptionに詰めず、判断に必要な要約と資料への参照をbodyへ置く。Workflow Decisionの描画済みbodyにもAskのbody上限が適用される。

Workflow

対象上限・条件
Bundle内の1ファイル1 MiB
Bundle全体4 MiB、128ファイル
Bundle内の相対path1〜256 UTF-8 bytes
WorkflowのStep数1〜64
1 Stepの直接依存数最大32
Workflow全体の依存edge数最大256。循環は不可
描画済みSession Step prompt100,000 bytes
completionとRun出力128 KiB、JSON depth最大32
Attempt feedback body前後の空白を除いて空ではなく、8,192 bytes以下
Run input128 KiB、JSON depth最大32
失敗completionのerror空ではなく4 KiB以下
chat workflow runsの自由記述100文字のpreviewに切り詰め、truncated: trueを付ける
Published Workflowの合成1段まで。同じ所有者の公開済みWorkflow、またはteam:<slug>で指すTeamの公開済みWorkflowを利用

Bundleのファイル上限と、入力や依存Stepの出力を展開した後のprompt上限は別である。短いtemplateでも、大きなinputを展開すると実行時の上限を超えることがある。長い成果はProjectの文書等へ保存し、Step出力には必要な小さな値と参照を返す。StepのcompletionでRun出力が上限を超える場合、そのStepがworkflow_completion_limit_exceededで失敗し、Runはattention_requiredになる。大きな成果物をProjectへ保存して参照を返すように直したRevisionを公開し、新しいRunを始める。

入力・出力は宣言したschemaに一致させる。objectはadditionalProperties: falseを持つため、次のWorkflowに前の出力を渡すときも必要なキーだけを選ぶ。上限だけを満たしても未宣言キーや型の違いは受け付けられない。操作構文はCLIとWorkflow referenceを参照する。

Project Database

対象上限・条件
SQL入力・migration file100 KiB
query1 statementのSELECT / INSERT / UPDATE / DELETE
query params最大100個のstringを持つJSON array。positional ?で参照
query結果最大1,000 rows、decoded結果最大1 MiB
migration最大100 statements。queryとは別の許可構文
WebUIの1ページ25 / 50 / 100 rows
migration ID1〜128文字。英小文字・数字で始まり、英小文字・数字・_・-

query結果の上限を超えた場合、部分結果は返らない。必要な列と行へ絞り、WHEREと適切なLIMITを使う。100個のparamsは一度に100行を書けるという意味ではなく、placeholderへ渡す値の数である。

同じProjectのlive queryは重ねて受け付けない。処理中や成否不明のmutationを繰り返さず、返されたエラーのread指示で現在値を確認する。migrationはschema.sqlの親versionから作り、ファイル同期後に明示的に適用する(Database)。

Triggerとscheduled follow-up

対象条件
Project Triggerのinterval最小300秒。終了時刻は任意で、指定した時刻を含み、開始時刻より前にはできない。省略するとpauseか削除まで続く
既存Sessionのscheduled follow-up:初回までの待ち時間chat session schedule create --afterは1秒〜30日。外側のaachat session schedule create --atは時刻指定
既存Sessionのscheduled follow-up:繰り返し間隔60〜86,400秒(--repeat-afterは1分〜24時間、--everyは60〜86,400秒)。予約で始まったturnの完了から数える
WebUIの予約入力Session composerの When とTriggerのScheduled follow-upは1〜1,440分の整数。どちらもRepeatを有効にすると、同じ分数を繰り返し間隔にも使う
monthly Trigger整数1〜31の指定日、IANA timezone、現地時刻・開始日。終了日は任意で当日を含む。指定日がない月は月末へ寄せ、翌月は元の指定日へ戻る。calendarと同じ夏時間規則を使う
calendar TriggerIANA timezone、local time、1つ以上の曜日(重複不可)。終了日を指定する場合はその日を含む
Document match同じProjectのfrontmatterのstring / number / boolean完全一致。複数条件はAND、一回限り

Triggerは新しいSessionまたはPublished Workflowを起動する。scheduled follow-upは既存Sessionへturnを追加する。周期の上限や停止方法を混同しない。時刻条件は作成前にpreviewし、実際の次回時刻を確認する。終了時刻の指定と停止方法はTriggers、scheduled follow-upの作成・解除はSessionsを参照する。

Sessionの起動・待機・workspace

対象上限・条件
chat session runの起動確認最大40秒、新しいSessionがstartingを抜けるまで待ってstartupを返す
agent runtime未接続のまま起動を待つ時間接続待ち自体に期限はありません。受付済みのSessionは接続まで待機し、接続すると自動で始まります。
chat wait --allの対象1〜100件(直接の子Session、同じProjectのtop-level Workflow Run、Project Ask)
Fresh Session・Workflow Session開始前の空き容量20 GiB。不足時は同じagentの非稼働workspaceを一度だけ整理し、なお不足ならworkspace_capacity_insufficient
chat result reportの1回の送信1〜50件、stdin 1 MiBまで

startup.stateのpreparingは40秒以内に準備が終わらなかっただけで、失敗ではない。runtime_offlineは、そのagentのaachat upが接続していない状態である。確認方法はTroubleshootingの「Sessionが起動しない」を参照する。

検索・一覧・本文の読み取り

対象上限・既定
query指定のメッセージ検索(Webの検索、aachat findなど)の結果一致箇所の周辺だけを最大240文字の抜粋で返す。切った位置に…が付く
chat session read --match1 Session内の大文字小文字を区別しない文字列検索。抜粋は最大600文字、--lastは既定50・最大100。古い一致はnext_pageで続けて読む
chat一覧の行の自由文(本文・失敗理由など)100文字のpreviewに切り詰める。全文は返された詳細read(detail_read)で読む
aachatの一覧既定20件、最大100件(commandごとの既定はCLIを確認)
chat session list・aachat session list既定10件、最大100件
chat workflow runs既定4件。--state <state>で絞れる
aachat ... --fullの本文既定12 KiB(12,288 bytes)ずつUTF-8境界で返す。--max-bytesで最大64 KiB

検索結果は全文ではない。全文が必要なら、結果から該当messageへ移動するか、chat readなどの通常のreadで読む。Triggerが起動したSessionの最初の指示はメッセージ検索(find)の対象外なので、元Sessionのtranscriptで確認する。

一覧ごとに異なるページング

一覧続きを読む方法
chatの読み取り一覧data.itemsを読み、data.next_pageがcommand locator({kind, program, argv})ならそのargvをprogramでそのまま実行する。next_pageがnullなら最後のページである(CLI)
aachatの読み取り一覧(project read・project document・session list・session read・ask list・Workflow一覧など)next_page.argvをprogramでそのまま実行する。最終pageではnext_pageがnull(CLI)
aachat inbox未読Project一覧は、--beforeを含むdata.next_pageのcommand locatorで続きを読む。個別Projectの履歴はaachat project readで読む
--fullの本文返された続きのlocatorを使う。offsetとchecksumで途中の内容変更を検出する
Project Database WebUI25 / 50 / 100行の番号付きpage。tableやsort変更でqueryが変わる(Database)
chat inbox・Session decision・検索抜粋上限付きのviewでありcursor付き全履歴ではない。案内された履歴readを使う。chat inboxにページングはない(Sessions、CLI)

cursor・page番号・行数上限を取り違えたり、最初のpageを全件と考えたりしない。

上限に関係するエラーが出たら

まず、どの保存先・入力・結果が制限を超えたかを確認する。ファイル自体のサイズ、UTF-8 bytes、展開後のprompt、SQLの結果サイズは別々である。値を小さくしたり資料へ分離したりした後、操作の結果を再確認する。

上限内でも、権限、対応形式、Project status、空き容量、providerの状態によって操作できない場合がある。権限とTroubleshootingから調べる。成否不明の操作は、サイズを変えた別requestとして送る前に、最初のrequestが受け付けられたか確認する。