尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Claude Code SubAgent:AI编程助手的隔离、专业化与权限设计解析

Claude Code SubAgent:AI编程助手的隔离、专业化与权限设计解析 1. 从“记忆乱窜”到架构隔离为什么我们需要Claude Code SubAgent最近在折腾AI编程助手时我遇到了一个挺有意思也让人头疼的问题。我让Claude Code帮我重构一个前端组件过程中顺口问了句“昨天那个后端API的错误日志你看了吗”结果它居然把后端服务的错误堆栈信息混进了正在生成的前端组件代码注释里。这种“记忆乱窜”的现象让我开始深入思考一个核心问题当我们谈论一个强大的AI编程副驾驶时我们到底在期待什么是一个全知全能、但记忆混杂的“超级大脑”还是一个分工明确、各司其职的“专业化团队”显然后者才是工程实践中所需要的。这引出了Claude Code中一个关键但常被忽视的架构概念SubAgent子智能体。它并非一个简单的功能开关而是一套完整的、基于隔离Isolation、专业化Specialization与精细化权限Granular Permission的设计哲学。这套设计的目标是让AI从一个“什么都能聊但可能都不精”的泛化模型转变为一个可以安全、高效、专注地处理特定开发任务的“专业工程师”。简单来说SubAgent机制就是为了解决开篇那个“记忆乱窜”的痛点。它通过技术手段为不同的任务创建独立的“工作区”或“上下文沙箱”。在这个沙箱里SubAgent只能访问与该任务相关的代码、文档、对话历史和系统指令。这就像在开发团队中你不会让前端工程师去直接修改数据库的生产配置也不会让运维人员去重写业务逻辑代码。SubAgent通过强制性的上下文隔离确保了任务的专注度和输出结果的安全性避免了无关信息的交叉污染。从网络上的热议也能看出大家关心的核心正是“隔离”与“权限”。无论是讨论“记忆隔离机制”、“内核隔离”还是“RBAC权限管理设计”其本质都是希望在享受AI强大能力的同时建立起可靠的控制边界。Claude Code的SubAgent设计正是对这一需求的直接回应。它不仅仅是一个功能更是一种将软件工程中成熟的架构思想如微服务、权限模型应用于AI智能体Agent开发的前沿实践。接下来我们就深入拆解这套设计看看它是如何工作的以及我们如何能更好地利用它。2. 隔离机制构建安全的“工作沙箱”隔离是SubAgent设计的基石。它的目标很明确确保不同任务之间的上下文Context完全独立互不干扰。这听起来简单但在大语言模型LLM的工作流中实现起来却涉及多个层面的考量。2.1 会话级隔离最基础的防火墙最直观的隔离层级是会话Session或对话Conversation级隔离。在Claude Code中每当你创建一个新的聊天窗口或针对一个新文件发起对话理论上就可以视为启动了一个独立的会话。在这个会话中模型所“看到”和“记住”的仅限于本次对话中你提供的系统提示System Prompt、用户消息User Message以及它自己生成的历史回复Assistant Message。实现原理与局限这种隔离本质上是通过管理对话的“上下文窗口”Context Window来实现的。每次向模型发起请求时后台会构建一个包含本次对话所有历史消息的提示Prompt序列。不同的会话其提示序列是物理上分开构建和处理的。因此会话A中的内容绝不会“泄露”到会话B的提示序列中。然而这种基础的会话隔离存在明显缺陷缺乏持久化专业身份每次新开一个会话AI都像一张白纸。你需要重新告诉它“你现在是一个资深Python后端专家专注于性能优化”并可能还要重新上传相关的代码规范文档。这个过程低效且重复。无法规避“诱导泄露”用户可能在会话B中主动提问“还记得我们在会话A里讨论的那个秘钥吗”。虽然模型在会话B的上下文中没有该秘钥信息但若该信息源自其训练数据或通过其他方式被“暗示”模型仍可能基于其参数知识进行推测并回答这构成了潜在的安全风险。资源无法复用为某个复杂任务如搭建K8s部署脚本精心调试好的系统指令和示例无法方便地应用到另一个类似会话中。因此会话隔离是必要的但远远不够。我们需要更精细、更智能的隔离单元这就是SubAgent。2.2 SubAgent级隔离专业化的独立工作区SubAgent将隔离提升到了一个新的维度。你可以将它理解为一个预配置、可复用的“专业化会话模板”。每个SubAgent拥有自己独立的、受保护的配置空间主要包括专属系统指令System Instruction这是SubAgent的“人格”与“职责说明书”。例如一个“代码安全审计SubAgent”的系统指令可能是“你是一个专注于静态代码安全分析的专家。你的任务是审查代码中的安全漏洞如SQL注入、XSS、硬编码凭证等。你只输出安全问题列表和修复建议不修改代码不回答与安全无关的问题。”独立的对话历史记忆SubAgent内的所有对话都仅在该SubAgent的上下文中进行累积和存储。与这个SubAgent的每一次交互都会丰富其对该专业领域的“记忆”即上下文历史而这些记忆绝不会污染其他SubAgent或主会话。绑定的知识库/文件集如果功能支持高级的SubAgent可以实现与特定文档集合或代码库的绑定。例如“React前端开发SubAgent”可以预先关联项目中的/src/components和/src/hooks目录以及项目的eslint和styleguide文档。当在该SubAgent中工作时这些文件的内容可以优先或自动地被纳入上下文考虑。这种隔离是如何实现的在工程实现上可以类比为每个SubAgent都有一个唯一的标识符ID。当用户激活某个SubAgent进行对话时系统会加载该SubAgent的配置系统指令、元数据。构建提示Prompt时会将该SubAgent的系统指令作为前缀插入。检索该SubAgent ID下的所有历史对话消息按顺序排列在系统指令之后。将本次用户问题追加在最后形成完整的提示序列发送给大模型。模型返回的回复会以该SubAgent ID为键存储到历史记录中。整个过程其他SubAgent的配置和历史完全不被触及实现了逻辑上的强隔离。这就好比为每个专业任务分配了一个独立的虚拟机每个虚拟机里有自己的操作系统、软件环境和数据盘。2.3 底层模型隔离的遐想与现状网络上热议的“内核隔离”概念在AI Agent领域通常指向更底层的隔离即模型实例的隔离。这是一种更彻底但也更“重”的方案。理想情况下为高安全需求的SubAgent如处理敏感数据的审计Agent分配一个独立的、物理或逻辑隔离的模型实例。这个实例的权重、缓存甚至运行环境都与其他实例分开。目前在Claude Code这类应用层产品中完全意义上的模型实例隔离可能尚未普及或对普通用户不可见更多是通过上述的提示工程和会话管理来实现逻辑隔离。然而在一些企业级或开源Agent框架如Hermes、CrewAI中已经开始探索通过调度不同的模型如调用GPT-4处理创意任务调用Claude-3处理代码任务或为不同Agent分配独立的环境变量、内存空间来实现更深度的隔离。注意即使有完善的逻辑隔离也绝不能将真正的敏感信息如生产数据库密码、API密钥交给任何基于云端大模型的AI处理。隔离机制主要目的是保证任务纯净度和效率而非替代传统的数据安全措施。敏感信息处理应遵循最小权限原则并在可能的情况下使用本地化、离线化的方案。3. 专业化设计让AI成为领域专家隔离创造了独立的空间而专业化则赋予了这个空间灵魂。SubAgent的核心价值不在于“分开”而在于“专精”。通过精细化的配置我们可以将通用的、万金油式的大模型塑造成一个个解决特定问题的专家。3.1 系统指令定义SubAgent的“人格”与边界系统指令是专业化的核心杠杆。一段好的系统指令需要明确以下几个要素角色Role清晰定义SubAgent是谁。“你是一个经验丰富的DevOps工程师”与“你是一个初学者友好的编程导师”两者的回应风格和深度将天差地别。目标Goal明确核心任务。是“代码生成”、“漏洞扫描”、“文档撰写”还是“逻辑调试”目标需要具体例如“将用户提供的功能需求转化为Python Flask API的端点代码”就比“帮忙写代码”要好得多。约束Constraints设定不可逾越的边界。这是安全性和合规性的关键。例如“你只能使用Python标准库和requests库”“禁止生成任何涉及网络攻击的代码”“所有输出必须用中文”。工作流程Workflow指导SubAgent如何思考。对于复杂任务可以给出步骤。例如“首先分析需求并确认理解其次列出需要实现的接口清单然后为每个接口编写代码并附上简要说明最后提供一个简单的测试用例。”输出格式Output Format规范化的输出能极大提升结果的可直接用性。例如“请以Markdown表格形式列出问题包含‘文件名’、‘行号’、‘问题类型’、‘风险等级’、‘修复建议’五列。”一个实战案例数据库查询优化SubAgent假设我们创建一个专注于SQL优化的SubAgent其系统指令可以这样设计你是一个资深数据库性能优化专家。你的专长是分析和优化SQL查询语句。 你的工作流程如下 1. 仔细审阅用户提供的SQL语句和相关的数据库表结构如有提供。 2. 分析该SQL可能存在的性能瓶颈例如全表扫描、缺失索引、低效的连接JOIN方式、不合理的子查询、函数导致索引失效等。 3. 提供优化后的SQL语句并确保其逻辑与原语句完全等价。 4. 详细解释每一步优化的原因以及预期能带来的性能提升例如从O(n)降到O(log n)。 5. 如果原SQL无法优化或存在逻辑错误请明确指出。 约束 - 仅专注于MySQL 8.0或PostgreSQL 14及以上版本的语法和特性。 - 优化必须保证结果集的正确性。 - 在提出创建索引的建议时必须同时说明该索引可能对写操作带来的影响。 - 输出时先给出优化后的SQL再以要点列表形式给出分析说明。 请开始你的工作。通过这样详细的指令该SubAgent在面对一个SELECT * FROM large_table WHERE date_column LIKE ‘2024%’;的查询时会立刻识别出LIKE前缀模糊匹配导致索引失效的问题并建议改为范围查询WHERE date_column ‘2024-01-01’ AND date_column ‘2025-01-01’同时建议在date_column上建立索引并提醒这会增加插入和更新时的开销。3.2 上下文管理与“记忆”塑造专业化不仅靠初始指令也靠持续的上下文交互。SubAgent的“记忆”对话历史是其专业经验的积累。一个优秀的实践是在创建SubAgent后先进行几次“训练”或“校准”对话。例如对于“代码审查SubAgent”你可以先提交几段包含典型漏洞如SQL注入、路径遍历的代码并给出你期望的审查反馈。这些高质量的交互历史会被保存在该SubAgent的上下文中。当下次你提交新的代码时模型会参考这些历史“案例”从而更稳定地输出符合你预期的、专业化的审查报告。这意味着SubAgent会随着使用越来越“懂你”越来越贴近你所在团队或项目的特定规范。它不再是那个通用的Claude而是你的“专属代码审查搭档”。3.3 工具与技能Skills扩展专业化的高级形态是赋予SubAgent调用外部工具或执行特定“技能”的能力。这超出了基础提示工程的范围进入了AI Agent框架的领域。工具调用例如一个“数据分析SubAgent”可以被配置为在需要时自动调用Python解释器执行pandas代码进行数据计算或者调用一个内部API获取实时数据。工具调用权限同样需要被严格管理和隔离我们将在下一章权限设计中详述。技能封装某些复杂但重复的操作可以被封装为“技能”。例如“生成Dockerfile”技能可能背后是一个精心设计的提示模板链它首先询问应用类型Python/Node.js/Go、依赖管理方式然后根据答案填充不同的Dockerfile模板。用户只需触发“生成Dockerfile”技能SubAgent就会引导用户完成必要输入并输出完整文件。Claude Code的“Skills”或类似概念正是这种专业化扩展的体现。通过预置或自定义SkillsSubAgent的能力被模块化地增强使其不仅能“说”还能“做”。4. 权限设计驾驭SubAgent的缰绳如果说隔离是筑墙专业化是装修那么权限设计就是房间的钥匙和门禁系统。它决定了“谁”在“什么条件下”能对SubAgent“做什么”。没有精细的权限控制SubAgent可能从一个得力助手变成安全漏洞或混乱之源。4.1 操作权限谁可以创建、修改和删除这是最基础的权限层级通常借鉴经典的RBAC基于角色的访问控制模型。管理员拥有全部权限可以创建、查看、修改、删除任何SubAgent分配权限给其他用户。开发者/用户可以被授权创建自己的SubAgent但只能管理自己创建的SubAgent。他们可以查看和使用被共享的SubAgent但可能无法修改其核心配置。只读用户只能查看和使用已被公开或共享的SubAgent无法进行任何修改。在团队协作环境中这种权限划分至关重要。团队负责人可以创建和维护一个“项目代码规范检查SubAgent”并设置为只读共享给所有成员确保大家使用的审查标准是统一且最新的。4.2 资源访问权限SubAgent能“看”到什么这是权限设计的核心直接关系到数据安全。它规定了SubAgent在运行时可以访问哪些系统资源。文件系统访问作用域限制SubAgent应被限制只能访问特定的目录或文件。例如“前端样式优化SubAgent”可能只被授权读取/src/styles/目录下的.css、.scss文件而绝对无法触及/config/下的密钥配置文件。读写分离大多数SubAgent可能只需要“读”权限来分析代码。只有像“代码重构SubAgent”这样的特定角色才需要被授予在特定目录的“写”权限并且最好有变更预览或确认机制而不是直接覆盖。网络访问权限出站连接控制SubAgent是否需要访问外部API如获取天气数据、调用翻译服务如果需要必须明确允许列表Allowlist禁止所有其他出站连接。内网服务访问如果SubAgent需要与内部部署的数据库、GitLab、Jira等交互其网络权限必须被严格限定在必要的服务地址和端口上。环境变量与敏感信息SubAgent的运行环境应该是一个“最小权限环境”。只有明确声明需要的环境变量如API_BASE_URL才会被注入像AWS_ACCESS_KEY_ID、DATABASE_PASSWORD这类敏感信息绝不应出现在SubAgent的上下文中。访问敏感信息应通过安全的、审计过的中间服务如Vault进行并且访问日志需要被完整记录。一个简单的权限矩阵表示例SubAgent 名称角色文件访问 (读)文件访问 (写)网络访问可调用工具代码审查员安全审计/src/**/*.py,/src/**/*.js无无 (仅模型推理)无API测试生成器质量保障/src/api/**/*.ts,swagger.json/tests/api/**/*.spec.ts允许至mock-server.internal:8080curl(仅限测试环境)依赖更新助手运维package.json,requirements.txtpackage.json,requirements.txt允许至registry.npmjs.org:443,pypi.org:443npm,pip4.3 行为约束权限SubAgent能“做”什么即使能访问资源SubAgent的行为也需要被约束。这主要通过系统指令中的“约束”部分和运行时监控来实现。指令级约束如前文所述在系统指令中明确规定禁止行为如“禁止删除文件”、“禁止直接执行系统命令”、“生成代码前必须询问确认”。运行时监控与拦截更高级的系统可以实现对SubAgent输出或即将执行的动作的实时分析。例如如果一个被配置为“代码生成”的SubAgent其输出中突然出现了rm -rf /这样的危险命令监控层应该能识别并拦截该输出或者至少触发一个高等级的人工审核警报。审批工作流对于高风险的操作如直接向生产环境提交代码、修改核心基础设施配置可以设计审批流程。SubAgent生成方案或变更后需要发送给指定的人工审批者批准后方可继续执行。权限设计是一个权衡的艺术需要在“能力”与“安全”、“效率”与“控制”之间找到平衡点。过于宽松的权限会导致风险而过于严格的权限则会让SubAgent寸步难行失去其价值。最佳实践是遵循“最小权限原则”从最严格的约束开始根据实际需要和信任度逐步、谨慎地放宽。5. 实战从零构建一个“安全代码审查”SubAgent理论说得再多不如动手实践。让我们以构建一个“安全代码审查SubAgent”为例完整走一遍设计、配置和使用的流程。这个SubAgent的目标是自动扫描项目代码识别常见的安全漏洞。5.1 需求分析与设计首先明确这个SubAgent的职责边界核心任务静态分析代码识别安全漏洞模式。输入用户提供的代码片段或文件路径。输出结构化的漏洞报告包含问题描述、位置、风险等级和修复建议。不负责动态测试、运行代码、修复代码只提供建议。基于此我们设计其核心配置隔离性它需要独立的对话历史避免与其他编程任务如代码生成的历史混淆。审查历史本身也是宝贵的知识库。专业化系统指令需精确定义其安全专家的角色、审查范围如注入类、敏感信息泄露、配置错误等、输出格式。权限仅需“读”权限访问代码库。无需网络访问无需执行命令无需写文件。5.2 系统指令编写以下是该SubAgent系统指令的初版# 角色安全代码审查专家 你是一个专注于应用程序安全AppSec的代码审查机器人。你的知识库涵盖OWASP Top 10、常见CWE漏洞以及主流编程语言Python, JavaScript/TypeScript, Java, Go的安全编码规范。 ## 工作流程 1. 等待用户提供代码片段或指明需要审查的文件。 2. 对代码进行逐行静态分析寻找安全反模式。 3. 对于发现的每个潜在漏洞按以下结构化格式输出 - **文件/位置**文件名及行号。 - **漏洞类型**如SQL注入、XSS、硬编码凭证、路径遍历、不安全的反序列化等。 - **风险等级**【高危/中危/低危/信息】。请参考CVSS通用评分原则进行简易评估。 - **问题描述**简明扼要地说明代码哪里有问题以及可能被如何利用。 - **修复建议**提供具体的代码修改方案或安全实践建议。优先给出安全库/函数的使用示例。 4. 如果未发现明显漏洞则输出“本次审查未发现高危安全漏洞”并可附带一些通用的安全加固建议。 ## 审查重点非全部 - **注入类**未参数化的SQL查询、未转义的命令执行、NoSQL注入、LDAP注入。 - **跨站脚本XSS**未对用户输入进行过滤或编码直接输出到HTML/JS上下文中。 - **敏感数据泄露**代码中硬编码的API密钥、密码、私钥。日志中打印敏感信息。 - **访问控制缺陷**缺失身份验证/授权检查、不安全的直接对象引用IDOR。 - **安全配置错误**使用已知不安全的加密算法如MD5、DES、CORS配置过于宽松、错误的文件权限。 - **依赖漏洞**提醒用户检查已知的、存在公开漏洞的第三方库版本如果用户提供了依赖文件如package.json/pom.xml。 ## 约束与规范 - 只关注安全漏洞不检查代码风格、性能除非性能问题导致安全风险如DoS或功能逻辑错误。 - 输出必须使用中文。 - 确保修复建议是**具体、可操作**的避免“请使用安全函数”这样的模糊表述。应举例说明如“建议使用参数化查询将cursor.execute(“SELECT * FROM users WHERE id “ user_id) 改为 cursor.execute(“SELECT * FROM users WHERE id %s”, (user_id,))”。 - 对于不确定的发现标记风险等级为“低危”或“信息”并在描述中说明“此发现可能存在误报建议结合上下文人工复核”。 - 绝不生成任何用于攻击的利用代码PoC。 现在请开始执行安全审查任务。5.3 使用、迭代与优化创建好SubAgent后我们拿一段有问题的Python Flask代码进行测试# app.py 片段 from flask import Flask, request import sqlite3 app Flask(__name__) app.route(‘/user’) def get_user(): user_id request.args.get(‘id’) conn sqlite3.connect(‘database.db’) cursor conn.cursor() # 存在SQL注入漏洞 cursor.execute(“SELECT * FROM users WHERE id “ user_id) result cursor.fetchone() return str(result)将这段代码提交给我们的“安全代码审查SubAgent”。它应该能给出类似如下的反馈文件/位置app.py, 第10行漏洞类型SQL注入风险等级高危问题描述代码直接将用户输入的user_id拼接进SQL查询字符串。攻击者可通过输入1 OR 11等恶意参数篡改查询逻辑导致数据泄露甚至删除。修复建议必须使用参数化查询预编译语句。修改第10行为cursor.execute(“SELECT * FROM users WHERE id ?”, (user_id,))。这将确保用户输入被当作数据处理而非SQL指令的一部分。通过这次交互SubAgent完成了一次成功的“实战”这段对话历史也被记录在案丰富了它的“经验”。迭代优化 在实际使用几轮后你可能会发现SubAgent对某些语言如Go的漏洞模式识别不准。 - 可以在系统指令中补充Go语言特定的安全检查点或上传一些Go安全编程规范作为参考文档。SubAgent有时会误报如将正常的字符串拼接误判为SQL注入。 - 在后续对话中当出现误报时你可以明确告诉它“这是一次误报因为这里的tableName变量来自内部白名单并非用户输入。” 这样的反馈会被纳入历史帮助SubAgent在未来更好地理解上下文减少同类误报。希望它还能检查依赖。 - 修改系统指令在“审查重点”部分明确加入对requirements.txt或package.json的检查提示并说明如何提醒用户使用safety check或npm audit等工具。通过这样持续的“使用-反馈-优化”循环你的SubAgent会变得越来越精准、越来越符合你的特定需求真正成为一个值得信赖的自动化安全伙伴。6. 避坑指南SubAgent设计与使用中的常见陷阱在设计和应用SubAgent的过程中我踩过不少坑也见过很多团队遇到类似问题。这里总结几个最常见的陷阱及其规避方法。6.1 陷阱一系统指令过于宽泛或模糊这是新手最容易犯的错误。例如指令是“帮我写代码”。这样的SubAgent会无所适从输出质量不稳定。解决方案遵循“SMART”原则编写指令。Specific具体明确任务。不是“写代码”而是“根据以下OpenAPI规范生成Python Flask框架的CRUD接口代码”。Measurable可衡量定义输出标准。“代码需通过PEP 8检查并包含基本的错误处理”。Achievable可实现在模型能力范围内。“使用Python标准库和requests实现”而不是“写一个能超越TensorFlow的深度学习框架”。Relevant相关与SubAgent角色强相关。不要让“文档撰写SubAgent”去回答算法问题。Time-bound有时限对于交互可以隐含时间性。“请分步骤思考先列出大纲再填充细节”。6.2 陷阱二忽视上下文长度限制与成本每个SubAgent的对话历史都会不断增长最终会触及模型上下文窗口的长度上限如128K tokens。超长的历史会导致最早的信息被“遗忘”从上下文中挤出也可能增加每次API调用的token消耗和成本。解决方案主动管理历史定期清理过时或无用的对话。对于重要的“范例”对话可以将其精华提炼后以“Few-shot”示例的形式固化在系统指令的末尾而不是完全依赖历史记录。总结与归档对于长对话可以要求SubAgent自己或使用一个专门的“总结SubAgent”对之前的讨论进行摘要然后用摘要替换掉冗长的原始历史。分段处理对于超长代码审查不要一次性提交整个项目。可以按模块或文件逐个提交或者要求SubAgent只关注变更差异Diff。6.3 陷阱三权限放得太开安全边界模糊出于方便给SubAgent授予了过高的权限如项目根目录写权限、网络访问权限一旦SubAgent被诱导或输出错误指令可能造成文件丢失、数据泄露或系统调用风险。解决方案重温“最小权限原则”。从零开始初始配置时所有权限关闭。按需申请只有当SubAgent因权限不足无法完成明确、合理的任务时才考虑增加权限。使用代理或沙箱对于需要执行代码或命令的高风险SubAgent让其在一个隔离的Docker容器或沙箱环境中运行该环境没有对主机关键资源的访问权限。人工审核关键操作对于写文件、执行部署脚本等操作设计“预览-确认”机制必须经人工确认后方可执行。6.4 陷阱四混淆SubAgent与普通会话的使用场景不是所有对话都需要或适合用SubAgent。频繁地为一次性、临时性的问题创建SubAgent会导致管理混乱浪费配置精力。解决方案建立使用准则。使用SubAgent当任务具有重复性、需要特定专业知识、希望积累和复用对话历史、涉及敏感或需要隔离的上下文。例如日常代码审查、API设计、技术文档撰写、故障排查。使用普通会话当问题是一次性的、探索性的、跨领域的闲聊或简单查询。例如“这个错误是什么意思”、“给我介绍一下Rust的所有权概念”、“帮我润色一封邮件”。6.5 陷阱五期望过高忽视其局限性SubAgent是基于大语言模型的它本质上是“高级模式匹配和概率生成”并非真正的“理解”或“思考”。它可能会产生“幻觉”生成看似合理但错误的内容也可能无法处理极其复杂、需要深度推理的逻辑。解决方案保持理性预期人机协同。将其视为“超级实习生”或“初级专家”它能高效完成模式化、信息整合类工作并能提出不错的建议。但最终决策、复杂架构设计和关键代码复核必须由人类工程师负责。验证输出尤其是SubAgent生成的代码、命令或配置必须在小范围或测试环境中进行验证切勿直接用于生产。提供反馈当SubAgent出错时明确的反馈“这个答案不对因为…”是训练它、提升其在你特定上下文中表现的最佳方式。SubAgent是AI工程化道路上的一件强大武器但和任何武器一样需要理解其原理、掌握其使用方法、并建立严格的安全操作规范才能让它真正为开发和团队赋能而非带来新的麻烦。
返回列表