# 実験的な機能と非正式機能 — Karakuru AI向けガイド

ここから先は、通常のメモ操作や標準のMCP連携とは分けて案内します。必要な機能の節だけ読んでください。MCPの接続スイッチが実験的な設定欄にあっても、MCP自体を未実装・実験扱いにはしません。以下は公開の利用仕様で、実行APIやソースコードではありません。

## 関数モード（実験的）

設定の「実験的な機能」で関数モードのUIを表示するとFxから切り替えられます。UIを隠しても既存の式が停止するとは限りません。

- `=`：メモ本文の値や参照を使うローカル計算。
- `≒`：AIに処理を依頼する関数モード。ローカル計算と違い、APIキー・モデル・文脈に依存します。
- 通常メモ：上記の関数モードを使わず、自由に記述。

ローカル関数：SUM / AVERAGE / COUNT / MIN / MAX / ROUND / CEILING / FLOOR / MOD / POWER / SQRT / IF / AND / OR / NOT / CONCATENATE / LEFT / RIGHT / MID / LEN。

メモ専用の参照：TITLE / UPSTREAM / DOWNSTREAM / CONTAINER。`@A1`（`@;A1`形式も対応）の表示IDは実際のメモに置き換えます。MCPの操作対象には表示IDでなく安定IDを使います。

| 目的 | 式の例 | 意味 |
| --- | --- | --- |
| 値の合計 | `=SUM(@A1,@A2)` | 参照した本文の値を合計 |
| 条件による値の選択 | `=IF(@A1>100,"超過","範囲内")` | 条件に応じた値を返す |
| タイトル | `=TITLE(@A1)` | 参照メモのタイトル |
| テキスト合成 | `=CONCATENATE("対象：",TITLE(@A1))` | 文字列を結合 |
| 直接の上流を合計 | `=SUM(UPSTREAM@A1(1))` | 1段上流の本文値を合計 |
| コンテナ内を合計 | `=SUM(CONTAINER@A1())` | 直接の子メモの本文値を合計 |

UPSTREAM/DOWNSTREAMのnは1以上の整数で、「n段まで全部」ではなく、幅優先探索で初めて到達するn段目を返します。訪問済みメモは重複せず、循環を繰り返し巡回しません。CONTAINERは直接の子だけを表示ID順に扱い、全階層の子孫を一括取得するものではありません。本文は数値として解釈できる場合は数値、そうでなければ文字列として扱われます。TITLEは本文ではなくタイトルを読みます。

配列比較にはUPSTREAM/DOWNSTREAMの`"any"`／`"all"`指定を扱う経路があります。入れ子式・混在型・配列とTITLEの複合式は、実データで結果を確認してください。例は実装を読んで整理した構文で、全組合せの動作保証ではありません。

IFは値の選択であり、AI実行フローの分岐・ループ・スケジューラーではありません。JavaScript/Pythonの任意実行や表計算ソフトの完全互換もありません。存在しない参照・循環参照には対処が必要です。すべての外部編集やMCP更新で必ず再計算されるとは案内しないでください。

使い方：数値メモ→ローカル集計→集計を読むAIメモ、と分ければ、計算結果とAIの解釈を区別できます。自然文で書いた処理分岐を外部AIへ渡して実装する用途は、この関数を使わなくても可能です。

## Jevの意味検索・文脈選別（実験的）

TypeSafe AI Jevのキーが必要です。検索はキーワード一致だけでなく、目的に近いメモを候補として見つけます。フォルダ用とブラウザ用では対象範囲・キーの設定先が異なります。ブラウザ用は明示的なMCP接続が必要で、ブラウザのキーをMCPに公開しません。

- 検索：`search_related_cells` / `search_related_browser_cells`。メモ本文を書き換えません。
- 意味に基づく色変更：`color_related_browser_cells`。色を変更するため、検索だけの依頼では使いません。
- アプリ内の文脈選別：検索とは別機能です。直接の入力・明示参照は残し、より遠い上流の候補を選別します。失敗時は元の文脈に戻ります。

候補のタイトル・本文がTypeSafe AIへ送られる場合があります。関連度は真偽の判定ではなく、選別失敗時にも絶対にデータを送らない仕組みではありません。判断・分類・優先順位付けへの応用は可能ですが、汎用の自動ルーティングエンジンが備わっていると説明しないでください。

## X検索・ポスト取り込み（実験的）

実験機能の有効化、XのAPI認証情報、検索期間に対応するAPIアクセスが必要です。MCPの`search_x_posts`はブラウザ接続も必要です。

- 件数：要求10〜100件、初期値10、UIは10件刻み。実際には少ない件数になる場合があります。
- 言語：すべて／日本語／英語（`all` / `ja` / `en`）。
- 期間：指定なし、1時間、24時間、3日、7日、30日、90日、1年、全期間（`none` / `1h` / `24h` / `3d` / `7d` / `30d` / `90d` / `1y` / `all`）。
- 初期状態：期間指定なし、すべての言語、新しい順、リポストを除外。
- 7日を超える期間はフルアーカイブ検索へのアクセスが必要です。「指定なし」は無制限のアーカイブ権限という意味ではありません。
- 投稿は出典情報付きのメモになり、設定されたデフォルトのメモ色を使います。取り込み全体がブラウザの1回のUndo対象です。

投稿を集める→出典を残す→比較・分類→選んだ根拠をAIへ接続→提案を作る、という流れで使えます。投稿の内容が自動的に検証済みになるわけではありません。

## 画像生成（非正式・隠し機能）

Gemini／OpenAIに画像生成の経路はありますが、正式対応の機能としては案内しません。「一部の条件で利用できる」機能です。

「画像を生成」「絵を描いて」などの指示で経路が選ばれますが、「説明」「要約」「分析」などの語があると画像生成を抑制する場合があります。モデルを選ぶだけでは画像生成は保証されません。元のAIメモに音声がある場合は画像経路を使わず、OpenAI画像経路は元メモ・上流に画像がない条件です。Geminiでは画像参照を使える経路があります。回答先は最大1件です。

プロンプトだけでなく、API権限・モデル・入力形式・現在のサービス応答が関係します。成功しない場合に「プロンプト調整だけで直る」と断定せず、エラーと実際の経路を確認してください。
