- 博客(130)
- 资源 (13)
- 收藏
- 关注
原创 第四章 07:4.7 本章小结
- 一条主线:四块能力 vs 单轮应答机的四个缺陷(含全章踩坑清单)- 三个判断标准:记忆=回填、安全收口服务端、编排策略匹配确定性- 遗留伏笔:retrievedContext 占位、MemoryVectorStore 不持久化 → 第五章 pgvector
2026-10-19 20:35:13
78
原创 第四章 06:4.6 统一入口 —— analyze() 能力收束
- analyze() 四步:编排 → 澄清返回/报告落盘 → appendMessage 写回记忆(**不重调模型**)- 闭环意义:下一次对话天然「知道」上次分析过什么- 三条验收:report/reportPath、dir reports、history 2 条且最后一条=报告
2026-10-19 20:34:09
67
原创 第四章 05:4.5 Multi-Agent —— 五个专职智能体协作
- 单 prompt 装所有职责的四个问题 → 按职责拆 5 个专职 Agent- 5 条小链:`prompt.pipe(model).pipe(StringOutputParser)`- Fixed Workflow 编排:extract → clarify 短路 → Promise.all 并行 → summary- parseJsonLoose 剥 ```json 围栏 + manual_review 兜底- ⚠️踩坑:**prompt 内 JSON 示例必须 {{ }} 转义**;宽松原则的
2026-10-19 20:33:37
133
原创 第四章 04:4.4 Embeddings —— 让检索理解语义
- 关键词匹配的天花板:「上下文太长怎么办」搜不到「自动裁剪历史消息」- 本地向量模型 Xenova/paraphrase-multilingual-MiniLM-L12-v2(384 维,原生中文)- mean pooling + L2 归一化(点积 = 余弦相似度)- MemoryVectorStore 入库与检索;模糊 vs 精准查询的召回对比实验- ⚠️踩坑:HuggingFace 超时 → hf-mirror(**尾斜杠必须带**);**score 是余弦相似度,越大越相似**(作者曾讲反
2026-10-19 20:33:07
98
原创 第四章 03:4.3 Tools —— 让 Agent 会用工具
- 三个业务工具:query_requirement / read_file / write_file(`tool()` + zod schema)- 工具循环:tool_calls → 执行 → ToolMessage 回灌 → 直到最终回答(上限 5 轮)- safePath 路径沙箱 + 纵深防御:安全判断收口服务端- ⚠️踩坑:**startsWith 的同级前缀漏洞**(workspace2 命中 workspace 前缀)
2026-10-19 20:32:35
40
原创 第四章 02:4.2 Memory —— 让 Agent 记住对话
- `InMemoryChatMessageHistory`(Map\<sessionId, History\>)+ `RunnableWithMessageHistory` 自动回填- `trimMessages` 裁剪:strategy / includeSystem / allowPartial / tokenCounter- ⚠️踩坑:**maxTokens 过小导致整个历史被裁空**——用 promptTokens 证据链(45→46→208→38)破案
2026-10-19 20:31:59
91
原创 第四章:LangChain 进阶 —— 记忆、工具与多 Agent —— 博客索引
- 前三章的能力边界:每次对话都是第一次见面- 第四章要补的四块器官:Memory / Tools / Embeddings / Multi-Agent- 全章任务主线:需求分析智能体- 技术栈全景图 + 学习路径
2026-10-19 20:31:13
184
原创 第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
《AI Agents 开发实践》:第四章 LangChain 进阶 —— 记忆、工具与多 Agent:Java 开发者转型 AI 全栈。
2026-10-19 20:30:16
820
原创 第三章 08:3.10 本章小结
回顾:每一层解决了什么问题本章的核心收获(五个判断标准)后续章节的衔接(RAG / MCP / Agent Runtime)
2026-10-18 22:27:35
40
原创 第三章 07:3.9 能力收束与统一入口
按业务域拆分 Service(RequirementService)统一入口 Controller(POST /api/requirement/extract)前端页面的职责边界(只负责输入、请求、展示)测试文件 requirement.spec.ts(默认 skip,显式开启 E2E)
2026-10-18 22:26:45
60
原创 第三章 06:3.8 工具调用机制的接入
工具的本质:可调用函数(模型负责决策,工具负责执行)tool() 定义工具(name + description + schema + 执行逻辑)bindTools() 绑定工具到模型tool_calls 返回结构的理解(模型声明调用意图)工具执行闭环:声明调用 → 执行工具 → 回填结果 → 生成最终答复工具调用适合解决什么问题
2026-10-18 22:26:00
63
原创 第三章 05:3.7 结构化输出与程序化消费
自由文本输出的局限(程序接不住) 共享字段结构定义(zod schema 入 @autix/contracts) withStructuredOutput() 让模型直接朝着 schema 输出 结构化输出的工程价值(可断言、可消费、可测试)
2026-10-18 22:25:12
131
原创 第三章 04:3.6 基础调用链的构建
pipe() 链式组合(模板 → 模型 → 解析)StringOutputParser 统一输出格式chain.invoke() / chain.stream() / chain.batch()链式调用的具体使用场景什么时候优先上链,而不是继续手写分散调用?
2026-10-18 22:24:18
185
原创 第三章 03:3.5 提示模板化改造
字符串拼接的局限(提示散落、改动分散)最小提示模板定义(系统角色 + 用户输入分离)ChatPromptTemplate.fromMessages() 组装promptPreview 只渲染不调模型(先验证再调用)promptToModel 模板驱动的真实调用
2026-10-18 22:23:39
132
原创 第三章 02:3.4 模型调用基础
统一模型工厂 createChatModel()(避免配置散落)invoke() 一次性返回(对照 RestTemplate.postForObject)stream() 流式调用(SSE,对照 WebClient + Flux)batch() 批量处理(对照 CompletableFuture.allOf)三种调用方式的适用场景
2026-10-18 22:22:38
150
原创 第三章 01:3.3 LangChain 接入前的项目准备
为什么选 LangChain(不重复造轮子)安装依赖到 services/chat配置分层:.env(敏感凭证)+ config/langchain.yaml(运行参数)配置加载器 load-langchain-config.ts烟囱测试验证配置读取
2026-10-18 22:21:33
230
原创 第三章 00:开篇:从「工程底座」到「AI 能力接入」
第一/二/2.5/三章的关系(脚本 → 系统 → 权限 → AI 能力)第三章的目标:把模型能力真正接进服务端整章只围绕一个任务:从需求文本中抽取 action / constraints / entities技术栈全景图(LangChain / NestJS / Next.js)前置条件(Node 24、Bun、API Key)Java 开发者对照(LangChain vs Spring AI)
2026-10-18 22:20:41
233
原创 第 2.5 章 2.5.8:质量关 —— 安全审查、UI/UX 审查与踩坑复盘
1. JWT 密钥源码弱 fallback → 改启动 fail-fast + 高熵密钥 2. 创建用户接口可传 `isSuperAdmin` → 提权通道封堵
2026-10-16 20:48:36
34
原创 第 2.5 章 2.5.7:动态菜单与按钮级权限
- 一套 `hasPermission(code)` 走天下:菜单、按钮、页面全用它- 超管旁路:`isSuperAdmin` 恒 `true`- 菜单常量在前端、权限码在后端,各管各的- 按钮级显隐(新增 / 启禁用 / 分配角色)- 页面级 `RequirePermission`:直接输 URL 越权看到 403 卡片
2026-10-16 20:47:34
102
原创 第 2.5 章 2.5.6:前端登录、Token 无感续签与路由守卫
- 登录链路:`/auth/login` 拿 Token → `/auth/profile` 拿菜单和权限- zustand + persist 存登录态(对照浏览器版 `SecurityContext`)- axios 请求拦截器自动注入 Bearer Token- **401 单飞续签 + 请求重放**:并发 5 个 401 只续签 1 次- 路由组 `(admin)` + 登录守卫(未登录踢回 `/login`)
2026-10-16 20:46:47
67
原创 第 2.5 章 2.5.4-2.5.5:JWT 双 Token 与声明式权限守卫
- JWT 双 Token:access 2 小时 / refresh 7 天,**各自独立密钥**- 三个安全决策:账号密码错误同一提示、`type` 防 Token 混用、刷新时重查库- NestJS 全局守卫 `APP_GUARD`:注册即全站生效- `@Public()` 放行公开接口- `@RequirePermissions('system:user:list')` 声明式鉴权- 无权限返回 **403**、未登录返回 **401** 的区
2026-10-16 20:45:56
65
原创 第 2.5 章 2.5.3:Prisma 落地 —— 建模、迁移与种子数据
- Prisma 是什么(对照 JPA + Flyway Liquibase)- `schema.prisma` 逐段拆解:枚举、字段、`@@map`、`@@id`、`onDelete: Cascade`- 显式关联表:为什么不用 Prisma 隐式多对多- `prisma migrate dev` 生成迁移 + 建 5 张表- 幂等种子数据 `seed.ts`:`upsert` + 先清后灌- Prisma Client 单例(`globalThis` 防止热重载打满连接池)
2026-10-16 20:45:00
171
原创 第 2.5 章 2.5.1-2.5.2:需求澄清 → Spec → Plan + RBAC 三级模型与 5 表设计
- 先澄清需求再动代码:为什么"不写一行代码"的阶段最重要- 明确不做什么(ABAC / 多租户 / 自助注册)- RBAC 三级模型:用户 - 角色 - 权限,为什么是三层- 5 张表设计:3 张实体表 + 2 张显式关联表- 权限码命名规范 `模块:资源:动作`- Spec 和 Plan 拆到"每步只有小决策"
2026-10-16 20:43:59
78
原创 开篇:从「工程底座」到「业务系统」
- 第二章和第 2.5 章的关系(脚手架 → 第一间能住人的房子)- 为什么后台系统必须有 RBAC(权限不是"锦上添花",是"地基")- 本章目标与全貌:数据库 + 后端 + 前端三件套- 技术栈全景图(NestJS / Prisma / Next.js)- 前置条件(Node 24、Bun、PostgreSQL 14)- Java 开发者对照(RBAC vs Spring Security 角色模型)
2026-10-16 20:43:03
144
原创 第二章 2.7:前后端联通 + 踩坑复盘 —— 从“各自跑“到“协同工作“
1. 前后端联通到底要做什么(CORS + API 地址)2. 用 Next.js Server Component 直接 fetch 后端 API3. 环境变量配置:前端和后端怎么管理端口4. 启动验证三步法5. 踩坑复盘:6 个典型坑的现象、原因、解决方案6. tsconfig / package.json / next.config / nest-cli.json 的继承全景7. Java 对照:TypeScript 世界的"家常便饭"在 Java 里对应什么8. 完整架构图:一眼看清我
2026-10-16 20:41:49
108
原创 第二章 2.6:初始化 NestJS 服务端 —— TypeScript 后端框架体验
1. NestJS 是什么?跟 Spring Boot 有什么对应关系2. 如何在 Monorepo 中创建 `@autix/api` NestJS 子包3. `package.json`、`tsconfig.json`、`nest-cli.json` 的完整配置4. CommonJS vs ESM、moduleResolution 的踩坑经验5. 实现 `/health` 和 `/hello` 两个接口6. 前后端跨包引用共享类型
2026-10-16 20:40:58
257
原创 第二章 2.5:初始化 Next.js 客户端 —— TypeScript 全栈的前端选择
Next.js 是什么,Java 开发者如何理解创建 clients/web 目录与 package.jsontsconfig.json 在 Next.js 项目里的特殊配置next.config.ts 里 transpilePackages 的关键作用App Router 的两个核心文件:layout.tsx 与 page.tsx启动 dev server,验证 @autix/contracts 跨包引用成功
2026-10-16 20:39:27
137
原创 第二章 2.4:搭建 Monorepo 骨架 + 共享包 @autix/contracts
- 共享包的设计理念(零依赖、类型稳定、纯类型)- package.json / tsconfig.json 完整代码- `src/index.ts` 5 个核心类型 + 1 个常量- Java 对照:传统 DTO 各写一份 vs 共享包定义一次- 共享包的边界(什么该放、什么不该放)- 验证:`bun run contracts` 构建 + 类型检查
2026-10-15 18:48:10
188
原创 第二章 2.1-2.3:Monorepo + 技术选型 + Bun 包管理器入门
- 为什么要 Monorepo(Maven 多模块对照)- Monorepo 目录结构(`packages/` + `clients/` + `services/`)- 技术选型:Next.js / NestJS / Turbo / Bun- Bun 安装和 workspace 配置(`isolated = true`)- 根 package.json、tsconfig.base.json、turbo.json 详解- 验证环境是否就绪
2026-10-15 18:46:36
185
原创 开篇:从“单机 demo“到“工程化底座“
- 第一章和第二章的关系(脚本 → 系统的跨越)- 第二章的目标:搭建 Monorepo + Next.js + NestJS 骨架- Java 开发者对照(Monorepo vs Maven 多模块、NestJS vs Spring Boot)- 前置条件(Node.js ≥ 20、Bun ≥ 1.0、TypeScript ≥ 5.7)- 技术选型全景图
2026-10-15 18:45:38
765
原创 第一章 1.6:多轮对话与响应解析 —— 生产环境的最后一步
## 本篇知识点1. 多轮对话:让 AI 记住上下文2. Token 限制和对话历史管理3. 响应结构解析:从"能看"到"能接"4. Token 用量的用途(计费、成本统计、限流)5. 错误处理:空消息、特殊字符、prompt 注入6. 完整调用链路总结7. 第一章总结
2026-10-15 18:44:01
210
原创 第一章 1.5:Prompt 组装与参数归一化 —— 工程化的核心
## 本篇知识点1. Prompt 组装:从"一句话"到"结构化指令"2. 参数归一化:不信任任何外部输入3. JSON Schema 校验:最后的防线4. 完整调用链路5. 与 Java 的类比6. Autix 的做法
2026-10-15 18:43:45
208
原创 第一章 1.4:Temperature 控制输出稳定性 —— 让 AI 从“稳定“到“创意“
## 本篇知识点1. 什么是 Temperature2. Temperature 的取值范围3. 不同场景的 Temperature 选择4. 经典陷阱:`??` vs `||`5. 测试用例(3 个场景)6. Temperature 与 System Prompt 的配合
2026-10-13 17:48:54
153
原创 第一章 1.3:System Prompt 定义模型角色 —— 告诉 AI“你是谁“
## 本篇知识点1. 什么是 System Prompt2. System Prompt 的三个要素3. 同一个模型,不同的角色4. 生产环境中的 System Prompt5. Autix 的做法(结构化能力表)6. 测试用例(3 个场景)
2026-10-13 17:47:14
618
原创 第一章 1.1-1.2:基础模型调用与 TypeScript 入门 —— Java 开发者的视角
我们会用 Java 的视角来理解 TypeScript,让你快速上手。
2026-10-13 17:46:21
163
原创 从 0 到 1:我用微信云开发做了个「骑马预约」小程序(会员 / 场务 / 经理全链路)
摘要: 本文针对线下体验行业(如骑马俱乐部、教培、美业等)的数字化需求,提出一套基于uni-app(Vue3)和微信云开发的轻量化解决方案。核心解决四大痛点:占坑防超卖、到场核销、动态规则配置和过期订单自动处理。方案覆盖骑友预约、场务核销、经理排期管理三类角色,支持云开发快速交付(免运维)和传统后台双轨模式。重点解析了占坑逻辑、状态机设计、定时任务等关键技术难点,并说明如何通过调整资源与规则适配不同垂直领域(如台球、宠物店)。适用于中小门店快速上线,开发者可复用80%核心逻辑实现行业定制。
2026-08-11 13:25:27
349
原创 测试数据隔离最佳实践 - 从硬编码到动态生成
本文介绍了测试数据隔离的最佳实践,从硬编码数据转向动态生成。首先分析了硬编码数据的危害,包括测试冲突、数据污染等问题。然后提出数据工厂模式解决方案,通过动态生成唯一数据和自动清理机制实现完全隔离。最后展示了改造效果:100%消除Flaky Test、支持并行执行提速70%。核心要点是使用数据工厂生成唯一测试数据,配合生命周期管理,确保测试间的完全隔离和稳定性。
2026-03-30 07:00:00
177
原创 【无标题】
本文系统阐述了测试团队建设的关键路径,从个人能力到团队协作的跃迁过程。文章首先分析测试团队的演进阶段(个人英雄→团队协作→质量文化)和角色分工,提出分层级的能力矩阵模型(初级到专家)。重点介绍了针对不同级别工程师的培养计划、验收标准和能力要求,涵盖测试基础、自动化、性能测试等核心技能。同时强调质量文化建设,包括质量意识培养、质量活动和团队协作机制。最后提出基于数据驱动的团队效能度量体系(交付效率、测试效率、团队健康)和持续改进循环(PDCA)。测试团队建设的核心在于分层能力培养、全员质量文化、高效协作机制和
2026-03-29 19:00:00
62
原创 测试架构设计:从策略到实现
本文系统介绍了测试架构设计的关键要素和实施策略。主要内容包括: 测试架构的必要性:解决测试代码维护难、执行时间长、环境不稳定等问题,提供统一标准和持续交付支撑。 核心架构要素: 测试金字塔分层策略(单元70%/集成20%/E2E10%) 完整架构体系(策略层、框架层、数据层、执行层、报告层) 技术选型推荐(Jest单元测试、Playwright E2E测试等) 具体实施方法: 单元测试采用AAA模式 集成测试注重数据库隔离 E2E测试模拟完整用户旅程 通过数据工厂和隔离策略管理测试数据 执行优化方案: 并行
2026-03-29 07:00:00
289
项目管理实用工具包.rar
2021-07-30
elasticsearch-analysis-ik-6.5.0.zip
2019-04-21
eclipse sqlitemanager插件
2016-01-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅