summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-08-09 21:08:20 +0900
committertanaka takashi <isazaka@gmail.com>2026-08-09 21:08:20 +0900
commitb07b41cd435991cd254957af79055080c85b346e (patch)
tree27720d3ce14e4d0b84670a55ac26a2f877ce3a20 /config
parent2fefd29e86c3b926d0cf4a362251d3f119688612 (diff)
feat: AI Agent Sandbox MCP Server v1を実装
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まで生成可能にした。
Diffstat (limited to 'config')
-rw-r--r--config/agent.yaml59
-rw-r--r--config/locales/en.json18
-rw-r--r--config/locales/ja.json18
3 files changed, 95 insertions, 0 deletions
diff --git a/config/agent.yaml b/config/agent.yaml
new file mode 100644
index 0000000..05a5237
--- /dev/null
+++ b/config/agent.yaml
@@ -0,0 +1,59 @@
+schema_version: 1
+application:
+ language: en
+mcp:
+ transport: stdio
+ http:
+ host: 127.0.0.1
+ port: 8080
+ images:
+ max_count: 4
+ max_bytes_each: 10485760
+ max_total_bytes: 20971520
+agent:
+ user_system_prompt: prompts/user-system.md
+ max_iterations: 128
+ same_failure_limit: 5
+ollama:
+ endpoint: http://127.0.0.1:11434
+ model: hf.co/unsloth/gemma-4-E2B-it-qat-GGUF:UD-Q4_K_XL
+ think: true
+ keep_alive: 5m
+ options:
+ num_ctx: 32768
+ temperature: 0.4
+ extra_options: {}
+planner:
+ max_tasks: 32
+sandbox:
+ filesystem:
+ read: []
+ write: []
+ execute: []
+ delete: []
+ process:
+ allow_shell: true
+ approvals: []
+ max_processes: 16
+ network:
+ mode: deny
+ allow: []
+ resources:
+ memory_mb: 4096
+ process_timeout_seconds: 1800
+file_edit:
+ memory_backup_limit_mb: 16
+limits:
+ whole_read_bytes: 1048576
+ search_max_results: 1000
+ tail_max_lines: 10000
+ context_summary_ratio: 0.8
+localization:
+ directory: config/locales
+ fallback: en
+skills:
+ directory: skills
+logging:
+ directory: logs
+ max_file_bytes: 10485760
+ retained_files: 5
diff --git a/config/locales/en.json b/config/locales/en.json
new file mode 100644
index 0000000..4fcdb95
--- /dev/null
+++ b/config/locales/en.json
@@ -0,0 +1,18 @@
+{
+ "app.starting": "Starting agent.",
+ "check.success": "Configuration and runtime checks passed.",
+ "check.failure": "Check failed: {message}",
+ "check.wfp_admin_required": "Windows administrator elevation is required for WFP task isolation. Start agent-mcp.exe from an elevated terminal.",
+ "config.invalid": "Invalid configuration: {message}",
+ "locale.invalid": "Invalid locale: {message}",
+ "mcp.task_queued": "Task {task} was queued in session {session}.",
+ "mcp.task_not_found": "Task {task} was not found.",
+ "mcp.status.queued": "The task is queued.",
+ "mcp.status.planning": "The task is being planned.",
+ "mcp.status.running": "The task is running.",
+ "mcp.status.completed": "The task completed.",
+ "mcp.status.failed": "The task failed.",
+ "mcp.status.cancelled": "The task was cancelled.",
+ "sandbox.access_denied": "Access denied: {path}",
+ "ollama.vision_unsupported": "The selected model does not support image input."
+}
diff --git a/config/locales/ja.json b/config/locales/ja.json
new file mode 100644
index 0000000..0bdbca8
--- /dev/null
+++ b/config/locales/ja.json
@@ -0,0 +1,18 @@
+{
+ "app.starting": "エージェントを起動しています。",
+ "check.success": "設定と実行環境の確認に成功しました。",
+ "check.failure": "確認に失敗しました: {message}",
+ "check.wfp_admin_required": "WFPによるTask分離にはWindows管理者権限が必要です。管理者として起動したターミナルからagent-mcp.exeを起動してください。",
+ "config.invalid": "設定が不正です: {message}",
+ "locale.invalid": "ロケールが不正です: {message}",
+ "mcp.task_queued": "タスク {task} をセッション {session} に登録しました。",
+ "mcp.task_not_found": "タスク {task} が見つかりません。",
+ "mcp.status.queued": "タスクは待機中です。",
+ "mcp.status.planning": "タスクを計画しています。",
+ "mcp.status.running": "タスクを実行しています。",
+ "mcp.status.completed": "タスクが完了しました。",
+ "mcp.status.failed": "タスクが失敗しました。",
+ "mcp.status.cancelled": "タスクが取り消されました。",
+ "sandbox.access_denied": "アクセスが拒否されました: {path}",
+ "ollama.vision_unsupported": "選択されたモデルは画像入力に対応していません。"
+}