
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 |
| 添付のPDF | 50 MiB / file |
| 添付の動画 | 200 MiB / file |
| 1回のメッセージ送信の添付 | 10件、合計250 MiB |
| 添付の有効期限 | upload開始から24時間 |
| Project Mediaの画像 | 20 MiB / file |
| Project MediaのPDF | 50 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 |
| 500ページ。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のpath | html/以下のpath全体512 bytes、各segment 128 bytes、深さ8階層まで。segmentは英小文字・数字・.・_・-だけで、.で始められない |
| Share HTMLの期限 | 1日・7日・30日から選ぶ。既定7日 |
| Shared Document | 1 MiB |
| 文書のkind名 | 32文字まで。英小文字始まり、英小文字・数字・_・- |
| 通常のdoc ID | 64文字まで。英小文字・数字で始まり、英小文字・数字・_・- |
| mindmap | 200ノード |
| brainstorm | 100案。各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のquestion | 2,000 bytes |
| Askのbody | 100,000 bytes |
| Askの各option | 200 bytes |
| Askの回答本文 | 32,000 bytes |
| Meeting title | 1〜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内の相対path | 1〜256 UTF-8 bytes |
| WorkflowのStep数 | 1〜64 |
| 1 Stepの直接依存数 | 最大32 |
| Workflow全体の依存edge数 | 最大256。循環は不可 |
| 描画済みSession Step prompt | 100,000 bytes |
| completionとRun出力 | 128 KiB、JSON depth最大32 |
| Attempt feedback body | 前後の空白を除いて空ではなく、8,192 bytes以下 |
| Run input | 128 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 file | 100 KiB |
| query | 1 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 ID | 1〜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 Trigger | IANA 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 --match | 1 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 WebUI | 25 / 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が受け付けられたか確認する。