
2026 年了,如果你还在只写 CRUD,危机感应该很重了。 现在的行情是:纯后端开发越来越卷,而懂 AI 工程化的 Go 开发者极其稀缺。
注意,我说的不是“会调 OpenAI 接口”的人,而是能解决实际工程问题的人:
这个项目,就是为了让你成为后者。
很多课程不敢给你看底层代码,因为一看就是几十行的 Python 脚本。 但我们的【面试吧】项目,是完全基于字节跳动开源 Eino 框架 + Go 高性能生态打造的。
来看看这一行行“含金量”极高的代码:
在 backend/chatApp/agent 目录下,我们定义了多个专家级 Agent。这不是简单的对话,而是包含思考(Reasoning)、工具调用(Tool Use)和状态流转的完整智能体。
// 真实源码展示:创建 Java 专项面试官智能体
func NewJavaSpecializedAgent(userId uint, needResumeTool bool) (adk.Agent, error) {
// ...上下文配置
baseAgent, err := adk.NewChatModelAgent(ctx, &adk.ChatModelAgentConfig{
Name: "JavaSpecializedAgent", // 具身智能体身份
Description: "Java 专项面试官,专注于评估 JVM、并发与框架深度",
Instruction: JavaSpecializedAgentInstruction, // 经过无数次调优的 System Prompt
Model: model, // 接入大模型底座
ToolsConfig: adk.ToolsConfig{
ToolsNodeConfig: compose.ToolsNodeConfig{
Tools: []componenttool.BaseTool{
tool2.GetResumeInfoTool(), // 挂载简历分析工具,实现个性化提问
},
},
},
MaxIterations: 15, // 允许 Agent 进行多轮自我修正和思考
})
// ...
}
👆 面试官问你 Agent 怎么设计?把这段代码逻辑讲清楚,你就是专家。
为了解决大模型“胡说八道”的问题,我们集成了 Milvus 向量数据库。 看这里的检索服务封装 retrieval/retriever.go:
// 真实源码展示:混合检索实现
func (s *RetrieverService) RetrieveWithOptions(ctx context.Context, query string, opts *RetrieveOptions) ([]*schema.Document, error) {
// 1. 构建标量过滤表达式(Filter)
expr := BuildFilterExpr(opts)
// 2. 执行向量相似度搜索 + 标量过滤
// 只有同时满足“语义相似”和“特定知识库范围”的内容才会被召回
if expr != "" {
return SearchWithExpr(ctx, s.client, s.config, query, expr, opts)
}
// ...
}
👆 这才是大厂需要的 RAG:不仅能搜到,还要搜得准、搜得快。
项目采用了 Thrift IDL 定义接口,Hertz 做高性能网关,Redis 做异步队列解耦 AI 推理任务。这完全是按照字节、腾讯等大厂的内部标准来写的。
