看了一下自己上次写文章分享还是在2022年,转眼间好几年过去了,空闲之余也是该捡起来多写写了,姑且就叫它
重生之xxx系列吧
section 1 【历史】
前摇
第一次知道AI追溯至2016年谷歌的AlphaGo击败世界围棋冠军李世石,当时也没什么感觉,只认为这个东西离自己很远,时至2024年底Chatgpt红极一时,才让我知道了AI的强大。此后的模型一代更比一代强,百模争锋,AI改变生活、改变工作方式的势头已经没法让人忽视,毕竟打不过就加入嘛。
AI工程进化的过程
AI工程化能力正在经历三次深刻的范式跃迁,prompt engineering --> context engineering --> harness engineering,每次的跃迁都是对上次的超越。
Prompt Engineering
这个是说提示词工程,只要能给出完善的提示,llm就能给出正确的结果,所以当时大家的重心都在怎么优化提示词上。比如一套好的提示词通常包括四个要素:
- 清晰指令:明确说明任务目标。
- 相关上下文:提供必要的背景知识。
- 适当约束:限定回答范围或风格。
- 输出格式:指定内容结构(如JSON)。
这里也贴上优化是否有效的工具:字节家的产品
Context Engineering
prompt会有以下问题:
- 上下文大小限制,不同的模型的上下文大小是有限制的。
- 输入太杂会影响模型理解
- 输入的越多token成本就越高
这个时候就需要context engineering,context是指模型输入,是决策所需的全部信息总和,Context engineering则是说在有限的上下文窗口Context Window下通过精心设计给模型的输入内容,达到最佳的效果。不改变模型的结构,只改变模型能“看到”什么。 成熟的上下文工程通常会做三件事:
- 召回Recall 从大量资料里找出和当前任务最相关的那一部分
- 压缩Compress 把过长的文档、日志或历史对话压缩成摘要和关键点
- 组装Assemble 按照特定顺序把信息装进上下文,把最关键的规则和指令放在模型最容易注意的位置
Harness Engineering
模型在真实的环境中连续行动时,如何保证它不跑偏不崩溃不胡说八道,出了错还能拉回来,这个时候就需要harness engineering,也即围绕大模型构建的一整套执行与控制系统,给模型装上手脚规则记忆反馈和约束,让它不只是会说,还能真的做事。
成熟的harness应该有哪些功能?
- 结构化上下文管理:明确角色、目标、成功标准,先组织信息,再交给模型
- 工具系统设计
- 执行编排引擎 把复杂任务拆成稳定顺序,而不是把所有决定一次性交给模型自由发挥
- 状态与记忆管理
- 独立评估与观测
- 约束、校验与恢复机制
可能遇到的问题
上下文焦虑
解决方案:context reset,交接工作状态,用干净的上下文继续跑
自评失真
解决办法:角色分离,Planner 扩规格、定约束、排优先级; Executor 做实现 按规格执行、编码; Evaluator 环境化验收,独立于生产做检查。
section 2 【一些概念】
MCP
一种开放、标准化的通信协议,定义了AI模型与外部数据源、工具之间的连接规范。通过该协议可以给大模型提供实时、动态的外部能力,相当于给大模型安装上了手脚,一般是在会话启动时加载。
比如有佬友开发的提供股票数据的mcp:github.com/elsejj/mcp-…
如果你想直接看mcp的运行效果可以安装支持mcp的客户端,比如这个modelcontextprotocol.io/clients
新手用 MCP 的顺序建议:
- 先不接 MCP,把“读代码/改代码/跑测试/审 diff”练熟
- 再只接一个最安全的(比如 filesystem)
- 最后才接有写入/网络/数据库权限的(每接一个就做一次验收)
官方入口:
- MCP(Anthropic 文档):Model Context Protocol
skills
一种包含指令、脚本和资源的模块化能力包或标准化任务模板,向AI灌输了特定领域的专业知识和工作流。
两种加载模式:
- 全量加载,就是启动的时候把skills目录里面的所有SKILL.md一股脑塞进system prompt
- 按需加载,只读name+description,匹配到了才加载完整内容
大概长这样:
my-skill/
├── SKILL.md ← 先读这个(比较短,用来做路由)
└── references/
├── detailed-guide.md ← 需要时才读
└── anti-patterns.md ← QA 阶段才读
Skills推荐:skillsmp.com/zh
新手推荐工作流
每次写需求,建议都带上这 4 句:
- 先解释你要怎么做
- 再改代码
- 给我看 diff
- 跑测试/构建
如果你团队里多人共用一套规则:
- 把 Skill 当成“约定俗成的 SOP”
- 让 AI 在每次任务开始先加载对应 Skill,会稳定很多
function calling
function calling是模型API中的一种能力(如OpenAI的),模型根据对话和已注册的函数描述,输出结构化参数,然后外部系统执行该函数并返回结果。它是实现工具调用的一种常用方式
vibe coding
基于大模型,通过自然语言描述自己的需求,然后ai会直接生成对应的代码程序
上面的概念搞清楚以后就可以做些好玩的东西了,比如这个就是很好的例子,只要有好的idea都可以自己动手去干。
section 3 【一些问题】
现在大模型已经很强了,多家头部大厂也都出了各自的通用Agent,还有必要去自研吗?
我是这么理解的:在一些特定的场景下,通用Agent是没法满足需求的,这个时候就需要自研,比如你在云厂商开机器挂盘等操作,即使提供mcp也是搞不定的,这个时候就需要二开或者自研,
既然需要自研,该怎么实现agent呢?
想掌握agent就得先理解其设计逻辑,需要了解各个环节设计的原因,
开发agent一定要掌握python吗?
在大模型如此厉害的今天,我觉得编程语言已经不是门槛了,技术平权,不会的大模型都会帮你解惑,你需要了解掌握的是其处理流程。
以上是我的对大模型开发的一些拙见,如有问题可以私信进行探讨!
最后
永远牢记一句话:唯一不变的是变化