LLM 应用后端接入工程 —— 基本功:一个普通后端服务怎么正确调大模型
你在一个 Spring Boot 服务里写下了第一行”调大模型”的代码:一个 HTTP 客户端,一个 POST /v1/chat/completions,一个手工拼出来的 JSON。跑通了,心里却越来越没底——因为你知道这只是”能跑”,离”能上生产”还差得远。 然后你去查资料。查到 MCP,讲的是”工具标准”:服务器怎么暴露工具、客户端怎么发现工具、JSON-RPC 怎么来回。查到...
Token 不是字也不是词:300K 上下文窗口到底能装多少行代码
你在 Cursor 里把整个 Service 目录 @ 进去,说”帮我把这段下单逻辑重构一下”,结果它回你一句 context_length_exceeded。你心里纳闷:不是说好 200K、300K 的上下文窗口吗?我这才几万行代码,怎么连一个模块都塞不下? 问题的根子,在于把 token...
Agent 的循环与目标:一个 Agent 到底是怎么自己跑起来的
两个场景,先请你感受一下”跑起来”和”答出来”的差别。 场景 A:你在聊天框里问”Redis 主从复制怎么实现?”。模型给你一段洋洋洒洒的回答,你点个赞,对话结束。整个过程一次调用、一次返回,干净利落。 场景 B:你说”把项目里所有日志改成带 traceId 的格式,跑一遍单测,失败的发我报告。”模型先翻目录、定位日志框架、改代码、跑测试、解析失败信息、再改、再跑……中间可能有几十次工具调用,跨度可能是一小时。你中途去开了个会,回来发现它已经把报告整理好了,还顺手把没改干净的两处标了出来。 同样是”一个输入”,A 是一次函数求值,B 是一场持续运转。前几篇我们讲了大模型本身(《从大模型到 Agent》)、讲了大模型没有状态(《大模型无状态》)、讲了...
让大模型修 bug 时,它脑子里到底发生了什么
你给大模型贴了这样一段,然后问”这个空指针怎么回事”: public class OrderService { private OrderMapper mapper; public String getOrderName(Long id)...
模型是怎么跑起来、又怎么变聪明的:从一次推理到一次训练的后端视角拆解
你在一台 8 核 16G 的机器上,curl 了一下 https://api.deepseek.com/chat/completions,等了三秒钟,收到一段流畅得像人写的回答。 你心里可能闪过一个问题:云端那台机器,在这三秒钟里到底干了什么? 它打开了一个文件吗?跑了一段代码吗?查了数据库吗?还有那个更玄的问题:它是怎么”学会”这些的? 前两篇文章(《大模型无状态》《从大模型到 Agent》)讲的是”壳”——客户端怎么反复重发历史、Agent 怎么拼循环和工具。今天把镜头往里推一层,讲那个一直被一笔带过的”核”:模型自己是怎么算的,又是怎么被训练出来的。...