智能体系统的四大核心架构
本质上,智能体就是一个While循环,其内部执行模型运行、工具调用和上下文组装,直到不再需要工具调用时终止。
整个循环实际上包含四个工程层级:提示词工程、上下文工程、Harness工程和Loop工程。
提示词工程定义了模型在单次调用中接收到的输入,通常由角色、指令、示例和输出格式组成。根据接收到的文本信息,它可以改变模型内部的计算和推理方式。常用技巧包括:少样本提示、思维链提示、提示分层、角色规范提示、反向提示、结构化提示和ARQ推理查询、自洽性抽样等。
上下文工程包含了模型在回合中看到的所有内容,而不仅仅是提示词,包括用户查询、检索到的文档、记忆、历史记录以及之前工具执行的结果。上下文工程的核心操作包括:写入上下文、读取上下文、压缩上下文和隔离上下文。
由于上下文窗口有限,随着问答次数的增加很快就会填满,因此上下文工程涉及对输入内容进行排序并去除噪声。典型操作包括:
Harness工程是围绕模型编写的代码,定义工具、解析、调用以及在失败时重试,并将工作路由到不同的子智能体,一个处理检索,另一个修改代码,验证者通过运行测试和验证标准来对结果进行评分。
与提示词工程和上下文工程不同,后者旨在正确完成单次调用;而Harness工程涵盖了智能体系统运行所需的一切。
在Chat模式对话过程中,需要管理外层循环,即写入提示,读取智能体运行的回合数,写入下一个提示,然后重复此过程,同时捕获失败。
Loop工程将外层循环的管理委托给智能体本身,按照预定计划或事件启动,并运行多个回合而无需任何中间的人工输入提示。
循环本身无法判断如何结束。即使测试失败,智能体也可以认为循环已完成并停止;因此,停止条件不能是智能体的指令,必须是明确真实的信号,可以是:
通过Loop工程层,可以操作整个运行过程。此时,工程设计不再是编写每个提示,而是预先设定目标和停止条件,然后让智能体循环运行。
写在最后
从基本的While循环过渡到能够自行执行任务检查的智能体系统,每个部分都有其背后的工程设计,以及一些难以正确处理的部分,例如何时停止、避免长时间运行导致的上下文腐烂,以及将检查器与执行器分开。