要在coze平台实现安全的多agent嵌套,必须严格隔离子agent权限与上下文:注册时通过frontmatter声明permissions和scope(缺scope默认global致跨会话数据污染);主agent调用前须forksubagent.ts四步隔离输入并禁用上下文继承;子agent返回需经pydantic模型或内置sanitizeoutput净化;且禁止其主动交互,所有用户追问均由主agent统一处理。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Coze(扣子)平台实现多Agent嵌套,必须让子Agent在受控边界内执行任务,既不能越权访问主Agent的上下文,也不能擅自中断用户会话或修改全局状态。主Agent调用子Agent时若未明确隔离权限,可能触发工具误调、上下文污染甚至指令劫持。
子Agent注册时强制声明能力范围
进入「Bot设置 → Agent管理 → 新建Agent」,在「能力描述」字段中用Markdown Frontmatter显式标注permissions与scope两个必填字段:
```yaml
---
permissions:
- read:knowledge_base
- call:weather_api
- none:database_write
scope: user_session_only
---
该Frontmatter会被loadAgentsDir.ts解析并注入Tool Sandboxing三层过滤器。若遗漏scope字段,系统默认设为global,子Agent将获得跨会话读写权限——【这会导致同一用户在不同对话中意外复用上一会话的缓存数据】。
填写完毕后点击「保存并发布」,系统自动校验Zod schema,失败则阻断发布流程。
主Agent调用子Agent时注入隔离上下文
在主Agent的Workflow节点中,调用子Agent前必须通过forkSubagent.ts封装输入:
第一步:从当前Message中剥离原始用户输入与历史交互片段;
第二步:仅保留与本次子任务强相关的字段(如用户提问中的地点、时间、实体名),其余字段置空;
第三步:调用runAgent时传入contextInheritance: false参数,禁用父上下文继承;
第四步:手动注入session_id与request_id作为唯一追踪标识,不传递bot_id或user_id原始值。
扣子 (Windows) 是字节跳动推出的一站式 AI Agent 平台客户端,支持多 Agent 协作、可视化工作流和知识库管理。最新版本新增 Claude Code 与 Codex CLI 接入、多端同步和项目级管理功能,同时优化了插件生态和 AI 响应速度,让用户在 Windows 上即可高效创建、运行和协作智能体,满足个人、团队及企业场景需求。
这四步缺一不可。若跳过第三步,子Agent将获得主Agent全部记忆快照,可能触发shouldInjectAgentListInMessages缓存误判,导致后续工具调用携带冗余Agent列表,token消耗激增37%以上。
子Agent返回结果前执行输出净化
方法一:在子Agent的response_model中定义Pydantic模型,限定返回字段仅含content、metadata、tool_calls三项;
方法二:启用built-in/generalPurposeAgent.ts内置净化钩子,在runAgent.ts第974行执行sanitizeOutput函数,自动剔除system_message、memory_snapshot、internal_trace等敏感键;
方法三:在子Agent的System Prompt末尾硬编码指令:“你只能返回JSON格式响应,字段不得包含‘session’、‘user’、‘bot’字样,否则将被主Agent丢弃。”
【方法二为默认启用项,不可关闭;若同时启用方法一与方法三,以方法一Schema校验为准】
禁止子Agent发起主动交互
在子Agent的「高级设置」中关闭「允许中断」开关;
检查其Tool列表,确保所有工具的interruptible属性为false;
若子Agent需等待用户补充信息(如确认订单地址),必须由主Agent统一发起追问,子Agent只返回结构化待确认字段(如{"pending_field": "shipping_address", "suggestions": ["北京朝阳区...", "上海浦东新区..."]});
主Agent收到该结构后,生成自然语言追问并接管后续流程——子Agent绝不可调用send_message类工具。










