Skip to main content
Sanity アカウントを接続すると、以下のアクションが Agent のステップとして利用可能になります。各ステップでは、ドロップダウンから接続済みの Sanity Project を選択する必要があります。

Create Resource

Sanity のデータセットに新しいドキュメントを作成します。必須の入力
  • Sanity Project — Profound で接続した Sanity プロジェクトを選択します
  • Dataset — データセットを選択します(例: production)
  • Document Details — ドキュメントのフィールドを含む JSON オブジェクト(_type を含める必要があります)
オプションの入力
  • Rich Text Content — フィールド名を HTML 文字列に対応付けた JSON オブジェクト。Profound が HTML を Sanity の Portable Text 形式に自動的に変換します
  • Publish Resource — すぐに公開する場合はオンにし、下書きを作成する場合はオフのままにします
デフォルトでは、新しいドキュメントは下書きとして作成されます。Profound は drafts. で始まる下書き ID を自動的に生成します。ドキュメントをすぐに公開するには、Publish Resource を有効にしてください。
ヒント: Publish Resource をオフのままにすると、公開前に Sanity Studio でレビューするための下書きを作成できます。

主要な概念

ドキュメントとタイプ

Sanity のすべてのドキュメントには、スキーマを決定する _type フィールドがあります。Sanity のタイプは「コンテンツモデル」や「テンプレート」に相当するもので、ドキュメントが持つことのできる構造とフィールドを定義します。 Create Resource ステップでドキュメントを作成する場合、データ内の _type フィールドによって、ドキュメントが従うスキーマが決まります。そのタイプは、Sanity プロジェクトのスキーマにすでに存在している必要があります。 ドキュメントタイプの一般的な例:
ヒント: プロジェクトに存在するタイプを確認するには、タイプフィルターなしで List Resources ステップを使用します。返されたドキュメントに、利用可能な _type の値が表示されます。

データセット

Sanity プロジェクトは複数のデータセット(例: production、staging、development)を持つことができます。各データセットは独立したコンテンツストアです。Agent のステップを設定する際は、必ず正しいデータセットを指定してください。

下書きと公開済み

Sanity は、コンテンツのバージョン管理に 2 つの ID を使い分ける仕組みを採用しています。
  • 公開済みドキュメントはプレーンな ID を持ちます(例: abc123)
  • 下書きドキュメントは、同じ ID に drafts. プレフィックスが付いたものを持ちます(例: drafts.abc123)
Publish Resource を有効にせずにリソースを作成すると、Profound は自動的に下書きとして作成します。後から Publish Resource ステップで公開するか、Sanity Studio から直接公開できます。

Portable Text(リッチテキスト)の操作

Sanity は、ネイティブのリッチテキスト形式として Portable Text を使用します。Portable Text は、構造化コンテンツをブロックの配列として表現する JSON ベースの仕様です。

リッチテキストコンテンツの指定

Sanity のフィールドにリッチテキストコンテンツを指定する方法は 2 つあります。
Rich Text Content フィールドを使用して HTML 文字列を渡します。Profound が自動的に Portable Text ブロックに変換します。フィールド名を HTML 文字列に対応付けます。
サポートされている HTML 要素:
ヒント: これは Sanity にリッチテキストを取り込む最も簡単な方法です。LLM ステップで HTML を生成し、そのまま Rich Text Content に渡してください。変換は Profound が処理します。

Sanity スキーマを Agent ステップに対応付ける

既存の Sanity スキーマ(ドキュメントタイプ)がある場合に、それを Agent の Create Resource ステップに対応付ける方法を説明します。

例: ブログ記事のスキーマ

Sanity Studio に、次のフィールドを持つ post タイプがあるとします。

ステップごとのセットアップ

  1. Agent に Create Resource ステップを追加し、Sanity Project ドロップダウンから接続済みの Sanity プロジェクトを選択します。
  2. ドロップダウンから Dataset を選択します(例: production)。
  3. Document Details に、ドキュメントのフィールドを JSON で入力します。ここでは、タイトル、スラッグ、参照、カテゴリなどのシンプルな値を指定します。
    前のステップの動的な値を使用するには、フィールド内で / を入力して変数メニューを開き、変数を選択します。変数は JSON 内にピルバッジとしてインライン表示されます。たとえば、"My Post Title" を前の LLM ステップの変数に置き換えることができます。
  4. Portable Text フィールド(ブログ本文など)には、Rich Text Content を入力します。フィールド名を HTML 文字列に対応付けると、Profound が自動的に Sanity の形式に変換します。
    ここに変数を挿入して、前のステップで生成された HTML を渡すこともできます。/ を入力して変数メニューを開き、LLM などの前のステップの出力を値として選択します。
  5. Publish Resource をオンまたはオフにします — すぐに公開する場合はオンにし、Sanity Studio でレビューするための下書きを作成する場合はオフのままにします。
ヒント: ノード設定のすべてのテキストフィールドで変数を使用できます。/ を入力して変数メニューを開き、前のステップの出力を挿入します。変数はインタラクティブなピルバッジとして表示され、実行時に解決されます。

フィールドタイプのリファレンス


一般的なワークフロー

ブログ記事を生成して公開する

  1. LLM ステップ — プロンプトからタイトル、スラッグ、HTML 本文を生成します
  2. Create Resource — 生成したコンテンツを使用して Sanity の post ドキュメントを作成します
  3. Publish Resource — 下書きを公開します(またはステップ 2 で publish_resource: true を設定します)

既存のコンテンツを更新する

  1. Get Resource — ID を指定して現在のドキュメントを取得します
  2. LLM ステップ — 既存のドキュメントに基づいて更新後のコンテンツを生成します
  3. Update Resource — 変更されたフィールドのみを更新します

コンテンツの移行

  1. List Resources — あるデータセットからドキュメントを取得します
  2. Loop — リストを反復処理します
  3. Create Resource — 別のデータセットに各ドキュメントを作成します

下書きレビューのパイプライン

  1. Create Resource — コンテンツを下書きとして作成します(デフォルトの動作)
  2. 人によるレビュー — Sanity Studio で手動のレビューを行います
  3. Publish Resource — 承認された下書きを Agent 経由で公開します

権限とロール

Profound は、接続時に API トークンに十分な権限があるかを検証します。サポートされている Sanity のロールは次のとおりです。
必要最小限のロール: Editor。Viewer のみのアクセス権を持つトークンでは、ドキュメントの作成、更新、公開に失敗します。

トラブルシューティング

API トークンが無効か、有効期限が切れています。Sanity の管理コンソールの API → Tokens で新しいトークンを生成し、再接続してください。
API トークンに Editor レベルのアクセス権がありません。Editor 権限を持つ新しいトークンを作成し、再接続してください。
インテグレーション設定のプロジェクト ID が正しくありません。Sanity の管理コンソールでプロジェクト ID を確認してください。プロジェクト ID は、プロジェクトページの上部と URL に表示されています。
Create Resource を使用する場合、Data フィールドには、Sanity スキーマで定義されたドキュメントタイプに一致する _type プロパティを含める必要があります。例: { "_type": "post", "title": "Hello" }。
Publish Resource ステップには、drafts. で始まる下書きドキュメントの ID が必要です。ドキュメントがすでに公開済みの場合は、再度公開する必要はありません。公開済みの ID ではなく、下書きの ID を渡していることを確認してください。
HTML から Portable Text への変換には、(Document Details フィールドではなく)Rich Text Content フィールドを使用していることを確認してください。Rich Text Content フィールドには、フィールド名を HTML 文字列に対応付けた JSON オブジェクトを指定します: { "body": "<p>Hello</p>" }。

その他のリソース

Sanity のコンテンツモデルと API について詳しく学ぶ: