From b07b41cd435991cd254957af79055080c85b346e Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Sun, 9 Aug 2026 21:08:20 +0900 Subject: feat: AI Agent Sandbox MCP Server v1を実装 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Specifications、Design、ImplementationPlanの優先順位を整理し、単一Task実行モデル、typed option優先、設定可能なresource上限、local Ollamaを必須とするRelease Gateを文書化。 .NET 10/C# 14の5 production project、3 test project、E2E Clientを構築。typed YAML、en/ja locale、fixed/user prompt、stdioおよびloopback限定Streamable HTTP、agent_run/agent_status、Session、Ollama text/tool/Vision、TaskGraphとtoken accountingを実装。 Windows sandboxとしてfixed AppContainer、canonical/reparse検査、能力別ACL、path+SHA-256 executable approval、child-process restriction、Job Object、task journal、atomic file transaction、crash recoveryを実装。WFPのIPv4/IPv6 default denyとexact allow、dynamic session、temporary loopback exemption、管理者/BFE診断を追加。 Security/Recovery test、MCP/Ollama integration test、stdio/HTTP Operational E2E、Release Bundle生成・checksum・manifest・fresh extraction検査を追加。Requirement TraceabilityとPhase 0〜11の進捗、初回セットアップ可能なREADMEを整備。 Debug/Release/publish/objをrepository rootのbuild/へ集約し、旧project-local bin/objへの依存を除去。artifacts/とbuild/をGit管理外に設定し、clean checkoutでもsolution buildからE2E Clientまで生成可能にした。 --- doc/Specifications.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'doc/Specifications.md') diff --git a/doc/Specifications.md b/doc/Specifications.md index 9d13343..2aa19c5 100644 --- a/doc/Specifications.md +++ b/doc/Specifications.md @@ -155,6 +155,13 @@ IPA「厳密な仕様記述入門」の考え方に従い、課題・仕様・ | failed | 回復不能な失敗 | 終端 | | cancelled | 安全停止完了 | 終端 | +### 5.5.1 v1実行並列性 + +- 複数Taskを `queued` として同時に受け付けることができる。 +- アプリケーション全体で `planning` または `running` になれるTaskは最大1件とする。 +- Task Resourceを適用できるTaskも同時に最大1件とする。 +- `agent_run` の非同期受付は維持し、実行待ちTaskは受付順の単一キューで処理する。 + ### 5.6 CLI v1のCLI surfaceは次に限定する。 @@ -186,6 +193,8 @@ CLIは起動方式と表示言語を変更するためのI/Fであり、SandboxP | OLL-12 | Retry | Ollama通信失敗は既定3回まで再試行する。 | | OLL-13 | Usage | `prompt_eval_count` と `eval_count` をTask実測tokenとして記録する。 | +Vision入力は設定可能な画像数、1画像あたりのsize、request合計sizeの上限を持ち、上限超過をOllama呼出し前に拒否しなければならない。具体的な既定値は設計および設定schemaで定義する。 + --- ## 7. Agent Runtime仕様 @@ -205,6 +214,8 @@ CLIは起動方式と表示言語を変更するためのI/Fであり、SandboxP AgentはTaskの期待副作用と観測結果を比較し、実行が必要なのにtool callが0件の場合はTaskをcompletedにしない。再試行はAgent Loopの失敗回数へ算入する。純粋な説明・分析Taskにはtool callを強制しない。 +Internal Toolが返す読取・検索・tail結果は設定可能な上限を持ち、contextを無制限に消費してはならない。上限値は設計および設定schemaで定義する。 + --- ## 8. Planner仕様 @@ -261,6 +272,8 @@ Task実績はOllama応答の `prompt_eval_count` をinput token、`eval_count` | SES-05 | context上限接近時は古い情報を単純削除せず要約する。 | | SES-06 | 要約後も未完了Task、security decision、重要なexecution result、利用者制約を保持する。 | +Context要約を開始する利用率閾値は設定可能でなければならない。具体値は設計および設定schemaで定義する。 + --- ## 10. Skill・Prompt仕様 @@ -359,6 +372,7 @@ Task実績はOllama応答の `prompt_eval_count` をinput token、`eval_count` - overwrite、patch、atomic replaceを併用できる。 - 通常は変更前内容をメモリに保持し、編集後検証に失敗した場合にrollbackする。 - 設定されたmemory backup閾値を超える大容量ファイルでは、Sandbox管理下の一時backupを使用できる。 +- memory backup閾値は設定可能でなければならない。 - 利用者向け恒久 `.bak` ファイルは既定で作成しない。 - atomic replaceが適用可能な操作では、部分書込み状態を利用者から観測させないことを優先する。 @@ -489,6 +503,15 @@ Task実績はOllama応答の `prompt_eval_count` をinput token、`eval_count` | AT-19 | 追加localeがコード変更なしでロードされる。 | | AT-20 | 未知locale keyまたは壊れたJSONで起動/checkが失敗する。 | +### 20.1 Operational E2E + +| ID | 検証条件 | +| --- | --- | +| E2E-01 | ソースツリー外へ展開したRelease Bundleだけを使い、local Ollamaとstdio MCP Clientから実際のfixture修正、build、test、日本語応答、Audit追跡、Task Resource cleanupまで完走する。 | +| E2E-02 | E2E-01と同等の作業をloopback限定Streamable HTTPで完走する。 | + +v1の完了には、win-x64向けself-contained Release Bundleが単独起動でき、E2E-01とE2E-02がInternetまたはcloud modelに依存せずPASSすることを必須とする。 + --- ## 21. 要求トレーサビリティ -- cgit v1.2.3