ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何给AI Agent一个安全沙箱?cgft-llm用户沙箱Agent系统实现原理深度剖析

如何给AI Agent一个安全沙箱?cgft-llm用户沙箱Agent系统实现原理深度剖析 如何给AI Agent一个安全沙箱cgft-llm用户沙箱Agent系统实现原理深度剖析【免费下载链接】cgft-llmcgft-llm 是一个学习大语言模型LLM开发的开源资源。它提供代码、文档和视频教程帮助用户通过实践掌握前沿核心 LLM 技术项目地址: https://gitcode.com/echonoshy/cgft-llm如果你正在学习AI Agent 开发一定会遇到这个核心安全问题当大模型可以自主调用工具、执行代码、访问文件时如何防止它越权操作本文基于开源学习项目cgft-llm的「用户沙箱 Agent 系统」带你拆解多租户 Agent 服务中沙箱隔离、权限管控、工具调用循环的完整实现原理即使你是新手也能快速看懂 Agent 服务的安全架构设计。为什么AI Agent需要安全沙箱先理解一个背景Agent智能体和普通聊天机器人最大的区别在于它拥有工具调用Tool Calling能力——它不仅能说还能做执行一段代码读写文件、调用 API控制浏览器完成自动化操作但这也意味着风险一个失控或被提示词注入的 Agent可能在宿主机上执行任意命令。因此给 AI Agent 一个安全沙箱是 Agent 工程化落地的第一道必修课。cgft-llm 项目把这部分内容放在了 01-agent-sys/ 目录下的 Agent 智能体系统专题中其中「用户沙箱 Agent 系统」一集专门讲用户级隔离的设计思路配套架构图可以直接打开阅读01-agent-sys/agent-service-architecture.html —— 多租户 Agent Service 系统架构总览02-llm-core/tool-calls/readme.md —— 大模型工具调用基础原理与实践案例下面我们就以这份多租户 Agent 架构为蓝本剖析沙箱系统是如何一层层砌出来的。用户沙箱Agent系统的整体架构五层防线cgft-llm 的 Agent 服务架构采用经典的分层设计从请求进入到基础设施每一层都承担隔离与安全职责层级核心组件安全职责 接入层Web Chat / 移动端 / IM Webhook / Open API多入口统一接入IM 侧走 OAuth 2.0 认证️ 网关层API GatewayFastAPI Nginx/TraefikJWT 认证 → 租户识别 → 速率限制 → 路由分发 核心服务Agent Engine / Memory Service / Knowledge ServiceAgent 主循环、记忆与知识检索⚙️ 能力层Skill System / Tool Runtime / Session Manager / Tenant Manager工具沙箱执行 租户级权限️ 基础设施PostgreSQLpgvector / Redis / S3 / Celery / Docker/K8s数据隔离存储 容器化弹性部署其中三个关键设计点值得记住租户级隔离先行所有请求必须先经过网关层的 JWT 认证与租户识别再进入任何业务逻辑天然避免了跨租户数据混用数据库 Row-Level SecurityTenant Manager 在 PostgreSQL 层启用行级安全策略即使应用层出错数据也拿不到别人的行容器化部署基础设施层用 Docker / K8s 按租户弹性扩缩容把沙箱进一步延伸到运行时环境。沙箱实现原理深度剖析工具执行的三道关卡回到架构图中最重要的模块——Tool Runtime工具运行时。它就是 Agent 的安全沙箱本体用 JSON Schema 标准化定义工具输入统一execute()接口执行内置工具、自定义工具与 MCP 工具都跑在隔离环境中。它的三道关卡如下关卡一权限模型deny → allow → ask每个工具在租户级 用户级两个维度配置权限策略deny直接拒绝Agent 连尝试的机会都没有allow静默放行Agent 无感知执行ask执行前弹出确认把决定权交还给人。这套模型解决了Agent 想干什么由用户说了算的问题是沙箱的第一道软防线。关卡二隔离环境执行通过权限检查后工具不会直接跑在宿主进程里而是在隔离环境Sandbox中运行——独立的工作目录、受限的系统调用、可控的资源配额。执行结果stdout / 错误信息被标准化后追加到会话的messages中供大模型继续推理。换句话说即使 Agent 生成的代码是恶意的被破坏的也只是这个一次性沙箱而不是你的服务器。关卡三循环次数与 Token 预算限制Agent 的主循环被严格约束工具结果返回 LLM 后最多循环 20 轮知识检索注入上下文有约 5000 tokens 的预算上限会话超过阈值会自动触发 LLM 摘要压缩。这保证了即便 Agent 陷入反复调工具的死循环也不会拖垮服务。Agent核心循环全解一条消息的完整旅程把上面的机制串起来就得到了架构图里的「Agent 核心循环流程」一共 6 步 用户发送消息可附带文件文件会先走 解析 → 分块 → Embedding 入库 检索相关记忆混合检索 向量相似度(0.7) BM25 关键词(0.2) 时间衰减(0.1)取 Top-5 注入 System Prompt 检索外部知识从文档库与网络检索中做语义检索 重排序受 Token 预算控制 组装 ContextSystem Prompt 基础指令 租户配置 Skill Prompt 记忆 知识片段 调用 LLM流式响应通过 SSE 推送给前端若stop_reason tool_use进入沙箱执行工具再回到 LLM 继续推理✅ 返回响应后处理保存会话、异步提取记忆、用量计费并行且不阻塞用户响应。可以看到沙箱不是孤立的一个模块而是嵌在 Agent 循环第 5 步中的一个受控节点——权限、隔离、限流三重机制在每一次工具执行前都会过一遍。配套能力让沙箱好用而不只是安全只有安全还不够用户沙箱 Agent 系统还配了三组支撑能力Memory Service记忆每轮对话后台异步提取记忆按 user / preference / project / reference / knowledge 分类存储用 pgvector 做向量检索。相关设计文档见 01-agent-sys/memory-context/memory.htmlKnowledge Service知识库用户文档走 Parse → Chunk → Embed → Store 流水线与网络检索结果统一做 RAG 注入对话上下文。下图是 cgft-llm 中 RAG 知识库的基础工作原理Session Manager会话管理会话持久化 自动压缩超过 token 阈值时用 LLM 摘要历史保留最近消息并重新注入关键文档。这套记忆 知识 会话压缩的组合配合沙箱化执行才是一个可交付的用户级 Agent 产品的完整形态。新手学习路径从这份开源仓库开始如果你打算动手实践 AI Agent 沙箱与工具调用建议按 cgft-llm 的目录顺序学习顺序主题资料路径1Agent 服务架构设计01-agent-sys/agent-service-architecture.html2AI 记忆与上下文管理01-agent-sys/memory-context/memory.html、architecture.html、engineering.html3工具调用原理与极简 browser-use 实现02-llm-core/tool-calls/readme.md4大模型学习路线图总览README.md、02-llm-core/docs/llm-roadmap.md一句话总结AI Agent 沙箱的本质 权限模型deny/allow/ask 隔离环境执行 循环与预算限制再叠加多租户隔离与容器化部署构成完整的用户级安全防线。看懂 cgft-llm 的这套 Agent 架构你就拿到了自研 Agent 服务的安全设计模板。【免费下载链接】cgft-llmcgft-llm 是一个学习大语言模型LLM开发的开源资源。它提供代码、文档和视频教程帮助用户通过实践掌握前沿核心 LLM 技术项目地址: https://gitcode.com/echonoshy/cgft-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表