diff options
Diffstat (limited to 'doc/Design.md')
| -rw-r--r-- | doc/Design.md | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/Design.md b/doc/Design.md index d3ace2a..1ca8cbe 100644 --- a/doc/Design.md +++ b/doc/Design.md @@ -198,6 +198,28 @@ message: <localized status> result: <final natural-language answer; completed only> ``` `result`は選択localeで生成する。内部Tool名、policy internals、chain-of-thoughtは返さない。 + +### 5.6 MCP 2026-07-28 / dual-era境界 + +- 公式C# SDK `2.0.0`へwire処理を委譲する。独自に`server/discover`、必須`_meta`、MCP routing header、modern error codeを再実装しない。 +- HTTP transportは`Stateless = true`。modern HTTP requestごとにserver contextを作成し、`Mcp-Session-Id`を使用しない。 +- SDKのlegacy initialize fallbackは維持する。Legacy SSEはSDK defaultの無効状態を使い、独自GET拒否middlewareは置かない。 +- Agent Sessionは`session_id`で明示的に管理するapplication stateであり、transport sessionとは独立する。 + +### 5.7 Tasks Extension + +- `ModelContextProtocol.Extensions.Tasks 2.0.0`の`WithTasks` filterを`agent_run`だけoptional task対応として登録する。`agent_status`は同期Toolのまま維持する。 +- `PersistentMcpTaskStore`は`state/mcp-tasks/<task-id>.json`へWriteThrough後のatomic moveで保存する。directoryのuser-only DACLはApp層で作成する。 +- store作成IDをAgent Task IDとして使用し、Agent registryのterminal completionを待ってSDK filterへ最終結果を返す。非Tasks callは従来どおりenqueue直後に返す。 +- `tasks/cancel`のrequest cancellationをAgent TaskのCancellationTokenへ接続する。restart recoveryではworking/input-requiredを`failed`、reasonを`server_restarted`とする。 +- 既定TTLは24時間、poll intervalは1000 ms。期限切れfileはaccess時に削除する。 + +### 5.8 起動preflightとHTTP request log + +- Appはtransport構築前に`WindowsPlatformCheck`を実行する。administrator/BFE/WFP probeが1つでも失敗した場合はhostをbuild/startせずfatalとする。 +- `StartAsync`完了後にだけ`IMcpHostObserver.Ready`を通知するため、「起動中」と「接続可能」を区別できる。 +- HTTP middlewareはsocket endpointとrouting metadataだけを`logs/http.jsonl`へJSON Linesで保存する。forwarded header、credential header、query、payloadは保存しない。 +- `RollingFileWriter`をapplication/http logで共用し、同じsize/retention policyでrotationする。stdioの運用出力はstderrだけへ送る。 --- ## 6. Ollama統合設計 ### 6.1 APIモデル |
