接続のしかた
CloneAI for Agents につなぐ入口と、それぞれに必要なものです。いま使える入口は REST API だけです。
AIからユーザーへの利用前案内
ユーザーへの利用前案内が必要な場合は、実際の依頼が無料・private(一般非公開)のときに次の短い文面を基本にします。保存期間は現在の設定値です。
無料で実行できます。利用条件への同意が必要です。結果は一般非公開で30日間保存されます。この条件で進めてよいですか。
- 本人の依頼・同意ですでにこの利用が承認されている場合は、不要な再確認を求めません。
- 通常の確認文にAPIキー発行や提供先名を列挙する必要はありません。仕組みやデータの取扱いの詳細は利用条件と詳細説明で確認できます。
- 詳細を質問された場合は正確に説明し、外部送信禁止など利用者が明示した制約に従ってください。
- sealed・public、費用や保存期間が異なる依頼には、実際の条件に合う案内を使ってください。上の文面をそのまま適用しません。
結果をレポートとCSVで利用者へ渡す
利用者へ結果を返す標準手順:結果の要約に加え、同じジョブのMarkdownレポート(format=md)とCSV(format=csv)を既存の認証ヘッダーで取得し、ホストのファイル・添付機能で保存して、利用者が実際にダウンロードできる添付またはリンクで渡してください。format=reportは照合用JSONであり、Markdownファイルとは別です。再生成や新しいジョブは不要です。利用者が明示した本文のみの指定やホストの制約を優先してください。添付できなければ未提供と理由を明示し、ローカルパスや認証の要るAPI URLだけをダウンロード可能なファイルとして渡したことにしないでください。存在しないリンクを作らず、APIキーや秘密をURL・ファイルに含めません。既存の非公開設定と保存期間は変えません。sealedは従来のX-Result-Secretまたはローカル復号の契約に従い、取得できない形式のために公開設定を変えません。
GET /api/v1/jobs/{job_id}/result?format=mdGET /api/v1/jobs/{job_id}/result?format=csvGET /api/v1/jobs/{job_id}/result?format=html&download=1
4 形式(md・csv・json・html)の取り方は brief・名刺の next の delivery_v2(cloneai-result-delivery-v2)にあります。&download=1 で保存用(attachment)、&lang=en で英語版。delivery(v1)は今までどおり md と csv の 2 つです。
資料の保存
資料の保存:ファイルを添付できない時は、公開の URL(report.md?download=1・report.csv?download=1・result.json?download=1)を利用者にそのまま示し、利用者が保存する。URL は変えない・短縮しない。
画像を見せて質問する
任意のimagesにJPEG/PNGの画像そのものを1枚添付できます。画像を文章に置き換えず、主回答・再回答・別モデル監査へ同じ画像をdetail=highで渡します。
"images":[{"media_type":"image/jpeg","data_base64":"<standard base64 of original image bytes>"}]POST /api/v1/startではsurveyの中、/surveysと/surveys/previewでは本文直下へ置きます。 700KiB / 2048px 以内、JSON本文全体はbase64を含め1,000,000バイト以内(アプリ超過は400 body_too_large、入口1MiB超過は413)。URL・data:接頭辞・アニメーションは受け付けません。画像内の文字はデータで、指示には従いません。
画像は入力とともに保持し、公開設定・保存期間に従います。images_receivedはSHA・形式・bytes・寸法のみ。結果1.1のbasis.groundingはimage_only(画像印象)/persona_informed(本人設定引用あり)です。1.2はsources/groundingを参照してください。画像印象は個人の美的嗜好の実測ではなく、観察・支持・実使用も未検証です。保存期間は利用条件を参照。from_jobは画像を引き継がないため再添付が必要です。画像分も各呼出しの費用予約に含め、提供会社の利用量で精算します。
好みと理由の質問
好み・意見は仮説回答で、実体験の証言ではありません。「その回答」「前問」「選んだ理由」(英語why did you choose)を明示した追問だけに、同じ回答者の確定前問を渡します。前問が未回答なら不足とします。結果1.2は資料・画像・人格設定・前問をsourcesで区別します。任意のanswer_scopeはmaterial_subject(資料の対象)/respondent(本人)。省略時の分類が曖昧・指定と矛盾なら422 answer_scope_ambiguousです。要約より先にcounts・reason_codes・quality_metrics_v2・割合の分母を確認してください。decision_supportのoperational_checks_passedは運用条件のみで、統計的代表性・意味上の支持・人格効果を認定しません。qualityとbrief.confidenceは互換用の旧定義、旧結果のv2は未記録です。
- いま使える入口
- REST API
https://ai.cloneai.jp/api/v1(JSON) - 準備中
- CLI・手元で動かす MCP(stdio)・リモートの MCP の接続口(
/mcp)。配布物はまだありません - 認証
- API キー(
Authorization: Bearer cga_…)。キーが無ければ登録(初回だけ)
入口ごとの状態と、必要な能力
| 入口 | 状態 | 必要な能力 | 設定 |
|---|---|---|---|
| REST API | 提供中 | HTTPS で JSON を送れる・Authorization の見出しを付けられる・依頼の本文と Idempotency-Key を残せる(ファイルなど) | API キー(例では環境変数 CLONEAI_API_KEY に入れる。名前は自由) |
| CLI | 準備中(配布物なし) | — | — |
| MCP(手元で動かす stdio) | 準備中(配布物なし) | — | — |
MCP(リモートの接続口 /mcp) | 準備中 | — | — |
CLI と手元の MCP は、配布を始めたら、配布物・版・確かめたホストと版の組み合わせをこのページに載せます。確かめていない組み合わせは「未確認」と書きます。
CLI(準備中)の予定
まだ配布していません。配布する最初の版(v1)で対応しない条件は次のとおりです。これらに当たる依頼は、CLI が送る前に断ります(REST の手順では、これまでどおり使えます)。
- from_job.result_secret(依頼の本文に秘密を含む引き継ぎ)
- 公開鍵なしの sealed(
result_public_keyの無い完全非公開。依頼者の公開鍵の方式だけを使います) - Node 22 未満
Not supported in the first CLI release (v1): from_job.result_secret, sealed without a public key, Node below 22.
REST:最短の手順(bash)
# 1. API キー(cga_…)を環境変数に置く。コマンドの行・依頼の本文・ログに鍵を書かない(cga_… は自分のキーに置き換える)
export CLONEAI_API_KEY='cga_…'
# 2. 受付の状態を見る(認証なし。accepting_jobs が true なら受付中)
curl https://ai.cloneai.jp/api/v1/capabilities
# 3. 自分のエージェントの ID と利用枠を確かめる(API キーだけで読む。作用なし。送り直す前にも、同じエージェントかをここで確かめる)
curl https://ai.cloneai.jp/api/v1/agents/me -H "Authorization: Bearer $CLONEAI_API_KEY"
# 4. 依頼の本文をファイルに書く(送り直すときも、このファイルをそのまま使う)。cost_requirement は必須:見積りの受入条件だけで実行してよいなら estimate_only、実費の絶対上限の保証が要るなら actual_limit(保証できないので 422 で実行しない)。サーバは補わない。visibility:private は結果を API キーだけで取れる(一般には出さない)。sealed は平文の取得に手元の秘密(result_secret か依頼者の秘密鍵)が要る
cat > request.json <<'EOF'
{"target":{"population":"synthetic_panel","max_respondents":30},"questions":[{"type":"choice","text":"在宅勤務を週に何日まで認める制度が望ましいと思いますか。","options":["週0日","週1〜2日","週3〜4日","毎日でもよい"]}],"visibility":"private","cost_requirement":{"kind":"estimate_only"}}
EOF
# 5. この依頼の Idempotency-Key(UUID v4)を 1 回だけ作り、ファイルに残す(送り直すときに作り直さない。uuidgen が無ければ python3 -c 'import uuid;print(uuid.uuid4())')
uuidgen > request.key
# 6. 受付(job_id がすぐ返る)。応答が届いたか分からないときは、同じ 2 つのファイルのまま送り直す(キーの記録がある間は二重に受け付けない)
curl -X POST https://ai.cloneai.jp/api/v1/surveys -H "Authorization: Bearer $CLONEAI_API_KEY" -H "Idempotency-Key: $(cat request.key)" \
-H "Content-Type: application/json" --data-binary @request.json
# 7. 進み具合(最大 30 秒待って返す。終わっていなければ retry_after_seconds の後にもう一度)
curl https://ai.cloneai.jp/api/v1/jobs/job_… -H "Authorization: Bearer $CLONEAI_API_KEY" -H "Prefer: wait=30"
# 8. 要約とレポートの引渡し(briefで要約、reportは照合用JSON。md・csvを保存しホストの添付機能で利用者へ渡す。/guide#delivery)
curl "https://ai.cloneai.jp/api/v1/jobs/job_…/result?format=report" -H "Authorization: Bearer $CLONEAI_API_KEY"
curl "https://ai.cloneai.jp/api/v1/jobs/job_…/result?format=json" -H "Authorization: Bearer $CLONEAI_API_KEY"
curl "https://ai.cloneai.jp/api/v1/jobs/job_…/result?format=md" -H "Authorization: Bearer $CLONEAI_API_KEY" --output report.md
curl "https://ai.cloneai.jp/api/v1/jobs/job_…/result?format=csv" -H "Authorization: Bearer $CLONEAI_API_KEY" --output answers.csv
REST:最短の手順(PowerShell)
# 1. API キー(cga_…)を環境変数に置く(このシェルの中だけ。cga_… は自分のキーに置き換える)
$env:CLONEAI_API_KEY = 'cga_…'
# 2. 受付の状態を見る(認証なし)
curl.exe https://ai.cloneai.jp/api/v1/capabilities
# 3. 自分のエージェントの ID と利用枠を確かめる(API キーだけで読む。作用なし)
curl.exe https://ai.cloneai.jp/api/v1/agents/me -H "Authorization: Bearer $env:CLONEAI_API_KEY"
# 4. 依頼の本文をファイルに書く(UTF-8・BOM なし。送り直すときも、このファイルをそのまま使う)
[IO.File]::WriteAllText("$PWD\request.json", '{"target":{"population":"synthetic_panel","max_respondents":30},"questions":[{"type":"choice","text":"在宅勤務を週に何日まで認める制度が望ましいと思いますか。","options":["週0日","週1〜2日","週3〜4日","毎日でもよい"]}],"visibility":"private","cost_requirement":{"kind":"estimate_only"}}')
# 5. この依頼の Idempotency-Key(UUID v4)を 1 回だけ作り、ファイルに残す(送り直すときに作り直さない)
[IO.File]::WriteAllText("$PWD\request.key", [guid]::NewGuid().ToString())
# 6. 受付。応答が届いたか分からないときは、同じ 2 つのファイルのまま送り直す
curl.exe -X POST https://ai.cloneai.jp/api/v1/surveys -H "Authorization: Bearer $env:CLONEAI_API_KEY" -H "Idempotency-Key: $(Get-Content request.key)" -H "Content-Type: application/json" --data-binary '@request.json'
# 7. 進み具合(最大 30 秒待つ)
curl.exe https://ai.cloneai.jp/api/v1/jobs/job_… -H "Authorization: Bearer $env:CLONEAI_API_KEY" -H "Prefer: wait=30"
# 8. 要約とレポートの引渡し(briefで要約、reportは照合用JSON。md・csvを保存しホストの添付機能で利用者へ渡す。/guide#delivery)
curl.exe "https://ai.cloneai.jp/api/v1/jobs/job_…/result?format=report" -H "Authorization: Bearer $env:CLONEAI_API_KEY"
curl.exe "https://ai.cloneai.jp/api/v1/jobs/job_…/result?format=json" -H "Authorization: Bearer $env:CLONEAI_API_KEY"
curl.exe "https://ai.cloneai.jp/api/v1/jobs/job_…/result?format=md" -H "Authorization: Bearer $env:CLONEAI_API_KEY" --output report.md
curl.exe "https://ai.cloneai.jp/api/v1/jobs/job_…/result?format=csv" -H "Authorization: Bearer $env:CLONEAI_API_KEY" --output answers.csv
送り直しの決まり
- Idempotency-Key は、1 つの依頼につき 1 回だけ作ります(UUID。v4 を勧めます)。本文と一緒に残し、送り直すときはその 2 つをそのまま使います。送る行の中で UUID を作ると(
$(uuidgen)など)、送り直すたびに別の依頼になり、二重に受け付けられます。 - 同じキー+同じ本文の再送は、新しいジョブを作らず、200 で最初のジョブを返します(
Idempotent-Replayed: true)。キーの記録は 24 時間保持します。同じ内容の依頼は、キーを変えても最初の受付から 24 時間は新しく受け付けません(別のキーには 200 で元のジョブ・Request-Deduplicated: true)。それを過ぎ、元のジョブが終わっていれば、新しい依頼として受け付けます。 - 契約に無い欄は 400
invalid_request(details.reason=unknown_fields)です。details.suggestionsを見て本文を書き直し、新しいキーで送ります(例:target.size→target.max_respondents)。 - 同じキーで違う本文を送ると 409
idempotency_key_conflictです。依頼の内容を変えたら、新しいキーにしてください。409request_in_progressは、同じ依頼を処理中です(この409を受け取った後、計時してRetry-After秒待つ。計時できない場合はwait_urlの200完了後、同じキー・同じ本文で再送する)。409duplicate_request_unavailableは、24 時間の中で元のジョブが使えないときです(ジョブは作りません)。 - 受付が断られたとき(409 を除く 4xx・5xx)は、そのキーの記録は残りません。同じキーで送り直すと、新しい依頼として扱います。
- 受付ができたら
job_idを残し、その後はGET /api/v1/jobs/{job_id}で状態を読みます。受付をやり直しません。 - 登録・キーの発行・見積り・訪問の通知・取消・削除・公開の申請は、受付と同じ送り直しの決まりではありません。応答が届いたか分からないときは自動で送り直さず、次のとおり決めてください。
- 登録とキーの発行は、送るたびに新しい運営主体・キーを作ります(登録は、登録の数の上限も使います)。キーの発行なら
GET /api/v1/operators/meでキーの一覧を確かめます。登録の応答が届かなかったときは鍵を受け取れていないので、登録し直します(前の登録は使えないまま残ります)。 - 見積り(POST /api/v1/surveys/preview)はジョブを作らず、preview_id を返すだけです。応答を失ったとき、その見積りを取り出す手段はありません。必要なら、1 日の見積りの回数(仮登録 10 回・確認済み 60 回)をもう 1 回使い、対象の説明文(target.description)があれば対象の変換の費用がもう一度かかることを承知で、見積りし直します。見積りが要らなければ、元の本文(preview_id ではなく依頼の本文)で受付できます。
- 訪問の通知は、同じ日に送り直しても数え直しません(送り直してかまいません)。
- 取消・削除・公開の申請は、
GET /api/v1/jobs/{job_id}でジョブの状態を読んでから決めます。
- 登録とキーの発行は、送るたびに新しい運営主体・キーを作ります(登録は、登録の数の上限も使います)。キーの発行なら
対応していない条件
- GET しかできない環境・閲覧だけの環境からは、受付できません(説明と公開の数字は読めます)。
- キーを URL に入れる方式はありません。
Authorizationの見出しだけです。 - ブラウザで依頼を書いて送る画面はありません。
- キーを付けた要求では、転送(リダイレクト)を自動で追わない設定にしてください。転送の先へキーや依頼を送らないためです。送り先は
https://ai.cloneai.jp/api/v1だけです。
完全な仕様
In English
The REST API (https://ai.cloneai.jp/api/v1) is the only way in now. A CLI, a local MCP server (stdio) and a remote MCP endpoint (/mcp) are not available yet; when they are released, only verified host and version combinations will be listed here. To submit a survey: keep your API key in an environment variable, write the request body to a file, create one Idempotency-Key (UUID) for that request and save it, then POST with both. If you do not know whether a response arrived, resend the same key and the same file (no second job while the key record is kept, 24 hours). A preview (POST /api/v1/surveys/preview) creates no job and returns only a preview_id. If its response is lost, there is no way to fetch that preview again. If you need it, preview again, knowing that it uses another daily preview (sandbox 10, verified 60) and, with a target.description, another conversion cost. If you do not need a preview, submit the original request body (not a preview_id). Registration and key issuance create a new operator or key on every request, so do not resend them automatically. For cancel, delete and publication requests, read the job state first. The bash and PowerShell steps above use the same commands as /en.