AI 全栈开发相关八股笔记

1.一个 Query 到输入给 Agent 到输出结果,它的完整的流程是什么?

首先第一步是上下文构建,除了用户的 Query,还要组合系统提示词。工具调用清单和规范,近期的 N 轮对话以及相关检索记忆。第二步是把内容输入给大模型,大模型做决策,由大模型决定直接输出结果,或者调用工具,或者把任务拆分成多步去执行。如果调用工具的话,就得交由外部工具去执行。工具方校验参数、校验类型、校验个数、校验执行权限之后去执行。然后由 Agent 框架判断执行结果直接输出,或者说把工具执行的结果输出给模型,然后模型再判断是需要继续调用工具重试,或者说是直接输出失败,需要设置重试的上限次数。在具体输出之前,要校验模型的输出,不能有害的信息或者敏感的信息。整个流程大概就是这样。

2.Agent 的状态机有哪些啊?

这个问题和刚才那个一个 Query 到 Agent 输出结果的流程其实是有很大相关性的。

第一个状态是上下文构建,也就是初始化,去组合系统提示词、工具调用这些信息。第二个状态是 Plan,也就是决策阶段,判断是输出结果,是执行工具还是什么。第三个阶段是执行工具。第四个阶段是由 agent Runtime 去决定输出结果,或者给模型重新到 Plan 阶段,或者判断 Failure 判断失败。如果是需要参数有问题,可能会需要重新给模型反馈,让模型再去生成输出,再去调动。整个流程大概就是这样。

3.如何评测 Agent 的正确性、稳定性和资源消耗?

首先, Agent 是用来完成任务的,我们可以有一组任务集让 Agent 来完成,根据任务完成的情况判断它的正确性。除此之外,对一些特定的任务,比如说 RAG 的准确性也可以设置任务,工具调用的准确性也可以判断它是否按照我们计划的去执行了相应的工具调用。关于稳定性,要去确保工具调用失败之后能够进行重试,要确保不会无限制地重试,有一个次数。然后对模型调用的结果,要判断是否是幻觉产生的,要判断是否是在操作高风险的操作需要人工来审核,对于资源消耗要考虑的有 TOKEN 的消耗,还有单词尝试的 TOKEN 的消耗,以及 CPU 和 IO这些设备的使用。

今天在和 ChatGPT 对话的时候,学到了一个概念,就是 Agent Runtime。其实之前一直不太懂这到底是做什么的,GPT 给我解释了一下,就是说它就是调度整个流程,也就是管理这个状态机的。比如说它去校验一下,校验动那个工具,它去记录一下执行的次数,也就是我们的系统设计,就是这个框架。

如果现在问我 Harness 和 Agent 是什么关系,我会说一个好的 Agent 是包括 Harness 的,它包括对输入输出的校验,对失败重传,对工具的维护,各种信息,它让大模型的使用变得更加方便。如果说 Harness 和训练有什么区别的话,就是训练是解决问题最终的手段,然后第一步解决问题就可以先用 Harness 去解决。

之前学过的一些面经,还有关于 RAG 如果效果不好怎么去优化?Agent 的记忆上下文怎么去管理?

相关推荐
蒸蒸yyyyzwd3 天前
秋招学习笔记 day109
笔记·八股
蒸蒸yyyyzwd7 天前
后端学习笔记三个知识
笔记·八股
蒸蒸yyyyzwd7 天前
学习笔记 复盘
笔记·八股
香蕉大香蕉(06敬畏市场)8 天前
MySQL 单点详解(09)
java·数据库·mysql·面试·八股·大厂实习
香蕉大香蕉(06敬畏市场)9 天前
MySQL 单点详解(07)
java·数据库·mysql·ai·博客·八股
香蕉大香蕉(06敬畏市场)9 天前
MySQL 单点详解(08)
java·数据库·mysql·面试·八股
香蕉大香蕉(06敬畏市场)10 天前
MySQL 单点详解(03)
java·数据库·mysql·面试·八股·大厂实习
蒸蒸yyyyzwd10 天前
学习笔记day92
笔记·八股
香蕉大香蕉(06敬畏市场)12 天前
高频八股 · JVM(8)
java·jvm·面试·八股·大厂实习
蒸蒸yyyyzwd13 天前
kafka、redis、mysql不熟悉问题总结
笔记·八股