1.harness 的技术层次?
包括五个层次分别是编排和控制流程,工具调用,包括参数校验,执行权限审查,调用和返回结果,第三个是记忆和上下文管理,包括上下文压缩,提取记忆,第四个是状态和持久化,避免在执行长任务因为一次中断丢失历史信息,第五个就是安全性,在输入做校验避免提示词注入,在输出确保没有敏感信息,有害信息。
2.消息队列堆积怎么解决,怎么避免重复?
首先定位问题,检查生产者生产速率以及消费者消费速率,如果是突发流量增加,可以考虑扩容,如果是持续的要考虑降级限流和熔断,如果是业务方逻辑变慢要优化代码逻辑,检查消费者是否有数据库延迟变长,磁盘 IO 变慢的问题针对性分析,如果是数据库慢查询要优化。
避免重复首先生产者去推送任务要有确认机制,确定所有 broker 都收到再返回成功,在 消费者端要根据业务唯一标识组幂等性校验避免反复处理。
3.字符串乘法怎么解?
类似字符串加法的思路,不过这里有一个考虑就是字符串乘法结果最多 m+n 位然后对结果去掉前面的 0,不过写到这里我想到了,在写字符串加法可以倒着输入 vector,再 reverse,根本没有提前准备空间,乘法也可以这样做。
4.操作系统是怎么创建线程的?
首先是 pthread_create 是创建线程,操作系统首先初始化线程控制的数据结构,分配栈空间,初始化栈指针,程序计数器,寄存器等,然后使得线程能访问共享资源比如共享内存,文件描述符,之后是把线程加入调度系统。
5.http 和 https 的区别,加密的过程
https 在 http 的基础上增加了 tls 连接,加密数据,对数据做了完整性保护,认证了身份信息,加密过程,首先客户端发送 clienthello,服务端返回 serverHello,服务端发送证书给客户端,客户端会去校验证书,之后双方协商对称通信的密钥,建立连接成功之后使用对称加密的方式通信。
感觉和 AI 应用,偏后端有关的就是可靠性,因为后端开发首先我觉得就是可靠,在这个基础上利用 AI 提效,一般面经的问题就是怎么把 AI 融入开发流程,haRness 的概念,skill 和 MCP 的区别,或者扩展一点,ai tools 的架构实现,skill 和 MCP 消耗 token的对比。
除了这些基本上就是个人使用 AI 了,这些经验大家都大差不差,如果已经具备根据场景设计的能力很重要应该会很受影响。
我感觉 CMU Agent 的课程讲的是很深入的,后续把实验再做一下。