refactor(sandbox): 按威胁模型精确化——仅不受信任代码进容器
http/db 类工具的子进程是瘦壳(纯计算),危险操作全在受信任主进程, 套容器是纯开销无隔离收益。调整为: - 开发者预写工具:移除 spec 的 sandbox: profile: stdio,回默认 local 本地执行(仍保留 env_clear + 白名单注入) - tool_manager 产出的工具:spec_yaml 自动写 sandbox: profile: stdio, 不受信任代码(LLM 提供 rust_code)默认进 stdio 容器 - tool_manager 编译:仍走 builder 容器 - 移除 ias-network-runner Dockerfile(当前无工具直接联网) - executor docker 分支仅保留 stdio/builder,删 network 分支 验证:datetime 本地执行 +08:00;tool_manager 产出工具 spec 含 sandbox: profile: stdio 且容器内执行成功;25 测试通过。
This commit is contained in:
@@ -16,5 +16,3 @@ params:
|
||||
required: false
|
||||
desc: 城市名称,可选。限定地理编码的城市范围
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -13,5 +13,3 @@ params:
|
||||
required: false
|
||||
desc: 地图中心点经纬度坐标,格式"经度,纬度",默认天安门坐标
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -19,5 +19,3 @@ params:
|
||||
required: false
|
||||
desc: 搜索半径(米),如 500、1000、3000。默认 1000 米
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -13,5 +13,3 @@ params:
|
||||
required: true
|
||||
desc: 经纬度坐标,格式为"经度,纬度",如"116.397,39.908"
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -19,5 +19,3 @@ params:
|
||||
required: false
|
||||
desc: 出行方式:driving(驾车)、walking(步行)、riding(骑行)、transit(公交)。默认 driving
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -16,5 +16,3 @@ params:
|
||||
required: false
|
||||
desc: 感兴趣的关键词,逗号分隔,如"景点,美食,酒店"。默认"景点,美食"
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -7,5 +7,3 @@ risk_level: low
|
||||
timeout_secs: 3
|
||||
params: []
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -10,5 +10,3 @@ params:
|
||||
required: true
|
||||
desc: 网页URL
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -13,5 +13,3 @@ params:
|
||||
required: true
|
||||
desc: 记忆ID
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -13,5 +13,3 @@ params:
|
||||
required: true
|
||||
desc: 记忆的数字ID,从 read_memories 返回结果中获取
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -10,5 +10,3 @@ env:
|
||||
- IAS_MEMORY_DIR
|
||||
params:
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -16,5 +16,3 @@ params:
|
||||
required: true
|
||||
desc: 更新后的新内容,覆盖原记忆
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -13,5 +13,3 @@ params:
|
||||
required: true
|
||||
desc: 要记录的记忆内容,用自然语言描述。如"用户住在合肥包河区联投新安里A区"
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -269,6 +269,10 @@ fn spec_yaml(tool_name: &str, params: &Value) -> String {
|
||||
out.push_str("params: []\n");
|
||||
}
|
||||
|
||||
// 安全约束:tool_manager 产出的工具不受信任(含 LLM 提供的 rust_code),
|
||||
// 默认进 stdio 沙箱容器(无网络、只读根),防止数据外泄/越权文件读
|
||||
out.push_str("sandbox:\n profile: stdio\n");
|
||||
|
||||
out
|
||||
}
|
||||
|
||||
|
||||
@@ -13,5 +13,3 @@ params:
|
||||
required: true
|
||||
desc: 城市名称,如"北京"、"上海"、"合肥"。支持地级市和县级市
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -13,5 +13,3 @@ params:
|
||||
required: true
|
||||
desc: 城市名称,如"北京"、"上海"、"合肥"。支持地级市和县级市
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -13,5 +13,3 @@ params:
|
||||
required: true
|
||||
desc: 城市名称,如"北京"、"上海"、"合肥"。支持地级市和县级市
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
@@ -14,5 +14,3 @@ params:
|
||||
- name: max_results
|
||||
desc: 返回的最大搜索结果数量(1-20),默认5条
|
||||
|
||||
sandbox:
|
||||
profile: stdio
|
||||
|
||||
Reference in New Issue
Block a user