Public resume
AI 后端 / Agent 工程师
9 年工作经验,近 3 年专注 AI Agent 与 LLM 平台工程。从系统设计、核心实现到上线交付与稳定性治理全程负责。
Go / Python
LLM Gateway
Agent Runtime
MCP / Tool Calling
OpenTelemetry
AWS / Cloudflare
联系方式:qjianxun0@gmail.com
开源相关
GitHub: qshine
个人项目
- mino:用 Go 从零实现的终端 Coding Agent,配套逐章教程(开发中)
- 基于 OpenAI Responses API 实现流式对话与 Agent Loop,Bash 与文件读写编辑工具逐次审批执行,JSONL 持久化历史并支持中断恢复
- 支持多会话管理、上下文自动压缩、项目 Skills 按需加载、本地 / 远程 MCP 工具接入
- 在代码层强制执行工具策略与受保护路径,避免 Agent 误操作
- llm-lora-tutorial:面向非 ML 背景开发者的 LoRA 微调与部署实战教程
- 在单张 RTX 4090 上基于 Qwen3-4B 跑通完整链路:QLoRA 微调 → BF16 合并导出 → vLLM 部署 OpenAI 兼容 API → 流式调用与压测
开源贡献
- pyspider(16.8k Star)
- 基于puppeteer和express的网页渲染抓取组件, 通过http方式来渲染目标网页, 通用化常见流程
- 支持传入js脚本并执行, 通过该方式实现模拟点击或滑动等操作
- 支持传入cookie来初始化网页, 如使用淘宝登录cookie恢复浏览器的登录状态
- scrapy-redis(5.6k Star)
- 从start_urls单个读取任务优化为批量读取
- 有序集合的任务队列, 快速支持有优先级任务的业务场景
- rosedb(4.9k Star)
个人简介
- 9 年工作经验,近 3 年专注 AI Agent 与 LLM 平台工程,作为后端负责人带领 2~3 人团队,具备从系统设计、核心实现到上线交付和稳定性治理的完整经验
- 熟悉 Agent 工程:Function Calling / ReAct、MCP、Claude Agent SDK 多 subagent 编排,具备上下文压缩、长任务中断恢复、隔离 Sandbox 执行等生产实践
- 熟悉多模型网关与协议适配:OpenAI / Anthropic API、Tool Calling、多模态、Prompt Cache、流式 SSE、重试与 fallback、Token / Cost 计量计费
- 熟练使用 Go、Python,具备 PHP 项目经验;熟悉 Kratos、FastAPI、Gin、Flask、NestJS 等服务端技术栈
- 熟练使用 MySQL、Redis、MongoDB、Elasticsearch,具备 Kafka、AWS SNS / SQS 的并发控制、幂等、重试和异步任务实践
- 熟悉 OpenTelemetry 全链路可观测性,以及 AWS ECS / Bedrock / S3、Modal、Cloudflare Workers 等云服务的生产部署
- 早期有分布式爬虫、搜索、内容平台和大规模任务调度经验,曾对 scrapy-redis 做性能优化和二次开发
工作经历
myshell.ai
后端技术负责人2023.08 ~ 2026.06
公司简介: AI Agent 创作与分发平台,用户可零代码构建 AI Bot / Agent 并发布到 Web、Telegram 等渠道;平台用户 500w+,已部署 Agent 20w+
主要产品: Tg2App(自然语言生成应用),ShellAgent(开源零代码 Agent 框架), 开源 OpenVoice、MeloTTS 等语音模型
融资情况: 种子轮 560 万美元(INCE Capital 领投),Pre-Series A 1100 万美元(Dragonfly 领投,OKX Ventures 等跟投),累计约 1660 万美元
带领 2~3 人后端团队,在团队小、业务线多的情况下统筹后端全部事务,同时作为核心开发者承担关键模块的设计与实现:
- 负责需求拆解、技术方案评审、任务分工与代码 Review,跟进各项目进展,推动跨团队协作与交付
- 牵头定位线上疑难问题,协助同事排查和解决关键故障
- 负责后端整体稳定性(监控、告警与线上问题治理)和模型调用成本控制
- 负责后端招聘面试与新人培养
项目一Tg2App:一句话生成 Telegram Bot + Mini App 的 AI Agent
项目简介:用户在 Telegram 里用一句话描述需求,系统自动生成并上线一个完整应用,包括两部分:对话式 Bot(LUI),用户在聊天里通过命令和对话使用功能;配套的 Mini App 管理后台(GUI),即在 Telegram 内打开的网页,用于数据的增删改查和统计。例如"帮我做一个健身打卡 Bot",会生成打卡对话 Bot 和查看记录的后台页面。上线后累计生成10w+应用。
- 设计两层 Agent 架构,负责 Agent Runtime、MCP 工具、Sandbox 与部署链路的工程实现:外层 Planning Agent 基于 ReAct + Tool Calling 完成需求澄清和工具调度,代码生成封装为 MCP 工具,内部用 Claude Agent SDK 编排多个subagent(先建模、再并行生成 Bot 与前端)
- Agent Harness:按subagent 配置工具白名单,关键参数由程序注入、不信任模型输出;工具异常回传给模型自行决策;上下文超限时摘要压缩并逐级收紧(最多 3 次);任务结果按"已生成 + 已部署"判定成功、部分成功或失败
- 长任务可靠性:对话消息逐条原子落盘,重启后修复中断的 tool_call 配对;资源准备幂等,重跑可复用已有 Schema 与环境
- 隔离执行:每个项目独立的 Modal Sandbox,支持复用、健康检查与快照恢复;产物多租户部署(Cloudflare Workers for Platforms 统一路由 Mini App,每项目独立 Supabase Schema)
- 可观测与排障:完整对话历史可直接复现请求,Orchestrator 日志逐条打时间戳,并按子 Agent 拆分;提供从 Sandbox 拉取现场数据的工具
- 模型与成本:外层 Agent 通过自研 LLM Gateway调用模型,按项目 / 用户透传标识,统一鉴权、计量与扣费,切换模型只需改配置;规划与代码生成按难度分配不同档位的模型,平衡质量与成本,并按单次生成成本实时扣费;内层 Coding Agent 用多账号池按并发上限调度会话,应对上游限流
项目二LLM Gateway:多模型统一接入与计量计费网关
项目简介:公司内部 AI 业务(Tg2App、ClawdBot、ShellBot 等多个业务)调用大模型的统一入口,对外提供 OpenAI 与 Anthropic 两套兼容接口,对内路由到 Azure OpenAI、AWS Bedrock、OpenRouter、智谱 Z.AI 等供应商的 GPT、Claude、Gemini、Kimi、GLM 等模型,统一处理鉴权、计费与观测。
- 统一接入:基于 FastAPI + LiteLLM Router,同时提供 OpenAI-compatible Chat Completions 与 Anthropic Messages API,支持 SSE 流式、Tool Calling 与多模态;内部模型名屏蔽供应商差异,供应商切换(如 GLM 由 OpenRouter 切至智谱直连)对调用方无感;按业务分配 API Key,Anthropic 接口兼容 key:user_id 格式,Claude Code 与 Anthropic SDK 无需改造即可接入;同一模型挂载多家供应商,按异常类型重试(仅 429 / 5xx / 超时),连续失败的供应商自动冷却,必要时 fallback 到备用模型
- 协议适配:统一 reasoning / thinking 参数(如 reasoning.max_tokens 转为 Claude 的 thinking.budget_tokens,GLM 的 thinking 经 extra_body 透传),按模型放行私有参数;修复并行工具调用时 tool 结果与图片消息交错导致的 Anthropic 协议校验失败;上游错误按鉴权、限流、参数、服务端分类映射
- 计量与计费:调用前预检用户余额,响应后在回调中按供应商返回的成本、Token 与 Cached Token 换算并扣减用户额度;Claude Code 接入经历从 Bedrock 协议兼容代理到 Anthropic Messages 端点加独立扣费接口的演进;支持内部调用按请求免扣费
- Prompt Cache:对支持缓存的模型,自动在 system 和最后一条消息注入 cache_control 断点,调用方已有标记时不覆盖,降低多轮对话和 Agent 场景的成本
- 可观测与成本归因:OpenTelemetry 记录请求 / 响应、流式分片、耗时、Token 与成本,并按业务、应用、用户、供应商、日期打标,支持多维成本分析;手动管理流式响应的 Span 生命周期,解决 StreamingResponse 异步生成器丢失父 Span 的问题;trace-id 注入日志并作为 X-Request-Id 返回
项目三平台后端基础设施与业务系统
负责平台后端的公共基础设施与核心业务模块,覆盖 Agent 平台能力、异步任务、架构迁移、稳定性、安全风控、增长与支付。
- Agent 平台能力:建设 ShellAgent 的 MCP / Custom Widget 工具发现与版本管理、Bot Deploy / Rollback 和 Server ↔ Sandbox WebSocket;设计 ShellChannel 多业务 Bot Gateway,以统一消息模型、Channel Adapter 和业务 Processor 解耦 Telegram 协议与 AI Bot,支持命令分流、历史上下文、TTS 和多模态消息
- 异步任务基础设施:设计 AWS SNS Producer 与 SQS Consumer Runner 基础库,统一事件封装、Trace 传播、FIFO 分组去重、长轮询、并发控制与 ACK;Async Job 通过条件状态迁移、最大重试和 deadline 实现有界重试;根据运行中 Sandbox 数量暂停 / 恢复消费,防止突发任务压垮 Agent Runtime
- 架构迁移与云上交付:推进 Bot 发布、消息翻译、Async Jobs 等核心模块从 NestJS 向 Go / Kratos 分阶段迁移;推动 ShellAgent 由 EC2 迁移到 ECS,消息存储迁移至 DynamoDB,落地 Cloudflare Workers / Pages
- 稳定性与性能:建设 OpenTelemetry Trace、看板与告警,治理 WebSocket 断线重连、慢 SQL、连接池、锁竞争和幂等补偿等线上问题;优化 Go 项目 CI / Lint,执行时间从 15 分钟以上缩短至约 3.5 分钟
- 安全与风控:对接 Cloudflare,设计请求签名机制防止接口被恶意调用和爬取,结合行为埋点与离线分析识别异常流量,通过验证码拦截批量注册和异常登录
- 用户增长:设计邀请裂变、分享归因与积分奖励体系,覆盖个人 / KOL 邀请码及 Bot / 消息分享码,通过分布式锁、事务和条件扣减保证并发一致性,防止自邀与重复领取
- 支付:建设 Stripe 订阅与 Telegram Stars 支付闭环,通过 Webhook 签名校验、订单状态机、CAS 状态迁移、主动查单与定时补偿,保证订单与权益最终一致,治理重复回调
Shopee
资深软件工程师2022.03 ~ 2023.07
项目一video回查系统
个人负责该系统架构设计和实现, 使用Go语言和内部rpc框架提供核心接口, 采用gin提供http接口, 支持了多国家业务发展需求
该系统主要供运营人员快速查询video从用户发布到搜索推荐经过的整个审核链路数据, 如机审不同模型结果, 人审不同队列结果, 打标, 免审等事件, 方便用户快速回溯video的整个审核历史和排查case
- 拆分为rpc和portal两个服务, rpc服务负责事件接入, 数据存储和检索等核心功能, portal负责提供http接口, 权限控制等
- 使用elasticsearch存储video和user核心检索数据, 提供多维度检索
- 接入binlog来同步内容变更的信息, 然后发送对应的变更事件, 后端获取到完整信息后存储到es中
- 使用MySQL分表存储video的trace记录, videoID为分片键
- 使用Kafka作为消息队列, 提供服务解耦和突发流量控制的作用
- 改造服务支持多国家业务, 通过在ALB中设置cid, 透传到下游服务来读取不同的配置信息
项目二人审系统重构
- 负责网关服务和portal服务设计和实现
- 支持消息队列和rpc两种进审方式
- 对业务接入方进行了权限校验和流量控制, 防止大促等突发流量影响下游系统
- 通过配置化方式支持了video/account/hashtag/music等多种物料
- 提供多维度统计数据dashboard用来提升人效
陌陌科技
高级软件工程师2020.07 ~ 2022.02
项目一服务端api
个人负责业务技术栈主要使用内部php框架, 部分服务采用Go
- 推进完成针对内容表的分库分表, 根据检索条件做了多维度的分库分表操作
- 主导对接阿里云opensearch提供搜索能力以及排序, 打散, 置顶相关逻辑
- 对话素材去重, 评估内存占用后使用redis的位图实现
- 完成频道订阅和不感兴趣标签功能
- 完成用户金币账户体系, 支持抽奖, 兑换奖品等功能
- 性能优化如AI变脸和语音合成等, 主要采用加缓存和版本号的方案
- 关注feed服务, 关注列表需要实时展示关注用户,话题,收藏夹下更新的内容
- 借助es提供初期的多轮对话能力
- 站内活动, 打卡, 签到, 抽奖等业务支持
项目二运营后台
使用golang开发, web框架使用gin
- 通过jwt进行接口认证
- 使用wire解决依赖注入问题
- 底层存储涉及MySQL和MongoDB
- 后期优化检索为ElasticSearch
- 数据变更同步采用MQ方式
- 统计报表数据需求
项目三内容数据引入
成果: 引入 视频和图片 等资源500w+, 同步部分instagram账号内容
- 通过python web框架提供api, 供后台配置规则等
- 爬虫作为消费者拿到任务消费数据, 走后续下载, 上传和转码等逻辑
- 格式化最终结果发送消息队列走后续去重和打标流程
项目一分布式爬虫任务调度系统
成果: 负责80+爬虫, 200+队列的任务调度, 日调度任务超过5亿次
- 通过http接口进行爬虫和任务队列注册(支持设置最大队列大小, 单个任务队列抓取速度, 监控报警阈值)
- 支持多节点部署, 自动检测节点添加和异常退出, 提高调度能力和可用性
- 动态调节不同队列的抓取速度, 提高代理利用率
- 支持优先级任务组, 自动控制待调度队列的整体大小
项目二cookie池服务和通用模拟登陆平台
成果: 管理淘宝爬虫使用的cookie, 淘宝等模拟登录, 降低环境搭建成本, 供给需要使用cookie的业务(如实时优惠引擎和招商计划等)
- 通用cookie使用redis构建环形队列, 特殊账号使用hash结构进行存储
- 使用puppeteer和express搭建常见网站的登录服务平台
- 移除浏览器特征, 支持模拟移动端
- 支持执行js脚本, 可以通过js脚本模拟点击, 滑动验证码等操作
项目三淘宝优惠信息实时引擎
成果: 提供超过15余种类型的优惠信息(如店铺券, 满减满折, 红包等), 覆盖商品400w+
- 研究淘宝反爬虫策略, 开发通用淘宝sign解密/cookie使用中间件等进行规避
- 持续优化整个数据链路, 挖掘不同接口的关系, 通过历史数据挖掘字段含义, 降低代理使用成本, 防止抓取任务积压
- 对接不同数据源(如feed, 点击商品, 搜索等)及时发现商品的新优惠类型
- scrapy分布式抓取集群, scrapydWeb管理平台
项目四商品库建设
成果: 每日对7000w+商品完成多次更新
- 重构商品库系统, 由爬虫脚本迁移到scrapy, 使用Kafka进行解耦, 数据发送到Kafka供中台和搜索等业务方消费
- 商品库分层(如秒杀, 曝光商品, 商品打分机制等), 针对不同层级采用不同的更新频率, 降低信息延迟
- scrapy-redis二次开发使用pipeline支持批量取任务, 爬虫整体性能提升约30%
- 利用不用接口对商品价格进行验证, 提升价格准确性
- 优化数据链路, 使用redis的hash结构, 针对商品不同维度的Kafka消息进行去重, 日去重超过1.5亿
- 新任务过滤器模块配置化过滤规则给后端爬虫, 如敏感词/类目黑名单/发货时间长的商品, 提升灵活性
项目五爬虫监控/数据持久化
成果: 使用InfluxDB, Grafana, Fluentd等工具构建监控数据平台
- 构建scrapy拓展来统一收集爬虫指标
- Fluentd收集爬虫核心业务数据到MongoDB集群
- 优化MongoDB集群的性能, 不使用TTL特性, 改为按天分割
北京星河金服科技有限公司
爬虫工程师2017.01 ~ 2018.02
公司性质: 互联网金融
部门: 大数据风控中心
项目一全国企业工商数据抓取
成果:完成风控系统对企业评分所需数据需求
- 结合待采集网站特性进行技术选型, 使用pyspider作为抓取框架, redis为消息队列, MySQL作为数据存储.
- 完成超过100数据源(58同城、1688、信用中国, 水滴信用), 涵盖招聘, 信用黑名单, 企业信息等网站, 完成5000w企业基本信息数据采集任务.
- 使用scrapy和scrapy-redis来完成对企业信息的动态补充. 解密相关接口
- 完成数据报表相关模块开发
项目二个人征信数据抓取
- 完成学信网, 电信运营商, 北京社保, 脉脉等数据源的采集任务
- 使用Django搭建爬虫端查询后台, 开发添加爬虫任务相关api
- 使用selenium抓取复杂的动态渲染页面, 降低逆向JavaScript成本
- 采用OpenCV来进行学信网的图片识别
自我评价
- 具备从需求拆解、架构设计、核心实现、灰度迁移到稳定性治理的端到端交付能力
- 长期关注 AI Infra、LLM Platform 与 Agent Runtime,重视可观测性、幂等、一致性、故障恢复和稳定性治理