背景和价值
tRPC-Agent 的 Tool、MCP Tool、Skill 和 CodeExecutor 能让 Agent 执行脚本、调用外部命令、读写文件或访问网络。这类能力是 Agent 落地自动化任务的关键,但也带来安全风险:恶意脚本可能删除文件、读取密钥、外传数据、安装不可信依赖、无限循环占用资源,或者通过 shell 注入绕过限制。
生产环境不能只依赖“把代码丢进沙箱”来解决安全问题。更合理的做法是在执行前通过 Filter 做静态扫描和策略判断,在执行时做资源限制和环境隔离,在执行后留下可审计记录、监控指标和 tracing 信息。该题要求构建 Tool 执行脚本的安全检查器、运行前拦截机制和可观测能力,帮助框架在启用工具执行能力时具备更清晰的安全边界。
任务描述
设计并实现一个 Tool Script Safety Guard。输入待执行的脚本内容、命令行参数、工作目录、环境变量和 tool 元数据,系统在真正执行前通过可插拔 Filter 进行风险扫描,输出 allow / deny / needs_human_review 决策;对允许执行的脚本记录安全摘要,对拒绝执行的脚本给出明确原因,并产出可用于监控系统消费的结构化事件。
具体要求
至少覆盖以下风险类型:
1.危险文件操作:递归删除、覆盖系统目录、访问 ~/.ssh、读取 .env、读取凭据文件等。
2.网络外连:使用 curl、wget、requests、aiohttp、socket 等访问非白名单域名。
3.进程和系统命令:调用 subprocess、os.system、shell 管道、后台进程、提权命令等。
4.依赖安装:执行 pip install、npm install、apt install 等可能改变运行环境的命令。
5.资源滥用:无限循环、超大文件写入、fork bomb、长时间 sleep、大量并发任务等可疑模式。
6.敏感信息泄漏:把 API Key、token、password、私钥内容写入日志、文件或网络请求。
实现要求:
●同时支持 Python 脚本和 Bash 命令的扫描。
●提供可配置策略文件,例如 tool_safety_policy.yaml,支持白名单域名、允许命令、禁止路径、最大超时、最大输出大小等配置。
●风险判定至少分为 allow、deny、needs_human_review 三类,不能把所有不确定情况都直接放行。
●需要能以 Filter 或 wrapper 形式接入 Tool / Skill 执行链路的前置检查位置;如果暂不直接改核心执行链路,也要提供清晰的 wrapper 示例。
●对扫描结果输出结构化报告,包含风险类型、命中规则、证据片段、建议处理方式和最终决策。
●需要输出审计日志或监控事件,至少包含 tool name、decision、risk level、rule id、耗时、是否脱敏、执行是否被拦截。
●如项目环境启用了 OpenTelemetry,应预留 span attributes 或等价埋点字段,例如 tool.safety.decision、tool.safety.risk_level、tool.safety.rule_id。
●不要求做到完美安全,但必须明确误报、漏报和绕过风险。
交付物
●新增安全检查器代码,例如 trpc_agent_sdk/tools/safety/、scripts/tool_safety_check.py 或示例目录中的独立实现。
●tool_safety_policy.yaml 示例配置。
●至少 12 条测试样例:安全 Python、危险删除、读取密钥、网络外连、白名单网络请求、subprocess 调用、shell 注入、依赖安装、无限循环、敏感信息输出、Bash 管道、人工复核场景。
●tool_safety_report.json 示例输出。
●tool_safety_audit.jsonl 或等价审计日志示例输出。
●README 或设计说明,解释规则体系、接入方式、已知限制和如何扩展新规则。
验收标准
1.公开提供的 12 条脚本样本必须全部可运行扫描并输出结构化报告。
2.高危脚本检出率 ≥ 90%,安全样本误报率 ≤ 10%。
3.读取密钥、危险删除、非白名单网络外连三类问题检出率必须达到 100%。
4.扫描单个 500 行脚本耗时 ≤ 1 秒。
5.报告必须包含 decision、risk level、rule id、evidence 和 recommendation。
6.策略文件修改后不需要改代码即可改变白名单域名、禁止路径和允许命令。
7.Filter / wrapper 必须能在执行前拒绝高危脚本,并记录一条可审计事件。
8.文档必须说明该机制和沙箱、Filter、Telemetry、CodeExecutor 的关系,以及为什么它不能替代沙箱隔离。
本issue为2026犀牛鸟开源人才培养活动专属issue,仅供已报名参与犀牛鸟活动的同学认领
【认领时间】7月1日~7月31日(7月1日前认领视为无效❗)
【认领方式】在本issue评论区回复“已认领本任务”,即视为认领成功
【活动报名】需提前完成犀牛鸟报名问卷,问卷将用于活动登记和奖励发放:https://wj.qq.com/s2/26888567/gh2q
背景和价值
tRPC-Agent 的 Tool、MCP Tool、Skill 和 CodeExecutor 能让 Agent 执行脚本、调用外部命令、读写文件或访问网络。这类能力是 Agent 落地自动化任务的关键,但也带来安全风险:恶意脚本可能删除文件、读取密钥、外传数据、安装不可信依赖、无限循环占用资源,或者通过 shell 注入绕过限制。
生产环境不能只依赖“把代码丢进沙箱”来解决安全问题。更合理的做法是在执行前通过 Filter 做静态扫描和策略判断,在执行时做资源限制和环境隔离,在执行后留下可审计记录、监控指标和 tracing 信息。该题要求构建 Tool 执行脚本的安全检查器、运行前拦截机制和可观测能力,帮助框架在启用工具执行能力时具备更清晰的安全边界。
任务描述
设计并实现一个 Tool Script Safety Guard。输入待执行的脚本内容、命令行参数、工作目录、环境变量和 tool 元数据,系统在真正执行前通过可插拔 Filter 进行风险扫描,输出 allow / deny / needs_human_review 决策;对允许执行的脚本记录安全摘要,对拒绝执行的脚本给出明确原因,并产出可用于监控系统消费的结构化事件。
具体要求
至少覆盖以下风险类型:
1.危险文件操作:递归删除、覆盖系统目录、访问 ~/.ssh、读取 .env、读取凭据文件等。
2.网络外连:使用 curl、wget、requests、aiohttp、socket 等访问非白名单域名。
3.进程和系统命令:调用 subprocess、os.system、shell 管道、后台进程、提权命令等。
4.依赖安装:执行 pip install、npm install、apt install 等可能改变运行环境的命令。
5.资源滥用:无限循环、超大文件写入、fork bomb、长时间 sleep、大量并发任务等可疑模式。
6.敏感信息泄漏:把 API Key、token、password、私钥内容写入日志、文件或网络请求。
实现要求:
●同时支持 Python 脚本和 Bash 命令的扫描。
●提供可配置策略文件,例如 tool_safety_policy.yaml,支持白名单域名、允许命令、禁止路径、最大超时、最大输出大小等配置。
●风险判定至少分为 allow、deny、needs_human_review 三类,不能把所有不确定情况都直接放行。
●需要能以 Filter 或 wrapper 形式接入 Tool / Skill 执行链路的前置检查位置;如果暂不直接改核心执行链路,也要提供清晰的 wrapper 示例。
●对扫描结果输出结构化报告,包含风险类型、命中规则、证据片段、建议处理方式和最终决策。
●需要输出审计日志或监控事件,至少包含 tool name、decision、risk level、rule id、耗时、是否脱敏、执行是否被拦截。
●如项目环境启用了 OpenTelemetry,应预留 span attributes 或等价埋点字段,例如 tool.safety.decision、tool.safety.risk_level、tool.safety.rule_id。
●不要求做到完美安全,但必须明确误报、漏报和绕过风险。
交付物
●新增安全检查器代码,例如 trpc_agent_sdk/tools/safety/、scripts/tool_safety_check.py 或示例目录中的独立实现。
●tool_safety_policy.yaml 示例配置。
●至少 12 条测试样例:安全 Python、危险删除、读取密钥、网络外连、白名单网络请求、subprocess 调用、shell 注入、依赖安装、无限循环、敏感信息输出、Bash 管道、人工复核场景。
●tool_safety_report.json 示例输出。
●tool_safety_audit.jsonl 或等价审计日志示例输出。
●README 或设计说明,解释规则体系、接入方式、已知限制和如何扩展新规则。
验收标准
1.公开提供的 12 条脚本样本必须全部可运行扫描并输出结构化报告。
2.高危脚本检出率 ≥ 90%,安全样本误报率 ≤ 10%。
3.读取密钥、危险删除、非白名单网络外连三类问题检出率必须达到 100%。
4.扫描单个 500 行脚本耗时 ≤ 1 秒。
5.报告必须包含 decision、risk level、rule id、evidence 和 recommendation。
6.策略文件修改后不需要改代码即可改变白名单域名、禁止路径和允许命令。
7.Filter / wrapper 必须能在执行前拒绝高危脚本,并记录一条可审计事件。
8.文档必须说明该机制和沙箱、Filter、Telemetry、CodeExecutor 的关系,以及为什么它不能替代沙箱隔离。
本issue为2026犀牛鸟开源人才培养活动专属issue,仅供已报名参与犀牛鸟活动的同学认领
【认领时间】7月1日~7月31日(7月1日前认领视为无效❗)
【认领方式】在本issue评论区回复“已认领本任务”,即视为认领成功
【活动报名】需提前完成犀牛鸟报名问卷,问卷将用于活动登记和奖励发放:https://wj.qq.com/s2/26888567/gh2q