ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

业务方要Agent自主执行,我为什么先问权限和日志

业务方要Agent自主执行,我为什么先问权限和日志 最近几个项目都在推Agentic AI业务方的需求越来越大胆能不能让AI自己接需求、写代码、部署上线听起来很美好但真正做下来问题从来不在模型能力而在权限边界和可观测性。本文记录我从几个真实项目里踩出来的经验重点讲清楚一件事为什么现在大模型应用的门槛已经从Demo能力转向了权限、日志和可观测。摘要Agentic AI的核心价值不是让模型更聪明而是让系统更可控。本文从Agentic定义、自主性边界、任务拆解、可观测性、安全约束五个维度结合真实项目案例分析从Demo到生产的关键转折点。目录Agentic 的定义自主性边界任务拆解可观测性安全约束总结Agentic 的定义很多人把Agent等同于能调工具的聊天机器人。这个理解太浅了。真正的Agentic系统有三个特征感知环境、自主决策、执行闭环。缺一不可。我见过最典型的翻车项目就是一个能调工具的聊天机器人被包装成Agent卖给业务方。结果业务方提了个需求帮我把上周的订单数据导出来分析一下异常订单。模型确实调了工具但导出的数据格式不对分析逻辑也跑偏了最后还要人工兜底。这个案例里系统有感知收到了需求、有执行调了工具但缺少自主决策——它不知道异常订单的判断标准是什么也不知道导出后该做什么。所以Agentic的定义不是能不能调工具而是能不能在模糊需求下完成闭环。自主性边界自主性不是越大越好而是越清晰越好。我做过一个对比同样是任务拆解能力一个让Agent自主决定调用哪些工具的项目上线后出了三次事故——一次误删了测试库数据一次调了不该调的API一次在超时后没有正确回滚。反思下来问题出在自主的边界没有定义清楚。后来我改了一个方案把自主性分层| 层级 | 定义 | 示例 ||------|------|------|| 感知层 | 接收输入理解意图 | 解析分析异常订单的语义 || 规划层 | 决定做什么不决定怎么做 | 拆成导出订单→分析→生成报告三步 || 执行层 | 调用工具按规则执行 | 按预设的SQL和API调用不越界 || 决策层 | 遇到边界情况时是否转交人工 | 数据量超过阈值时必须人工确认 |这个分层不是理论是我从事故里总结出来的。业务方问Agent能自主执行吗我的回答是能但前提是把边界定义清楚。任务拆解任务拆解是Agentic系统的核心能力也是最常见的翻车点。我见过一个项目模型接到需求后直接开始写代码写了三千行最后跑不起来。为什么因为它没有拆解任务直接跳到了执行层。正确的做法是# 任务拆解示例 def decompose_task(user_request: str) - list[dict]: 将用户请求拆解为可执行的子任务 返回格式[{step: 1, action: 导出数据, params: {...}}, ...] # 1. 解析意图 intent parse_intent(user_request) # 2. 映射到预定义工作流 workflow WORKFLOW_MAP.get(intent.type) if not workflow: raise ValueError(f未知任务类型: {intent.type}) # 3. 实例化任务节点 tasks [] for node in workflow: tasks.append({ step: len(tasks) 1, action: node.action, params: node.params.resolve(intent.context), fallback: node.fallback # 每个节点都有兜底方案 }) return tasks关键不是拆解本身而是每个节点都要有fallback。我见过太多项目模型拆了任务但某个子任务失败了整个流程就卡死了。业务方提需求时不要只问能不能做要问做失败了怎么办。可观测性这是本文最想讲的部分。最近行业里有个趋势大模型应用从Demo转向权限、日志和可观测。这不是口号是真实的技术演进。我接手过一个项目Agent能跑通Demo但上线后出了一个问题用户反馈Agent回复很慢。排查了三天发现是某个工具调用超时但日志里没有任何记录。模型在等待用户以为卡死了实际上系统在正常重试。这就是可观测性缺失的典型场景。可观测性不是加几个log就完事了需要三个层次1. 结构化日志import logging import json from datetime import datetime # 结构化日志示例 logger logging.getLogger(agent) def log_agent_event(event_type: str, **kwargs): 记录Agent事件便于追踪和排查 log_entry { timestamp: datetime.utcnow().isoformat(), event_type: event_type, agent_id: kwargs.get(agent_id, unknown), request_id: kwargs.get(request_id), step: kwargs.get(step), action: kwargs.get(action), params: kwargs.get(params, {}), result: kwargs.get(result), error: kwargs.get(error), duration_ms: kwargs.get(duration_ms) } logger.info(json.dumps(log_entry, ensure_asciiFalse))2. 链路追踪每个请求都要有唯一ID贯穿整个执行链路。这样出了问题能从日志里追踪到是哪一步出了错。3. 指标监控成功率每个子任务的成功率延迟P95、P99延迟资源消耗工具调用次数、Token使用量我见过一个项目上线后Agent成功率只有60%但没人知道是哪些场景失败了。因为日志里没有结构化记录指标也没有监控。可观测性不是上线后的事是设计时就该考虑的事。安全约束安全约束是Agentic系统的底线。我见过最离谱的案例一个Agent被赋予了执行任意Shell命令的权限结果模型在某个场景下执行了rm -rf /。虽然因为有Docker容器隔离没有造成实际损失但这是严重的生产事故。安全约束的核心原则1. 最小权限原则Agent只能访问它需要的资源不能多一分。2. 人工兜底关键操作必须有人工确认环节。比如删除数据、调用付费API、修改生产配置。3. 审计日志所有操作都要有记录便于事后审计。# 安全约束示例 class SafetyGuard: Agent安全约束网关 # 禁止的操作列表 FORBIDDEN_ACTIONS { delete_database, execute_shell, transfer_funds, modify_production_config } # 需要人工确认的操作 MANUAL_APPROVAL_ACTIONS { delete_records, send_mass_email, deploy_to_production } def check_action(self, action: str, params: dict) - dict: 检查操作是否允许 # 1. 检查是否在禁止列表中 if action in self.FORBIDDEN_ACTIONS: return { allowed: False, reason: f操作 {action} 被禁止 } # 2. 检查是否需要人工确认 if action in self.MANUAL_APPROVAL_ACTIONS: return { allowed: True, requires_approval: True, reason: f操作 {action} 需要人工确认 } # 3. 默认允许 return {allowed: True}业务方问Agent能自主执行吗我的回答是能但前提是安全约束到位。总结Agentic AI不是让模型更聪明而是让系统更可控。从Demo到生产最大的差距不是模型能力而是权限边界、任务拆解、可观测性和安全约束。我见过太多项目Demo跑得很顺畅上线后就翻车了。原因不是模型不行而是没有把工程化考虑进去。如果你正在做Agentic项目我的建议是1. 先把边界定义清楚再谈自主性2. 每个任务节点都要有fallback3. 可观测性从设计阶段就开始4. 安全约束是底线不能妥协业务方要的是能干活的Agent不是能跑Demo的Agent。这个区别值得每个做Agentic项目的人想清楚。资料展示下面是我整理的AI大模型学习资料和工具包预览适合收藏后按主题逐步学习。如果你想看完整资料目录可以在评论区留言「资料」也欢迎告诉我你更关注AI大模型里的哪类内容。
返回列表