ブログ
プロダクトの最新情報や、技術的な取り組みを発信しています。
技術ブログ顧客専用サブドメインとホワイトラベル ― テナントの“真実源”はJWTではなくHost
制作会社が構築し、顧客に「自分たちの管理画面」を渡す。そのための顧客専用サブドメイン(<slug>.app.tesseracms.com)とホワイトラベルを実装した。テナント分離の真実源をJWTではなくHostに置いた理由、Cloudflareを使いながらワイルドカードSSLをどう出したか(サブゾーンのNS委任)を解説します。
by 平原 典彦
技術ブログエージェントに“検索”を渡す ― 全文(pg_trgm)とセマンティック(ベクトル)の使い分け
AIエージェントに全件を読ませるのではなく「検索」を道具として渡す。Tesseraは全文検索(search_entries:data::textへのILIKE部分一致をpg_trgmで索引化、日本語も語分割に依存せず)とセマンティック検索(semantic_search:Voyageの埋め込み+pgvector)をMCPで開く。その中身と使い分けを解説します。
by 平原 典彦
技術ブログAIエージェントにCMSのメディアを運用させる ― 画像のバイト列はLLMに通さない
AIエージェントに画像を上げさせるとき、Base64経路(MCPのupload_asset)はバイト列がLLMのコンテキストを通り、大きな画像で詰まります。TesseraがmultipartのメディアAPI(/api/assets)と発見用のlist_assetsで、投入と発見をどう分けたか。「何をLLMに通すか」の設計の話です。
by 平原 典彦
技術ブログヘッドレスCMSのWebhook宛先設計 ― 汎用に徹し、認証が要る宛先だけ名前付きにする
Webhookの宛先は再ビルド・チャット通知・ハブ連携とバラバラ。Tesseraは「汎用HTTP(署名付きJSON)に徹し、認証が要る宛先だけ薄く名前付き」で割り切った。デプロイフックが中身を送らない理由、Chatworkトークンだけ暗号化保存する理由まで、宛先設計の考え方を解説します。
by 平原 典彦
- 技術ブログ
AIに“安全に”書かせるCMS ― エージェントにスキーマとコンテンツを任せる制御層
AIエージェントにCMSを書き換えさせるのは、コードを書かせるのとは別の怖さがあります。Tesseraが「提案→人間承認・書き込み前のdry-run・エージェント監査・ワンコマンド巻き戻し」という制御層で、その怖さの正体にどう答えているかを解説します。
by 平原 典彦
- 技術ブログ
スキーマをAIと会話して作る ― 既存の構造を理解した上で提案する
「記事に著者とタグを足したい」と話すだけでコンテンツモデルができる。ただし汎用のAI生成と違うのは、既存のスキーマ・制約を理解した上で提案し、衝突を検知し、承認するまで反映しないこと。差別化の筆頭「スキーマ生成AI」を解説します。
by 平原 典彦