summaryrefslogtreecommitdiff
path: root/doc/Specifications.md
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-08-11 21:44:53 +0900
committertanaka takashi <isazaka@gmail.com>2026-08-11 21:44:53 +0900
commit6c3458a5ec37a5b69957ad17c84de58984698f25 (patch)
treebe5c5716e7488fcf1bc1a58de0ded0b9238f34cb /doc/Specifications.md
parentb5ccecca01007f2a2459265df6d749fbfd31aa84 (diff)
Audit and align v1 runtime design
Diffstat (limited to 'doc/Specifications.md')
-rw-r--r--doc/Specifications.md19
1 files changed, 12 insertions, 7 deletions
diff --git a/doc/Specifications.md b/doc/Specifications.md
index 007ce51..92dc176 100644
--- a/doc/Specifications.md
+++ b/doc/Specifications.md
@@ -1,7 +1,7 @@
# AI Agent Sandbox MCP Server — 仕様書
**文書名:** `Specifications.md`
-**版:** 0.1 Draft
+**版:** 0.2 Audit Revision
**対象OS:** Windows 11 x64
**主実装:** C# / .NET 10 LTS
**目的:** 実装前に、外部から観測可能な性質・制約・安全条件を一意に定義する。
@@ -144,6 +144,8 @@ IPA「厳密な仕様記述入門」の考え方に従い、課題・仕様・è¨
| MCP-STS-01 | task_id | Yes | agent_runが返したTask ID。 |
| MCP-STS-02 | session_id | No | 指定時はTaskとの整合を検査する。 |
+`agent_status` のtext resultは既存のTask/Session ID、状態、進捗、token実績、最終結果に加え、実行iteration数、再計画回数、最後のerror codeと選択localeのerror messageを返す。内部Tool名、Sandbox実装詳細、chain-of-thoughtは返してはならない。
+
### 5.5 Task状態
| 状態 | 意味 | 遷移先 |
@@ -167,11 +169,11 @@ IPA「厳密な仕様記述入門」の考え方に従い、課題・仕様・è¨
v1のCLI surfaceは次に限定する。
```text
-agent-mcp serve [--config <path>] [--lang <locale>] [--transport <stdio|http>]
+agent-mcp [serve] [--config <path>] [--lang <locale>] [--transport <stdio|http>]
agent-mcp check [--config <path>] [--lang <locale>]
```
-CLIは起動方式と表示言語を変更するためのI/Fであり、SandboxPolicyやOllama sampling値を個別overrideするI/Fにしない。
+command省略時、および先頭引数がoptionの場合は `serve` として扱う。CLIは起動方式と表示言語を変更するためのI/Fであり、SandboxPolicyやOllama sampling値を個別overrideするI/Fにしない。
### 5.7 MCP 2026-07-28とTasks Extension
@@ -231,7 +233,7 @@ Vision入力は設定可能な画像数、1画像あたりのsize、request合è¨
### 7.2 Tool未使用検出
-AgentはTaskの期待副作用と観測結果を比較し、実行が必要なのにtool callが0件の場合はTaskをcompletedにしない。再試行はAgent Loopの失敗回数へ算入する。純粋な説明・分析Taskにはtool callを強制しない。Sandbox Policyによる未許可操作は修正可能なTool失敗としてLLMへ再試行させず、初回のdenyでTaskをfailedにしてcleanupを実行する。
+AgentはTaskの期待副作用と観測結果を比較し、実行が必要なのにtool callが0件の場合はTaskをcompletedにしない。再試行はAgent Loopの失敗回数へ算入する。純粋な説明・分析Taskにはtool callを強制しない。Sandbox Policyによる未許可操作は同一Tool呼出しへ再投入しない。許可済み能力だけで代替できる可能性がある場合に限り再計画でき、同一denyの再発、計画未変更、実行可能Taskなし、再計画失敗、または既定最大3回への到達でTaskをfailedにしてcleanupする。
Internal Toolが返す読取・検索・tail結果は設定可能な上限を持ち、contextを無制限に消費してはならない。上限値は設計および設定schemaで定義する。
@@ -319,7 +321,8 @@ Context要約を開始する利用率閾値は設定可能でなければならã
- Skillロードは権限付与を意味しない。`allowed-tools` metadataはSandbox permissionとして解釈しない。
- Skillに `scripts/` が含まれていても自動実行許可しない。実行には通常どおりFilesystem execute capability、Process Approval、path + SHA-256、Sandbox Brokerを必須とする。
- Skill directory内resourceについてcanonicalization、reparse point検査、Skill root外へのescape禁止を行う。
-- Skill選択・本文ロードはInternal Toolとして公開せず、Agent Runtime / Prompt Context Managementの責務として実装する。Internal Toolは既存5群+dir=6群に固定する。
+- Skill選択・本文ロードはInternal Toolとして公開せず、Agent Runtime / Prompt Context Managementの責務として実装する。
+- Internal Toolの具体的なcatalogとschemaは設計事項とする。MCP Clientへ公開せず、Internal Toolによる副作用は必ずPolicy検査を通過しなければならない。
---
@@ -441,6 +444,8 @@ Context要約を開始する利用率閾値は設定可能でなければならã
- 設定変更の反映には再起動を必須とする。
- Hot Reloadは明示的に非対応。
- CLIの `--config` で設定ファイルpathを選択可能。
+- base設定と同じdirectoryに `agent.local.yaml` が存在する場合は任意overrideとして読み込む。mapは再帰mergeし、scalarと配列はlocal側で置換する。merge後の設定全体をvalidationし、相対pathはbase設定directoryを基準に解決する。
+- Release Bundleは既定設定だけを配布し、利用者のlocal設定、User System Prompt、Skillをpublishで上書きしてはならない。
- 起動時にschema、path、hash approval、locale、policyの静的validationを行う。
---
@@ -450,8 +455,8 @@ Context要約を開始する利用率閾値は設定可能でなければならã
| 種別 | 要件 |
| --- | --- |
| Application Log | stderrに出力可能。stdio時stdoutへログを出してはならない。ファイルにも保存する。 |
-| LLM Log | promptとresponseを記録する。secretを継承しない前提でも、ログ出力先は保護する。 |
-| Audit Log | 通常ログと分離する。process、args、exit code、file write、delete、denied access等を記録する。 |
+| LLM Log | promptとresponseを記録する。call、Session、Task、Planner Task、phase、iteration、replan、model、token usageを相関できなければならない。secretを継承しない前提でも、ログ出力先は保護する。 |
+| Audit Log | 通常ログと分離する。Task lifecycle、Tool、process、args、exit code、file write、delete、denied access、network rule、recoveryをSession/Taskと相関して記録する。 |
| Token Metrics | Task/Call単位のinput/output/total tokenを記録する。 |
---