当前,AI 的自动化「实现能力」正在迅速增强,代码生成、逻辑补全、测试构建,已经不再是主要瓶颈
目前真正决定效率上限的,正在变成:我们是否能够清晰地定义任务、边界和验收标准
当这些被完整定义后,AI 就可以自动完成实现、验证与修复,直至满足规格约束
这场变化不再是工具升级,而是工程能力结构的迁移。而规范驱动开发,正是这种迁移的实践形式
当前,AI 的自动化「实现能力」正在迅速增强,代码生成、逻辑补全、测试构建,已经不再是主要瓶颈
目前真正决定效率上限的,正在变成:我们是否能够清晰地定义任务、边界和验收标准
当这些被完整定义后,AI 就可以自动完成实现、验证与修复,直至满足规格约束
这场变化不再是工具升级,而是工程能力结构的迁移。而规范驱动开发,正是这种迁移的实践形式
在工程讨论中,一旦提到「大模型应用开发」,立即就会出现一大堆的概念:LangChain / LangGraph、Agent Loop、Tool Calling、Memory 管理、Planning 策略、Orchestration 等等
但现实项目中,大量需求并没有复杂到需要构建运行时系统,很多场景只是希望可以封装一个能力、提供一个结构化的交互,同时可以被稳定复用
对于这类问题,更务实的路径是:不要从零构建 Agent,而是基于通用Agent 进行扩展 —— 通过编写Skills
本文将通过一个真实示例说明,如何仅通过定义一个 Skill,就实现一个完整可用的小型大模型应用
在把一件事交给 AI 之前,我们心里往往有一个隐含期待:“它应该能帮我省点事”
但实际操作中,流程通常是:先解释背景,再说明目标,中途补充"之前没写清楚但很重要"的约束,等 AI 给出结果后,开始修改、校对、推翻重来。做到一半,一个念头会自然浮现:
“这件事,我是不是自己来反而更快?”
如果你有过这种感觉,先别急着怀疑 AI,也别急着怀疑自己。更可能的问题是:我们一开始就在问一个不太对的问题
Most best practices are based on one constraint: Claude’s context window fills up fast, and performance degrades as it fills.
如果你用 Claude Code 做过真实项目,大概率经历过这种事:
问题不全在模型,真正出问题的是一个容易被忽视但很重要的:上下文(Context Window)
Claude Code 官方文档反复强调 context window,但很多人仍然把它当成“聊天长度限制”
实际上,它更像是一种会被污染、会老化、需要管理的工程资源。
如果你已经用过 Agent,可能会有一种很真实的感觉:
好像是会用了,但真让我讲清楚 Agent 是怎么跑起来的,又有点说不明白。
比如:
很多时候,我们是跟着框架把 Agent 跑通了。
可一旦遇到下面这些情况,就会开始有点卡:
这时候你大概率会觉得:Agent 有点像黑盒。
但其实,Agent 真没那么复杂。
如果你愿意把框架先放一边,只看最底层的 API,就会发现:
Agent 本质上,就是几个很普通的东西,被我们拼在了一起。
这篇文章想做的事情也很简单:
不用任何 Agent 框架,只用基础API + Java,一步一步把 Agent 是怎么工作的“摊开来看”。
不追求花哨,只追求你看完之后能说一句:“哦,原来 Agent 是这么回事。”
那我们直接开始。
过去两年,大模型能力的提升有目共睹。
对话越来越自然,推理能力不断增强,看起来几乎“无所不能”。
但在真实的工程实践中,很多人都有类似的感受:
Demo 很惊艳,真正落地却并不轻松。
问题往往不在模型能力本身,而在于:
我们仍然在用早期的工程抽象,承载已经高度复杂的 AI 能力。
本文尝试从工程视角,回顾 AI 应用从「对话」到「Skills」的演进路径。
曾经编写的费用分摊的小程序,如今已焕新升级。我为其接入了AI能力,打造出一个能理解指令、预测操作的智能助手。程序的核心代码由Claude Code协助编写。
现在,通过简单的自然语言就能与它对话。更棒的是,它能预判我的下一步操作,并提前给出提示。预测准确时,只需一键确认即可,让操作效率倍增。
体验地址:https://zhengw-tech.com/expense/ai-chat.html,可以先自行操作体验下
如果大家还有兴趣,下面开始详细介绍功能使用指南~
注:AI 生成,略有调整
在日常开发中,我们经常需要同时处理多个分支:
main 或 develop)feature/*)hotfix/*)大多数人为了同时开发或调试多个分支,会这样做: 再 clone 一份仓库,然后在另一个目录里切换到不同分支。
但这样带来很多问题:
其实,Git 内置了一个优雅的解决方案 —— git worktree。
之前进行过机器学习的数学笔记-回归中,主要是人工计算导数以及更新计算
本次为对应《动手学深度学习》线性回归部分内容,使用PyTorch 来简化实现
找到合适的数据比较麻烦,我们可以自己生成对应的测试用的数据,添加一定的噪声
线性模型:$\mathbf{y}=\mathbf{W}\mathbf{X}+b$,其中 $\mathbf{W}$ 和 $\mathbf{X}$ 都是矩阵
比如可以是$y=w_1x_1 + b$ 也可以是 $y=w_1x_1+w_2x_2+b$ 等等
我们可以根据输入的 $\mathbf{W}$ 和 $b$ ,根据$\mathbf{W}$的形状生成对应高斯分布的$\mathbf{X}$,执行 $\mathbf{y}=\mathbf{W}\mathbf{X}+b$ 获取对应的 $y$ 值
本文主要介绍一下通过Spring AI 来快速实现一个简单的类似OpenAI Agents SDK的功能
具体效果为在application.yml 中配置对应的agent 信息,如
1 | spring: |
使用时,按需注入即可:
1 | @Slf4j |