AI
AntimatterのAI機能は、選択したモデルを使用します。クラウドプロバイダーまたは自社ネットワーク上のサーバーが対象です。モデルを設定するまで、データはどこにも送信されません。このページでは、モデル接続、各機能、送信されるデータ、無効化方法について説明します。
AI機能
| 機能 | 設定場所 | モデルの種類 | デフォルトで有効 |
|---|---|---|---|
| コンポーザーでの書き直し: メッセージを送信する前に、改善、短縮、修正、または翻訳します | AI › 組み込み機能(モデル接続が必要です) | チャットモデル(LLM) | いいえ |
| 要約: ユーザーが選択したチャンネルのサマリー | AI › 組み込み機能(モデル接続が必要です) | チャットモデル(LLM) | いいえ |
| チャンネルの自動翻訳 | サイト設定 › 言語 | モデル接続、LibreTranslate、またはOpenAI互換API | いいえ |
| 読み上げ | 統合機能 › テキスト読み上げ(モデル接続は任意) | テキスト読み上げ(OpenAI互換) | いいえ |
| AIエージェント: ボットとのチャット、スレッドの要約、通話の要約 | Agentsアプリ | 任意の大型言語モデル(LLM)サービス | アプリは有効ですが、サービスを追加するまで何も実行されません |
| 通話の文字起こしとライブ字幕 | Callsアプリ | 音声認識(OpenAI互換) | いいえ |
「OpenAI互換」とは、OpenAIと同じHTTP APIを提供するサーバーを指します。自社で運用できる多くのモデルサーバー(Ollama、vLLM、llama.cppのサーバー、Whisperやテキスト読み上げサーバーなど)や、LiteLLMやOpenRouterなどの多くのクラウドプロバイダーおよびゲートウェイがこれに該当します。これらの機能にはライセンスは不要です。
組み込み機能(書き直し、要約、翻訳、読み上げ)にはAgentsアプリは不要です。モデル接続はシステムコンソールで追加します。
モデル接続
モデル接続とは、Antimatterが呼び出し可能なAIプロバイダーです。アドレス、キー、モデルを指します。一度追加すれば、使用する各機能に対して選択できます。種類は2つあります。
- サーバー全体接続: システム管理者がシステムコンソール › AI › モデル接続で管理します。組み込み機能に使用できるのはこれのみです。許可されたユーザーに対して、アプリでも使用できます。
- コミュニティ接続: コミュニティの管理者が、コミュニティ設定で自社コミュニティ用に追加します(下記参照)。アプリはコミュニティのユーザーに対してこれを使用します。組み込み機能には使用されません。
システムコンソールのAIセクションは、サーバー全体接続を管理できるユーザー(デフォルトではシステム管理者)に表示されます。モデル接続ページには、サーバー全体接続とすべてのコミュニティの接続がリスト表示されます。
接続を追加する
システムコンソール › AI › モデル接続で接続を追加するをクリックし、フォームに入力します:
| フィールド | 入力内容 |
|---|---|
| プリセット | プロバイダーとよく知られたサービスのアドレスを入力します。OpenAI、Mistral、Gemini、OpenRouter、またはサーバー自体上の Ollama と LiteLLM。任意です。 |
| 名前 | 管理者が選択する際に表示される名前です。例: "Company OpenAI"。 |
| プロバイダー | OpenAI互換(自社で運用する大多数のプロバイダー、ゲートウェイ、モデルサーバー)または Anthropic。AWS Bedrock、Google Vertex AI、Entra ID を使用している Azure など、独自のサインインを必要とするクラウドサービスは、OpenAI互換エンドポイントまたは LiteLLM のようなゲートウェイ経由で利用します。 |
| ベースURL | API のアドレスです。/v1 までを含めて入力します。例: http://ollama:11434/v1。空欄の場合は、プロバイダー独自のアドレス(https://api.openai.com/v1 または https://api.anthropic.com/v1)が使用されます。 |
| APIキー | プロバイダーのキーです。エンドポイントがキーを必要としない場合は空欄にしてください。暗号化されて保存され、二度と表示されません。フォームには最後の4文字のみが表示され、保持、置き換え、削除の選択肢が提示されます。 |
| 追加ヘッダー | ゲートウェイが必要な場合に、すべてのリクエストに送信するヘッダーです。値はキーと同様に暗号化されて保存され、二度と表示されません。変更するには、すべてを再入力する必要があります。 |
| モデル | 機能やアプリが特定のモデルを指定しない場合に、各機能で使用されるモデルです: チャット、Embeddings、文字起こし、Decisions。モデルを読み込む をクリックすると、エンドポイントが提供するモデルの一覧が表示されます。エンドポイントが提供していない機能は空欄にしてください。Anthropic 接続はチャットのみ可能です。 |
| Decisions API | Decisions モデルの呼び出し方法です: OpenAI decisions または SystemOne。Decisions を要求するアプリでのみ関連します。 |
| 制限 | 制限と予算を参照してください。 |
| コミュニティ | サーバー全体の接続のみです。すべてのコミュニティ: すべてのコミュニティ、およびダイレクトメッセージとグループメッセージで使用可能。それ以外の場合は、選択したコミュニティでのみ使用可能です。 |
| 使用可能なユーザー | 使用可能な範囲で 全員、または選択したチーム(コミュニティ内の人のグループ)とロール(システム管理者、コミュニティ管理者)のみ。ゲストも許可 を有効にするとゲストが使用可能になります。無効な場合、全員 を選択していてもゲストは使用できません。 |
テスト接続 はアドレスとキーを確認します。サーバーはエンドポイントにモデルの一覧を要求するか、1トークンのチャットを送信します。アドレスを変更した場合、保存したキーでのテストは保存後、またはキーを再入力した場合にのみ実行されます。接続を追加 をクリックして保存します。
サーバーがリクエストを直接発行するため、APIに到達できる必要があります。同じcomposeプロジェクト内のモデルサーバー、ローカルネットワーク上のサーバー、またはインターネット上のサーバーが対象です。送信リクエストはHTTP_PROXYおよびHTTPS_PROXY変数を尊重します。
接続を削除すると、そのキーは破棄されます。その接続を使用していた機能は、別の接続を選択するまでAIを使用できなくなります。
制限と予算
各接続には4つの制限があります。空欄または0の場合は制限なしを意味します。
- 1分あたりのリクエスト数および1人あたり1分あたりのリクエスト数。これらは各サーバーが個別にカウントします。3台のサーバーで構成されるクラスターでは、最大でレート制限の3倍のリクエストが許可されます。
- 1か月あたりのトークン数および1人あたり1か月あたりのトークン数:カレンダー月(UTC)ごとのトークン予算で、クラスター全体についてデータベースでカウントされます。同時に実行されている複数のリクエストにより、予算をわずかに超過する可能性があります。
1人あたりの制限は、書き直しおよびレカップにも適用されます。カウント対象は、書き直しを実行したユーザーまたはレカップの所有者です。
使用状況
リストには、各接続の当月の使用状況が表示されます。使用状況をクリックすると詳細が開きます。入力および出力のトークン数、リクエスト数、月次予算、日別(UTC)および用途別(書き直す、レカップ、自動翻訳、テキスト読み上げ、アプリ経由のユーザー、または特定のアプリ)の使用状況を確認できます。
ユーザーまたはアプリが接続を通じて発行するすべての呼び出しに対して監査記録が書き込まれます。記録されるのは、実行者、接続、用途、モデル、トークン数、および成功/失敗の有無のみで、会話の内容は記録されません。組み込み機能は使用状況にのみカウントされます。翻訳のみでも、メッセージごとに言語ごとに1回の呼び出しが発生します。
コミュニティ接続
コミュニティ管理者は、コミュニティの設定のモデル接続タブで、コミュニティ独自の接続を追加できます。フォームは同じですが、コミュニティフィールドはありません。コミュニティの接続は、そのコミュニティ内のチャンネルでのみ機能し、そのコミュニティのメンバーのみが使用できます。また、対象範囲として指定できるのは、そのコミュニティ内のチームのみです。モデル接続の管理権限を持つロールもこれらを管理できます。デフォルトでは、コミュニティ管理者にはこの権限が付与されています。
コミュニティの接続は、プライベートアドレスまたはループバックアドレス(ローカルネットワーク上のOllamaサーバーなど)に到達できません。システムコンソール › 環境 › 開発者 › 信頼されていない内部接続を許可する(ServiceSettings.AllowedUntrustedInternalConnections)にそれらがリストアップされていない限りです。サーバー全体の接続は到達できます。
コミュニティ管理者側の詳細については、コミュニティ設定を参照してください。
暗号化キー
モデル接続のキーと追加ヘッダーは、データベース内で1つの暗号化キーを使用して暗号化されています(AES-256-GCM)。データベースのバックアップだけでは、それらは判明しません。サーバーはこの順序でキーを探します:
AM_AI_ENCRYPTION_KEY変数:base64形式の32バイトのランダムバイト列。openssl rand -base64 32を使用して作成できます。- それ以外の場合、サーバーのデータディレクトリ(
FileSettings.Directory、デフォルトは./data/)のルートにあるai-encryption.keyファイルです。サーバーは、接続がそれを必要とする最初のときに、自分自身のみが読み取れるようにして作成します。アプリ、エクスポート、ファイルアーカイブからは読み取れません。
変数を設定すべきタイミング:
- サイトのcomposeファイルを使用する場合。
compose.yamlは.envからAM_AI_ENCRYPTION_KEYを受け渡し、変数が空の場合にはdataボリュームにキーファイルを保持します。変数を設定する方が優れています:.envのバックアップがキーを保持し、データベースとは別に保管されるためです。.envに追加し、docker compose up -dを実行します:
サーバーがすでにキーファイルを作成している場合は、保存されたキーが読み取れるように保つため、そのキーをecho "AM_AI_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> .env.envに設定してください:docker compose exec antimatter cat /antimatter/data/ai-encryption.keyを実行すると出力されます。 - ファイルがS3にあるクラスター。 サーバーはディレクトリを共有しないため、サーバーはファイルを作成しません:すべてのサーバーで同じ変数を設定してください。設定されるまで、接続はキーを保存できません。
- リリースアーカイブやパッケージを使用する場合、ファイルは
data/(パッケージの場合は/var/lib/antimatter/data)にあります。そこに保持することも、環境ファイルで変数を設定することもできます。
キーを変更するには、新しいキーを AM_AI_ENCRYPTION_KEY に、古いキーを AM_AI_ENCRYPTION_PREVIOUS_KEYS(カンマ区切りで複数のキー)に設定します:古いキーで保存されたキーは引き続き読み取れます。接続のキーは、再度入力したときに新しいキーで暗号化されます。すべての接続のキーが再度入力されるまで、古いキーをリストに保持してください。
組み込み機能
システムコンソール › AI › 組み込み機能で、各機能に対してサーバー全体で使用する接続とモデル、またはオフを選択します。接続が設定されていない機能はAIを使用しません。モデルの読み込みには接続のすべてのモデルがリスト表示され、デフォルトでは各機能が接続のチャットモデルを使用します。
| 機能 | 設定項目 | その他必要なもの |
|---|---|---|
| コンポーザーでの書き換え: メッセージボックスのAIメニュー(改善、短縮、修正、翻訳) | AISettings.Rewrite | なし: 接続が選択されるとメニューが表示されます。 |
| レカップ: ユーザーが選択したチャンネルの要約。オンデマンドまたはスケジュールで実行できます。 | AISettings.Recaps | システムコンソール › サイト設定 › レカップでAIリカプを有効にする(デフォルトでオン)。これにより、ユーザーが作成できるレカップの数も設定できます。 |
| 自動翻訳 | AISettings.AutoTranslation | 自動翻訳内の翻訳プロバイダーモデル接続(推奨)。 |
| テキスト読み上げ | AISettings.TextToSpeech | テキスト読み上げでメッセージを読み上げるをオンにします。接続の/audio/speechエンドポイントが、そこに設定されたアドレスとキーに置き換わります。 |
各設定にはConnectionIdとModelというキーがあります。例えばAISettings.Rewrite.ConnectionId(AM_AISETTINGS_REWRITE_CONNECTIONID)などです。Modelが空の場合、接続のデフォルトモデルが使用されます。
組み込み機能は接続の制限を使用しますが、その対象範囲(オーディエンス)は使用しません。機能を使用できるすべてのユーザーが、その接続を使用できます。注意が必要な接続や削除された接続の場合、別の接続を選択するまで機能が失敗します。ページにその旨が表示されます。
AIエージェント
Agentsアプリ(ID: mattermost-ai)はデフォルトで有効です。設定には2つのステップが必要です:サービス(モデルプロバイダーへの接続)を追加し、その後エージェント(サービスを使用するボット)を作成します。

1. サービスの追加
システムコンソール › プラグイン › エージェントに移動し、AIサービスの下にあるAIサービスを追加をクリックします。サービスタイプを選択します。
- OpenAI Compatible: 自分でホストするモデルサーバー、またはOpenAI互換APIを持つプロバイダー向け。API URL(例:
http://ollama:11434/v1またはhttp://vllm.internal:8000/v1)を入力し、サーバーが必要とする場合のみAPIキーを入力します。サーバーがChat Completions APIのみをサポートする場合、Responses APIを使用をオフにします。 - OpenAI、Anthropic、Google Gemini、Google Vertex AI、AWS Bedrock、Azure、Cohere、Mistral: ホスティングプロバイダー。それぞれAPIキーが必要です(Bedrock: AWSリージョンと認証情報またはIAMロール; Vertex AI: プロジェクト、リージョン、サービスアカウント; Azure: API URLも必要)。
次に、デフォルトモデル(プロバイダーがモデルを報告できる場合はリストから選択、そうでない場合は名前を入力)を設定します。プロバイダーが報告しない場合は、入力トークン制限と出力トークン制限も設定します。フォールバックサービスを設定すると、このサービスが失敗したときに引き継ぐことができます。保存してください。
サーバーはこれらのリクエストを自分自身で発行するため、APIに到達できる必要があります。同じcomposeプロジェクト内のモデルサーバー、ネットワーク内、またはインターネット上のサーバーが対象です。送信リクエストはHTTP_PROXYおよびHTTPS_PROXY変数を尊重します。
2. エージェントの作成
エージェントは、Webアプリのエージェントページで作成します。エージェントパネルのエージェントセレクターにある管理から開きます(クラシックインターフェースでは、プロダクトメニューからも開けます)。アドレスはhttps://chat.example.com/plug/mattermost-ai/agentsです。各エージェントには表示名、Agent Username(メンションに使用する名前)、Service、および任意でモデル、Custom Instructions、Enable Vision(画像)とEnable Toolsのスイッチがあります。アクセスタブでは、使用可能なチャンネルと使用可能なユーザーを制限できます。システムコンソールのAI Functions内のDefault botでは、エージェントが選択されていない場合に使用されるエージェント(例:通話の要約)を選択します。
エージェントアプリの任意の機能
- 埋め込み検索(実験的、無効):メッセージに対するセマンティック検索。pgvector拡張機能付きのPostgreSQLと埋め込みモデル(OpenAIまたはOpenAI互換)が必要です。すべてのメッセージ(非公開チャンネルやダイレクトメッセージを含む)を埋め込みモデルに送信します。
- Web検索(無効):エージェントがGoogle、Brave、または自分で運用しているSearXNGサーバーを通じてWebを検索できるようにします。
- ネイティブツール:提供しているプロバイダーの場合、エージェントはプロバイダー独自のWeb検索(サポートされている場合、新規エージェントではデフォルトで有効)、Webフェッチ、コード実行を使用できます。これらはプロバイダー側で実行されます。エージェントごとに無効にできます。
- Model Context Protocol (MCP):信頼できるMCPサーバーにエージェントを接続し、追加のツールを使用します。
- Debug: Trace Output(オフ、サーバーログ、またはOpenTelemetryエンドポイント)とEnable Token Usage Logging(トークン使用量を
logs/agents/token_usage.logに書き出します)。
音声認識:通話の文字起こしと字幕
通話は、OpenAI互換の/v1/audio/transcriptionsエンドポイントを提供する音声認識サーバーによって、ライブ字幕付きで文字起こしできます。設定は通話と音声を参照してください。文字起こしの要約をオンにすると、デフォルトのエージェントは各文字起こしの要約を投稿します。
テキスト読み上げ: 音声読み上げ
テキスト読み上げを有効にすると、すべてのメッセージのメニューに読み上げるが表示されます。サーバーはメッセージのテキストをテキスト読み上げAPIに送信し、オーディオを再生します。設定はシステムコンソール › 統合機能 › テキスト読み上げにあります。
| 設定項目 | キーと変数 | 入力内容 |
|---|---|---|
| メッセージを読み上げる | TextToSpeechSettings.Enable, AM_TEXTTOSPEECHSETTINGS_ENABLE | true (デフォルトはオフ) |
| APIベースURL | TextToSpeechSettings.URL, AM_TEXTTOSPEECHSETTINGS_URL | /v1を含むベースURLです。例: http://tts.internal:8000/v1。サーバーはその/audio/speechエンドポイントを呼び出します。 |
| モデル | TextToSpeechSettings.Model, AM_TEXTTOSPEECHSETTINGS_MODEL | APIが使用するモデル名です。例: tts-1。必須です。 |
| 音声 | TextToSpeechSettings.Voice, AM_TEXTTOSPEECHSETTINGS_VOICE | モデルのボイスのいずれか、またはデフォルトにする場合は空欄にします。 |
| APIキー | TextToSpeechSettings.APIKey, AM_TEXTTOSPEECHSETTINGS_APIKEY | ベアラートークンとして送信されます。APIが不要な場合は空欄にします。 |
上記のアドレスとキーの代わりにモデル接続を使用するには、AI › Built-in featuresのテキスト読み上げで選択します。ページには、その接続でメッセージが読み上げられることが示されます。APIベースURLとAPIキーは使用されませんが、音声は引き続き使用されます。また、接続にモデルが指定されていない場合、モデルも使用されます。メッセージを読み上げるは引き続きオンである必要があります。
送信前に、サーバーはコードブロック、リンク、絵文字コード、書式設定を削除し、最大4000文字まで保持します。MP3オーディオを要求し、直近64件の結果をメモリに保持するため、同じメッセージを2回読み上げても1回だけ送信されます。
自動翻訳
自動翻訳は、チャンネルのメッセージを各読み手の言語で表示します。システムコンソール › サイト設定 › 言語の自動翻訳セクションで設定します。
| 設定項目 | キー | デフォルト値 |
|---|---|---|
| 有効化 | AutoTranslationSettings.Enable | オフ |
| 翻訳プロバイダー | AutoTranslationSettings.Provider | connection(「Model connection (recommended)」として表示され、設定されていない場合に選択されるもの)、libretranslate、openai(「OpenAI-compatible API, set up here」)、またはagents(「AI chat app's service (older)」) |
| 許可された言語 | AutoTranslationSettings.TargetLanguages | en: メッセージを翻訳できる対象言語 |
| 翻訳タイムアウト(ms) | AutoTranslationSettings.TimeoutMs | 5000 |
| ダイレクトメッセージとグループメッセージでの自動翻訳を制限する | AutoTranslationSettings.RestrictDMAndGM | オフ |
各プロバイダーには独自のフィールドがあります:
- Model connection:サーバー全体の接続とそのモデル。AI › Built-in featuresの自動翻訳と同じ設定です(
AISettings.AutoTranslation)。専用の翻訳モデルは高速かつ正確ですが、汎用のLLMでも動作します。 - LibreTranslate: LibreTranslate APIエンドポイント と LibreTranslate APIキー (
AutoTranslationSettings.LibreTranslate.URL、.APIKey)。LibreTranslateサーバーは自社ネットワーク内で実行できます。 - OpenAI互換API: APIベースURL (
/v1までを含む。サーバーはチャット補完エンドポイントを使用)、モデル と APIキー (AutoTranslationSettings.OpenAI.URL、.Model、.APIKey)。ローカルで実行される小型の翻訳モデルが効果的です。 - AI chat app's service (older):0.9.0以前に設定されたサーバーのプロバイダーで、Agentsアプリのサービスを使用していました。もはやアプリは必要ありません: AI › Built-in featuresの自動翻訳で選択された接続、またはアップグレード時にアプリのサービスからコピーされた接続を使用して翻訳します。Switch to Model connectionは、設定を推奨されるプロバイダーに移行します。
有効化後、チャンネル管理者は設定(自動翻訳)でチャンネルの翻訳をオンにします。各メンバーはチャンネルメニュー(メッセージを翻訳)からオプトアウトできます。ダイレクトメッセージとグループメッセージでは、どのメンバーもオンにできますが、制限が設定されている場合は利用できません。翻訳されたメッセージには「…から翻訳」という表示と、元のメッセージへのリンクが表示されます。
テキストが送信される前に、コード、リンク、メンション、絵文字はプレースホルダーに置き換えられ、その後元に戻されます。
データがどこに送信されるか
| 機能 | 送信されるもの | 送信先 |
|---|---|---|
| 書き直す | 作成中のメッセージと、選択された指示 | それ用に選択された接続 |
| 要約(リキャップ) | 要約に含まれるチャンネルのメッセージと、その人の指示 | それ用に選択された接続 |
| モデル接続を使用するアプリ | 使用している人がアプリに送信する内容 | その人が使用できる接続 |
| エージェント | リクエスト、対象のスレッドまたはチャンネルのメッセージ、エージェントの指示、ツールの結果、ビジョン機能がオンの場合の画像、質問したユーザーの名前、ユーザー名、役職、言語 | サービスのAPI |
| 埋め込み検索 | すべてのメッセージ(ボットとシステムメッセージを除く) | 埋め込みAPI |
| ネイティブツールとWeb検索 | 検索クエリ、取得するページ、コード | プロバイダー、または選択した検索エンジン |
| 通話の文字起こし | 有効な間、発言するすべての人の音声 | 音声認識API |
| 読み上げ | 読み上げ対象のメッセージのテキスト | テキスト読み上げAPI、またはそれ用に選択された接続 |
| 翻訳 | 翻訳対象のチャンネル内のメッセージのテキスト | モデル接続、LibreTranslate、またはOpenAI互換API |
すべてを自社ネットワーク内に保つには、各機能を自社で運用するサーバーに向けます。クラウドプロバイダーを使用する場合は、データ保持ポリシーを確認し、どの機能がメッセージを外部に送信しているかをユーザーに伝えましょう。
AI機能を無効にする
単一のスイッチはありません。各機能には個別のスイッチがあります。
- 書き直しと要約: システムコンソール › AI › 組み込み機能でオフに設定します。ユーザーはすでに持っている要約を読み続けるためです。
- モデル接続: 接続を削除すると、その接続の使用がすべて停止します。接続がなければ、組み込み機能もアプリもサーバー経由でAIを使用できません。
- エージェント: システムコンソール › プラグイン › プラグイン管理でAgentsアプリを無効にします。これにより通話の要約も削除されます。
- 文字起こしと字幕:
AM_CALLS_ENABLE_TRANSCRIPTIONS=falseおよびAM_CALLS_ENABLE_LIVE_CAPTIONS=false(デフォルト値)。 - 読み上げる: メッセージを読み上げるをオフにします(
AM_TEXTTOSPEECHSETTINGS_ENABLE=false、デフォルト値)。接続を使用しているかどうかに関わらず適用されます。 - 翻訳: 自動翻訳をオフにします(
AM_AUTOTRANSLATIONSETTINGS_ENABLE=false、デフォルト値)。
Agentsアプリを無効にしても、他の機能はオフになりません。それらはモデル接続または独自のAPIを使用しているためです。