> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# ドキュメントを管理

[ナレッジベースダッシュボード](https://elevenlabs.io/app/agents/knowledge-base)、CLI、またはAPIからナレッジベースを管理できます。ナレッジベースとは何か、エージェントがどのように使用するかについては、[ナレッジベース](/docs/ja/eleven-agents/customization/knowledge-base)をご覧ください。

![ドキュメント一覧を表示するナレッジベースのメインインターフェース](/docs/_fern-img/0887213c4d8099240b7e5a8fec86fc75f4763e8fd80a6f7a6de33545c45f37a2.webp)

## ドキュメントを追加する

ドキュメントは、ファイル、ウェブページ、またはプレーンテキストから作成できます。作成後、エージェントに紐付けると、会話でその内容を利用できるようになります。

#### ダッシュボード

[ナレッジベースダッシュボード](https://elevenlabs.io/app/agents/knowledge-base)、またはエージェントの設定画面から直接、**ドキュメントを追加**をクリックしてソースを選択します。

#### ファイル

PDF、TXT、DOCX、HTML、EPUB、またはMarkdown形式のドキュメントを、ファイルあたり最大20MBまでアップロードできます。

![対応形式と20MBのサイズ上限を表示するファイルアップロード画面](/docs/_fern-img/b428874877d6aa2b24167c0293709e6a52a096a13b02244c0a5463139d3988e4.webp)

#### URL

URLを貼り付けてウェブページをインポートします。サイト全体を取り込むにはクロールオプションを使用します。開始URLからリンクをたどってウェブサイト全体をクロールするか、サイトマップからページをインポートできます。ページのインポートに失敗する場合は、サイトで[クローラーユーザーエージェント](#crawler-user-agent)が許可されていることを確認してください。

![ドキュメントへのリンクを貼り付けられるURLインポート画面](/docs/_fern-img/8523ea5c5ae0418007eb7042d4af3e792a111ca41b74a090357df34cd5b4a369.webp)

> **Warning**
>
> 指定するURLのコンテンツを使用する許可があることを確認してください。

#### テキスト

テキストを手動で入力し、名前を付けます。

![カスタムコンテンツに名前を付けて追加できるテキスト入力画面](/docs/_fern-img/4e44e310335dcea24b4832d38813992f1bdc55ef85b4e54353963dc47e9baa0a.webp)

#### CLI

CLIではナレッジベースのドキュメントを直接アップロードできません。ダッシュボードまたはAPIで作成し、生成されたドキュメントIDをエージェント設定に紐付けてください。

#### エージェント設定を取得する

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### \`agent_configs/\<agent-name>.json\`を編集する

`conversation_config.agent.prompt.knowledge_base`を設定します。

```json
{
  "conversation_config": {
    "agent": {
      "prompt": {
        "knowledge_base": [
          {
            "type": "file",
            "name": "Unladen Swallow Facts",
            "id": "i2YYI6huwBmcgYydAXARmQJc3pmX",
            "usage_mode": "auto"
          }
        ]
      }
    }
  }
}
```

#### 変更をプッシュする

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### API

各ドキュメントを作成してから、返されたIDをエージェント設定に紐付けます。

```python
import os

from dotenv import load_dotenv
from elevenlabs import ElevenLabs

load_dotenv()

elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))

# Create a document from text
text_doc = elevenlabs.conversational_ai.knowledge_base.documents.create_from_text(
    text="The airspeed velocity of an unladen swallow (European) is 24 miles per hour, or roughly 11 meters per second.",
    name="Unladen Swallow facts",
)

# Create a document from a URL
url_doc = elevenlabs.conversational_ai.knowledge_base.documents.create_from_url(
    url="https://en.wikipedia.org/wiki/Unladen_swallow",
    name="Unladen Swallow Wikipedia page",
)

# Create a document from a file
file_doc = elevenlabs.conversational_ai.knowledge_base.documents.create_from_file(
    file=open("/path/to/unladen-swallow-facts.txt", "rb"),
    name="Unladen Swallow Facts",
)

# Attach the documents to an agent
elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "agent": {
            "prompt": {
                "knowledge_base": [
                    {"type": "text", "name": text_doc.name, "id": text_doc.id},
                    {"type": "url", "name": url_doc.name, "id": url_doc.id},
                    {"type": "file", "name": file_doc.name, "id": file_doc.id},
                ]
            }
        }
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import fs from "node:fs";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient();

// Create a document from text
const textDoc = await elevenlabs.conversationalAi.knowledgeBase.documents.createFromText({
  name: "Unladen Swallow Facts",
  text: "The airspeed velocity of an unladen swallow (European) is 24 miles per hour, or roughly 11 meters per second.",
});

// Create a document from a URL
const urlDoc = await elevenlabs.conversationalAi.knowledgeBase.documents.createFromUrl({
  name: "Unladen Swallow Wikipedia page",
  url: "https://en.wikipedia.org/wiki/Unladen_swallow",
});

// Create a document from a file
const fileBuffer = fs.readFileSync("/path/to/unladen-swallow-facts.txt");
const file = new File([fileBuffer], "unladen-swallow-facts.txt", { type: "text/plain" });
const fileDoc = await elevenlabs.conversationalAi.knowledgeBase.documents.createFromFile({
  name: "Unladen Swallow Facts",
  file,
});

// Attach the documents to an agent
await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    agent: {
      prompt: {
        knowledgeBase: [
          { type: "text", name: textDoc.name, id: textDoc.id },
          { type: "url", name: urlDoc.name, id: urlDoc.id },
          { type: "file", name: fileDoc.name, id: fileDoc.id },
        ],
      },
    },
  },
});
```

単一ページを追加する代わりにウェブサイト全体をドキュメントのフォルダとしてクロールするには、クロールジョブを開始します。クロールは非同期で実行されるため、返されたジョブIDでステータスを確認したり、キャンセルしたりできます。

```python
crawl = elevenlabs.conversational_ai.knowledge_base.crawl_jobs.create(
    url="https://elevenlabs.io/docs",
    max_depth=3,
    max_pages=1000,
)
```

```typescript
const crawl = await elevenlabs.conversationalAi.knowledgeBase.crawlJobs.create({
  url: "https://elevenlabs.io/docs",
  maxDepth: 3,
  maxPages: 1000,
});
```

### クローラーユーザーエージェント

URLインポートとクロールジョブでは、ユーザーエージェント`ElevenlabsBot/1.0`でページを取得します。

> **Warning**
>
> サイトがCDN、WAF、またはボット保護ルールの背後にある場合は、クローラーがページを読み取れるようにこのユーザーエージェントを許可してください。リクエストがブロックされると、ドキュメントは作成されますが、コンテンツを抽出できません。

クローラーは`robots.txt`も遵守します。`ElevenlabsBot`またはすべてのユーザーエージェントに対して禁止されているページはスキップされるため、インデックス登録されるはずのページがない場合はルールを確認してください。クローラーを明示的に許可するには、次のようにします。

**`robots.txt`**

```txt robots.txt
User-agent: ElevenlabsBot
Allow: /
```

## 既存のドキュメントをエージェントに追加する

ドキュメントは複数のエージェントで再利用できるため、共通のナレッジを一度だけ管理すれば済みます。

1. エージェントの[設定](https://elevenlabs.io/app/agents/agents)に移動します。
2. ナレッジベースセクションを見つけ、**ドキュメントを追加**をクリックします。
3. ナレッジベースから既存のドキュメントを選択するか、新しいドキュメントをアップロードします。

![エージェントにドキュメントを追加するためのインターフェース](/docs/_fern-img/8e8a6a2df244ed20d1ab889c8ae5dda76aefed0d15f3dd2fe09c35b281c63673.webp)

> **Tip**
>
> エージェント間でドキュメントを再利用すると、ナレッジの一貫性を保ち、アップロードの重複を防げます。

## ドキュメントを編集する

削除して再アップロードする代わりに、ドキュメントの内容を直接編集できます。ドキュメントを編集すると、コンテンツ検索用チャンクとRAG埋め込みが自動的に再生成されるため、検索とエージェントによる取得が同期された状態に保たれます。

* **テキストおよびファイルのドキュメント**：コンテンツをインラインで編集して保存します。
* **ファイルドキュメント**：基になるファイルを新しいバージョンに置き換えることもできます。
* **URLドキュメント**：自動同期がオフの場合はコンテンツを編集できます。自動同期がオンの場合は、同期サイクルがドキュメントを管理するため、手動編集はブロックされます。

![ナレッジベース内でドキュメントのコンテンツをインライン編集する画面](/docs/_fern-img/4ea01bb2c13162f31f7610b049ae0db542e279a26da38f4c79f17fb89a8524f5.webp)

```python
# Update a document's name or content
elevenlabs.conversational_ai.knowledge_base.documents.update(
    documentation_id="i2YYI6huwBmcgYydAXARmQJc3pmX",
    name="Unladen Swallow Facts",
    content="The airspeed velocity of an unladen swallow (European) is 24 miles per hour.",
)

# Replace the underlying file of a file document

elevenlabs.conversational_ai.knowledge_base.document.update_file(
documentation_id="i2YYI6huwBmcgYydAXARmQJc3pmX",
file=open("/path/to/unladen-swallow-facts-v2.txt", "rb"),
)

```

```typescript
// Update a document's name or content
await elevenlabs.conversationalAi.knowledgeBase.documents.update("i2YYI6huwBmcgYydAXARmQJc3pmX", {
  name: "Unladen Swallow Facts",
  content: "The airspeed velocity of an unladen swallow (European) is 24 miles per hour.",
});

// Replace the underlying file of a file document
const fileBuffer = fs.readFileSync("/path/to/unladen-swallow-facts-v2.txt");
const updatedFile = new File([fileBuffer], "unladen-swallow-facts-v2.txt", { type: "text/plain" });
await elevenlabs.conversationalAi.knowledgeBase.document.updateFile("i2YYI6huwBmcgYydAXARmQJc3pmX", {
  file: updatedFile,
});
```

## URLコンテンツを最新の状態に保つ

URLから作成したドキュメントは、更新してソースから最新コンテンツを再取得できます。更新するとドキュメントが再インデックス化されるため、RAG対応エージェントは更新後のコンテンツを使用します。

```python
elevenlabs.conversational_ai.knowledge_base.document.refresh(
    documentation_id="i2YYI6huwBmcgYydAXARmQJc3pmX",
)
```

```typescript
await elevenlabs.conversationalAi.knowledgeBase.document.refresh("i2YYI6huwBmcgYydAXARmQJc3pmX");
```

ダッシュボードでは、自動同期を有効にしてスケジュールに従ってURLドキュメントを自動更新することもできます。これにより、手動更新なしでコンテンツを最新の状態に保てます。

## フォルダで整理する

フォルダは関連するドキュメントをグループ化し、管理や一括での紐付けを簡単にします。フォルダを作成してから、ダッシュボードまたはAPIでドキュメントを移動します。

エージェントに紐付けたフォルダ内のすべてのドキュメントはRAG経由で利用可能になるため、フォルダを使用するにはエージェントでRAGを有効にする必要があります。

![フォルダを作成してドキュメントを移動する画面](/docs/_fern-img/8267c0d4a36282c1fcaaacf0a665e5caf8c4cf6f2908451fc5a3b1cf6a8dd2e0.webp)

```python
# Create a folder
folder = elevenlabs.conversational_ai.knowledge_base.documents.create_folder(
    name="Product documentation",
)

# Move a document into the folder

elevenlabs.conversational_ai.knowledge_base.documents.move(
document_id="i2YYI6huwBmcgYydAXARmQJc3pmX",
move_to=folder.id,
)

```

```typescript
// Create a folder
const folder = await elevenlabs.conversationalAi.knowledgeBase.documents.createFolder({
  name: "Product documentation",
});

// Move a document into the folder
await elevenlabs.conversationalAi.knowledgeBase.documents.move("i2YYI6huwBmcgYydAXARmQJc3pmX", {
  moveTo: folder.id,
});
```

## 依存関係と削除

各ドキュメントには、現在そのドキュメントに依存しているエージェントを一覧表示する**依存先エージェント**タブがあります。

![依存先エージェントタブを表示するドキュメント詳細画面](/docs/_fern-img/20ecce9f1db77d27bdf760b4a90c9bd2baacb612b48cf660e0f395c82aa3a725.webp)

エージェントが依存しているドキュメントは削除できません。先に該当するエージェントからドキュメントを削除するか、強制削除を使用してすべての依存先から一度に切り離してください。