自主决策:Agent的"自由意志"

一个真正有用的Agent不是被指令驱动的工具,而是能自主决策的智能体——它需要自己判断"该做什么"、“先做什么”、“何时求助”。这是从"工具"到"助手"再到"同事"的进化路径。

决策的三个层次

操作层:执行什么动作

最基础的决策——选择执行哪个工具或操作。

可用操作: [搜索, 计算, 读取文件, 调用API]
当前任务: "分析销售数据"
决策: 先读取文件获取数据 → 再计算统计指标 → 最后生成报告

传统方式是预定义流程,自主决策让Agent自己规划。

策略层:如何完成任务

更高层次——在任务执行中做策略选择:

情况: 数据量很大,直接分析会超时
策略选择:
  A. 全量分析(质量高但慢)
  B. 采样分析(快但可能有偏差)
  C. 分批分析(平衡但复杂)

Agent需要基于约束(时间、精度要求)做选择

元认知层:何时求助

最高层次的决策——“我是否需要帮助?”

Agent自我评估:
  - 这个任务我有信心吗?
  - 我的当前方案是否合理?
  - 我是否陷入了错误方向?
  
决策: 继续自主执行 / 请求人类介入 / 重新规划

决策架构

基于规则的决策

最简单的方式——预定义决策树:

def rule_based_decision(state):
    if state.has_missing_info:
        return Action("ASK_CLARIFICATION")
    
    if state.task_is_clear:
        if state.tools_available:
            return Action("EXECUTE")
        else:
            return Action("REPORT_LIMITATION")
    
    if state.max_retries_reached:
        return Action("ASK_HUMAN")
    
    return Action("CONTINUE")

局限:无法处理规则未覆盖的情况。

基于LLM的决策

让模型自主决策:

Prompt: 
你是一个自主Agent。基于以下信息决定下一步行动:

当前状态: {state}
可用工具: {tools}
已完成步骤: {completed_steps}
目标: {goal}

决策选项:
1. 继续当前方案
2. 修改方案
3. 请求更多信息
4. 向用户确认

请给出决策和理由。

优势:灵活、能处理新情况 局限:不确定性、可能做错误决策

基于价值函数的决策

借鉴强化学习的思路——学习一个价值函数来评估决策:

V(state, action) = 预期在执行action后的最终成功率

决策: argmax(V(state, action)) for action in available_actions

价值函数的训练:

  • 收集Agent执行轨迹数据
  • 标注最终成功/失败
  • 训练reward model预测每步的价值
  • 用价值函数指导决策

这是从LLM走向真正"智能体"的关键路径。

自主性的边界

信任等级

不同场景下Agent的自主性程度不同:

Level 0: 工具模式

  • Agent只建议,人类执行所有操作
  • 适用:高风险决策(金融交易、医疗诊断)

Level 1: 半自主

  • Agent执行低风险操作,高风险需确认
  • 适用:编程助手(自主写代码,删除文件需确认)

Level 2: 有界自主

  • Agent在设定边界内完全自主
  • 超出边界需人类介入
  • 适用:客服系统(自主处理常见问题,复杂问题转人工)

Level 3: 高度自主

  • Agent可自主做大部分决策
  • 仅极高风险才需确认
  • 适用:自动驾驶L4

Level 4: 完全自主

  • Agent自主完成所有操作
  • 适用:探索性任务(数据分析、报告生成)

安全护栏

无论自主性多高,都需要安全护栏:

class Guardrails:
    def __init__(self):
        self.dangerous_actions = ["delete_file", "send_email", "execute_code"]
        self.cost_limits = {"max_tokens": 100000, "max_tools": 50}
    
    def check(self, action):
        # 危险操作需确认
        if action.type in self.dangerous_actions:
            return NeedConfirmation(action)
        
        # 成本超限
        if self.total_cost > self.cost_limits["max_tokens"]:
            return NeedConfirmation("已达成本上限")
        
        return Allow(action)

错误处理与自纠正

自我诊断

Agent在执行后需要自我诊断:

执行后的自检:
1. 输出是否符合预期格式?
2. 内容是否自洽?
3. 是否遗漏了重要信息?
4. 工具是否返回了正确结果?

如果发现问题:
  → 识别问题类型
  → 制定修复方案
  → 执行修复
  → 重新验证

回退机制

def execute_with_fallback(action):
    try:
        result = action.execute()
        if validate(result):
            return result
        else:
            # 结果不正确,尝试备选方案
            return alternative_approach(action)
    except Exception as e:
        # 执行失败,回退
        return fallback_strategy(e)

学习从错误中改进

记录所有错误和修复策略,形成"经验库":

{
  "error_type": "API_TIMEOUT",
  "context": "调用搜索API超时",
  "fix_strategy": "切换到备用搜索API",
  "success_rate": 0.85,
  "usage_count": 23
}

未来遇到类似错误时,先查经验库。

人机协作决策

何时求助人类

求助条件:
1. 置信度低于阈值 (<0.6)
2. 多次尝试都失败
3. 操作影响较大(不可逆)
4. 遇到训练数据外的知识
5. 价值冲突(伦理、安全)

求助方式

提问式: “我不确定X的值,请提供。” 选择式: “方案A快但有风险,方案B慢但安全,你选哪个?” 展示式: “我打算这样做,请确认。” 报告式: “我遇到了困难,当前状态是X,需要帮助。”

总结

Agent的自主决策能力正在从"执行规则"走向"理解价值"。2026年的Agent已经能在有界范围内做合理决策,但离真正的"自主智能体"还有距离。核心突破点在于价值函数——让Agent能评估"这样做值不值得"而非仅仅"能不能做"。当Agent能像人类一样在不确定性中做权衡和取舍时,它就从"智能工具"进化为"智能伙伴"。