目录一句话简介 核心收获 审批机制一图看懂️ 实现步骤1. 标记敏感工具2. 添加审批包装3. 处理审批循环4. 流式场景 关键代码 企业级场景✅ 最佳实践清单 总结上一篇一句话简介通过 ApprovalRequiredAIFunction 为敏感工具加上人工审批环节快速构建符合企业合规要求的 MAF 人机协作智能体。 核心收获✅ 区分高/低风险工具一键套上审批保护层✅ 用UserInputRequestsFunctionApprovalRequestContent驱动审批循环✅ 同时兼容同步调用与流式响应审批后继续执行原线程✅ 混合工具集成案例IT 运维、银行转账、内容发布等 审批机制一图看懂️ 实现步骤1. 标记敏感工具普通工具函数如资金转账、账户删除先用AIFunctionFactory.Create()注册随后再决定是否需要审批。2. 添加审批包装对高风险函数使用new ApprovalRequiredAIFunction(innerFunction)Agent 仍像普通工具一样调用但框架会在真正执行前抛出审批请求。3. 处理审批循环每次RunAsync或RunAsync(messages, thread)后检查response.UserInputRequestsOfTypeFunctionApprovalRequestContent()获取所有待批项目。展示FunctionCall.Name与Arguments让人工做出决策。用CreateResponse(bool approved)生成审批结果并封装为ChatMessage。将这些消息回传给 Agent直到没有新的审批请求为止。4. 流式场景流式接口使用await agent.RunStreamingAsync(...).ToListAsync()收集全部ChatResponseUpdate再从中提取审批请求审批结束后再次流式调用即可继续输出。 关键代码// 1. 定义并包装敏感工具 var transferTool AIFunctionFactory.Create(TransferMoney); var approvalTool new ApprovalRequiredAIFunction(transferTool); // 2. 创建 Agent var agent chatClient.CreateAIAgent( instructions: 执行转账前必须获得用户确认, name: BankAssistant, tools: [approvalTool]); // 3. 审批循环 var thread agent.GetNewThread(); var response await agent.RunAsync(userRequest, thread); var pending response.UserInputRequests.ToList(); while (pending.Count 0) { var approvals pending.OfTypeFunctionApprovalRequestContent(); var replies approvals .Select(req req.CreateResponse(approved: true)) .Select(content new ChatMessage(ChatRole.User, [content])) .ToList(); response await agent.RunAsync(replies, thread); pending response.UserInputRequests.ToList(); }提示在真实系统中应将approved由管理员输入决定并记录审计日志。 企业级场景场景审批策略 银行助手转账、退款所有资金操作默认要求审批查询余额可直接返回 IT 助手服务器操作查询/诊断无需审批RestartServer、DeleteUser必须人工确认 内容发布公告推送发布、上线、群发均需审批草稿保存与预览无需审批混合工具技巧低风险工具直接注册高风险工具使用ApprovalRequiredAIFunction包装即可共存。✅ 最佳实践清单️风险分级仅对高风险函数引入审批避免过度打扰while 循环永远用循环处理UserInputRequests确保批量审批场景的完整性审计可追溯保存函数名、参数、审批人、时间戳满足合规要求线程持久化审批可能跨小时甚至跨天记得序列化AgentThread以便恢复上下文流式收集流式接口必须ToListAsync()后再解析审批内容 总结✅ ApprovalRequiredAIFunction 让敏感工具一键升级为“人机协同”模式✅UserInputRequestsCreateResponse()构成审批闭环兼容同步与流式调用✅ 分类注册工具 审批循环 审计记录才是企业可落地的整体解决方案下一篇引入地址