[未リリース]
変更内容
- エージェントがミスをより明確に認識するようになりました。 ツール結果がエージェントが述べたことと矛盾する場合、過度に謝罪したり、自己批判で返信を埋め尽くしたりすることなく、同じターンで認識して修正します。
セキュリティ
- IPv4マップIPv6アドレスを経由したSSRFバイパスをブロック。 ホストがIPv4マップIPv6リテラル(例:
http://[::ffff:169.254.169.254]/)であるURLがプライベートIP ブロックリストを通過し、デュアルスタックホスト上のクラウドインスタンスメタデータを含む内部サービスにアクセスできていました。これらのアドレスはアンラップされてIPv4ブロックリストに対してチェックされるようになり、すべてのSSRF保護パス(ウェブフェッチ、HTTPツール、コネクタ、RAGインポーター)でギャップが解決されました。 - MCP SSE / Streamable-HTTPサーバーURLがSSRF検証対象に。 認証済みユーザーがMCPサーバーを内部アドレスに指定し、サーバーがテストまたは接続されたときにリクエストをトリガーできていました。サーバーURLは作成/更新時と接続時に検証されるようになりました。
- Docker Compose PostgreSQL認証情報が
POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DBでオーバーライド可能に。 以前はハードコードされていたfim:fimデフォルトが単一ソース化され(接続文字列は同じ変数から派生)、データベース公開前に変更するよう警告付きで文書化されたため、オペレーターが誤ってデフォルト管理者認証情報を配布することがなくなりました。
修正
- PostgreSQL でタイムスタンプ比較が正しく動作するようになりました。 セッション無効化チェックは、保存された無効化時刻がナイーブ UTC であると想定し、それを強制していましたが、PostgreSQL が返すことのあるタイムゾーン対応の非 UTC 値との比較を静かに破損させていました。タイムスタンプは上書きではなく変換によって UTC に正規化されるようになったため、失効したトークンはすべてのバックエンドで確実に拒否されます。
- 強制フックがクラッシュ時に安全に失敗するようになりました。
PRE_TOOL_USEフック(例:承認ゲート)が例外を発生させた場合、以前はallow=Trueを返していたため、ブロックされたはずのツール呼び出しが実行されていました——クラッシュしたゲートが静かにバイパスになっていました。PRE フックはエラー時にデフォルトで拒否するようになりました。強制以外のフック(レート制限、ロガー)は新しいfail_openフラグを使用して古い fail-open 動作を保持します。
[v0.8.7] - 2026-06-10
セキュリティ
- 二要素認証のバイパスを修正しました。 API と chat/SSE 認証は、正規のアクセストークン(SSE ストリーミングは短命のチケットも受け入れます)を必須にしました。2FA 一時トークン、リフレッシュトークン、バインド/SSE チケット——すべて同じキーで署名されています——は認証に再利用できなくなったため、盗まれたパスワードだけでは二要素認証をスキップできなくなりました。
- OAuth ログインは、未検証のメールアドレスで既存アカウントに自動リンクされなくなりました。 サードパーティアカウントは、プロバイダーがメールアドレスを検証済みとしてマークした場合にのみ、ローカルアカウントとメールアドレスでマッチングされるため、攻撃者が管理する未検証のアドレスを使用した乗っ取りが防止されます。
追加
file_ops.apply_patch— V4A形式のdiffパッチをファイルに適用。 エージェントが行ベースのハンクとファジーホワイトスペースマッチングを使用した複数行編集を実行できます。既存のfind_replaceを補完し、完全な部分文字列マッチが脆弱な場合に対応します。- 入出力検証のためのコンテンツガードレール。 新しい
core/agent/guardrailレイヤーが既存のツール権限ゲートとセキュリティチェックと並行して(置き換えではなく)実行されます。入力ガードレール(デフォルト:ジェイルブレイクフレーズ検出器)はLLM呼び出しの前に実行され、トリガーされた場合はターンを中止してトークンを節約し、チャットに明確な「ブロック」通知を表示します。出力ガードレールは最終回答の後に実行されます。FIM_GUARDRAILS_INPUT/FIM_GUARDRAILS_OUTPUT環境変数で設定可能です。エージェント単位のUI設定は今後のリリースで提供予定です。
Changed
/settings?tab=billingがフルウィドスで表示され、Settings タブの他の部分と視覚的に一貫性を持つようになりました。max-w-4xlの幅制限と冗長な外側のスクロールコンテナを削除し、ページタイトルアイコンを削除しました。プラン / 使用状況 / サブスクリプション / プラン比較カードを、Usage タブと同じシンプルなボーダー付き div パターン(コンパクトなラベル +tabular-nums数字)を使用するように書き直しました。以前のレイアウトは、Settings フレームに誤って挿入されたスタンドアロンページのように見えていました。
修复
- Token 配额现在在您的账单日期重置,而不是每月 1 日。 使用情况始终按日历月计算,无论您何时订阅,因此付费用户可能在 20 日被收费,却要等到 1 日才能获得新配额——在月底开始的订阅实际上会在几天后获得第二个完整配额。配额现在在每个订阅的月度周年纪念日重置(免费用户仍按日历月重置)。按年计费的计划现在每月正确补充,而不是每年一次。“计划与账单”选项卡、“使用情况”卡片和超配额对话框现在都在同一时间窗口内测量使用情况并显示重置日期,因此显示的”本期使用情况”与聊天实际停止您的时间点相匹配。
- 订阅续期现在推进账单周期。 在自动续期时,显示的周期结束日期在 Stripe 已收费并推进订阅的情况下仍保持冻结在前一个周期——续期处理程序仅从发票负载中读取新周期,其中该信息不可靠。现在它从 Stripe 检索权威的周期边界,因此周期结束日期(和配额重置)在每次续期时向前移动。这也消除了一个潜在风险,即取消此类订阅可能会立即降级账户,而不是在真正的周期结束时。
- 原始工具调用协议不再泄露到智能体答案中。 当模型即兴创作工具调用作为纯文本时(例如发出
<tool_call>/<tool_response>块——当它尝试使用不可用的工具时很常见),该文本——包括其中的任何 base64/文件转储——可能会逐字出现在回复中。所有答案路径现在都会剥离此伪协议,解析器还会将{"name","arguments"}方言识别为真正的工具调用,而不是泄露它。 - 智能体轮次期间间歇性的
APIConnectionError: Connection error突发。 共享 HTTP 连接池为空闲的保活连接保留长达 30 秒;当上游中继或 NAT 无声地回收空闲连接时,下一个请求重用半死的套接字并失败。保活过期现在默认为短 5 秒(轮次内的热连接仍被重用),池可通过LLM_HTTP_MAX_CONNECTIONS/LLM_HTTP_MAX_KEEPALIVE/LLM_HTTP_KEEPALIVE_EXPIRY调整——设置LLM_HTTP_MAX_KEEPALIVE=0以在不可靠的上游后面完全禁用连接重用。 - API 密钥使用统计(
total_requests、last_used_at)现在在每个请求时持久化。 以前增量是在请求的数据库会话中写入的,该会话仅由执行自己写入的端点提交——因此只读 API 密钥调用(仪表板、文件、模型、导出……)无声地回滚计数器。使用情况现在记录在独立的自提交会话上,与请求成功解耦。
[v0.8.6] - 2026-05-08
追加
- Stripe 請求 — Pro プラン サブスクリプション。
/settings?tab=billingの新しいPlan & Billingタブに、現在のプラン、月次トークン使用量、期間リセット、およびUpgrade to Pro(Stripe Checkout)またはManage subscription(Customer Portal)が表示されます。チェックアウト成功時に購入したプランを表示するコンフェッティモーダルが開き、リダイレクトパラメータは却下後にのみ削除されるため、更新時に再トリガーされません。クォータ強制は各ユーザーのプランを尊重します。キャンセルされたサブスクリプションは有料期間が終了するまで Pro に留まります。ストリーム中の 402 クォータダイアログは請求タブに移動します。管理者は Admin Panel → Billing でプランを管理し、サブスクリプションを参照できます。Pro は現在 Stripe テストモード 価格を使用しています。本番環境への切り替えは価格 ID を置き換えます。 - 管理者制御の請求機能フラグ。 Admin → System Settings の
Enable Stripe Billingトグルは、ユーザー向け/api/billing/*、Stripe ウェブフック、管理者プラン/サブスクリプション CRUD、フロントエンド請求タブ + 管理者ナビゲーションを含む Stripe パイプライン全体をゲートします。オフの場合、すべて非表示または 503 になります。最初の有効化は Free + Pro をシードし、default_plan_idポインタを設定し、users.plan_idをバックフィルします。その後のオン/オフは純粋なフラグ切り替えです。Stripe 認証情報のないプライベートデプロイメントはクリーンなままです。請求がオフの場合、クォータチェーンは管理者が設定したDefault Monthly Token Quotaにフォールバックします。 - ユーザーごとの無制限クォータ + Registered 列。 空のクォータフィールドはグローバルリミットを継承します。
0は無制限を付与します。以前は両方が同じ状態に折りたたまれていました。ユーザーテーブルには Registered 列も追加されます。 - 非英語ドキュメント(
zh/ja/ko/de/fr)は完全な API Reference および Channels Configuration セクションを表示するようになりました —EndpointsグループとConfiguration > Channelsサブグループは以前は英語のみでした。
Changed
Plan & Billingは Settings タブであり、スタンドアロンページではありません。/settings/billingを/settings?tab=billingに戻し、ユーザーがプランを切り替える際に左ナビゲーションが表示されたままになるようにしました(GitHub / Linear / Notion と同じ)。スタンドアロンルートはリダイレクトされるため、古いブックマークと以前のデプロイの Stripe Checkout リターン URL は引き続き機能します。SubscriptionsタブはMarketplaceに名前変更され、プランサブスクリプションとの区別が明確になりました。- Free プランのクォータは admin Plans ページで読み取り専用です。 System Settings → Default Monthly Token Quota から取得され、そこでの編集は自動的に反映されます。バックエンドは Free プランの
monthly_token_quotaに対する PATCH を暗黙的に無視します。 - トークンクォータは、課金ページ、プランカード、admin Plans テーブル全体で
5M/100Kとして表示されます(5,000,000の代わりに)。Admin INPUT フィールドは引き続き生の数値を受け入れます。 - 翻訳の権限がロケール別ファイルから単一の用語集にシフトしました。 ルールは
scripts/translation-glossary.mdに存在し、すべての LLM 翻訳呼び出し(JSON、MDX、README)に読み込まれます。pre-commit フックは生成されたロケールファイルへの手動編集を無条件に拒否します。誤訳を修正するには、用語集を編集し、--forceで再生成してください。 - ライセンサーと準拠法。 FIM One Source Available License は現在 FIM Labs Pte. Ltd.(シンガポール)により付与されます。準拠法は中華人民共和国からシンガポールに移行し、紛争は SIAC 仲裁(シンガポール、仲裁人 1 名、英語)に移行します。新しいトップレベルの
NOTICEファイルは、R&D 帰属、商標、およびサードパーティコンポーネントポリシーを記録します。許可された使用または制限条件に変更はありません。
修复
- 管理员对智能体、连接器、知识库和 MCP 服务器的批准/拒绝操作不再在 PostgreSQL 上失败。 发布审核
reviewed_at列现已支持时区,因此批准写入在 PG 上成功(该 bug 在 SQLite 开发数据库上不可见)。 - OAuth 用户可以再次刷新会话。 OAuth 颁发的刷新令牌以刷新端点无法匹配的形式存储,导致访问令牌过期后需要重新登录;现在它以与其他路径相同的摘要形式存储。
- 浏览器标签页标题现在反映
/settings和/admin中的活跃子标签页(例如Settings · Billing — FIM One),因此多个固定标签页可以区分。 - 使用情况页面在管理员设置默认令牌配额时不再报告”无限制” — 它现在通过统一配额链解析(按用户覆盖 → 计划层级 → 系统默认值)。
- 智能体设置:绑定资源在进入时不再闪烁显示”(已删除)”。 孤立徽章在库存获取稳定后才呈现。
- Toast 通知现在遵循浅色/深色主题,而不是硬编码为深色。
- 按智能体的使用情况分解不再为与已删除智能体关联的对话重复”直接聊天”行。
- 自托管
./deploy.sh不再因container name already in use而失败 — 在docker compose up前清理哈希前缀的僵尸容器和 DooD 沙箱子进程。 - 推送后不再出现冗余的
chore(i18n): sync translations提交 — 预提交翻译钩子现在将.translation-cache.json与翻译文件一起暂存。 - 当需要确认的工具在未绑定智能体的会话中运行时,智能体聊天不再崩溃 — 当没有智能体可路由时,闸门优雅地退出。
- 在严格交替提供商(Claude)上重试不再因历史记录中来自已停止轮次的孤立用户消息而失败 — 相同角色的连续消息在分发前折叠为单个轮次。
- 演练场重试在流前窗口期间不再短暂显示两次查询。
- ReAct 智能体现在在操作员拒绝批准请求后确认并停止,而不是重试改写的工具调用。
- 演练场”建议后续问题”返回并现在是按智能体选择加入(默认关闭;智能体设置中新增
Follow-up Suggestions切换)。
[v0.8.5] - 2026-04-23
Added
-
貢献者向けi18n ワークフロー: 貢献者は英語ソースファイルに触れるPRを送信するために
LLM_API_KEYを設定する必要がなくなりました。ローカルのpre-commitの翻訳ステップがスキップされた場合(キーなし)、新しい.github/workflows/i18n-sync.ymlワークフローがPRマージ後にmasterで EN → ZH/JA/KO/DE/FR に翻訳し、自動コミットします。pre-commitフックは生成されたロケールファイルへの手動編集を拒否するようになりました(正当な翻訳修正のためのALLOW_LOCALE_EDIT=1オーバーライド付き)。これにより、英語ソースと翻訳出力の間の暗黙的なドリフトを防ぎます。 -
i18n CI フォールバック エンドツーエンド検証: スモークテストプッシュ(英語のみ、ローカル翻訳フック スキップ)により、GitHub Actionsワークフローが変更されたソースを検出し、5つのロケールすべてに翻訳し、再帰を防ぐために
[skip ci]を付けてmasterに自動コミットすることが確認されました。 - Exa統合ドキュメントページ: サイドバーに専用の統合セクションがあり、最初のクラスのExaページでは、完全なExa検索サーフェス(neural / fast / deep-reasoning / instant)、フィルタリング、コンテンツ取得、およびニュース監視、研究論文取得、深い推論エージェント向けの3つのチューニングされたプリセットをカバーしています。Exa統合ディレクトリのパートナー向けランディングページとして機能します。
-
信創(Xinchuang)データベースサポート: Database Connectorは、PostgreSQL/MySQLと並んでKingbaseES(人大金仓)、HighGo(瀚高)、DM8(达梦)をリストするようになりました。KingbaseESとHighGoはPG互換で、追加の依存関係なしに
asyncpgを再利用します。DM8は公式のdmPythonベンダーホイールを使用します。スタンドアロンのscripts/test_xinchuang_dbs.pyにより、オペレーターはCLIからライブ接続を検証できます。 -
Feishuチャネル + 確認闸門(IM経由): 新しい
Channelリソースタイプ(組織スコープ、認証情報は保存時に暗号化)により、組織はFeishuアプリを接続して送信メッセージングを行うことができます。requires_confirmation=Trueでフラグが立てられたツールは、ポータルの確認ダイアログのみを表示するのではなく、設定されたFeishuグループに承認/却下のインタラクティブカードを送信するようになりました。グループの任意の認可されたメンバーがFeishuから直接承認または却下できます。Settings → Channels管理UI(リスト、ダーティ状態保護付きの作成/編集、コピー可能なコールバックURLを含む詳細、テスト送信)、CRUD API(/api/channels)、署名検証とURLチャレンジサポート付きのFeishuイベントコールバックエンドポイント(/api/channels/{id}/callback)をカバーします。v0.9 IM Channel Integration ロードマップアイテムの最初のステップで、2026-04-24ロードショーより前にリリースされます。 -
Agent Hook System(スケルトン):
src/fim_one/core/hooks/の新しいPreToolUseHook/PostToolUseHook抽象化により、決定論的ロジックがLLMループの外で実行できます。FeishuGateHookが最初の具体的な実装で、確認闸門フローに接続されています。完全なフックライフサイクル + ユーザー定義YAMLフックはv0.9スコープのままです。 -
Hook Systemは現在ReAct およびDAGランタイムで稼働中:
model_config_jsonでhooks.class_hooksを宣言するエージェントは、すべてのチャットセッションでそれらのフックがインスタンス化および登録されます。最初のコンシューマー —FeishuGateHook— は、エージェントがrequires_confirmation=Trueでフラグが立てられたコネクタアクションを持つツールを呼び出すときに自動的に発火し、組織のFeishuグループに承認/却下カードをポストし、ツールをブロックし、判定に基づいて再開または中止します。以前は、フック抽象化が実装されていましたが、Webレイヤーの何もそれをライブチャットに接続していませんでした。 -
Channelsおよび Hook System アーキテクチャドキュメント: 新しい
docs/architecture/hook-system.mdxは3つのフックポイント、フックがLLMループの外で実行される理由、およびFeishuGateHookをエンドツーエンドで説明しています。既存のアーキテクチャページ(system-overview、organization、react-engine、philosophy)はそれにクロスリンクしています。READMEはMessaging Channelsをv0.8の最初のクラスの機能としてリストし、Application Layerダイアグラムには、Portal/API/iframeと並んでIM ターゲットが含まれます。 -
Hook Approval Playground: Channelsの詳細シートに「Test Approval Flow」アクションが追加され、機密ツール呼び出しをシミュレートし、リンクされたFeishuグループに実際の確認カードをプッシュし、レビュアーの決定をライブでポーリングします。既存のプレビューボタンとは異なり、これは完全な本番パスを実行します(本物の
ConfirmationRequest行、実際のFeishuコールバック、ステータス遷移)。デモと本番前のリハーサルは、本番フックが使用するのと同じコードパスを使用します。 - エージェント単位のタスク完了通知: エージェントは、長時間実行されるReActまたはDAGタスクが完了したときに、組織のチャネル(現在Feishu)にサマリーカードをプッシュできるようになりました。Settings → Agent → Notificationsでエージェント単位で設定可能です。汎用送信通知パターンの最初のコンシューマーです。
-
設定可能な確認闸門 — インラインまたはチャネル: すべてのエージェントは、Settings内に「Approval」セクションを持つようになりました。3つのルーティングモード(Auto / Inline only / Channel only)、承認者スコープセレクター(initiator / agent owner / anyone in the org)、「すべてのツール呼び出しに確認を要求」オーバーライド、および明示的な承認チャネルピッカーがあります。Autoモードは、リンクされたチャネルが存在する場合はそれを使用し、チャットストリーム内のインライン承認カードに適切にフォールバックします。したがって、チャネルを持たないエージェントは、サイレント失敗する代わりに実際の承認UXを取得します。新しい
POST /api/confirmations/{id}/respondエンドポイントはFeishuウェブフックと単一の決定記録パスを共有するため、チャットでクリックされたか、Feishuグループでクリックされたかに関わらず、すべての承認は同じapprover_user_idおよびdecided_at監査フィールドをスタンプします。
Changed
- Playground のローディングインジケーターが、8秒後に疑似的な最大幅で固まる見た目の悪いプログレスバーの代わりに、微妙なテキストシマーを使用するようになりました。既存の2つのシマー実装(
.shiny-textと.text-shimmer)を、オプションのウォームプリセット付きの単一のテーマ対応プリミティブに統合しました。 - Connector カードに、connector が
allow_fallbackを無効にしている場合に「Private default」バッジ(ツールチップ付き)が表示されるようになり、所有者は一目で、どのコネクターがすべてのユーザーに独自の認証情報を用意させる必要があるかを判断できるようになりました。connector 設定フォームの Allow-Fallback トグルの下のヘルプテキストも、このフラグが他のユーザーとの共有のみをゲートすることを明確にしており、所有者は常に自分のデフォルト認証情報を使用できます。
修复
- 连接器所有者使用
allow_fallback=false且仅有默认凭证(无按用户凭证)发起的连接器调用不再返回 401”需要身份验证”错误。所有者现已豁免于回退闸门——该标志仅控制其他用户是否可以借用所有者的默认凭证。之前所有者自己的智能体在无声地发送未认证请求,同样的问题也影响了工作流connector_action节点。 - 对话导出现在为自动路由的 DAG 对话显示正确的模式标签(“Planner”/“规划”),而不是始终显示”Standard”。
- 导出时间戳现在遵循用户配置的时区,而不是显示原始 UTC。
- 上传的文件内容不再泄露到导出的对话中;仅包含用户的消息文本。
- 当提供商为每个流式工具调用增量重复使用
index=0时,并行工具调用不再发生碰撞;聚合器现在通过 id 或名称变化检测边界,并将后续增量重新映射到正确的槽位。 - 设置 → 通道现在反映当前用户的组织角色:成员(非管理员/所有者)看到禁用的”新建通道”按钮、隐藏的编辑/启用-禁用/删除操作、只读横幅和权限感知的空状态——而不是提交时失败并显示”需要组织管理员访问权限”的启用 CTA。
- 会话过期重定向现在保留查询字符串,因此用户在重新身份验证后会回到他们正在查看的确切标签/筛选器,而不是裸路径。
- Feishu 通道表单不再在与分层在对话框上方的聊天选择器交互时显示虚假的”放弃未保存的更改”提示。
- Feishu 通道设置提示在 UI 本身已是中文时不再重复中文标签(例如之前渲染为”事件与回调(事件与回调)”)。
- 架构管理器中的”全部标注”不再返回 500 内部服务器错误——完整标注后端路径存在未绑定变量错误,阻止了每次调用。
- 编辑数据库连接器现在在密码字段中显示
********占位符,而不是三个项目符号掩码文本,使得留空字段以保留存储密码的意图显而易见。 - 更新连接器操作不再折叠详情面板——编辑的操作保持选中状态,以便用户可以继续迭代。
- AI 连接器编辑器现在区分成功、部分失败和完全失败,而不是对所有三种情况显示相同的”已完成”消息。失败原因内联显示,以便用户可以看到实际出错的地方。
- AI 连接器编辑器不再能够一次性无声地清除多个操作。批量删除(>2 个操作)现在需要用户指令中的显式破坏性关键字(“rebuild”、“全部重建”、“wipe” 等);否则操作被拒绝并显示清晰的错误,保护
requires_confirmation/ JMESPath 设置免受意外丢失。 - 门户聊天中的确认卡片现在显示请求是否被路由到通道(例如 Feishu)或内联处理,以及关于谁被允许批准的人类可读提示(发起者、智能体所有者或任何组织成员)。通道路由的请求还会生成内联待处理卡片,以便用户不会想知道通知是否真的被发送了。
- Feishu 批准卡片在第一次决定后变为只读:
/callbackwebhook 返回替换卡片,其中批准/拒绝按钮被移除,标题着色为绿色(已批准)或红色(已拒绝),防止重复点击。来自过时 Feishu 客户端的仍然到达的重复点击会收到”此请求已被批准/拒绝。“提示和一份新的已决定卡片副本,以便过时的视图赶上。 - 恢复了通道行和详情表上的纯”发送测试消息”操作。批准演练场执行完整的钩子往返,但仅通知通道(未连接批准钩子)仍需要快速凭证/连接性健全性检查,纯测试发送涵盖了这一点。
- 对同一 Feishu 批准卡片的并发点击不再都能成功。
/callback处理器现在通过条件UPDATE ... WHERE status='pending'翻转ConfirmationRequest状态,并使用受影响的行数来决定哪个调用者”赢”;之前两个并行请求都可能读取pending并竞争写入,可能导致同一行上批准后拒绝。 - 待处理的批准请求现在在
CHANNEL_CONFIRMATION_TTL_MINUTES(默认 24 小时)后通过后台清理器自动过期。防止数天后的过时点击翻转已被拆除的智能体状态;对过期卡片的下一次点击会收到灰色”已过期”已决定卡片和”不再活跃”提示。 - 发送测试消息现在传递纯文本通知(无批准/拒绝按钮)并仅存在于通道详情表中——不在行下拉菜单中。不打算使用批准钩子的用户不会被”测试”消息上的交互按钮混淆。批准往返测试仍可通过批准演练场按钮获得。
- 通道详情表紧凑化:“如何完成设置”现在是默认折叠的可折叠部分(因此对于已配置的通道不会主导表),外部填充减少了,使内容更靠近表边缘。
- Builder AI 不再将掩码(
****)凭证报告为缺失——它现在将其识别为已配置并跳过虚假的”凭证缺失”指导。 - 演练场智能体列表现在显示所有可访问的智能体,而不仅仅是已发布的智能体,因此草稿智能体可以在不发布的情况下进行测试。
- 聊天图像上传不再在格式错误的
data:URL 上崩溃流——MIME 提取器现在安全地回退到application/octet-stream,而不是在生成中途引发 IndexError。 - 演练场图像缩略图现在在卸载时通过
AbortController取消在途获取,避免过时的 blob-URL 分配和快速导航期间浪费的带宽。
[v0.8.4] - 2026-04-17
追加
- 会話の復旧:中断されたターン後、合成された tool_result 行が永続化され、クライアントは
POST /chat/resume経由で最後に確認したカーソルを使用して切断された SSE ストリームを再開できます。 - Playground は
/chat/resumeエンドポイントを使用して切断された SSE ストリームを自動的に再接続し、指数バックオフ(最大 3 回の試行)を適用します。復旧中に「Reconnecting…」インジケーターを表示します。 - プロンプトキャッシュの可観測性:
cache_read_input_tokensとcache_creation_input_tokensが LLM レスポンスからキャプチャされ、TurnProfilerでターンごとに集計され、turn_cacheサマリー行(読み取り/作成トークン + 推定節約量)としてログに記録され、チャットのdone_payloadの新しいcacheフィールドに表示されます。Anthropic プロンプトキャッシュが実際にヒットしていることを検証でき、API リレーステーションがキャッシュ割引を適用しているかどうかの検出器としても機能します。
変更
- システムプロンプトは、Anthropicプロンプトキャッシング機能を備えたメモ化されたセクションレジストリを使用するようになりました。安定したプレフィックスにブレークポイントを設定することで、Claudeモデルのキャッシュされたプレフィックスに対するターンあたりのトークンコストが約60~80%削減されます。ReAct JSONモード、ネイティブ関数呼び出しモード、および合成は、キャッシュ対応プロバイダー(Claude、Bedrock Anthropic、Vertex Claude)に対して2つのシステムメッセージを発行し、その他すべてのプロバイダーに対しては単一の連結メッセージにフォールバックします。
修正
- 思考/推論トークンが複数ターンの会話全体で保持されるようになりました — Anthropic の
signatureフィールドが API 要件に従ってキャプチャおよび再生されます。 - プロバイダー対応の推論再生ポリシー:
reasoning_content(DeepSeek-R1、Qwen QwQ、Gemini thinking、OpenAI o-series から)は、後続のターンで非 Anthropic プロバイダーに再生されなくなりました。以前は、このフィールドがChatMessage.to_openai_dict()で無条件にシリアライズされていたため、プロバイダーのドキュメント(DeepSeek と Qwen は両方とも「メッセージ履歴にreasoning_contentを送り返さないでください」と明示的に記載)に違反し、複数ターンの交換のたびに自動プレフィックス / KV キャッシュを静かに無効化していました。ポリシーはcore/prompt/reasoning.pyに一元化されています — Claude ファミリー(Bedrock および Vertex プロキシを含む)は、必要に応じてシグネチャ付きの思考ブロックを引き続き再生します。
[v0.8.3] - 2026-04-16
追加
-
convert_to_markdown組み込みツール — Microsoft の MarkItDown を使用して、任意のファイル、URL、YouTube リンク、またはデータ URI をクリーンな Markdown に変換する新しい汎用エージェントツール。PDF、Word(.docx)、Excel(.xlsx/.xls)、PowerPoint(.pptx)、HTML、JSON、CSV、XML、ZIP、EPUB、Outlook .msg、画像、音声(音声→テキスト)、YouTube トランスクリプトに対応。すべてのエージェントでデフォルトで利用可能 —web_fetchと同じレベル。ビジョン対応 LLM が設定されている場合、埋め込み画像とスキャン済み PDF ページは公式のmarkitdown-ocrプラグイン経由で自動的に OCR されます。以前はこの機能は背景の RAG 取り込みパイプライン内に隠されていました。エージェントはインタラクティブな会話パス上でこれを利用できるようになりました。 -
markitdown-ocr経由のドキュメント OCR — DOCX / XLSX / PPTX 内の埋め込み画像とスキャン済み PDF ページは、FIM One の残りの部分がルーティングするのと同じビジョン対応 LLM を使用して OCR されるようになりました。組み込みのconvert_to_markdownツールと RAG 取り込みパイプラインの両方に適用されるため、チャット時の変換とナレッジベース取り込みは同じ入力に対してバイト単位で同一の Markdown を生成します。 -
ドキュメント OCR 用のユニバーサルビジョンプロバイダーサポート — 新しい
LiteLLMOpenAIShimダックタイプは、任意の FIM OneOpenAICompatibleLLMを openai SDK の.chat.completions.create(...)API 形状でラップし、litellm.completion()経由でディスパッチします。MarkItDown(openai SDK サーフェスをハードコードしている)は Anthropic Claude、Google Gemini、Azure、Bedrock、および LiteLLM がサポートするその他のプロバイダーを利用できるようになりました — FIM One 内のプロバイダー固有のアダプターコードは不要です。 - ビジョン対応 RAG 取り込み — Office ドキュメントとスキャン済み PDF のナレッジベースアップロードは、ワークスペースのデフォルトビジョン LLM(DB ファースト、ENV フォールバック)を解決し、取り込み中に OCR 用に MarkItDown に渡すようになりました。ゼロリグレッション:ビジョン対応モデルが利用できない場合、取り込みはサイレントにテキストのみモードにフォールバックします — 機能前の動作とまったく同じです。
-
拡張 MarkItDown フォーマットカバレッジ — RAG は MarkItDown の音声トランスクリプションと Outlook エクストラ経由で
.pdf、.msg(Outlook)、.epub、.mp3、.wav、.m4aをネイティブに取り込むようになりました。YouTube URL はmarkitdown[youtube-transcription]経由でconvert_to_markdownを通じてフローします。 -
LLM_SUPPORTS_VISION環境変数 — ENV モードのドキュメント OCR フォールバック用のオプションのオプトアウト(=false)。デフォルト動作は楽観的(true)で、一般的な ENV セットアップ(gpt-4o、claude-3-5-sonnet、gemini-1.5-pro/flash)をカバーします。ENV で設定されたLLM_MODELがビジョンをサポートしない場合(例:deepseek-v3、qwen-chat、llama-3.1、gpt-3.5-turbo、o1-mini)のみfalseに設定して、ドキュメントアップロードのたびに失敗するビジョン呼び出しをスキップします。管理者がキュレーションした ModelGroup がアクティブな場合は完全に無視されます — DB モードが利用可能な場合は常に真実のソースです。 -
ターンレベルプロファイラー — 各 ReAct ターンは、フェーズレベルのタイミング(
memory_load、compact、tool_schema_build、llm_first_token、llm_total、tool_exec)をターンごとに単一の構造化ログ行で記録するようになりました。REACT_TURN_PROFILE_ENABLED経由でトグル可能(デフォルト:オン;ゼロオーバーヘッドのノーオプの場合はfalseに設定)。 -
構造化コンパクトワークカード — 会話圧縮は、独自の 9 セクション Markdown 出力を型付き
WorkCardに解析し、新しいコンパクトを前のものにマージするようになりました。これにより、長いセッション全体でのエラーと保留中のタスクは、複数の圧縮ラウンド全体で生き残り、最初からやり直して再要約されるのではなく保持されます。
変更
- ユーザーごとのレート制限 — LLM層のレート制限機能が、プロセス全体で共有される単一のバケットではなく、ユーザーごとに個別のバケットを保持するようになりました。1人のノイズの多いユーザーが同じワーカー上の他のすべてのユーザーをスロットルするのを防ぎます。
LLM_RATE_LIMIT_PER_USERで切り替え可能です(デフォルト:有効)。
修正
- ダングリングtool_use復旧 — ユーザーStop、SSE切断、クラッシュなどでツール実行中に中断されたConversationは、以前は
tool_useブロックを持つアシスタントメッセージと対応するtool_resultがない状態のままになり、次のターンでLLM APIから不透明なHTTP 400エラーが発生していました。DbMemory.get_messages()は、読み取りパスでこれらのダングリングブロックを検出し、合成された[interrupted]tool_resultで修復するようになりました。生のDBログは変更されません。 - 空のコンテンツを持つアシスタントメッセージとtool_callsが削除されなくなった — DbMemoryの読み込みパスフィルターは、以前は空のテキストコンテンツを持つアシスタント行を暗黙的に破棄していました。ネイティブ関数呼び出し中間体(テキストなしで
tool_callsのみを持つ)が削除されていました。フィルターは、空のコンテンツとtool_callsがないの両方を要求するようになりました。
[v0.8.2] - 2026-04-10
Added
- Intelligent Document Processing (Vision-Aware) — モデル機能に基づいた適応的なドキュメント処理。ターゲットLLMがビジョン機能をサポートしている場合(GPT-4o、Claude 3/4、Gemini)、PDFページは画像としてレンダリングされ、ビジョンコンテンツブロック経由で送信され、完全な視覚的忠実度を実現します。テキストのみのモデルはpdfplumberテキスト抽出にフォールバックします。ビジョンモードとテキストのみモードの2つのモード。
DOCUMENT_PROCESSING_MODE、DOCUMENT_VISION_DPI、DOCUMENT_VISION_MAX_PAGES環境変数で設定可能。管理画面でモデルごとのsupports_visionトグル。 - Document vision pipeline — チャットにアップロードされたDOCX、PPTX、PDFファイルに含まれる画像が抽出され、モデルでビジョンが有効な場合、LLMにビジョンコンテンツとして送信されます。
- Multi-turn vision persistence — アップロードされたドキュメントと画像からのビジョンコンテンツは会話ターン全体で保持され、モデルは会話全体を通じて視覚的コンテキストを保持します。
- Smart PDF processing — テキストが豊富なPDFページはテキストと埋め込み画像を別々に抽出し(トークンを節約)、スキャンまたは画像のみのページはフルページPNGとしてレンダリングされ、最大の忠実度を実現します。
- Pre-built sandbox image —
Dockerfile.sandboxに一般的なデータサイエンスパッケージ(pdfplumber、Pillow、pandas等)が含まれており、--network=noneコンテナでAIコード実行がすぐに機能します。 - Resource Fork completion — 5つのリソースタイプすべてがフォークをサポートするようになりました:Agent、Connector、Workflow、MCP Server、Skill。KB フォークは削除されました(本質的にユーザーローカル)。
Changed
- チャット応答の高速化 — SSE ストリームはエージェント完了直後に閉じられ、タイトル生成とフォローアップ提案は応答をブロックせずにバックグラウンドで実行されます。
- より効率的なコンテキスト圧縮 — 会話圧縮は構造化された9セクション形式を使用し、長いセッション全体で重要な情報(元のリクエスト、エラー、保留中のタスク)をより良く保持します。
- エージェントループの削減 — エージェントプロンプトにアンチループ命令を追加し、サイクル検出閾値を低下させて、重複する同一ツール呼び出しをより早く検出します。
- リクエスト起動の高速化 — LLM設定ルックアップとドメイン分類が並行実行され、リクエストあたりのオーバーヘッドが400~1100ms削減されます。
- 空のツール処理の改善 — 出力を返さないツールは、空の「(no output)」ではなく説明的なメッセージを生成し、無駄な再試行を防ぎます。
- 古いツール結果の自動クリーンアップ — 最新6件より古いツール結果は、コンテキスト圧縮前に自動的にクリアされ、会話を効率的に保ちます。
- ツール結果の集計予算 — ツール結果の総トークン数はセッションあたり40Kに制限され、予算を超えた場合は新しい結果が切り詰められ、大規模なAPI応答によるコンテキスト肥大化を防ぎます。
- コンテキストオーバーフロー自動復旧 — LLMがコンテキスト長オーバーフローのためにリクエストを拒否した場合、エージェントは会話全体をクラッシュさせるのではなく、自動的に50%に圧縮して再試行します。
- キーワードベースのツール選択 — クエリが名前または説明キーワードで特定のツールに明らかにマッチする場合、エージェントはLLMベースのツール選択呼び出しをスキップし、200~500msを節約します。
- LLM接続プーリング — すべてのLLM APIコールは最適化されたキープアライブ設定を備えた単一の接続プールを共有し、セッション全体の接続オーバーヘッドが削減されます。
- より効率的な完了チェック — 長い詳細な応答(200トークン以上)の場合、回答後の検証ステップはスキップされ、不要なLLMラウンドトリップが排除されます。
- プロバイダー障害時のモデルフォールバック — プライマリモデルが利用不可(レート制限、過負荷、またはダウン)の場合、エージェントは失敗するのではなく自動的に高速モデルで再試行します。
修正
- AIスマートボディの読み取り不可ファイルでの幻覚 — AIスマートボディがファイルを読み取れない場合(例:画像ベースのPDF)、以前は他の無関係なファイルを読み取り、そのコンテンツをターゲットファイルのものとして提示していました。システムプロンプトのファイル整合性ガードレールがこれを防ぐようになりました。
- アップロード用ファイルIDインジェクション — アップロードされたファイルにはメッセージコンテキストにUUID
file_idが含まれるようになり、スマートボディは推測することなくread_uploaded_fileで直接アクセスできます。 - 新しいモデル構造からのビジョントグル読み取り — モデル設定の
supports_visionフラグが ModelGroup/ModelProviderModel ORM構造から正しく読み取られていませんでした。修正されました。 - 読み取り不可ファイルの改善されたエラーメッセージ — ファイルが読み取れない場合、ツールは一般的なエラーではなく、特定のガイダンス(ファイルタイプ、ビジョン提案)を返すようになりました。
[v0.8.1] - 2026-03-29
追加
- タイムゾーン対応の管理者通知 — 管理者通知メールは、常にUTCを表示する代わりに、各受信者の設定されたタイムゾーンでイベント時刻を表示するようになりました。
- 段階的なデータベースツール開示 — 個別のテーブルごとのツールを置き換える、
list_tables/discover/queryサブコマンド付きの単一のdatabaseメタツール。DATABASE_TOOL_MODE環境変数で設定可能(デフォルトprogressive、フォールバックlegacy)。 - オンデマンドツール読み込み — 12個以上のツールが利用可能な場合、
request_toolsメタツールにより、エージェントは初期選択に限定されるのではなく、会話中に動的に追加ツールを読み込むことができます。 - 段階的なMCPツール開示 — 個別のサーバーごとのツールを置き換える、
discover/callサブコマンド付きの単一のmcpメタツール。MCP_TOOL_MODE環境変数で設定可能(デフォルトprogressive、フォールバックlegacy)。 - ターンごとのトークン予算サーキットブレーカー —
REACT_MAX_TURN_TOKENS環境変数は、暴走するエージェントループの緊急停止を提供します。デフォルト0(無制限)— 日次コスト管理にはユーザーごとのtoken_quotaを使用してください。 - モデルごとのネイティブ関数呼び出しトグル —
tool_choice_enabled設定(ENV + 管理者によるモデルごと)により、強制ツール選択を拒否するモデルはレベル1をスキップしてJSONモードに直接進むことができます。設定 → モデル → 詳細で設定可能。 - DAG品質の全面改善 — 5つの改善:非高速ステップの汎用モデルへのデフォルトモデルアップグレード、計画時のスキル自動検出、法務/医療/金融ドメイン向けの引用検証者、設定可能な切り詰め乗数を備えた構造化コンテンツコンテキスト保持、ルーターでのドメイン分類とドメイン対応モデル選択。
- ReActでのドメインモデルエスカレーション — 専門ドメイン(法務/医療/金融)は、必須のウェブ検索と引用検証を伴う推論モデルに自動エスカレートします。
- ファイル添付ダウンロード — チャットメッセージ内のファイルカードはクリック可能になり、元のファイルをダウンロードできます。
- 管理者通知マスタースイッチ — 管理者メール通知のグローバルオン/オフトグル(実行時SMTP検出付き)。SMTPが設定されていない場合は警告バナーを表示し、すべての通知コントロールを無効にします。
- SMTP Reply-Toヘッダー — 新しい
SMTP_REPLY_TO環境変数により、返信を送信者とは異なるアドレスに送信できます。 - リソースフォークフェーズ1(MCPサーバー + スキル) —
POST /api/mcp-servers/{id}/forkおよびPOST /api/skills/{id}/forkエンドポイントは、visibility=personalとforked_from系統追跡を備えたユーザー所有のディープコピーを作成します。MCPサーバーフォークでは暗号化されたenv/ヘッダーがスキップされ、スキルフォークでは公開ステータスがスキップされます。Alembicマイグレーションは両方のテーブルにforked_from列を追加します。41個のテスト。 - ワークフロー接続依存関係自動購読 —
DependencyAnalyzer._resolve_workflowは、サイクル検出(訪問済みセット)を伴うサブワークフロー依存関係を再帰的に解決するようになりました。エージェントおよびサブワークフローノードは、依存関係マニフェストのコンテンツ依存関係として正しく追加されます。不足しているリソースは適切に処理されます(ログ警告、失敗なし)。19個のテスト。 - プリビルトソリューションテンプレート(マーケットシードコンテンツ) — 8つの業界別ソリューションテンプレートが初回ユーザー登録時にべき等的にブートストラップされます:財務監査、契約レビュー、データレポート、IT ヘルプデスク、HR オンボーディング、営業アシスタント、コンテンツライター、会議要約。各テンプレートは、中国語のSOP付きのエージェント + スキルをバンドルしています。マーケット組織に公開されます(
visibility=org、publish_status=approved)ので、マーケットプレイスで即座に利用可能です。4個のテスト。 - ReActサイクル検出 — 繰り返される同一のツール呼び出しの決定論的検出。同じ引数での3回連続の呼び出し後に警告を挿入し、エージェントが失敗したツールでループするのを防ぎます。
REACT_CYCLE_DETECTION_THRESHOLDで設定可能。 - ReAct完了チェックリスト — ツールが使用された場合に最終回答を受け入れる前の1回限りの検証プロンプト。時期尚早または不完全な応答を削減します。エージェントインスタンスごとにトグル可能。
Changed
- 完了チェックリスト最小ツール閾値 — チェックリストはエージェントが3回以上のツール呼び出しを行った場合にのみ実行されるようになりました(
REACT_COMPLETION_CHECK_MIN_TOOLSで設定可能)。シンプルな1~2ツールタスクは不要なレイテンシを避けるため検証をスキップします。 - 動的システムプロンプト予算配分 — コンテキスト予算計算から固定の
SYSTEM_PROMPT_RESERVE(4Kトークン)を削除しました。ContextGuardはシステムプロンプトを動的に考慮し、各イテレーションで約4Kの追加利用可能コンテキストを提供します。 - 一元化されたツール切り詰め — すべてのツールタイプが共有モジュールへの切り詰めを委譲するようになりました。デフォルトは
TOOL_OUTPUT_MAX_CHARS、TOOL_OUTPUT_MAX_ITEMS、TOOL_OUTPUT_MAX_BYTES環境変数で設定可能です。 - ドメイン検出の分離 — ドメイン分類は各エンドポイントで独立して実行され、自動ルーティングにバンドルされなくなりました。ドメインSOP指示は、Webサーチを強制するのではなくガイドするようにソフト化されました。
AUTO_ROUTING環境変数を削除 — 自動エンドポイントは常にクエリを分類します。
修正
- 重複メッセージ送信 — チャット入力は同期ガードを使用して、急速なクリックで同じメッセージが複数回送信されるのを防ぐようになりました。
- 構造化出力デグラデーションチェーン — 3レベルのフォールバック(ネイティブ FC → JSON モード → プレーンテキスト)が全レベルを正しく通過するようになりました。
json_mode_enabledDB値が無視される — Admin経由で設定されたモデルは、環境変数に常にフォールバックするのではなく、モデルごとの設定を正しく使用するようになりました。- DAG計画失敗メッセージ — 生のパイプラインエラーの代わりに、ユーザーフレンドリーな二言語メッセージを表示するようになりました。
- MCP サーバーオーナーの allow_fallback バイパス — サーバーオーナーは
allow_fallback=Falseによってブロックされなくなりました。
[v0.8] - 2026-03-20
追加
- Marketplace再設計 Phase 1 — Solutions + Components — 2層Market モデル(Solutions: Agent/Skill/Workflow; Components: Connector/MCP Server)とスコープセレクタ(Global Market / org)。KB は Market スコープから削除。統一されたサブスクリプションモデル。
- Smart file content injection +
read_uploaded_filetool — 小さいアップロード(32K文字未満)は自動的に LLM コンテキストにインライン化;大きいファイルはメタデータ + tool ヒント。ページネーションと正規表現検索を備えたデュアルモード読み取りツール。GET /api/files/{file_id}/contentエンドポイント。 - Workflow Blueprint System — マルチステップ自動化用のビジュアルワークフローエディタ:25ノードタイプ(Start、End、LLM、ConditionBranch、QuestionClassifier、Agent、KnowledgeRetrieval、Connector、HTTPRequest、VariableAssign、TemplateTransform、CodeExecution、Iterator、Loop、VariableAggregator、ParameterExtractor、ListOperation、Transform、DocumentExtractor、QuestionUnderstanding、HumanIntervention、SubWorkflow、ENV など)、React Flow v12 エディタ(ドラッグ&ドロップパレット、自動レイアウト)、SSE リアルタイム実行、変数補間、条件/分類器ブランチング、ノード単位のエラー戦略、ノード単位のタイムアウト、インポート/エクスポート/複製、差分ビューア付きバージョン履歴、14個の組み込みテンプレート、306テスト。
- Workflow Triggers — タイムゾーン対応の Cron スケジューリング;ユーザー認証なしで外部実行用の公開 API キー(
wf_プレフィックス);バッチ実行(最大100入力セット、設定可能な並列処理)。 - Workflow Operations — リアルタイム実行ログビューア、変数スナップショット付きトレースビューア、キャンバス上の実行リプレイオーバーレイ、実行履歴エクスポート、日次トレンドとパーセンタイル付き分析ダッシュボード、ノード単位の統計パネル、お気に入り/ピン留め、インライン検証バッジ、キャンバスノード検索(
Cmd+F)、キーボードショートカット、グリッドスナップ。 - Workflow Admin + Templates — すべてのワークフロー用の管理タブ、管理者 CRUD と5つのシードテンプレート付き
WorkflowTemplateモデル、org レベルのレビューゲーティング付きパブリッシュフロー、外部参照用のインポート競合リゾルバー。 - Agent Skill System — オンデマンドスキル読み込み:CRUD/パブリッシュ/レビュー機能付き
Skillモデル、段階的開示用のread_skill(name)ツール(約80%のトークン削減)、エージェント単位のcompact_instructionsでカスタム ContextGuard 圧縮。フルスキル UI(リストページ、エディタ、エージェントスキルセレクタ)。 - ConnectorMetaTool(段階的開示 Phase 1-2) — 単一のメタツールがアクション単位のツールに置き換わり。システムプロンプトは軽量スタブ(約30トークン/コネクタ)を受け取り;エージェントはオンデマンドで
discover/executeを呼び出し。後方互換性用のCONNECTOR_TOOL_MODEフィーチャーフラグ。 - Connector インポート/エクスポート/フォーク — JSON エクスポート経由でコネクタテンプレートを共有、フォーク経由でクローンとカスタマイズ。バックエンドはエクスポート時に認証情報をサニタイズ。
- Connector 認証情報暗号化 + ユーザー単位のオーバーライド — Fernet 暗号化付き
connector_credentialsテーブル、allow_fallbackフラグ、GET/PUT/DELETE /my-credentialsエンドポイント。 - Publish レビュー UI — 承認/却下ワークフロー付き org レベルのレビューシステム、リソースカード上のステータスバッジ、パブリッシュダイアログ内のレビュー通知、却下されたリソースの再送信。
- Semantic schema annotations —
descriptionとpiiフラグ付き16個の定義済みセマンティックタグ(コネクタフィールド用)、LLM ツール説明に表示。 - Agent mid-loop self-reflection — ReAct で6イテレーション毎に注入されるゴールチェックプロンプト(長いチェーンでのドリフト防止)。
- Shadow Market org + リソースサブスクリプション — プルベースのリソース共有:marketplace 経由で発見されたリソースを明示的にサブスクライブ。参照/サブスクライブ/サブスクライブ解除用の Market API。
- Agent 自動発見 + サブエージェントバインディング —
discoverableフラグ +sub_agent_idsホワイトリスト + 1レベルの委譲用CallAgentTool。 - MCP server 認証情報 + ユーザー単位のオーバーライド — 認証情報フォールバック動作用の
allow_fallbackフラグ付きmcp_server_credentialsテーブル。 - Connector/KB トグル — 両方のリソースタイプ用の一時停止/再開エンドポイント。
- スタンドアロン KB 会話 — エージェントバインディングなしで直接 KB チャット用の会話上の
kb_idsフィールド。 - レビューログ監査タブ — システムログ/レビューログトグルと org/リソース単位でフィルタリング可能なレビュー履歴付き管理者監査ページ。
- Agent directive in synthesis —
agent_directiveパラメータは最終回答がエージェントのコア目的を尊重することを保証。
変更
- サブスクリプションベースの可視性モデル — 3段階から2段階(自分 → 購読済み)に簡略化。自動移行により既存のアクセスが保持されます。
- ツールキャッシュホワイトリスト — ブラックリストを廃止し、ツールの明示的な
cacheableプロパティに置き換え。11個の読み取り専用ツールがキャッシュ可能としてマーク。 - DAG エグゼキューター カスケード失敗 — 失敗したステップが依存関係のある処理をカスケードブロックし、推移的に伝播。
- DAG プランナーの改善 — プランナーのツール説明、全ラウンドにわたる完全な再計画履歴、14個のエンジン定数を環境変数としてパラメータ化。
- stream_answer 観測値の切り詰め — 2000文字から8000文字に増加(
REACT_TOOL_OBS_TRUNCATIONで設定可能)。 - エビデンス信頼度 UI — 琥珀色の警告カード、ホバーポップオーバー付き
[N]引用バッジ、並行比較表示の競合警告バナー。 - ワークフロー バージョン変更サマリー — バージョン保存時にブループリント差分から自動生成される人間が読める形式のサマリー。
- ワークフロー実行保持期間のクリーンアップ — 設定可能な期間/数制限を備えたバックグラウンドクリーンアップタスク。環境変数:
WORKFLOW_RUN_MAX_AGE_DAYS、WORKFLOW_RUN_MAX_PER_WORKFLOW。 - コネクター サーキットブレーカー — 3状態マシン(closed/open/half-open)、コネクターごとの障害追跡、監視エンドポイント。
- elkjs を軽量 BFS 自動レイアウトに置き換え —
/workflows/[id]バンドルが 473 kB から 43 kB に削減。
修正
- ワークフロー評価名前空間のフラット化 — ConditionBranchおよびVariableAssignにおける短い変数名解決を修正しました。
is_activeトグル時の再レビューなし —is_activeをトグルしても、publish_statusがapprovedからpending_reviewに戻らなくなりました。- 条件分岐のカスケードスキップ — スキップされたノードが発信エッジを正しく非アクティブ化するようになりました。
- 依存関係アナライザー —
skill_ids解決とケース非依存ノードタイプマッチングを修正しました。
削除
is_globalフィールドとすべてのグローバル可視性概念を削除——Market org + サブスクリプションに置き換え。- グローバルエージェント/MCPサーバー管理エンドポイントを削除。
[v0.7.5] - 2026-03-12
追加
- フリーモード切り替え — 会話中にAuto/React/DAGモード間を切り替え可能。
metadata.mode経由のターンごとのモード追跡。 - 3つのモデルロール — General、Fast、Reasoningティア向けの独立した環境設定。Fastモデルはメインモデル設定を継承しなくなりました。
- DAGエンジン改善 —
StepOutput構造化データ、非同期ロックスタンピード防止機能付きツールキャッシュ、再試行機能付きステップごとのLLM検証(DAG_STEP_VERIFICATION)、高速LLM分類経由の自動ルーティング(AUTO_ROUTING)。 - コネクタ認証情報暗号化 — 認証トークンを
connector_credentialsテーブルに抽出し、CREDENTIAL_ENCRYPTION_KEY経由のFernet暗号化を実装。ユーザーごとの認証情報オーバーライドエンドポイント。allow_fallbackフラグ。 - ModelConfig APIキー保存時暗号化 — 透過的な書き込み時暗号化/読み込み時復号化と後方互換性のあるプレーンテキスト検出。
Changed
- スケルトンスクリーン — すべてのリスト/グリッドページは、ロード中にスピナーの代わりにレイアウト対応のスケルトンを表示します。
修正
- 高速モデルがメインモデルから設定を継承しなくなりました。
- SSEルーティングイベントフィールド名がバックエンドと一致するようになりました。
[v0.7.4] - 2026-03-12
追加
- Evaluation Center — テストデータセット管理、LLM採点による並列評価実行、ケースごとの合格/不合格/レイテンシ/トークン結果ビューアと自動ポーリング機能。
- Admin: モデルごとの
json_mode_enabledフラグ — AWS Bedrock プリフィル問題を防ぐ明示的なトグル。ENV モデルはLLM_JSON_MODE_ENABLEDで制御。 - SSE Protocol v2 —
delta_reasoning、usageフィールドを備えたリアルタイムストリーミング、done/suggestions/title/endイベントの分割。 - AI Builder 拡張 — 7つの新しいビルダーツール、
is_builderフラグ、ビルダープロンプト自動更新、SSRF ガード。コネクタ管理用の完全な ReAct エージェントダイアログ。 - デュアルデータベース対応 — SQLite(ゼロコンフィグ)+ PostgreSQL(本番環境)。Docker Compose が PG をヘルスチェック付きで自動プロビジョニング。
- 拡張思考/推論 — OpenAI o-series、Gemini 2.5+、Claude 向けの
LLM_REASONING_EFFORTとLLM_REASONING_BUDGET_TOKENS。 - Admin: ツール無効化 — ツールごとの有効/無効トグル。無効なツールは実行時にチャットからフィルタリング。
- 設定: Organizations タブ — 設定から直接、組織の作成、参加、管理とメンバーロール管理が可能。
- Docker Compose デプロイメント — 単一イメージ、名前付きボリューム、スタンドアロン Next.js 出力。
- エクスポート: PDF 形式 — 会話を PDF ドキュメントとしてエクスポート可能。
- マルチワーカー対応 —
WORKERS=N環境変数、ワーカー間リレー用の Redis インタラプトブローカー。
Changed
- LLM layer: LiteLLM — 汎用プロバイダサポートのため、直接的な
AsyncOpenAIクライアントを置き換えました。 - 構造化出力の段階的低下 — 3段階の抽出(Native FC → JSON Mode → プレーンテキスト + regex)で
structured_llm_call()を統一しました。 - スマートリレールーティング — サードパーティリレープラットフォームのURLパターンからAPIプロトコルを自動検出します。
修正
- Docker サンドボックス (DooD) ボリュームマウントパスの翻訳。
- セキュリティ: サンドボックス AST ダンダー検証、MCP stdio デフォルト、SSRF DNS リバインディング、シェルメタ文字回避、コネクタテンプレートインジェクション。
- 管理ダッシュボード統計情報が PostgreSQL でクラッシュする問題。
- Docker: i18n ファイル検出、スタートアップレース条件、カスタムポート用 OAuth 自動検出。
- エクスポート: CJK 用 RFC 5987 ファイル名。
[v0.7.3] - 2026-03-06
追加
- グローバルMCPサーバー — 管理者がプロビジョニングし、すべてのチャットセッションで読み込まれます。
- 構造化監査ログ — 構造化列を備えた
write_audit()ヘルパー。
修正
- 招待コードの
registration_enabledフィールドのレガシー互換性。
[v0.7.2] - 2026-03-06
追加
- 招待制登録 — 3つのモード(オープン/招待/無効)と招待コードのCRUD機能。
- ストレージ管理 — ユーザーごとのディスク使用量、クリア、孤立ファイルのクリーンアップ。
- ユーザーごとの強制ログアウト — 管理者トークンの失効。
- 会話のモデレーション — 管理者による全会話のリスト表示/削除。
[v0.7.1] - 2026-03-06
追加
- API ヘルスダッシュボード — システム統計、コネクタメトリクス、トークン使用量チャート。
- JWT 認証 — トークンベースの SSE 認証、会話所有権。
- Admin API — エージェント管理、ユーザーごとのトークンクォータ(429 エンフォースメント)。
[v0.7] - 2026-03-06
追加
- Admin Platform — ユーザー管理、ロール切り替え、パスワードリセット、アカウント有効化/無効化。
- First-run setup wizard — ガイド付き管理者アカウント作成。
- Personal Center — ユーザーごとのグローバル指示、言語設定。
[v0.6.5] - 2026-03-05
追加
- ユーティリティツール —
email_send、json_transform、template_render、text_utils。 - コネクタレスポンスフィルタリング —
CONNECTOR_RESPONSE_MAX_CHARSとCONNECTOR_RESPONSE_MAX_ITEMS。 - 埋め込みモデルオプション — Jina、OpenAI、およびカスタムプロバイダー。
[v0.6] - 2026-03-01
追加
- Connector Platform — Full CRUD、ConnectorToolAdapter、ユーザーごとの認証情報暗号化、確認ゲート、サーキットブレーカー、監査ログ。
- MCP integration — プロトコル経由のツール自動検出、プロセス分離。
[v0.5] - 2026-02-28
追加
- 完全なRAGパイプライン — Jinaエンベディング + LanceDB + FTS + RRF + リランカー。
- 根拠のある生成 — エビデンスアンカー付き引用、矛盾検出、信頼度スコア。
- KB ドキュメント管理 — チャンクレベルのCRUD、検索、リトライ、スキーママイグレーション。
- ContextGuard + ピン留めメッセージ — トークン予算マネージャー。
- DAG 再計画 — 最大3ラウンド;メモリ用LLM Compact。
[v0.4] - 2026-02-25
追加
- マルチターン会話 — DbMemory永続化、スマートな切り詰め。
- ツールステップ折りたたみUI — ツール呼び出しの折りたたみ/展開。
- HTTPリクエスト + シェル実行ツール。
- エージェント管理 — 作成、設定、バインドされたモデル/ツールで公開。
- JWT認証。
[v0.3] - 2026-02-25
追加
- Web ツール —
web_search(Jina/Tavily/Brave)、web_fetch。 - ファイル操作 + MCP クライアント。
- DAG ビジュアライゼーション — ライブステータス付きのインタラクティブフロー グラフ。
- Docker でのコード実行 —
--network=none、メモリ制限、タイムアウト。
[v0.2] - 2026-02-24
追加機能
- リトライと レート制限 — 指数バックオフ。
- 使用状況追跡 — リクエストごとのトークン/コスト計算。
- ネイティブ関数呼び出し — 直接モデルツール選択。
- マルチモデル対応 — DAG ステップ用の
FAST_LLM_MODEL。 - メモリシステム — ウィンドウ、サマリー、Db メモリ。
- FastAPI バックエンド —
/api/execute、/api/stream(SSE)。
[v0.1] - 2026-02-22
追加
- ReActAgent — Reason → Act → Observe ループ。
- DAGPlanner — LLM生成の依存グラフ、並行実行、結果検証。
- Tools — 計算機、Python実行。
- Portal UI — Next.jsによるストリーミング、ダーク/ライトテーマ、KaTeX。