一、《agent设计模式》读书笔记
1.数据流解决的是时间上的解耦,分布式架构是在空间上解耦。
2.kubernetes是一种声明式的,不同于命令式需要逐步明确操作,agent是一种在声明式基础上更进一步的东西,可以有更加模糊,而不是严格模式的输入。
3.serverless的三个阶段:休眠、冷启动、销毁
serverless带来的好处是在服务没有被使用时不需要空转了。
4.agent是有行动能力的
所谓的agent本身是没有记忆的,从技术的角度看就是循环去调大模型的api,每次携带历史信息。
之前对于agent和大模型的理解,虽然知道模型不过就是概率输出,不过还是黑盒的印象,每次都是调api这个描述打开了很多想法,比如李宏毅老师说龙虾不过就是在内部组织了一些信息作为prompt
所以龙虾使用的token是比直接调api多的。
知识回顾:
1.关于mysql的八股
mysql支持的可重复性彻底解决幻读了嘛?
没有,单独的快照读或者update读都没有问题,但是混合读仍然可能有幻读,彻底解决可以用可串行化。
可重复隔离级别是怎么实现的?
是通过多版本并发控制(Mvcc)和临键锁(next-key lock)实现的。
临键锁会锁住的是左开右闭合区间,不会在这之间被允许插入新的数据,所以update读就解决了幻读。
存储过程和触发器、视图和物理视图?
存储过程是一组编译好的sql语句,可以让执行更加有效率、更加安全,触发器是一类特殊的存储过程,自动触发。
视图是一组sql语句,便利了程序员,可以把执行的结果作为原始输入继续处理;物理视图是把视图的结果保存下来,把结果当成一个数据表一样去操作,用的是空间换时间的思想。
mysql语句慢?
首先检查是否使用了索引、索引是否失效、是否写的索引匹配覆盖索引、其次尽量避免返回*,返回不必要的列
数据库分布式情况下主键的唯一性保障?
首先是雪花算法,其次可以通过一个只存储主键的中心数据库或者使用一个Redis,再然后可以用uuid,uuid会有时间戳,mac等等,缺点就是占用的空间很多。
2.Redis相关的八股
AOF和RDB的优缺点,在生产环境中怎么结合起来使用?
AOF是丢失的信息少但是文件大,RDB是数据快照文件小,但是丢失的信息多,在生产环境可以使用RDB照常,但是AOF只存储RDB之后的指令。
缓存穿透、击穿、雪崩区别
分别是访问不存在的key、大量key失效、热点key失效。
解决方法分别有布隆过滤器、多级缓存/随机过期时间、热点key不失效/互斥锁
总结:今天对于agent的技术性描述就是不断调用llm的api印象很深刻,除此之外其他因为回家很少看八股,不过回顾了一下常见的八股知识。