大模型应用开发技术篇-工具调度与权限模块开发

张开发
2026/6/8 1:38:17 15 分钟阅读
大模型应用开发技术篇-工具调度与权限模块开发
工具调度与权限模块的开发工具权限模式的开发重点就是通过设计几种 Agent 模式以此来判断执行工具的时候这个工具是否需要用户审核批准执行但是以此会延伸出来工具调度的实现和 allowList 的机制所以工具权限模块的完整的开发方式是工具的权限验证方法和终端的权限验证面板工具执行的调度allowList 机制参考的分析资料• Gemini-clihttps://github.com/google-gemini/gemini-cli• OpenCodehttps://github.com/anomalyco/opencode• Kodehttps://github.com/shareAI-lab/Kode-cli• ClaudeCode一、工具调度流程的设计Excalidraw文件链接https://my.feishu.cn/file/NwcJbEG0soQqr5xGImucKCz6n7B工具调度流程的设计工具的调度流程设计中工具的执行状态有以下几种validating验证中 验证工具的参数等前置状态是否正确awaiting_approval等待确认需要用户批准正在等待用户批准scheduled已调度工具准备开始执行的等待批量执行executing已执行 正在执行工具success执行成功工具执行成功error执行失败工具执行失败cancelled取消执行用户取消执行工具或者进程中断二、工具权限验证方法的设计Excalidraw文件链接https://my.feishu.cn/file/Q7WJb4ACaoTFfpxWH72cDlHLnzg工具权限验证方法的设计计划模式是完全不能使用编辑和执行命令的工具默认模式是所有的工具都可以使用但是需要批准编辑模式所有的工具都可以使用编辑类工具自动批准执行命令工具依旧要批准自动模式所有的工具都可以使用所有的工具都自动批准前端可以进行模式的切换当 Agent 需要执行一个工具的时候在工具执行调度模块的地方会执行工具的验证函数每一个工具几乎都有一个验证函数验证函数的实现核心是获取前端传递过来的模式根据模式进行判断该工具是否需要审核批准对于命令执行工具的执行在命令执行工具的验证函数中会进行 allowList 机制判断当验证函数返回需要审核批准的时候就开始进入第二阶段在第二阶段中就是获取用户的选择目前有三种模式• 执行一次同意本次工具的执行• 本次会话允许在这个会话中该工具的执行全部都自动批准后续• 取消不允许执行该工具那么本次会话允许的话对于两类工具的表现是不同的命令执行工具和编辑类工具命令执行工具使用allowList机制保留命令执行的“前缀”下一次判断就进行前缀的验证编辑类工具编辑类工具会切换模式将模式切换为“编辑模式”三、工具权限配置文件的设计上面那种工具自身提供验证函数的设计可以发现模式和用户是被动的而开发者在设计函数的时候是主动的也就是说用户无法修改某一个工具的验证行为例如我就想xxx工具一直通过不需要验证用户只能被动的通过切换模式整体设置这样在权限验证是不够安全的用户对于Agent的工具调用控制程度也很低为了让权限模块更完善我们切换设计角度让工具成为被动挑选的用户成为主动也就是说用户可以通过修改配置文件来达到控制工具验证行为的效果// agent的配置文件{ permissions: { allow: [Read, Bash(git *)], deny: [Bash(rm -rf*)], ask: [Bash(npm publish*)] } }对于配置文件的设计ClaudeCode最细节有8个配置数据的来源userSettings、projectSettings、localSettings、flagSettings、policySettings、cliArg、command、session。这8个文件关于权限规则的部分是叠加的不会覆盖那么完整的权限验证系统完整的权限验证系统在权限验证方法中有两层大验证是先后优先级的关系规则判断先工具验证函数后如果规则判断通过就直接执行不继续验证只有没通过的时候才继续验证工具函数deny拒绝执行这个规则调用位置有点特殊分为两次调用第一次是在工具注册的时候静态执行如果匹配到拒绝执行的工具那么都不注册模型看都看不到第二次是在工具执行阶段中的权限验证环节两次验证的原因是如果存在工具注册缓存的话第二次就非常有必要啦因为有一些工具会动态被加载进来或者规则修改啦allow允许执行这个规则的执行顺序有点特别是在工具验证函数之后执行的因为当用户配置了allow数组a工具允许执行但是a工具的自身验证函数输出的是普通的ask或者命令行工具的前缀验证输出的是“我木有意见交给上面决定”的passthrough那么allow就可以静默它们这些状态直接放行刚好发挥了用户配置的作用可能不是那么大吧还有一点小细节的设计命令行的工具验证和获取方式和其他的工具是不一样的其会有一些命令前缀的验证过程匹配的时候也是要单独注意的四、终端显示执行的效果和方式工具的执行状态有利于 cli 终端进行状态的显示Agent 端进行事件通知采用“发布-订阅”的方式让 cli 终端可以得到工具的执行状态的推送那么 cli 终端就可以进行自定义的状态显示• validating 的时候就显示工具等待中• awaiting_approval 的时候就显示审核面板让用户选择执行的方式• executing 的时候就显示工具执行中的状态• success、error、cancelled 的时候就当作工具的执行结果显示在 cli 终端学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多文章