提示词工程与上下文工程:让模型看到“对的信息”
提示词工程与上下文工程:让模型看到“对的信息”写 Agent 时,很多人把精力放在“提示词怎么写得更花哨”上 实际上,更影响效果的往往是:在每一步,模型的上下文里究竟放了什么 这就是近来常被提起的“上下文工程(Context Engineering)” 本文先区分提示词工程与上下文工程,再讲系统提示的结构、上下文的选择/压缩/隔离/外置四种手段,提供一个带 token 预算的上下文组装器(Python)与结构化输出校验(Python + Java),最后总结常见错误、检查清单与 FAQ 上下文窗口里的六个组成部分 很多团队有过这样的经历:换了更强的模型,效果只提升了一点;而把检索结果排序调整了一下、把冗长的工具输出裁剪了一下,效果反而明显改善

2026-10-14鱼鱼
MCP 协议入门:给 Agent 一个统一的“工具接口”
MCP 协议入门:给 Agent 一个统一的“工具接口”当 Agent 需要接入越来越多的外部能力——文件系统、数据库、GitHub、内部系统——每个工具都要自己写一套适配代码,非常繁琐 MCP(Model Context Protocol,模型上下文协议) 就是为了解决这个问题而提出的开放协议,由 Anthropic 发布,目标是让“AI 应用”和“外部工具/数据源”之间有一套统一的对接标准 本文从动机出发,讲清楚 MCP 的角色、能力、消息流程,带你用 SDK 写一个最小 Server,再用不依赖 SDK 的方式手写一遍协议交互来理解本质,最后总结安全注意事项、常见坑和 FAQ 从 N×M 到 N+M:Host、Client 与 Server 的分工

2026-10-14鱼鱼
Agent 的评估、测试与可观测性:上线前后都要看得见
Agent 的评估、测试与可观测性:上线前后都要看得见Agent 的输出具有不确定性:同一个输入,两次运行的路径可能不同 传统的“写几个单元测试就放心”在这里行不通 本文介绍如何给 Agent 建立 评估(Evaluation) 与 可观测性(Observability) 体系:怎样拆解评估维度、构建评测集、选择打分方式、记录 Trace,并顺带讨论成本与延迟的护栏 文中给出 Python 的回归评测与 Trace 记录代码、Java 的埋点示例,以及常见坑和检查清单 评估分三层:结果层、过程层、效率层 传统软件的行为大多是确定的:相同输入得到相同输出,单元测试通过就有较强的信心 Agent 有三点不同: 非确定性:模型本身有随机性,同一任务可能走不同路径,甚至有时成功有时失败;

2026-10-14鱼鱼
用 Java + Spring 搭一个简单的 Agent
用 Java + Spring 搭一个简单的 Agent作为 Java 爱好者,很多人会问:Agent 开发是不是只能用 Python?其实不是 Agent 的核心是“调用模型 + 执行工具 + 循环”,用 Java 同样可以优雅地实现,并且能直接复用 Spring 生态里的依赖注入、配置、监控等能力 本文会一步步搭出一个可以扩展的 Agent 骨架:定义工具接口与注册表、封装模型客户端、实现带保护的 Agent 循环、暴露 REST 接口与会话存储,最后给出监控、测试、常见坑与迭代路线 让 Agent 调用 Java 业务能力的两种思路 很多企业的后端系统本身就是 Java 写的:订单、库存、权限、审批流都在 Spring 服务里

2026-10-14鱼鱼
Agent 的安全、权限与沙箱:别让它“闯祸”
Agent 的安全、权限与沙箱:别让它“闯祸”Agent 能调用工具,意味着它能真正改变外部世界:发邮件、删文件、执行命令、花钱 能力越强,风险越大 本文总结 Agent 开发中必须考虑的安全问题与实用的防护手段:先梳理威胁模型,再讲最小权限与分级审批,给出 Python 的统一守卫与路径校验、Java 的权限注解与审批流程,讨论沙箱的配置要点,并用一个具体的注入攻击场景演示防线如何叠加,最后是常见坑、上线检查清单与 FAQ Agent 的安全问题为什么不同于传统应用 传统应用的行为由程序员写死,输入来自用户,风险主要是“用户输入能不能被恶意利用” Agent 多了一层:决定做什么的是模型,而模型的输入里混入了大量不可信内容——网页、邮件、文档、工具返回值、第三方 Server 的描述

2026-10-14鱼鱼
AI 编程工程化迭代中的混沌风险:从规格熵到四个工程控制面
AI 编程工程化迭代中的混沌风险:从规格熵到四个工程控制面过去两年,我们团队把 AI 编程工具真正用进了日常研发:补全式的 Copilot、IDE 里的对话助手,以及能自己读写文件、跑命令的 Agent 收益是实打实的,样板代码、单元测试、脚本、联调、陌生框架的第一版实现,速度都明显提升 但用得越深,我越确信一件事:AI 工程化迭代最危险的地方,不是它“不会写代码”,而是它太会写了 在缺少稳定工程约束的时候,它会持续、高速地产出“单独看都挺合理,放在一起却彼此矛盾”的局部方案 这些矛盾的方案不会立刻表现为一个 Bug 它们表现为一种缓慢累积的混乱:同一个纠正反复被推翻,数据库越改越别扭,代码里一个概念长出两三个名字,线上出事时拼不出一条完整的因果链

2026-10-14鱼鱼
AI 时代的编程语言选型:Python、Go、TypeScript、Rust 与 Java 怎么选
AI 时代的编程语言选型:Python、Go、TypeScript、Rust 与 Java 怎么选“该学哪门语言”“新项目该用什么语言”,这类问题每隔几年就会被重新讨论一次,而大模型的出现让它又多了几个新变量:模型和推理框架主要活在哪个生态里?AI 写代码时哪种语言更省心?Agent 要同时调用几十个工具、开几百个连接,并发模型撑得住吗?本文不做“语言排行榜”,也不宣布谁是赢家,而是从 AI 时代的选型维度出发,深入比较 Python、Go、TypeScript、Rust 四门语言,兼顾这个 Java 爱好者博客的主角 Java,再简要看看 C++ 与 C#,给出同一小任务的代码对照、一张综合对比表、按场景的选型建议、多语言组合架构思路,以及常见坑与 FAQ AI 时代选型新增的七个考量点

2026-10-14鱼鱼