メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.fim.ai/llms.txt

Use this file to discover all available pages before exploring further.

すべての設定は .env を使用して行われます。example.env をコピーして値を入力してください:
cp example.env .env

設定レベル

各統合には、その重要度を示す設定レベルがあります:
レベル意味設定されていない場合の動作
Requiredコアシステム依存システムがエラーになります — チャットと主要機能は動作しません
Recommended重要な機能の有効化グレースフルデグラデーション — 機能は目に見える形で利用不可になりますが、システムは実行されます
Optional拡張機能透過的デグラデーション — システムは正常に動作し、機能は単に存在しません
: 管理者が設定したモデル(Admin → Models ページ)は、LLM 環境変数の代わりになります。ヘルスチェックは両方のソースを考慮します。

フロントエンド(ローカル開発のみ)

フロントエンドにはローカル開発のみの別の環境ファイルがあります:frontend/.env.local
このファイルは Docker では使用されません。 Docker コンテナ内では、Next.js が /api/* を Python バックエンドに内部的にプロキシします(ポート 8000 はコンテナ内部)ため、フロントエンド環境ファイルは不要です。
ローカル開発では、デフォルト設定がそのまま機能します — バックエンドがデフォルトポートで実行されている場合、frontend/.env.local を作成する必要はありません オーバーライドが必要な場合は、frontend/.env.local を手動で作成してください:
echo 'NEXT_PUBLIC_API_URL=http://localhost:9000' > frontend/.env.local
変数デフォルト説明
NEXT_PUBLIC_API_URLhttp://localhost:8000 (自動)ブラウザが直接 API 呼び出し(OAuth リダイレクト、ストリーミング)に使用するバックエンド URL。未設定の場合は window.location から自動検出されます — ローカルでバックエンドが非標準ポートで実行されている場合のみオーバーライドしてください。
ビルド時の注意NEXT_PUBLIC_* 変数は pnpm build 時に JS バンドルに埋め込まれます。実行時に変更する場合(例:ルート .env 経由)は効果がありません — これが、ローカル開発のみで frontend/.env.local に配置される理由です。

LLM (必須)

変数必須デフォルト説明
LLM_API_KEYはいLLM プロバイダーの API キー
LLM_BASE_URLいいえhttps://api.openai.com/v1OpenAI 互換 API のベース URL
LLM_MODELいいえgpt-4oメインモデル — 計画、分析、ReAct 智能体に使用
FAST_LLM_MODELいいえ(LLM_MODEL にフォールバック)高速モデル — DAG ステップ実行に使用 (低コスト、高速)
LLM_TEMPERATUREいいえ0.7デフォルトサンプリング温度
LLM_CONTEXT_SIZEいいえ128000メイン LLM の上下文窓口サイズ
LLM_MAX_OUTPUT_TOKENSいいえ64000メイン LLM の呼び出しあたりの最大出力 token 数
FAST_LLM_API_KEYいいえ(LLM_API_KEY にフォールバック)高速モデルプロバイダーの API キー。高速モデルがメインモデルと異なるプロバイダーでホストされている場合に使用
FAST_LLM_BASE_URLいいえ(LLM_BASE_URL にフォールバック)高速モデルプロバイダーのベース URL
FAST_LLM_TEMPERATUREいいえ(LLM_TEMPERATURE にフォールバック)高速モデルのサンプリング温度
FAST_LLM_CONTEXT_SIZEいいえ(LLM_CONTEXT_SIZE にフォールバック)高速 LLM の上下文窓口サイズ
FAST_LLM_MAX_OUTPUT_TOKENSいいえ(LLM_MAX_OUTPUT_TOKENS にフォールバック)高速 LLM の呼び出しあたりの最大出力 token 数
LLM_REASONING_EFFORTいいえ(無効)サポートされているモデルの拡張思考レベル (OpenAI o シリーズ、Gemini 2.5+、Claude)。値: lowmediumhigh。LiteLLM は各プロバイダーのネイティブ形式に自動的に変換します。モデルの思考プロセスは UI の「thinking」ステップに表示されます。
LLM_REASONING_BUDGET_TOKENSいいえ(努力レベルから自動)Anthropic 思考の明示的な token 予算 (最小 1024)。OpenAI/Gemini の場合、努力レベルが直接使用されます。LLM_REASONING_EFFORT が設定されている場合のみ有効です。
LLM_JSON_MODE_ENABLEDいいえtrueresponse_format=json_object のグローバルトグル。プロバイダーが LiteLLM のアシスタントプリフィル注入を拒否する場合は false に設定します (例: AWS Bedrock リレー → 2 回目以降の智能体反復で ValidationException)。無効にすると、構造化呼び出しは JSON モードをスキップし、プレーンテキスト正規表現抽出にフォールバックします — 品質低下なし。すべてのモデル (ENV 設定および Admin 設定) に適用されます。
LLM_TOOL_CHOICE_ENABLEDいいえtrue構造化出力抽出での強制 tool_choice のグローバルトグル (レベル 1 — ネイティブ関数呼び出し)。モデルが強制ツール選択でエラーを返す場合は false に設定します (例: tool_choice='specified' を拒否する思考モードモデル)。無効にすると、構造化呼び出しはネイティブ FC をスキップし、JSON モードから開始します。モデルごとのオーバーライドは Settings → Models → Advanced で利用可能です。
REASONING_LLM_MODELいいえ(LLM_MODEL にフォールバック)推理層のモデル名。深い分析が必要なタスク (例: DAG 計画、計画分析) に使用
REASONING_LLM_API_KEYいいえ(LLM_API_KEY にフォールバック)推理モデルプロバイダーの API キー
REASONING_LLM_BASE_URLいいえ(LLM_BASE_URL にフォールバック)推理モデルプロバイダーのベース URL
REASONING_LLM_TEMPERATUREいいえ(LLM_TEMPERATURE にフォールバック)推理モデルのサンプリング温度
REASONING_LLM_CONTEXT_SIZEいいえ(LLM_CONTEXT_SIZE にフォールバック)推理モデルの上下文窓口サイズ
REASONING_LLM_MAX_OUTPUT_TOKENSいいえ(LLM_MAX_OUTPUT_TOKENS にフォールバック)推理モデルの呼び出しあたりの最大出力 token 数
REASONING_LLM_EFFORTいいえ(LLM_REASONING_EFFORT にフォールバック)推理モデル層の推理努力レベル。値: lowmediumhigh
REASONING_LLM_BUDGETいいえ(LLM_REASONING_BUDGET_TOKENS にフォールバック)推理の token 予算 (主に Anthropic)。推理層の自動計算予算をオーバーライドします
LLM_SUPPORTS_VISIONいいえtrue (楽観的)ENV モードドキュメント OCR (MarkItDown + markitdown-ocr 経由) を試みるかどうかを制御します。Admin → Models で有効なモデルグループが設定されていない場合のみ適用 (純粋な ENV モード)。デフォルトの true が有効な場合、convert_to_markdown と RAG 取り込みは LLM_MODEL がビジョンをサポートしていると想定し、画像 OCR のために呼び出します — これはすべての一般的な選択肢 (gpt-4oclaude-3-5-sonnetgemini-1.5-pro/flash) に対して正しい動作です。ENV 設定の LLM_MODEL がビジョンをサポートしていない場合 (例: deepseek-v3qwen-chatllama-3.1gpt-3.5-turboo1-mini)、このフラグを false に設定して失敗するビジョン呼び出しをスキップし、テキストのみの抽出に直接進みます。Admin → Models パネルに有効なモデルグループが存在する場合、このフラグは無視され、グループの supports_vision フラグが優先されます — admin がキュレーションした選択は常に DB モードの信頼できるソースです。
解決順序: ユーザー設定 → Admin モデル (DB) → ENV フォールバック。Admin → Models で「General」ロールのモデルが設定されている場合、これらの ENV 変数はフォールバックのみとして機能します。ヘルスチェックは両方のソースを考慮します。

MarkItDown OCR 解像度

convert_to_markdown 組み込みツールと RAG 取り込みパイプラインは、Microsoft の MarkItDown と公式の markitdown-ocr プラグインを使用して、ドキュメントからテキストを抽出します。ビジョン対応 LLM が利用可能な場合、埋め込み画像とスキャン PDF ページの OCR も含まれます。 Vision LLM 解像度順序(最初にマッチしたものが優先):
#ソース優先度の根拠
1エージェントのプライマリ LLMsupports_vision=True の場合)一貫性:同じ API キー、同じ課金バケット、会話と同じレート制限プール。
2アクティブなModelGroup → Fast Modelsupports_vision=True の場合)Fast モデル(gpt-4o-miniclaude-haikugemini-1.5-flash)は理想的な OCR ワークホース — 低コスト、低レイテンシ、通常はマルチモーダル。
3アクティブなModelGroup → General Modelsupports_vision=True の場合)プライマリがグループに含まれていない場合の品質フォールバック。
4ENV プライマリ LLMLLM_MODEL純粋な ENV モード用の楽観的フォールバック。アクティブな ModelGroup が存在しない場合のみ使用。LLM_SUPPORTS_VISION でゲート制御。
推理モデルは OCR に優先されません。 推理層(o1o3-miniDeepSeek-R1)は歴史的にビジョンサポートが不足しており、OCR には不適切なツールです — OCR は知覚タスクであり、熟考ではありません。ワークスペースに supports_vision=True の推理モデルのみがある場合、プライマリ LLM パスを介して選択されますが、リゾルバーは fast/general より上にランク付けしません。 ゼロリグレッション フォールバック:どのレベルでもビジョン対応モデルが見つからない場合、OCR は静かに無効化され、MarkItDown はテキストのみモードで実行されます。Word/PowerPoint/Excel 埋め込み画像 OCR は利用不可になります(この機能がリリースされる前と同じ)が、その他すべてのテキスト抽出(見出し、表、段落テキスト)は変わらず機能し続けます。この機能を追加することで、抽出が以前の動作より悪くなるケースは決してありません。 非 OpenAI プロバイダー(Anthropic、Google Gemini など) は透過的にサポートされます:解像度された LLM は LiteLLMOpenAIShim でラップされ、chat.completions.create(...) 呼び出しを litellm.completion() 経由でルーティングします。これはプロバイダー固有のメッセージ形式変換(例:Anthropic の source.type="base64" 画像ブロック)を処理します。1 つのシムが LiteLLM がサポートするすべてのプロバイダーをカバーします — 新しいプロバイダーを追加するのに FIM One でのコード変更はゼロです。

拡張思考(推論)

LLM_REASONING_EFFORT が設定されると、FIM One はモデルの拡張思考機能を有効にし、内部の思考の連鎖を UI の「thinking」ステップで表示します。FIM One は LiteLLM を使用して、推論努力パラメータを各プロバイダーのネイティブ形式に自動的に変換します。

サポートされているプロバイダー

プロバイダーLLM_BASE_URL動作方法推論コンテンツが返されるか?
OpenAI (o1 / o3 / o4-mini)https://api.openai.com/v1reasoning_effort がネイティブで送信されるはい
Anthropic (Claude 3.7+)https://api.anthropic.com/v1/LiteLLM が thinking パラメータを使用してネイティブ Anthropic API 経由でルーティングはい
Google Gemini (2.5+)https://generativelanguage.googleapis.com/v1beta/openai/reasoning_effort が互換エンドポイントで送信されるはい
LiteLLM は LLM_BASE_URL からプロバイダーを自動検出し、正しい API 形式にマッピングします。不明な URL は OpenAI 互換として扱われます。

重要な注意事項

サードパーティプロキシ / カスタムエンドポイントは保証されません。 LLM_BASE_URL がサードパーティ API プロキシ (例: OpenRouter、one-api、カスタムゲートウェイ) を指している場合、LiteLLM は URL に基づいて正しくルーティングしようとします。ただし、プロキシが非標準形式を期待している場合、推論が期待どおりに機能しない可能性があります。プロキシのドキュメントで、期待されるパラメータ形式を確認してください。

推論を伴う温度制約

推論がアクティブな場合、一部のプロバイダーは温度制限を課します:
  • Anthropic: 拡張思考が有効な場合、temperature=1 が必須です。Anthropic と拡張思考を使用する場合、LLM_TEMPERATURE=1 を設定する必要があります — 思考が有効な場合、Anthropic は他の値を拒否します。
  • OpenAI GPT-5.x: すべての場合において temperature=1 のみをサポートしています。LiteLLM の drop_params フィルタリングはこれを自動的に処理します — サポートされていない温度値は自動的にドロップされます。GPT-5.x の場合、ユーザーアクションは不要です。

LLM_REASONING_BUDGET_TOKENS の動作方法

この変数は主にAnthropicパスで意味があります。設定されると、自動計算されたバジェットをオーバーライドし、LiteLLM経由でthinkingパラメータ内のbudget_tokensとして送信されます。設定されない場合、バジェットはLLM_MAX_OUTPUT_TOKENS x努力比率から導出されます:
LLM_REASONING_EFFORTバジェット比率例(max_tokens = 64000)
low20%12,800トークン
medium50%32,000トークン
high80%51,200トークン
最小バジェットは1,024トークンです(Anthropicのハード最小値)。 OpenAIとGeminiの場合、プロバイダーはreasoning_effortレベルに基づいてトークン割り当てを内部的に処理します — LLM_REASONING_BUDGET_TOKENSは効果がありません。

エージェント実行

ReAct 智能体

変数必須デフォルト説明
REACT_MAX_ITERATIONSいいえ20ReAct リクエストあたりのツール呼び出しの最大反復回数。高いほど徹底的ですが、遅く、コストがかかります
REACT_MAX_TURN_TOKENSいいえ0緊急サーキットブレーカー: 単一の ReAct ターンあたりの最大累積トークン数(すべての反復にわたるプロンプト + 完了)。デフォルト 0 = 無制限。これは日次トークン制御用ではありません — その場合は per-user token_quota を使用してください。これは、ツール呼び出しループに陥った智能体など、極端なシナリオに対する最後の手段のセーフティバルブです。この制限に達すると、タスクは実行途中で中止され、これまでに消費されたすべてのトークンが無駄になり、不完全な結果が返されます。暴走する智能体の問題を含める必要がある場合を除き、0 のままにしてください
REACT_TOOL_SELECTION_THRESHOLDいいえ12登録されたツールの総数がこのしきい値を超える場合、軽量な LLM 呼び出しが各リクエストの前に最も関連性の高いサブセットを選択します
REACT_TOOL_SELECTION_MAXいいえ6スマート選択後に保持するツールの最大数(ツール数が REACT_TOOL_SELECTION_THRESHOLD を超える場合のみ有効)
REACT_SELF_REFLECTION_INTERVALいいえ6N 回のツール呼び出しごとに自己反省プロンプトを挿入して、智能体がコース修正を行い、ループを回避するのに役立ちます
REACT_TOOL_OBS_TRUNCATIONいいえ8000最終回答を合成するときのツール観測あたりの最大文字数。高い値はより多くの構造化データ(JSON、テーブル)を保持しますが、トークンコストが増加します
REACT_TOOL_RESULT_BUDGETいいえ40000単一セッション内のすべてのツール結果の集計トークン予算。ツール結果トークンの合計がこの上限を超える場合、新しい結果は通知付きで切り詰められます。大規模な API レスポンス(例:5 つのコネクタ呼び出しが各 8K を返す)からのコンテキスト肥大化を防ぎます。キャップを無効にするには 0 に設定します
REACT_COMPLETION_CHECK_SKIP_CHARSいいえ800智能体の最終回答がこの多くの文字を超える場合、回答後の完了チェック LLM 呼び出しをスキップします。長い詳細な回答は「何か見落としましたか?」の検証ラウンドトリップを必要としません。より積極的にスキップするには低く設定します。常にチェックを実行するには非常に大きな値に設定します
REACT_CYCLE_DETECTION_THRESHOLDいいえ2同じツールが同じ引数で連続してこの回数呼び出される場合、決定論的な警告が挿入され、智能体に別のアプローチを試すよう指示します。自己反省(LLM がループに気付くことに依存)とは異なり、これはバイパスできないハッシュベースのチェックです。DAG ステップにも適用されます
REACT_COMPLETION_CHECK_MIN_TOOLSいいえ3完了チェックリストが発火する前のツール呼び出しの最小数。シンプルなタスク(1~2 ツール呼び出し)は不要なレイテンシを回避するため検証をスキップします。常時検証を行うには 1 に設定します。DAG ステップにも適用されます
REACT_TURN_PROFILE_ENABLEDいいえtrueターンごとのフェーズレベルのタイミングログ(memory_loadcompacttool_schema_buildllm_first_tokenllm_totaltool_exec)を出力します。ターンあたり 1 つの構造化ログ行。プロファイリング全体を無効にするには false に設定します(ゼロオーバーヘッド)
LLM_RATE_LIMIT_PER_USERいいえtrue単一のプロセスグローバルバケットの代わりに、per-user キー付きレート制限バケットを使用します。1 つのノイジーなユーザーが同じワーカー上の他のすべてのユーザーを枯渇させるのを防ぎます。基盤となるレートはバケットあたり 60 リクエスト/分および 100K トークン/分でハードコードされています — この設定はバケットが共有(グローバル)か分割(per-user)かのみを制御します。レガシーグローバルバケットに戻すには false に設定します(推奨されません)

DAG プランナー

変数必須デフォルト説明
MAX_CONCURRENCYいいえ5DAG エグゼキューターの最大並列ステップ数
DAG_STEP_MAX_ITERATIONSいいえ15各 DAG ステップ内の最大ツール呼び出し反復回数
DAG_STEP_TIMEOUTいいえ600ステップ実行タイムアウト(秒単位)。このタイムアウトを超えたステップは失敗とマークされ、依存するステップはカスケードスキップされます
DAG_MAX_REPLAN_ROUNDSいいえ3目標が達成されない場合の最大自動再計画試行回数。ユーザー割り込み(注入)は無制限であり、このバジェットにはカウントされません
DAG_REPLAN_STOP_CONFIDENCEいいえ0.8エージェントの目標が達成不可能であるという確信度がこのしきい値を超えた場合に再試行を停止します(0.0 = 早期停止しない、1.0 = 任意の失敗で停止)
DAG_VERIFY_TRUNCATIONいいえ2000ステップ出力の最大文字数。ステップ検証器 LLM に品質判定のために送信されます
DAG_ANALYZER_TRUNCATIONいいえ10000実行後アナライザーのフォーマット時のステップ結果あたりの最大文字数
DAG_REPLAN_RECENT_TRUNCATIONいいえ500再計画コンテキスト構築時の最新ラウンドからのステップ結果あたりの最大文字数
DAG_REPLAN_OLDER_TRUNCATIONいいえ200再計画コンテキスト構築時の古いラウンドからのステップ結果あたりの最大文字数。古いラウンドはコンテキストを節約するためにより積極的に切り詰められます
DAG_TOOL_CACHEいいえtrue単一の DAG 実行内で同一のツール呼び出しをキャッシュします。cacheable として明示的にマークされたツール(検索、知識検索などの読み取り専用ツール)のみがキャッシュされます。キャッシュを完全に無効にするには false に設定してください
DAG_STEP_VERIFICATIONいいえfalse各 DAG ステップ後の汎用 LLM ベースの品質チェック。失敗時は、ステップはフィードバック付きで 1 回再試行されます。デフォルトでオフ — すべてのステップに遅延を追加し、ほとんど必要ありません。ステップ出力の大部分は再チェックなしで受け入れられます。低品質なステップ結果が頻繁に発生する場合にのみ使用してください
DAG_CITATION_VERIFICATIONいいえtrue専門分野ステップの引用精度チェック。前提条件: クエリは最初に LLM ドメイン分類器によって専門分野として分類される必要があります(ESCALATION_DOMAINS を参照)。ドメインが検出され、このフラグが true の場合、完了した各ステップは法律/医療/金融引用についてスキャンされ、精度が検証されます — ハルシネーションされた記事番号、捏造された判例参照、および不正な規制引用を検出します。ドメイン分類が null(一般的なクエリ)を返す場合、この設定に関係なく引用検証は実行されません
DAG_CITATION_VERIFY_TRUNCATIONいいえ6000引用検証プロンプトに送信されるステップ結果の最大文字数

ドメイン分類

ReAct と DAG 実行の前に実行される独立した LLM ベースのドメイン検出レイヤーを制御します。クエリが専門ドメインとして分類されると、システムはドメイン対応機能をアクティブ化します:モデルのエスカレーション、ドメイン固有の SOP 指示、および引用検証(DAG のみ)。
変数必須デフォルト説明
ESCALATION_DOMAINSいいえlegal,medical,financial,tax,compliance,patent専門ドメインのカンマ区切りリスト。高速 LLM が各クエリをこのリストに対して分類します。マッチした場合、システムは以下を実行します:(1) より高い精度を得るために推論モデルにアップグレード、(2) ドメイン固有の SOP 指示を注入(例:書き込み前に検索で引用を検証)、(3) DAG ステップの引用検証を有効化。必要に応じてカスタムドメインを追加します(例:legal,education,construction

Context Guard

会話がモデルの制限を超えるのを防ぐ自動コンテキストウィンドウ管理を制御します。
VariableRequiredDefaultDescription
CONTEXT_GUARD_DEFAULT_BUDGETNo32000コンテキストウィンドウ管理のデフォルトトークン予算。会話がこれを超えると、古いメッセージが圧縮されます
CONTEXT_GUARD_MAX_MSG_CHARSNo50000単一メッセージの厳密な文字制限。この制限を超えるメッセージは安全ネットとして切り詰められます
CONTEXT_GUARD_KEEP_RECENTNo4会話履歴を圧縮する際に保持する最新メッセージの数

エージェント ワークスペース

変数必須デフォルト説明
WORKSPACE_OFFLOAD_THRESHOLDいいえ8000ツール出力がこの文字数を超える場合、ワークスペース ファイルに保存され、切り詰められたプレビューが会話コンテキストに挿入されます
WORKSPACE_PREVIEW_CHARSいいえ2000切り詰められたワークスペース参照に含めるプレビュー文字数
WORKSPACE_CLEANUP_MAX_HOURSいいえ72この時間数より古いワークスペース ファイルは自動クリーンアップの対象になります

システム

変数必須デフォルト説明
SYSTEM_PROMPT_RESERVE削除されました。 以前はコンテキスト予算からシステムプロンプト用に固定の4K予約を差し引いていました。ContextGuardはメッセージリストトークンを推定する際にシステムプロンプトを既に含めているため、二重計算が発生していました。予算計算式は現在単純に context_size - max_output_tokens となり、システムプロンプトの実際のサイズは動的に考慮されます

Webツール(オプション)

変数必須デフォルト説明
JINA_API_KEYいいえJina APIキー。検索、フェッチ、埋め込み、リランカーのための共有フォールバックとして機能します(サービス固有のキーが設定されていない場合)。jina.aiで取得してください
TAVILY_API_KEYいいえTavily Search APIキー(設定されておりWEB_SEARCH_PROVIDERが未設定の場合は自動選択)
BRAVE_API_KEYいいえBrave Search APIキー(設定されておりWEB_SEARCH_PROVIDERが未設定の場合は自動選択)
EXA_API_KEYいいえExa Search APIキー(設定されておりWEB_SEARCH_PROVIDERが未設定の場合は自動選択)。exa.aiで取得してください
WEB_SEARCH_PROVIDERいいえjina検索プロバイダーセレクター:jina / tavily / brave / exa
WEB_FETCH_PROVIDERいいえjina(キーが設定されている場合、それ以外はhttpxフェッチプロバイダー:jina(Jina Reader APIを使用) / httpx(直接HTTPリクエスト、APIキー不要)
クイックスタートのヒントJINA_API_KEYを設定するだけで、Web検索、Webフェッチ、埋め込み、リランキングがすべて一度に有効になります — 1つのキーで4つのサービスが利用できます。以下の変数で各サービスを個別にオーバーライドできます。

RAG & ナレッジベース(推奨)

埋め込み

埋め込みはテキストをベクトルに変換し、ナレッジベース検索に使用します。FIM One は標準的な OpenAI互換の /v1/embeddings エンドポイントを使用するため、Jina だけでなく、このインターフェースを公開しているあらゆるプロバイダーで動作します。
変数必須デフォルト説明
EMBEDDING_API_KEYいいえ(JINA_API_KEY にフォールバック)埋め込みプロバイダーの API キー
EMBEDDING_BASE_URLいいえhttps://api.jina.ai/v1埋め込みプロバイダーのベース URL
EMBEDDING_MODELいいえjina-embeddings-v3モデル識別子
EMBEDDING_DIMENSIONいいえ1024ベクトル次元
プロバイダーの例 — 3 つの変数を設定するだけで切り替えられます:
プロバイダーEMBEDDING_BASE_URLEMBEDDING_MODELEMBEDDING_DIMENSION
Jina (デフォルト)https://api.jina.ai/v1jina-embeddings-v31024
OpenAIhttps://api.openai.com/v1text-embedding-3-small1536
Voyagehttps://api.voyageai.com/v1voyage-31024
Ollama (ローカル)http://localhost:11434/v1nomic-embed-text768
埋め込みモデルまたは次元を変更すると、既存のすべてのナレッジベースベクトルが無効になります。 古いベクトルは異なる埋め込み空間で計算されているため、検索精度が静かに低下します。切り替え後は、すべてのナレッジベースインデックスを再構築する必要があります。

検索

変数必須デフォルト説明
RETRIEVAL_MODEいいえgroundinggrounding(引用と信頼度スコアリング付きの完全なパイプライン)またはsimple(基本的なRAG)

Reranker

Rerankerは取得したドキュメントを再スコアリングして関連性を向上させます。3つのプロバイダーがサポートされており、RERANKER_PROVIDERで選択するか、利用可能なAPIキーからシステムに自動検出させることができます。
変数必須デフォルト説明
RERANKER_PROVIDERいいえ(自動検出)jina / cohere / openai。未設定の場合:COHERE_API_KEYが設定されていればCohereを使用、それ以外はJinaを使用
RERANKER_MODELいいえjina-reranker-v2-base-multilingualモデル識別子(JinaおよびOpenAIプロバイダーに適用)
COHERE_API_KEYいいえCohere APIキー(設定されておりRERANKER_PROVIDERが未設定の場合、Cohere rerankerを自動選択)
COHERE_RERANKER_MODELいいえrerank-multilingual-v3.0Cohere固有のrerankerモデル
JinaJINA_API_KEYを使用します(上記のWeb Toolsから)。OpenAILLM_API_KEY / LLM_BASE_URLを再利用します — 追加キーは不要です。Cohereは独自のCOHERE_API_KEYが必要です。
Rerankerはオプションです — ナレッジベース検索はフュージョンスコアリングを使用して、これなしで機能します。埋め込みはナレッジベース機能に推奨されます。

ベクトルストア

変数必須デフォルト説明
VECTOR_STORE_DIRいいえ./data/vector_storeLanceDB ベクトルストアデータ用ディレクトリ(ファイルベース、外部サービス不要)

コード実行

変数必須デフォルト説明
CODE_EXEC_BACKENDいいえlocallocal(ホスト上での直接実行)またはdocker(隔離されたコンテナ)
DOCKER_PYTHON_IMAGEいいえpython:3.11-slimPython実行用のDockerイメージ
DOCKER_NODE_IMAGEいいえnode:20-slimNode.js実行用のDockerイメージ
DOCKER_SHELL_IMAGEいいえpython:3.11-slimシェル実行用のDockerイメージ
DOCKER_MEMORYいいえ(Dockerのデフォルト)コンテナあたりのRAM上限(例:256m512m1g
DOCKER_CPUSいいえ(Dockerのデフォルト)コンテナあたりのCPUクォータ(例:0.51.0
SANDBOX_TIMEOUTいいえ120デフォルト実行タイムアウト(秒)
DOCKER_HOST_DATA_DIRいいえ(未設定)./dataボリュームマウントのホスト側絶対パス。DooD(Docker-outside-of-Docker)デプロイメントに必須。docker-compose.yml${PWD}/data経由で自動設定します。
セキュリティlocalモードはAIが生成したコードをホスト上で直接実行します。インターネット公開またはマルチユーザーデプロイメントの場合は、常にCODE_EXEC_BACKEND=dockerを設定してください。

ツール成果物

ツール実行(コード実行、テンプレートレンダリング、画像生成)によって生成されたファイルのサイズ制限。
変数必須デフォルト説明
MAX_ARTIFACT_SIZEいいえ10485760 (10 MB)単一成果物ファイルの最大サイズ(バイト)
MAX_ARTIFACTS_TOTALいいえ52428800 (50 MB)セッションあたりの成果物の最大合計サイズ(バイト)

ドキュメント処理(オプション)

アップロードされたPDF/DOCXファイルがLLM消費用にどのように処理されるかを制御します。ビジョン対応モデル(GPT-4o、Claude 3/4、Gemini)は、より高い忠実度のためにレンダリングされたPDFページを画像として受け取ることができます。
変数必須デフォルト説明
DOCUMENT_PROCESSING_MODEいいえautoauto(モデルがサポートしている場合はビジョン)、vision(常にページをレンダリング)、text(常にテキストのみを抽出)
DOCUMENT_VISION_DPIいいえ150PDFページレンダリングのDPI。高いほど品質が良く、トークンが増加
DOCUMENT_VISION_MAX_PAGESいいえ20PDFごとに画像としてレンダリングする最大ページ数
: モデルごとのビジョンサポートは、Admin → Modelsのsupports_visionトグルで設定されます。明示的に設定されていない場合、システムはモデル名からビジョン機能を自動検出します。

画像生成(オプション)

変数必須デフォルト説明
IMAGE_GEN_PROVIDERいいえgooglegoogle(Gemini ネイティブ API)または openai(OpenAI 互換 /v1/images/generations
IMAGE_GEN_API_KEYいいえGoogle AI Studio キー(google)またはプロキシ/OpenAI API キー(openai
IMAGE_GEN_MODELいいえgemini-3.1-flash-image-preview画像生成モデル(例:dall-e-3gemini-nano-banana-2
IMAGE_GEN_BASE_URLいいえ(プロバイダーごと)Google: https://generativelanguage.googleapis.com/v1beta; OpenAI: https://api.openai.com/v1

メール (SMTP) (推奨)

SMTP_HOSTSMTP_USERSMTP_PASS がすべて設定されている場合、email_send ビルトインツールを自動登録します。
変数必須デフォルト説明
SMTP_HOST条件付きSMTP サーバーのホスト名
SMTP_PORTいいえ465SMTP ポート
SMTP_SSLいいえsslTLS モード: ssl (ポート 465) / tls (STARTTLS、ポート 587) / "" (プレーン)
SMTP_USER条件付きSMTP ログインユーザー名
SMTP_PASS条件付きSMTP ログインパスワード
SMTP_FROMいいえ(SMTP_USER を使用)From ヘッダーに表示される送信者アドレス
SMTP_FROM_NAMEいいえFrom ヘッダーに表示される表示名
SMTP_REPLY_TOいいえReply-To アドレス。返信はここに送信されます (SMTP_FROM の代わりに)
SMTP_ALLOWED_DOMAINSいいえカンマ区切りのドメイン許可リスト (例: example.com,corp.io)。リストに含まれていないドメインの受信者をブロックします
SMTP_ALLOWED_ADDRESSESいいえカンマ区切りの正確なアドレス許可リスト。SMTP_ALLOWED_DOMAINS と組み合わせて使用します。両方を未設定のままにすると、すべての受信者を許可します (共有メールボックスの場合は非推奨)

コネクタ

変数必須デフォルト説明
CONNECTOR_RESPONSE_MAX_CHARSいいえ50000非配列JSON/プレーンテキストコネクタレスポンスの最大文字数
CONNECTOR_RESPONSE_MAX_ITEMSいいえ10コネクタレスポンスがJSON配列の場合に保持する最大配列項目数
CREDENTIAL_ENCRYPTION_KEYいいえ(未設定)コネクタ認証情報ブロブのFernet暗号化キー。設定時、connector_credentialsに保存された認証トークンは保存時に暗号化されます。未設定の場合、認証情報はプレーンテキストJSON(後方互換性あり)として保存されます。このキーを変更すると、既存のすべての暗号化認証情報が無効になります。
CONNECTOR_TOOL_MODEいいえprogressiveコネクタツールがエージェントに公開される方法。progressive: discover/executeサブコマンド付きの単一ConnectorMetaTool(コネクタあたり約30トークン)。classic: アクションごとに1つのツール(レガシー、アクションあたり約250トークン)。
DATABASE_TOOL_MODEいいえprogressiveデータベースコネクタツールがエージェントに公開される方法。progressive: list_tables/discover/queryサブコマンド付きの単一DatabaseMetaToollegacy: データベースコネクタごとにアクションごとに1つのツール(各3つのツール)。
MCP_TOOL_MODEいいえprogressiveMCPサーバーツールがエージェントに公開される方法。progressive: discover/callサブコマンド付きの単一MCPServerMetaToollegacy: MCPサーバーアクションごとに1つのツール(元の個別ツール)。

プラットフォーム

変数必須デフォルト説明
DATABASE_URLいいえsqlite+aiosqlite:///./data/fim_one.dbデータベース接続文字列。SQLite(ゼロ設定): sqlite+aiosqlite:///./data/fim_one.dbPostgreSQL(本番環境): postgresql+asyncpg://user:pass@localhost:5432/fim_one。Docker Composeは自動的にPostgreSQLを設定します。
JWT_SECRET_KEYいいえCHANGE_MEJWTトークン署名用の秘密鍵。プレースホルダー値CHANGE_ME(またはその他のレガシーデフォルト)は、初回起動時にセキュアな256ビットランダムキーの自動生成をトリガーし、.envに書き込まれます。本番環境では、トークンが再起動とレプリカ間で有効なままになるように明示的に設定してください。
CORS_ORIGINSいいえデフォルトのlocalhostエントリを超えて許可する追加のCORSオリジンのカンマ区切りリスト。フロントエンドが非localhostドメイン(例:https://app.example.com)で実行される場合に必須です。
UPLOADS_DIRいいえ./uploadsアップロードされたファイル用のディレクトリ
MAX_UPLOAD_SIZE_MBいいえ50最大ファイルアップロードサイズ(メガバイト単位、バックエンド実装)
NEXT_PUBLIC_MAX_UPLOAD_SIZE_MBいいえ50フロントエンドUIに表示される最大ファイルアップロードサイズ。ビルド時変数MAX_UPLOAD_SIZE_MBと一致する必要があります。
MCP_SERVERSいいえMCPサーバー設定のJSONアレイ(uv sync --extra mcpが必要)
ALLOW_STDIO_MCPいいえfalsestdio MCPサーバーを許可します。信頼できるローカルデプロイメントの場合のみtrueに設定してください
ALLOWED_STDIO_COMMANDSいいえnpx,uvx,node,python,python3,deno,bunstdio MCPサーバーで許可されたベースコマンドのカンマ区切りリスト。ALLOW_STDIO_MCP=trueの場合のみ有効です
LOG_LEVELいいえINFOログレベル: DEBUG / INFO / WARNING / ERROR / CRITICAL
REDIS_URLいいえワーカー間割り込みリレー用のRedis接続URL。WORKERS>1の場合は必須 — これがないと、ストリーム中の割り込み/注入リクエストが別のワーカーにヒットして暗黙的に失敗する可能性があります。Docker Composeで自動設定されます。
WORKERSいいえ1Uvicornワーカープロセス。1は安全で外部サービスは不要です。本番環境のマルチワーカーの場合、PostgreSQLを使用してください(SQLiteはシングルライター)。SQLiteはローカル開発で軽い負荷下で動作します。認証、OAuth、ファイル操作は完全にマルチワーカー対応です(JWTベース)。Docker Composeは自動的にPostgreSQLとRedisの両方を設定します。
マルチワーカーチェックリストWORKERS>1):
  • 停止(ストリーミング中止) — 常に動作します。追加設定は不要です(シグナルは同じTCP接続で送信されます)。
  • 注入(ストリーム中のフォローアップ)REDIS_URLが必須です。Redisがないと、注入リクエストが実行中の実行について知識のない別のワーカーにランディングし、暗黙的に失敗する可能性があります。
  • 本番環境: PostgreSQL(DATABASE_URL)を使用してください。SQLiteのシングルライターロックは同時書き込み時に競合を引き起こす可能性があります。
  • ローカル開発: SQLite + マルチワーカーは軽い使用量であれば問題ありません。注入機能を使用する場合はREDIS_URLを追加してください。

ワークフロー実行の保持

古いワークフロー実行を自動的に削除するバックグラウンドクリーンアップタスク。ワークフロー単位のオーバーライド(ワークフロー設定UIで設定)がこれらのグローバルデフォルトより優先されます。
変数必須デフォルト説明
WORKFLOW_RUN_MAX_AGE_DAYSいいえ30この日数より古いワークフロー実行を削除
WORKFLOW_RUN_MAX_PER_WORKFLOWいいえ100ワークフローごとに最大このの実行数を保持(最も古いものから削除)
WORKFLOW_RUN_CLEANUP_INTERVAL_HOURSいいえ24バックグラウンドクリーンアップタスクの実行間隔(時間単位)

チャネル確認リクエスト有効期限

チャネルフック(FeishuGateHookや承認プレイグラウンドなど)によって生成された古い保留中の承認リクエストを期限切れとしてマークするバックグラウンドスイーパー。忘れられたカードを数日後にクリックしても、既に破棄されたエージェント状態がフリップしないようにします。
VariableRequiredDefaultDescription
CHANNEL_CONFIRMATION_TTL_MINUTESNo1440この期間より古い保留中の確認は自動的に期限切れになります(デフォルト:24時間)
CHANNEL_CONFIRMATION_SWEEP_INTERVAL_SECONDSNo600有効期限スイーパーが実行される頻度(デフォルト:10分ごと)

OAuth(オプション)

プロバイダーに対して CLIENT_IDCLIENT_SECRET の両方が設定されている場合、ログインページに対応する OAuth ボタンが自動的に表示されます。
変数必須デフォルト説明
GITHUB_CLIENT_IDいいえGitHub OAuth App クライアント ID。github.com/settings/developers → OAuth Apps で作成
GITHUB_CLIENT_SECRETいいえGitHub OAuth App クライアント シークレット
GOOGLE_CLIENT_IDいいえGoogle OAuth クライアント ID。console.cloud.google.com/apis/credentials で作成
GOOGLE_CLIENT_SECRETいいえGoogle OAuth クライアント シークレット
DISCORD_CLIENT_IDいいえDiscord OAuth2 クライアント ID。discord.com/developers で作成
DISCORD_CLIENT_SECRETいいえDiscord OAuth2 クライアント シークレット
FEISHU_APP_IDいいえFeishu(Lark)App ID。open.feishu.cn で作成。contact:user.email:readonly 権限が必要
FEISHU_APP_SECRETいいえFeishu(Lark)App シークレット
FRONTEND_URL本番環境http://localhost:3000OAuth 完了後にブラウザが遷移する先。本番環境では必須(例:https://yourdomain.com
API_BASE_URL本番環境http://localhost:8000外部からアクセス可能なバックエンド URL。OAuth コールバック URL の構築に使用。本番環境では必須
NEXT_PUBLIC_API_URL本番環境<hostname>:8000 として自動検出)OAuth リダイレクト用のブラウザ側 API ベース URL。これはフロントエンド ビルド時変数です — ローカル開発では frontend/.env.local で設定するか、カスタム本番環境デプロイメントの場合は Docker ビルド引数として渡してください。標準的なリバースプロキシ設定(ポート 80/443)では自動検出が機能します。
本番環境 = ローカルではオプション(デフォルト値が機能します)ですが、インターネット公開デプロイメントでは必須です。

各プロバイダーに登録するOAuth コールバックURL

バックエンドは、コールバックURLを以下のように構成します: {API_BASE_URL}/api/auth/oauth/{provider}/callback
プロバイダー登録するコールバックURL
GitHubhttps://yourdomain.com/api/auth/oauth/github/callback
Googlehttps://yourdomain.com/api/auth/oauth/google/callback
Discordhttps://yourdomain.com/api/auth/oauth/discord/callback

Cloudflare Tunnel(オプション)

Cloudflareのネットワークを通じてすべてのトラフィックをルーティングし、ポートを直接公開しません。Nginx、SSLサーティフィケート、ファイアウォールルールを開く必要がなくなります。セットアップ手順については、本番環境デプロイメントセクションを参照してください。
中国本土ユーザー: Cloudflare Free/Pro/Businessプランは中国本土にPoP(Point of Presence)がありません。トラフィックは海外のエッジにルーティングされ、502エラーが頻繁に発生します。中国本土が主なユーザーである場合、Cloudflare Enterprise with China Networkを持っていない限り、このオプションを使用しないでください。
変数必須デフォルト説明
CLOUDFLARE_TUNNEL_TOKENはい(Tunnelを使用する場合)Cloudflare Zero Trust → Networks → Tunnels → your tunnel → Configureから取得したトークン。eyJ...で始まります。docker-compose.tunnel.ymlcloudflaredサイドカーに必要です。

分析(オプション)

すべての分析プロバイダーはオプションです。任意の組み合わせを設定できます。すべてのアクティブなプロバイダーが同時に読み込まれます。すべてを空白のままにすると、分析が完全に無効になります(ローカル開発では推奨)。
変数必須デフォルト説明
NEXT_PUBLIC_GA_MEASUREMENT_IDいいえGoogle Analytics 4 測定 ID(例:G-XXXXXXXXXX)。analytics.google.com で取得できます
NEXT_PUBLIC_UMAMI_SCRIPT_URLいいえUmami 分析スクリプト URL(例:https://your-umami.com/script.js)。自己ホスト型のプライバシーフレンドリーな代替案 — umami.is
NEXT_PUBLIC_UMAMI_WEBSITE_IDいいえUmami ウェブサイト ID。NEXT_PUBLIC_UMAMI_SCRIPT_URL が設定されている場合は必須
NEXT_PUBLIC_PLAUSIBLE_DOMAINいいえPlausible 分析ドメイン(例:yourdomain.com)。軽量でプライバシーフレンドリー — plausible.io
NEXT_PUBLIC_PLAUSIBLE_SCRIPT_URLいいえhttps://plausible.io/js/script.js自己ホスト型インスタンス用のカスタム Plausible スクリプト URL
すべての NEXT_PUBLIC_* 分析変数はビルド時です。変更を有効にするにはフロントエンドの再構築が必要です。