summaryrefslogtreecommitdiff
path: root/doc/Design.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/Design.md')
-rw-r--r--doc/Design.md16
1 files changed, 13 insertions, 3 deletions
diff --git a/doc/Design.md b/doc/Design.md
index a908441..101a896 100644
--- a/doc/Design.md
+++ b/doc/Design.md
@@ -249,7 +249,7 @@ overrideはTask objectにcopyし、global configurationを変更しない。Sess
- 既定上限は4画像、1画像10 MiB、request合計20 MiBとする。
- model capability確認でVision非対応と判定した場合はOllama呼出し前にlocalized error。能力確認不能時は呼出しを行い、Ollama errorを正規化して返す。
### 6.5 Tool calling
-Ollamaに公開するInternal Toolは次の5群に固定する。個々のOS command (`grep.exe`等) をtoolとして増殖させない。
+Ollamaに公開するInternal Toolは次の6群に固定する。個々のOS command (`grep.exe`等) をtoolとして増殖させない。
| Tool | 責務 | 主なoperation |
| --- | --- | --- |
| file_search | 検索 | glob / name / text / regex / tail相当 |
@@ -257,6 +257,7 @@ Ollamaに公開するInternal Toolは次の5群に固定する。個々のOS com
| file_edit | 編集 | overwrite / patch / atomic_replace / delete |
| process_run | 承認済Process実行 | exe + args + cwd + timeout |
| task_update | TaskGraph更新 | add / dependency / state / estimate |
+| dir | ディレクトリ操作 | mkdir / rmdir / list |
---
## 7. Internal Tool Schema設計
### 7.1 file_search
@@ -316,7 +317,16 @@ Ollamaに公開するInternal Toolは次の5群に固定する。個々のOS com
}
```
PlannerがDAG、不変条件、completed immutable、max_tasksを再検査してから適用する。
-### 7.6 ToolUseGuard
+### 7.6 dir
+```json
+{"path":"string","operation":"mkdir|rmdir|list"}
+```
+- mkdir は Write capabilityを要求し、`Directory.CreateDirectory` で親ディレクトリも含めて作成する。
+- rmdir は Delete capabilityを要求し、**空ディレクトリのみ**削除する。非空の場合は `ToolValidationException` で拒否する。内容復元の複雑さとMemoryBackupLimit超過リスクを排除するため、再帰削除は行わない。
+- list は Read capabilityを要求し、直下のエントリ一覧を返す。外部効果ではない。
+- 既存の PathPolicy / CanonicalPath / TaskAclManager (root継承ACE) / TaskResourceJournal / RecoveryManager 枠組みを利用する。新規作成ディレクトリは親の継承ACEを自動取得するため追加ACL操作は不要。
+- mkdir後crash → ディレクトリ削除、rmdir後crash → 空ディレクトリ再作成、でRecoveryする。
+### 7.7 ToolUseGuard
Taskには `requires_external_effect` をPlanner内部属性として持たせる。trueのTaskで、当該iteration中のtool callが0かつ完了証拠がない場合、LLMへ「未実行」を示すsystem-generated observationを追加して再試行する。同一失敗fingerprintが5回に達したらTaskをfailedにする。ただし、Policy EngineのdenyおよびSandbox backendの`UnauthorizedAccessException`は`RetryAllowed=false`のterminal Tool resultへ変換する。Runtimeはobserverへ結果を1回記録した直後にTaskをfailedへ遷移させ、LLMへ再投入しない。
---
## 8. Token Planner設計
@@ -711,7 +721,7 @@ errorは内部codeとlocalized messageを分離し、ログ/auditにはcode、MC
## 22. Codex実装制約
- 新規NuGet dependencyを勝手に追加しない。追加時は標準ライブラリで不能な理由を示す。
- MCP Toolを `agent_run` / `agent_status` 以外に増やさない。
-- Internal ToolをOSコマンド名ごとに増やさず、定義済み5群に収める。
+- Internal ToolをOSコマンド名ごとに増やさず、定義済み6群に収める。
- Legacy HTTP+SSE transport、WebSocket、独自transportを追加しない。
- Streamable HTTPをnon-loopbackへbind可能にしない。
- 認証/TLSを「便利だから」という理由でv1へ追加しない。