自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 资源 (10)
  • 收藏
  • 关注

原创 04 · 贯穿示例:Ada 的订单接入工作流

本文以Ada搭建订单处理工作流为例,浅析n8n核心概念与角色:从编辑器中创建节点、发布工作流,到外部触发Webhook,经由队列执行引擎逐节点运行,完成加税、调用API、生成摘要等操作。全程覆盖工作流、节点、数据项、凭据、执行等8大概念与11个关键角色,展现HTTP、JSON、API、UI、ID、DB等技术要素的协同运作。

2026-10-08 08:45:53 20

原创 03 · n8n 概念地图:8 个核心概念与 11 个关键角色

本文系统梳理n8n核心概念与关键角色,从“节点”“数据项”“连接”等基础抽象出发,构建工作流架构全景图。通过领域映射与组件职责划分,揭示触发器、执行引擎、凭据管理等11个核心组件如何协同实现事件驱动的工作流编排,为后续深度剖析奠定基础。

2026-10-08 08:45:14 25

原创 02 · n8n 为何存在:从胶水代码到工作流引擎

本文剖析n8n诞生的必然性:在“胶水代码”困境下,传统方案或不可控、或受限于云端、或难扩展。n8n以可自托管、可视化与可编程并重为设计核心,通过节点契约、凭据存储、表达式引擎、触发器与执行历史等机制,将工作流抽象为可复用、可观测、可审计的数据图,真正实现企业级自动化。

2026-10-08 08:07:53 237

原创 01 · n8n 源码解析:认知心智模型指南总览

本文是专栏「n8n 工作流引擎剖析」的第 1 篇。这是一份基于 n8n2.41.0(提交c1463d0e)源码、按"认知心智模型"方法写成的中文学习指南的开篇——先建立全局认知地图,后续文章会陆续深入到 Webhook 接入、执行引擎、表达式引擎、凭据加解密、任务运行器等具体模块的源码细节。n8n2.41.0,提交c1463d0e(2026-09-26),克隆自的浅克隆仓库。下文出现的所有源码路径均相对于该仓库中的packages/目录。

2026-10-08 07:56:14 33

原创 From PV Operations and Monitors to Modern Java Concurrency

How Dijkstra's PV operations and Hoare's monitors map onto modern Java: Semaphore as P/V, synchronized and wait/notify as a Mesa-style monitor, ReentrantLock + Condition, AQS, and pitfalls traced to theory.

2026-10-06 16:46:20 167

原创 从 PV 操作、管程到现代 Java 并发

本文揭示了操作系统中的PV操作与管程思想如何在Java并发中重生:synchronized、wait/notify源自管程,Semaphore即信号量的直接实现,而ReentrantLock与Condition则是显式管程。理解其背后原理,方能掌握为何wait()需置于while循环、为何用notifyAll()等“江湖规矩”。从OS内核的futex到JVM的AQS,层层抽象皆源于同一思想——用结构化方式管理共享资源的访问与同步。

2026-10-06 16:44:19 395

原创 Reverse Proxy: First Principles, from the Bank Edge to the AI Gateway

First principles on the reverse proxy: the only server the client ever sees. Through the bank edge chain Keycloak -> Kong -> OPA -> Spring Boot (TLS, routing, rate limiting), then the same pattern as an AI gateway: model routing, token metering, DLP.

2026-09-30 11:26:24 182

原创 反向代理:从银行边缘网关到 AI 网关的第一性原理

从第一性原理拆解反向代理:它不是负载均衡器的别名,而是客户端唯一能看到的服务器。以银行边缘链路 Keycloak → Kong → OPA → Spring Boot 为例,串起 TLS 终结、路由、限流、审计;再延伸到 AI 网关(模型路由、Token 计量、LLM 响应 DLP)与银行合规场景。

2026-09-30 11:25:18 200

原创 用 PKI 做用户与设备认证:把凭证从「共享秘密」换成「硬件私钥」

本文提出以硬件存储的椭圆曲线密钥取代传统凭证,实现更安全的身份认证。通过私钥永不离开硬件、公钥证书可验证、签名绑定会话挑战等机制,解决共享秘密的三大缺陷:数据库泄露、重放攻击与钓鱼欺骗。选用ECC(如P-256或Ed25519)因密钥小、性能优且广泛支持硬件安全模块。关键在于私钥存于TPM/Secure Enclave等可信环境,配合生物识别与密钥认证(attestation),确保身份真实性。注册阶段依赖带外信任,结合一次性令牌与硬件证明,由CA签发短期证书,最终构建可规模化、抗攻击的零信任认证体系。

2026-09-24 10:34:43 177

原创 Nginx 做反向代理:角色、实现,以及那些会咬人的默认值

本文厘清“Nginx 与反向代理”的范畴关系:反向代理是角色,Nginx 是其实现之一。核心在于理解其事件驱动架构如何实现高并发、连接复用与负载均衡,并揭示 proxy_pass 路径规则、请求头继承机制及缓冲策略的深层影响。重点提醒:斜杠陷阱、动态上游解析、X-Forwarded-For 安全处理与流式场景下的缓冲缺陷,是运维中常见故障根源。

2026-09-24 10:24:52 194

原创 Spring Boot 启动生命周期:内嵌 Tomcat 到底是怎么跑起来的

Spring Boot Web 应用不是把 WAR 丢进独立安装的 Tomcat,而是 java -jar 在同一个进程里同时拉起 JVM、Spring Boot 和内嵌 Tomcat。本文按顺序拆开整个启动过程:可执行 JAR 的结构与构建打包、SpringApplication.run 与容器 refresh 的次序、Tomcat 已初始化与真正开始监听的区别,以及为什么 ApplicationReadyEvent 和就绪探针才是可以接流量的信号。

2026-09-23 17:58:59 521

原创 Playwright:把端到端测试从「玄学」变回工程

Playwright 是微软开源的端到端测试框架,支持 Chromium、Firefox、WebKit 三大浏览器,具备自动等待、重试断言、用户级定位器等特性,有效解决传统 E2E 测试中“等待时机”与“选择器脆弱”问题。其架构采用多 worker 并行运行,每个测试独立上下文,结合网络拦截、录制工具与可视化报告,提升稳定性与开发效率。通过 codegen 录制、setup 登录复用、API Mock 等功能,实现高效、可靠的自动化测试与浏览器任务脚本。

2026-09-23 17:58:07 269

原创 Public Key Infrastructure for User and Device Authentication

Using an ECC key pair held in device hardware as the credential, instead of a password, OTP or bearer token. Why a shared secret cannot do what a private key can; the mechanism, the comparison, and what breaks it.

2026-09-22 14:13:21 207

原创 Nginx as a Reverse Proxy

Reverse proxy is a role; Nginx is one implementation. This walks the two-connection lifecycle everything follows from, fan-out and TLS termination, the Kubernetes dynamic-upstream pitfall (host resolution cached at startup), SSE handling, and a hardening c

2026-09-22 14:12:00 210

原创 Agent、Skill 与 MCP:三层职责的边界在哪里

Agent、Skill、MCP 是三层互相垂直的职责:Agent 是运行时,Skill 是知识包,MCP 是接线协议。本文从第一性原理拆开三者边界、各自独立的失效模式与安全模型,用反例说明缺了某一层会怎样,并给出判别规则与 MCP 部署成本陷阱。

2026-09-22 14:10:47 497

原创 Playwright: Reliable End-to-End Testing for Web Apps

Playwright 是微软开源的浏览器自动化与端到端(E2E)测试框架,一套 API 驱动 Chromium、Firefox、WebKit。本文讲解它消除 flaky 测试的机制:自动等待、可重试的 web-first 断言、面向用户的 getByRole 定位器与隔离的 browser context,并给出配置、storageState 复用登录、page.route 网络打桩、fixtures 与页面对象、Trace Viewer 调试和 CI 分片实践。

2026-09-21 09:59:57 63

原创 Spring Boot Startup Lifecycle: Hosting an Application With Embedded Tomcat

本文梳理 Spring Boot Web 应用的启动生命周期:Gradle bootJar 打包出内嵌 Tomcat 的可执行 JAR,JarLauncher 启动 Start-Class,随后 Servlet 上下文刷新、Tomcat 连接器启动、DispatcherServlet 与 Spring Security 过滤器链注册,最后 ApplicationRunner 执行、就绪探针放行。重点区分 Tomcat initialized 与 application ready 的差别。

2026-09-21 09:58:04 158

原创 CountDownLatch in Java

CountDownLatch 是 JUC 中最小的协调原语:一个一次性、无所有者的倒数计数器,归零时一次释放所有等待线程。本文讲清它的 API 与 AQS 共享模式实现,给出三种用法——等待 N 个任务完成、用 1 个闩当发令枪让 N 个线程同时开跑、带超时的 await——并结合 Spring Boot 启动时并行预热缓存的实例,梳理常见坑与 CyclicBarrier、Semaphore、CompletableFuture 的选型。

2026-09-18 15:36:59 310

原创 User Behaviour Analysis With Tealium and Sentry

User Behaviour Analysis (UBA) leverages Tealium (TMS/CDP) for tracking user actions like page views and conversions, and Sentry (APM/error monitoring) to capture errors, performance issues, and session replays. Tealium enables instrumenting once for multi-

2026-09-18 15:35:40 383

原创 TTY, PTY, and Non-TTY Shell Sessions

TTY、PTY与非TTY的本质区别在于标准流连接的设备类型:TTY为硬件或软件模拟的终端设备,提供行编辑、信号处理、窗口大小等终端特性;PTY是软件实现的伪终端,实际使用中几乎所有的终端会话均为PTY;非TTY则连接管道、文件或套接字,不具终端功能。关键判断依据为isatty()函数。真正影响程序行为的是“是否为TTY”,而非具体实现方式。

2026-09-16 13:13:14 212

原创 uv:用一个工具替换整条 Python 工具链

uv 是由 Astral 开发的统一 Python 工具链,以单个静态二进制替代传统碎片化工具(如 pyenv、pip、poetry 等),实现解释器管理、虚拟环境、依赖锁定与项目构建一体化。通过 uv init 初始化项目,uv add 自动创建环境并生成跨平台的 uv.lock 锁文件,确保本地与 CI 环境一致。其核心优势在于将隐式状态显式化,支持 PEP 723 脚本元数据与无缝迁移,显著提升开发效率与可复现性。

2026-09-16 13:11:03 467

原创 Hidden Reasoning Tokens Are Silently Truncating Your Structured JSON Output

Reasoning models bill hidden chain-of-thought from the same max_tokens budget as the visible answer, so structured JSON truncates intermittently. Diagnose it via reasoning_tokens, then cap reasoning — a 150-token cap beat a bigger one.

2026-09-16 13:08:07 608

原创 12. 完整重演:一句话请求的完整旅程 + 动手练习

本文将八个角色整合为一条连续时间线,详述从按下回车到任务完成的每一毫秒进程:从启动加载、会话初始化,到系统提示装配、LLM请求发出、流式响应接收,直至首次工具调用执行。全程标注关键步骤、部件上场时机与可替换点,附七个动手练习与速查卡,助你深度掌控协作流程。

2026-09-15 08:41:26 214

原创 11. 能力接缝:文件、命令、沙箱、审批、子代理

本文深入解析DSH架构中的“接缝”机制:一个完整的可替换能力需包含服务定义、提供者与消费者三者,缺一不可。通过一次provider替换,即可将Bash、PTY、LSP等能力整体迁移至远程,实现“零代码改动”的环境切换。沙箱采用三档策略(只读/工作区写入/全权),强调文件效果管控,并诚实声明“部分执行”事实。审批系统遵循fail-closed原则,四态输出确保安全可控。子代理接缝设计使Claude Code与Codex成为可调用的独立组件,体现架构的灵活性与可扩展性。

2026-09-15 08:40:34 153

原创 10. 工具注册表与执行管线:一次工具调用要过五道关

一次工具调用要过五道关:模型只看见 ToolSchema(name/description/parameters),execute()、isConcurrencySafe() 等宿主字段绝不泄漏;并发安全默认"不安全",需显式声明;allow/deny/ask 三态决策遵循 fail-closed,审批不可用即拒绝;finalizeContent 快照保证重放一致;Code Mode 下模型直呼原生工具会被直接拒绝。

2026-09-14 13:40:18 448

原创 09. LLM 接缝:把“厂商协议“关进一个可替换的盒子

本文详解 LlmAdapter 八条契约及其对应的真实事故防护,涵盖流式响应顺序、工具参数保真、错误统一处理、单次调用语义、超时兜底、上下文溢出归一化、归属头注入及空回复重试等核心机制。重点解析 llm/stream 水瀑布拦截点前置设计,实现缓存/回放无需改核心逻辑;并通过 prepareCall() 保障配置一致性与重试策略捕获,确保路由热替换下的日志可追溯性与行为确定性。

2026-09-14 13:37:24 293

原创 08. 系统提示装配:模型看见的前缀是被“拼“出来的

本文详解Prompt装配机制中PromptSection的有序拼接逻辑,揭示order约定、complete段落独占系统提示的设计原理,阐明PromptContext与Section分离以保障KV Cache命中率的核心考量,并解析变量插值、工具schema动态筛选与遮蔽机制,实现安全、高效、可预测的提示生成。

2026-09-14 13:33:36 223

原创 07. Agent Loop:一个 turn 到底发生了什么

turn 与 step 的精确定义;inbox 两条队列 next-turn/next-step 与 followup/steer/inject 三个别名;agent/pre-step 这个决定模型看见什么的拦截点;工具调用的并发调度(barrier 与滚动池);取消、错误恢复与压缩重试如何在同一条时间线上共存。

2026-09-11 23:04:40 146

原创 06. 会话日志:唯一真相源,以及“模型可见即已记录“

逐条读 SessionEvent 事件表:消息历史是派生出来的而不是存下来的;turn/step/user/assistant/chunk/tool-call/tool-result 各记什么;为什么连原始流式分片都要落盘;以及那条运行时不变量——任何进入模型请求的东西都必须能从日志重建。

2026-09-11 23:03:21 100

原创 05. 组装层:Profile、Bundle、Patch 与 Agent Preset

讲启动时插件树如何从空列表叠出来:bundle 层→profile 补丁→home 补丁→--patch 覆盖层;dsh --dump-config 为什么是这个项目最该先跑的命令;宿主平面与代理平面这条分界线——谁能拥有注册表、谁只能拥有工具;一个 preset 为什么必须待在带 isolate 的 group 里。

2026-09-11 23:02:13 221

原创 04. Cordis 内核:为什么“一切皆插件“不是口号

拆解 DeepSeek Harness 内核 Cordis:插件即服务、上下文即仓库、inject 声明依赖、类型化事件、注册即可撤销效果五个概念;emit/waterfall/parallel/serial 四种派发模式;waterfall 的 next() 为何是环绕中间件而非回调链;'没有特权核心可打补丁'的代码后果。

2026-09-11 23:00:55 387

原创 03. 概念地图:八个概念、八个角色、一个运行示例

本文系统构建DSH架构全景:以八大核心概念(如插件、可撤销效果、类型化事件等)为基石,定义八类角色(如Cordis内核、Agent Loop等)的职责边界与协作逻辑,通过一张协作总览图揭示启动、会话、回合三级流程。结合12步运行示例,明确“所有模型可见事实皆源于只追加日志”的设计原则,实现架构可复现、可拆解、可替换,为后续深度解析奠定基础。

2026-09-10 18:47:45 156

原创 02. DeepSeek Harness 是什么:定义、边界与生态位置

一句话定义 DeepSeek Harness:模型之外那层可替换的智能体外壳。本文拆解它的两句设计信条各自换来什么,它不是什么(不是模型、不是 IDE、不是又一个 Agent 编排 SDK),它与 Claude Code、Codex、LangGraph、MCP 的关系,以及四个 preset 的定位。

2026-09-10 18:45:51 507

原创 01. 为什么需要 harness:模型再强,也不会自己去读文件

2025年,一个两百行的AI代码助手循环,背后是六个月对上下文超限、工具执行、用户中断、日志追溯等系统工程难题的攻坚。真正的差距不在于模型,而在于“harness”——那层让LLM能理解环境、调用工具、持续工作的外壳。当一体化产品将壳焊死,可替换性、可审计性与可复现性便成奢望。2026年,开源可插拔的harness成为独立品类:一切皆插件,每轮运行可追溯。它不仅是技术基建,更是推动Agent生态从黑盒走向透明、协作与演进的关键。

2026-09-10 18:44:08 231

原创 DeepSeek Harness 深入指南 / DeepSeek Harness Series

本系列深度拆解 DeepSeek Harness(DSH)如何将“模型 + Harness = Agent”从口号落地为可插拔、可审计的智能体架构。通过12篇文章,逐层剖析Cordis内核、组装层、会话日志、Agent Loop等八大关键角色,以“读package.json、改README、跑lint”为例,全程追踪12步执行链,揭示每一步皆可替换的插件化设计。强调“骨架即稳定”,即使API变动,核心思想仍可复用。面向开发者,提供可重演、可定制的Agent构建范式。

2026-09-10 18:43:21 365

原创 MCP 模型上下文协议:十二、自测、练习与源码入口

这是MCP指南系列的收官篇,提供自测题检验理解、按顺序的动手实践(从示例到OAuth)、源码阅读入口、延伸阅读,并说明系列刻意未涉及的领域。旨在将概念转化为实战能力。

2026-09-08 22:00:24 158

原创 MCP 模型上下文协议:十一、完整走查 · 端到端全深度重跑

系列主干的收尾篇:把 Ana 排查滞留订单的那一个请求,端到端、全深度地重跑一遍,看它如何依次穿过宿主、客户端、传输层、服务器与授权层五个组件。全程约 70 秒、两道人工审批闸门、一条完整审计记录——此前各篇讲过的每一个概念,都会在这里被看见正在干活。

2026-09-08 21:03:28 187

原创 MCP 模型上下文协议:十、授权与信任边界 · OAuth 2.1

MCP 授权层:远程服务器如何用 OAuth 2.1(授权码 + PKCE、动态客户端注册、受众绑定)认证用户,本地 stdio 服务器为什么完全没有鉴权、又靠进程边界与最小权限保护。并解释信任模型的核心——模型没有权限,人才有——以及提示注入、令牌透传、混淆代理这些真实攻击面。

2026-09-08 21:00:59 298

原创 MCP 模型上下文协议:九、深入服务器 · 工具、资源与提示

MCP服务器通过工具、资源、提示三个原语分别面向模型、应用和用户,规范各自职责。工具设计应注重描述准确、粒度合理、输出受限,错误信息需让模型可读可修正。服务器可反向请求客户端帮助,遵循最小权限原则,才能让模型高效正确地使用其能力。

2026-09-08 20:58:38 215

原创 MCP 模型上下文协议:八、深入传输层 · stdio 与 Streamable HTTP

深入传输层:stdio 与 Streamable HTTP 各自如何给字节流分帧、HTTP 传输为什么长成现在这样(会话 id、SSE 断点续传),以及各自坏掉时会发生什么。这一层对 MCP 语义一无所知——锚定在贯穿示例的第 0 步与第 6 步。

2026-09-07 13:34:24 469

pro asp.net mvc2 framework

This book is for professional software developers who already have a working understanding of C# and general web development concepts such as HTML and HTTP. Many readers will have background knowledge of traditional ASP.NET (now known as Web Forms, to distinguish it from MVC), so in many places I point out the similarities of and differences between the two ASP.NET technologies. But if you’ve used PHP, Rails, or another web development platform, that’s fine too. To get this most out of this book, you’ll need to have a fair level of passion and enthusiasm for your craft. I hope you’re not satisfied just to throw together any old code that appears at first to work, but instead would prefer to hone your skills by learning the design patterns, goals, and principles underpinning ASP.NET MVC. This book frequently compares your architectural options, aspiring to help you create the highest quality, most robust, simple, and maintainable code possible.

2010-12-04

Understanding the Linux Kernel

Understanding the Linux Kernel helps readers understand how Linux performs best and how it meets the challenge of different environments. The authors introduce each topic by explaining its importance, and show how kernel operations relate to the utilities that are familiar to Unix programmers and users.

2010-12-31

ARM Architecture Reference Manual

ARM Architecture Reference Manual, 研究Arm架构必备

2010-12-31

jQuery Novice to Ninja

jQuery: Novice to Ninja is a compilation of best-practice jQuery solutions to meet the most challenging JavaScript problems. In this question-and-answer book on jQuery, you'll find a cookbook of ready-to-go solutions to help breathe life into your web page. Topics covered include: - Scrolling, Resizing and Animating Webpage elements - Backgrounds, Slideshows, and Crossfaders - Menus, Tabs, and Panels - Buttons, Fields, and Controls - Lists, Trees, and Tables - Frames, Windows, and Dialogs - Adding interactivity with Ajax - Using the jQuery User Interface Themeroller - Writing your own jQuery plug-ins All code used to create each solution is available for download and guaranteed to be simple, efficient and cross-browser compatible.

2010-12-31

Architecting Angular Applications with Redux, RxJS, and NgRx

This book tells you how build build a web app base on angular, ngrx and rxjs.

2018-12-20

Angular Router

The author of Angular router Victor Savkin write this book, explain the the implementation concepts of angular router.

2018-12-20

JQuery 1.41 api

jquery 1.41 api chm 包括jquery核心库,选择器,属性,ajax,css,dom完整的api

2010-12-30

More efficient C#

This book provides practical advice about the features added to the C# programming language in the 2.0 and 3.0 releases, along with advanced features that were not covered in my earlier Effective C#: 50 Specific Ways to Improve Your C# (Addison-Wesley, 2004). The items in More Effective C# reflect the advice I give developers who are adopting C# 3.0 in their professional work. There's a heavy emphasis on generics, an enabling technology for everything in C# 2.0 and 3.0. I discuss the new features in C# 3.0; rather than organize the topics by language feature, I present these tips from the perspective of recommendations about the programming problems that developers can best solve by using these new features.

2010-12-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除