本节摘要:大语言模型坐进驾驶舱,改变的是接口不是纪律。本节划定它的接缝——自然语言任务翻译、方法选择与工具挑选这些"语言稠密"的环节交给它,搜索、控制与闭环原样保留;幻觉按不可靠读数处理,输出必须过调理与校验闸门;并给出"何时值得换座舱"的判据。应用层的框架与提示工程归 534 册,这里只谈架构。
「LLM 智能体」这个词火到几乎成了智能体的同义词,好像不接一颗大语言模型就不配叫飞行器。本节把热度降温成图纸:大语言模型究竟接走驾驶舱的哪几根线,哪些线它碰不得,以及换了座舱之后,全册的纪律哪些升级、哪些原样不动。结论先给:新大脑改变的是接口,不是纪律——它接走的是语言稠密的接缝,闭环、单一事实源、频控与幂等一根不少,而且恰恰因为接了个不可靠的大脑,这些纪律比以往任何时候都更重要。
大语言模型的长处在语言:读任务书、选方法、挑工具、解释决策。对应到舱段上是规划舱与外挂舱的特定接口——任务翻译:把"把冷库的托盘送到装柜口"翻译成 3.1 节的结构化任务单(这一步曾是 NLP 的硬骨头,语言模型做得又快又好);方法选择:3.3 节的方法库里"哪个配方适用当前局面"的判断,从规则匹配升级为语言推理,能吃进描述性的上下文("今天是雨季、三号通道在施工");工具挑选:6.3 节技能库的检索,从关键词匹配升级为语义匹配;解释生成:4.4 节的三类追问,它答得比模板自然。这些接缝的共同点:输入输出都是语言或结构化选择,错了有下游校验兜底。
它碰不得的线同样清晰:控制律与搜索内核(3.2 的 A 星、4.1 的伺服——数值计算不是它的强项,也不需要它);实时回路(推理延迟抖动且不小,进不了毫秒级的节拍);直接驱动执行器(它的输出必须先落地成结构化任务单,经谓词校验后才能进舱——绝不从自然语言直连舵面)。
| 接缝 | 交给 LLM | 保留经典 | 理由 |
|---|---|---|---|
| 任务翻译 | 全部 | 谓词校验闸门 | 语言稠密,校验兜底 |
| 方法选择 | 推荐 | 规则确认 + 前置条件复检 | 推荐可错,复检保真 |
| 工具挑选 | 语义检索 | 权限闸门 + 参数模式 | 检索可偏,闸门不放行 |
| 路径搜索 | 不碰 | A 星与增量重规划 | 数值与实时性要求 |
| 执行控制 | 不碰 | 伺服与监控回路 | 毫秒节拍进不去 |
语言模型会一本正经地编造——编工具名、编参数值、编不存在的航线。工程态度不是惊讶,是归类:幻觉就是一种不可靠读数,全册为不可靠读数准备的全套机制直接适用。2.2 节的调理思想对应输出校验:任务单字段逐一验证(引用的航图节点存在吗、参数在模式范围内吗、工具在注册表里吗);3.1 节的谓词对应落地复核:翻译出的任务单要过静态校验(分解终止、验收谓词可判);6.3 节的闸门对应权限不放行:它报出的工具名若越权,闸门照拦。一句话:把 LLM 当成一位知识渊博但偶尔自信过头的副驾驶——他的建议一律过仪表确认,方向盘不交。
class LLMBridge: """智能座舱接缝:LLM 的输出必须过闸才能进舱。""" def __init__(self, llm, cabin_map, registry, board): self.llm = llm self.map = cabin_map self.registry = registry self.board = board def translate_task(self, utterance): """自然语言 -> 任务单草稿 -> 校验 -> 正式任务单。""" draft = self.llm.parse( utterance, schema=TASK_ORDER_SCHEMA, context=self.board.working_pack()) # 工作集做上下文 errors = validate_task_order(draft, self.map) if errors: # 校验不过,带错回炉 draft = self.llm.revise(draft, errors) errors = validate_task_order(draft, self.map) if errors: return EscalateToHuman(utterance, errors) # 4.4 塔台 return TaskOrder(**draft) def pick_method(self, task, situation_note): """方法选择:LLM 只推荐,前置条件复检说了算。""" candidates = self.llm.suggest_methods( task, situation_note, allowed=[m.name for m in METHODS[task]]) for name in candidates: # 按推荐序复检 m = find_method(task, name) if m and m.precondition(self.board): return m return fallback_rule(task) # 全灭走经典规则
桥接代码里藏着本节的两条纪律。校验不过不猜:翻译两次仍不合法,升级人工而不是硬着头皮执行——语言接口的失败要体面落地;推荐与决定分离:LLM 的输出永远叫"推荐",决定权在前置条件复检与权限闸门手里。这两条与 4.4 节的信任校准一脉相承:副驾驶的发言权,由仪表的复核制度定义。
输出校验器是桥接的守门件,模式检查的骨架如下:
def validate_task_order(draft, cabin_map): """LLM 任务单草稿校验:每条错误都具体到字段。""" errors = [] for step in draft.get("steps", []): # 引用的航图节点必须真实存在(防编造地名) if step.get("target_node") and not \ cabin_map.node_exists(step["target_node"]): errors.append(f"节点不存在:{step['target_node']}") # 原语必须在内控白名单(防发明动作) if step.get("action") not in KNOWN_PRIMITIVES: errors.append(f"未知动作:{step.get('action')}") if draft.get("deadline") is not None and draft["deadline"] <= 0: errors.append("时间窗非法") return errors
换座舱有成本与风险(推理成本、延迟、新的失效面),判据看任务的语言稠密度:值得换——任务书是自然语言、任务种类频繁变化(写方法库追不上)、需要向人解释推理(对话式监督);不值得换——任务固定、节拍紧、空域简单——一套手写程序库加搜索更便宜、更快、更可控。混合是常态:语言稠密的接缝上 LLM,节拍紧的回路留经典,这正是本节开头那张表的用途。
💡 关键直觉:大语言模型没有推翻飞行器设计,它只是把"任务翻译与方法选择"这两个长期以来最难自动化的接缝变成了可解。骨架越好的人,越能放心用新大脑——纪律就是安全带。
大脑换过了,机库的窗户外面还停着一整片停机坪。最后一节:环视机型谱系,给全册画一条诚实的边界。