
本期开源之夏专访来自 MOSN 社区的结项学生杨伟诺,在 OSPP2025 中他承担的项目是:为 HTNN 增加 AI 内容安全插件。
项目链接:
https://summer-ospp.ac.cn/org/prodetail/25f080012
个人背景 & 参与开源之夏
1
OSPP:请简单介绍一下你自己。
杨伟诺:很荣幸能够参与专访,我叫杨伟诺,目前杭州电子科技大学研二在读,我本科不是计算机专业,是跨考生,之前做过前后端的开发,维护过学校的的一些内部系统。参加开源之夏今年是第一次,参加类似活动也是第一次。
2
OSPP:什么原因让你选择做开源?
杨伟诺: 首先开源社区中有很多自己比较感兴趣的项目,相比各种枯燥业务逻辑,开源项目中有很多有实际意义并且有一定影响力的项目,能够帮助到很多人,得到大家的认可,我觉得非常有意义。 此外也能接触到的陌生的技术领域,就拿云原生来说,大多数在校生可能都不太会涉及,多多尝试不同的领域能帮助自己了解不同的职业发展方向。
3
OSPP:你是通过什么契机了解参与到开源之夏的呢?
杨伟诺:平常我自己有在关注开源以及一些热门开源项目,也经常会参与功能开发的讨论中,不过大多数时间都是作为用户的身份取参与的,不知道怎么去上手贡献开源项目。偶然的机会,在膜拜各路开源大神的 GitHub 主页寻找灵感时,我注意到很多人都提到了他们参与过一些开源活动,出于好奇我详细收集并了解了国内外的这类开源活动,对比之后选择了 All in 申请开源之夏。
4
OSPP:初次参与开源之夏是什么感受?
杨伟诺:开源之夏有着大量新手友好且真实维护的社区参与,其中也有很多知名开源项目(这和国内企业的开源实战不同)。我自己平常有接触过一些开源项目,但是大多已经成熟完善,很多任务对于新手来说解决起来比较困难,但 OSPP 中的很多社区对小白更加友好,新手可以在这里找到适合的 Good First Issue,让开源小白更好地体验开源协作开发、获取社区沟通经验,更容易迈出开源的第一步。 而且对于国内学生来说,申请起来相比 LFX、GSoC 也没有那么困难。
5
OSPP:作为小白初次申请 OSPP 前,都做了什么准备?
杨伟诺:相比往年,今年的 OSPP 比较特殊,一位学生只允许申请一个项目,对于首次参与者来说,在大量社区中挑选一个作为最终的选择确实有一定难度,广撒网的方案肯定行不通,综合考虑了 OSPP 社区的技术栈分布、自己的兴趣以及项目难度,很快我就确定了自己的准备申请项目的技术方向,考虑到自己以往的项目经验以及自己的兴趣,最后选择了做云原生与少量中间件方向的社区。
接下来我浏览了相关社区的仓库,我在选择社区时并没有抱着代码文档去看,而是通过尝试解决现存的 Issue,评估自己是否有能力、有兴趣为项目贡献代码,另外在这个过程中也能感受社区氛围(混个脸熟),最后也是在申请前一个月提了几个 PR 到自己感兴趣的仓库,选择了自己完成 PR 数量最多的社区作为最后的选择。
开发实战与收获
6
OSPP:你如何理解自己承担的项目?
杨伟诺:这个项目的作用,简单来说就是 AI 的“守门员”。在使用各种大模型 APP 时,经常会遇到输入或输出内容因违规而被拦截的情况——这正是我们项目所实现的核心功能。 和一般的AI网关的区别就在我们这个是运行在云原生技术栈上的 AI 内容安全网关插件。
7
OSPP:此次项目开发的体验,和平常的项目有何区别?
杨伟诺:
1. 更严谨,更注重细节,因为代码会公布,从变量的命名到实现的方案、第三方库的选择,我都比平常更加小心谨慎(如果写的很烂感觉会丢脸😂)。我的方案是尽可能参考项目现存代码的风格,多多请教导师。
2. 花在写测试、评估不同实现方案性能差异的时间比写代码的时间多得多。
3. 没有现成的代码供参考,比如如何在 HTNN 的 Filter 中提供流式支持,现存的代码中完全没有涉及,我不得不阅读 Envoy 源码,了解 Filter 生命周期以及数据的处理方式,结合 HTNN 的实现,最终成功实现流式支持
4.导师并不会直接告诉我应该这么做,而是会通过提出问题的方式来进行指导。
8
OSPP:项目开发过程中有没有印象深刻的挑战?是如何应对的?
杨伟诺:我觉得这个项目相对来说印象最深刻的部分是优化 SSE 解析器和缓冲区性能。
一开始在评估内存和 CPU 占用时,导师建议我写 benchmark,我自己写了很多测试,尝试不同负载,但性能差异并不明显,因为没有相关优化的经验,我也挺迷茫不知道如何入手。
后来我尝试学着用 GO 性能分析工具深入测试分析代码,才发现真正的瓶颈其实在第三方库。以往来说无脑调别人的库,尽量避免自己写,但是这次不得不放弃外部库,自己手写解析逻辑并设计相应的缓存逻辑,尽可能的优化性能。而且作为基础模块,代码正确性和稳定性非常重要,因此我配套做了大量单元测试和 fuzz 测试,确保代码可靠。最后顺利优化了解析器性能,带来了数十倍的性能提升。
9
OSPP:从这次项目开发的经历中学到了什么,对你产生了什么影响?
杨伟诺:学到了很多,万事开头难,最重要的是迈出了开源的第一步。在和陌生仓库维护者直接交流,提出问题、讨论实现方案的过程中,我学会了如何用清晰、专业的方式表达自己的想法,也体会到了开源社区合作的规范与文化。
其次就是开发能力的长进,在完成这个项目的过程中,我需要阅读源码解决问题,确认合适的设计方案,而不是依赖文档喂到嘴边,比如在项目初期思考如何实现流式支持的时候,我还阅读了大量 envoy 的源码,我关注了它的设计模式、模块划分,尤其是流控和缓冲区管理的实现,envoy 的设计非常复杂,阅读这样的大型项目源码之后我感觉自己上手日常的开发任务都变得更加轻松。
寄语与期待
10
OSPP:此次开源之夏为你带来的最大收获是什么?
杨伟诺:首先特别感谢开源之夏给我带来的此次项目实战机会,对我来说最大的收获是视野和信心。
以前我只敢当开源项目的“用户”,不太敢真正参与。但通过这次开源之夏,我从提问、讨论方案到提交 PR、被 review、被质疑再改进,完整走了一遍开源协作流程,让我意识到:很多时候不是做不了,而是不知道怎么开始。等你真的动手试着改个小问题、和导师聊一聊、提一个 PR,你会发现社区的人都挺愿意帮你,事情也没有想象中那么难。
另外,第一次接触到这么完整的工程化流程,包括测试、性能优化、CI 等,对作为在校生的我后面做项目也有很大帮助。
11
OSPP:你认为“开源之夏”这样的平台对大学生来说的意义是什么?
杨伟诺:我觉得主要有三点:
门槛低:社区会准备新手友好的任务,新人更容易找到切入点。
工程化:能够体验真实的协作流程,比很多课堂作业有价值得多。
开眼界:能提前接触云原生、AI、安全等各种方向,帮助自己找到真正想做的领域。
12
OSPP:有什么对希望参与开源之夏的学弟学妹的建议?
杨伟诺:从我此次的参与经历,我认为出色完成项目任务需要从以下几点出发:
尽早进入社区,试着解决几个 Issue,比死磕文档有效得多。
多沟通,不用害怕提问,社区很欢迎新人。
按照兴趣选项目,做自己喜欢的方向会轻松很多。
接受严格的流程,测试、Benchmark、反复 review 都是正常的。
最重要的是先开始,参与一次之后你会发现开源其实没那么遥远。
13
OSPP:对未来有什么计划?
杨伟诺: 这次参与开源之夏,为我打开了云原生领域的兴趣大门,我也有在关注国内外云原生+AI 领域的多个热门开源项目,后续我会继续关注,继续参加这类开源活动。
End
专栏编辑:HungryFish
校对:刘潇宇、杨伟诺
制图:刘潇宇

490

被折叠的 条评论
为什么被折叠?



