在大模型刚出现的时候,我们几乎都经历过那种“施咒般的兴奋”:输入一段神秘的提示词(prompt),就像在对精灵许愿,期待它给出答案。那种感觉神奇而不可思议。但随着更多人深度使用,大家逐渐发现——好的输出并非来自“神奇词语”,而是源于上下文的构建、工具的调用和系统的设计。
今天,“魔法提示”的时代正在谢幕。取而代之的,是工程化、系统化的工作:链(Chain)、记忆(Memory)、代理(Agent)、微调(Fine-tuning)。这些方法正在定义我们与 AI 的关系。我们不再是“许愿人”,而是“系统设计者”。

1. 超越一次性提示:链的出现
1.1 背景:单次问答的局限
在早期,人们习惯于“一问一答”,期待模型能一次性给出正确结果。但复杂问题往往需要研究、推理和多步执行。就像试图把钢琴推进钥匙孔一样,单个提示显得笨拙而低效。
1.2 原理:链的机制
链(Chain)就是将大任务拆解为多个步骤,每个步骤的输出作为下一个步骤的输入。链条可以分支、循环,甚至在缺失信息时触发检索或追问。
示意代码:
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini")
# 步骤1:生成提纲
outline_prompt = PromptTemplate.from_template("为主题 {topic} 生成一个文章提纲。")
outline_chain = LLMChain(llm=llm, prompt=outline_prompt)
# 步骤2:展开提纲为文章
expand_prompt = PromptTemplate.from_template("根据提纲 {outline} 写一篇详细文章。")
expand_chain = LLMChain(llm=llm, prompt=expand_prompt)
# 串联
sequential_chain = SimpleSequentialChain(chains=[outline_chain, expand_chain])
print(sequential_chain.run("大模型系统化应用"))
这里的关键,不再是“神奇的提示”,而是任务的拆解与流程的组织。
1.3 实践与应用
链条的概念,使得 复杂问题能被分解执行:
-
研究型问答 → 拆解为搜索、分析、撰写
-
数据处理 → 拆解为提取、计算、可视化
-
企业场景 → 拆解为工单流转、审批、归档
链条让 LLM 更像一个“流程执行器”,而不是“答题机器”。
2. 记忆:给金鱼一本笔记本
2.1 背景:遗忘的金鱼
大模型的上下文窗口有限,就像一条聪明但健忘的金鱼。新输入进来,旧信息就被挤出去。长对话中,它经常“忘记”前文。
2.2 原理:缓冲与摘要
为解决遗忘问题,框架引入了记忆:
-
缓冲区记忆:保留最近 N 次对话
-
摘要记忆:将历史压缩成简短笔记
-
混合策略:近期保留,远期压缩
示意图:
flowchart LR
A[输入新问题] --> B{上下文窗口足够?}
B -- 是 --> C[直接处理]
B -- 否 --> D[调用记忆模块]
D --> E[缓冲区保存 / 摘要压缩]
E --> C
2.3 实践:长会话与知识延展
通过记忆模块,AI 可以:
-
记住用户的偏好和上下文
-
进行数小时的持续对话
-
在复杂任务中保持一致性
记忆并没有让模型“更聪明”,只是给它加了笔记本。但这正是系统化的关键。
3. 代理:当 AI 学会选择工具
3.1 背景:链的僵硬
链条是固定流程,但现实世界往往需要灵活应对。于是代理(Agent)登场:它不预设脚本,而是由模型“思考下一步”。
3.2 原理:ReAct 循环
代理遵循 思考 → 行动 → 观察 → 回答 的循环:
-
思考:决定下一步要干什么
-
行动:选择合适的工具
-
观察:读取工具结果
-
回答:基于所有信息输出
3.3 代码示例
from langchain.agents import initialize_agent, load_tools
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini")
tools = load_tools(["serpapi", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
response = agent.run("明天北京的天气加上 10 摄氏度是多少?")
print(response)
这里,模型会自动调用搜索工具查天气,再用数学工具计算。开发者无需预设流程。
3.4 风险与治理
代理的风险在于:
-
无限循环
-
工具误用
-
结果不可控
因此必须加上安全措施:限制步数、约束工具集、监控日志。
4. 微调:雕刻概率的巨人
4.1 背景:提示和代理的极限
链与代理更多是“包装模型”。而微调(Fine-tuning)则是直接改造模型本身,使其偏向特定任务或风格。
4.2 原理与方法
微调的核心是:给模型更多数据,让它在概率分布中形成新的偏好。
常见方法:
-
全量微调:昂贵但效果最好
-
LoRA:在冻结权重上加适配器,训练更轻量
-
QLoRA:结合量化与 LoRA,在单卡上即可完成
4.3 示例代码
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
model_name = "meta-llama/Llama-3-8b"
bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_compute_dtype="float16")
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", quantization_config=bnb)
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = prepare_model_for_kbit_training(model)
peft_cfg = LoraConfig(r=8, lora_alpha=16, lora_dropout=0.05, task_type="CAUSAL_LM")
model = get_peft_model(model, peft_cfg)
4.4 权衡与启示
微调并不会“增加智力”,而是改变模型在不同任务间的优先级。医疗微调模型可能在诊断上表现优异,但在诗歌创作上逊色。我们始终在平衡:通用性、专业化、价值观。
5. 从提示到系统:新角色的转变
我们已经走过了“魔法提示”的幻觉时代。
-
链条让任务拆解清晰
-
记忆让对话有了连续性
-
代理让模型能自主调用工具
-
微调让模型更贴合场景需求
这是一条从“词语许愿”到“系统构建”的进化路径。
如今,我们的身份也发生了变化。我们不再是乞求答案的乘客,而是副驾驶——设计流程、配置工具、微调模型。AI 不再是魔法,而是一门需要工程实践的艺术。
总结与升华
“魔法提示的结束”,不是失落,而是开始。真正的价值,不在于找到某个万能的词语,而在于构建能持续运作的系统。
未来的竞争力,不是“谁会写提示”,而是“谁能构建更稳健的 AI 系统”:会不会设计链条、优化记忆、部署代理、调校模型。
这是一种新的工程能力,也是一种新的创造力。
如果说过去我们是“提示的低语者”,那么今天,我们是“系统的架构师”。
👉 欢迎在评论区分享你对 链、记忆、代理、微调 的实践体验!你觉得“魔法提示”真的结束了吗?
参考资料:
1017

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



