Zhanbo's Blog
Back to home

All Blog Posts

Documenting technical insights from my learning journey, sharing practical experience in Java backend, Spring ecosystem, AI Agent, and more.

AlgorithmLearning Notes
2026-09-13
11 min read

CS546 Learning Notes:从梯度裁剪到 LSTM、GRU,串起一次参数更新

上次学到 RNN 的 BPTT,知道梯度沿时间反传时会连续相乘,也算出了 0.25=0.000320.2^5=0.00032。但看到 gradient clipping 时,我发现自己还没有真正理解:梯度爆炸到底有什么问题,为什么要裁剪?

这次从这个问题出发,逐步理解 LSTM 和 GRU 的门控机制,最后把 BPTT 与 Optimizer 的分工接起来。最有收获的地方,是分清几组容易混淆的概念:记忆和输出、门值和参数、沿路径相乘和多路径相加。

AIMachine Learning
Learning NotesAlgorithm
2026-09-12
14 min read

CS546 Learning Notes:从 Word Embedding 到 RNN,理解 BPTT 与梯度消失

上次把 Softmax、Cross-entropy 和一个 ReLU MLP 的前向、反向传播手算了一遍。这次继续问:如果输入是一句话,文字怎么变成数字?句子长度不一样、词序不一样,模型又怎么处理?

今天走通的主线是:token → embedding → RNN hidden state → 下一个词的预测 → loss → 沿时间反向传播。最需要停下来推的地方,是 embedding 梯度里的转置,以及为什么 RNN 的梯度传得越远可能越小。

AIMachine Learning
AlgorithmLearning Notes
2026-09-12
15 min read

CS546 Learning Notes:从 Softmax 到 MLP,终于把反向传播算通了

上次我学到的是 Linear Regression、Gradient Descent 和 SGD。这次继续往下:如果预测的不是房价,而是正面、负面、中性三个类别,模型怎么输出?加上 hidden layer 以后,loss 又怎么影响前面的参数?

今天最有收获的是把公式拆成自己能算的步骤,尤其是交叉熵的梯度、反向传播里的转置,以及“算到隐藏层的梯度”和“更新参数”之间的区别。这篇笔记按我们实际提问和计算的顺序整理,后面再把完整公式放在一起。

AIMachine Learning
AlgorithmLearning Notes
2026-09-07
12 min read

CS546 Learning Notes:原来这就是更新参数,从 Linear Regression 到 SGD

CS546 从第二节课开始,我就感觉有些跟不上了。很多东西本科听过概念,但没有实际用过,课件一换成公式就开始头晕。

所以这次先停下来,用几个数字把训练过程算一遍。这篇记录的是我从“这个就是更新参数的意思吗”到能分清 batch、step、epoch 和 SGD 的过程,还没有进入多层神经网络。

AIMachine Learning
AI AgentLearning Notes
2026-08-26
15 min read

从 Benchmark 到企业实践:系统理解 LLM Agent Evaluation

本文以 ACL 2026 Findings 的综述论文 A Survey on Evaluation of LLM-based Agents 为主线,系统梳理 Agent Evaluation 的能力评测、应用型 Benchmark、通用 Agent、评测框架与 Gym-like Environment,并重点解释 Conversational Agent 的测试机制、Reference-based 与 Reference-free Trajectory Assessment、Human-in-the-loop,以及 backbone LLM 与 Agent Harness 的解耦评测。文章进一步从工程实践出发,讨论垂类 Research Agent 应如何组合确定性检查、LLM Judge、专家标注与现有 Eval 平台,以及企业如何通过 Golden Set、Regression Set、CI Gate 和线上监控建立持续评测闭环。

LLMAgentAgent EvaluationAgent HarnessBenchmarkTrajectory EvaluationLangfuseLangSmithResearch AgentLLM-as-a-JudgeAI Engineering
RAGLearning NotesAI Agent
2026-08-03
11 min read

读懂 LlamaIndex:从 RAG 数据流到 Tool、Agent 与 Workflow

LlamaIndex 经常和 LangChain、LangGraph、smolagents 一起出现在 Agent 教程中,但它真正有辨识度的部分并不是 Agent 或 Multi-Agent,而是围绕私有数据建立的一整套 RAG 抽象:DocumentNodeIngestionPipelineVectorStoreIndexRetrieverQueryEngineResponseSynthesizer。本文从一份 persona 数据集出发,完整拆解数据加载、分块、Embedding、向量存储、检索、回答合成与评估的链路,并进一步解释为什么 QueryEngine 还要包装成 Tool、什么时候 Agent 层属于过度设计、Workflow 又如何通过 Event 类型连接多个 Step。最后给出 LlamaIndex、LangGraph 与 smolagents 的定位对比,以及本地运行 Notebook 时遇到的典型问题。

LlamaIndexRAGEmbeddingVectorStoreChromaDBRetrieverQueryEngineAgentWorkflow
AI AgentLearning Notes
2026-08-02
15 min read

读完 Pi Coding Agent:一个 Agent Harness 应该拥有多少状态?

继续阅读 Pi Coding Agent 的设计文章后,我发现作者反复强调的并不只是“功能少”,而是尽量不让 harness 拥有隐藏状态。Pi 保留最小 agent loop、事件流和工具协议,却把 todo、plan、MCP、后台进程与 sub-agent 等能力交给普通文件、CLI、tmux 和独立 session。本文沿着我阅读时提出的问题,梳理这种设计的收益、代价,以及它对自建 Agent 和 eval 的启发。

PiCoding AgentAgent HarnessTool CallingTUIMCPMulti-AgentContext EngineeringAgent Eval
AI AgentLearning Notes
2026-08-01
7 min read

阅读 Pi Coding Agent:从多 Provider 兼容到结构化工具结果

Pi 通过 pi-ai、pi-agent-core、pi-tui 和 pi-coding-agent 实现模型协议、Agent 编排、终端界面与 CLI 应用的分层。在多 Provider 支持上,Pi 使用兼容配置统一 OpenAI-compatible API 的字段、reasoning 和 usage 差异;Token 统计则以 Provider 实际返回的数据为准,因此只能做到 best effort。跨 Provider 切换时,Pi 会保留或降级转换 reasoning 等上下文,但无法保证私有签名和超长上下文无损迁移。此外,Pi 支持端到端中止流式请求,并通过结构化工具结果区分模型可见内容与 UI 专用数据,从而保持 Agent 核心的透明、精简与可扩展。

PiCoding AgentAgent HarnessLLMSSETool CallingContext EngineeringTypeScript
Learning NotesRAGAI Agent
2026-07-28
5 min read

从 @tool 到 BM25:smolagents 中 Tool 与 RAG 的四种认知纠偏

在学习 Hugging Face Agents Course Unit 2.1 时,我以为自己懂了 Tool 和 RAG,直到看到源码和 notebook 才发现好几处理解偏差。这篇笔记记录了从 @tool 装饰器到 BM25 稀疏检索的四个关键问题。

smolagentsRAGBM25Agentic-RAGHuggingFace学习笔记稀疏检索
Pitfall Notes
2026-07-19
3 min read

Typora + PicGo + Cloudflare R2 图床上传成功却裂图:一场 URL 拼接的踩坑实录

Typora中借助PicGo上传图片至Cloudflare受阻,本文通过正确拼接URL,上传图片并在本地正确输出。

TyporaPicGoCloudflare R2图床Markdown踩坑记录
Learning Notes
2026-07-11
3 min read

Claude Code 使用技巧:PowerShell Alias 与权限 Bypass

在 Windows PowerShell 中为 Claude Code 设置快捷 alias c-d,并默认使用 --dangerously-skip-permissions 启动,减少重复输入与权限确认。

Claude CodePowerShellAliasCLI