- 博客(52)
- 收藏
- 关注
原创 本地 Agent 工作流:分层与切换
本文提出将编码Agent的执行能力与个人工作流资产解耦,通过分层架构实现可替换的执行层。核心是建立统一的能力源(~/agent-home),由同步工具按各Agent格式生成适配文件,配合路由与熔断机制自动切换主备Agent(如ClaudeCode → dsh),确保规矩、Skills、Hooks等积累不因账号失效丢失。关键创新在于:能力分级对齐、可执行的接入标准、可追溯的调用记录,使换Agent从“手动迁移”变为“配置切换”,显著提升稳定性与可维护性。
2026-10-17 18:00:25
309
原创 关于 Jev 的一些想法
Jev是TypeSafe推出的首款「SystemOne模型」,通过放弃自由文本、逐字生成与讨好人类,实现高速、低成本、可校准的决策。它适用于高频、可枚举、无需解释的自动化判定任务,如内容审核、工单分派等,尤其在多维度并行判断时优势显著。其核心价值在于用置信度驱动自动分流,替代规则与大模型冗余调用。但不输出理由,需依赖回流机制复盘。验证需通过离线评测、影子旁路与灰度接入三阶段,重点关注高置信精度、覆盖率与校准误差。当前仍面临数据出境、中文黑产应对与多模态支持等挑战,建议将“语义判断”抽象为可替换接口,灵活迭代
2026-09-22 15:51:26
190
原创 少改一点反而学得更好:LoRA 从零讲起
LoRA通过在大模型旁挂“小盒子”(低秩矩阵)实现高效微调:不改原模型70亿参数,仅训练几十万个小参数,即可精准适配新任务。其核心在于“秩”——修改量本质只需少数独立方向;而“熵”揭示少改反而更优:约束自由度避免过拟合与遗忘,使模型在小数据下表现更稳。本质上,r是信息注入的闸门,既省显存,又保护预训练知识。
2026-09-12 15:30:08
119
原创 Pi 一个你能按自己工作流重塑的编码 agent
Pi是一款开源的极简编码Agent工具,其核心理念是让工具适应工作流而非相反。与ClaudeCode等大而全的封闭式工具不同,Pi仅内置read/write/edit/bash四个基础工具,其他功能全部通过扩展机制实现,支持TypeScript扩展、技能包、提示模板和主题四种扩展方式。通过分层架构(模型层pi-ai/运行时pi-agent-core/CLI层pi-coding-agent)和统一API接口,Pi可连接30+模型提供商并支持五种运行形态(交互TUI/Print模式/JSON模式/RPC模式/S
2026-07-19 17:03:04
618
原创 大模型核心概念梳理
这篇文章系统性地解析了大模型应用开发中的核心概念体系。文章从模型底座(如GPT、Claude等预训练模型)作为无状态推理引擎出发,逐步拆解了上下文(工作记忆)、Harness(运行框架)、Loop(多步迭代)、ToolUse(工具调用)、MCP(标准化工具协议)、Agent(自主执行体)和Skill(领域专长)等关键组件的功能边界与协作关系。重点阐明了"模型本身无状态"的本质特征,以及如何通过上层架构实现记忆、工具调用、多步执行等复杂能力。文章特别强调区分容易混淆的概念,如上下文与记忆、
2026-06-20 14:44:23
382
原创 基于 QUIC 的 HTTP_3
文章摘要 本文深入探讨了基于QUIC协议的HTTP/3技术,对比分析了HTTP/1.1、HTTP/2和HTTP/3的关键差异。主要内容包括: QUIC协议特性:基于UDP实现,支持1-RTT/0-RTT快速连接、多路复用消除队头阻塞、连接迁移等 现状分析:HTTP/1.1仍广泛应用的原因,HTTP/2在弱网下的局限性 HTTP/3挑战:UDP网络支持、CPU开销、基础设施适配等问题 核心改进:QPACK头部压缩、原生TLS 1.3加密、Stream独立传输机制 实践演示:通过Caddy配置对比HTTP/1.
2026-06-13 19:48:03
328
原创 从简单的 CC 显示器入门嵌入式
本文介绍了一个利用Arduino和LCD显示屏制作的Claude Code状态显示器项目,旨在解决同时处理多个Claude窗口时难以快速识别其运行状态的问题。作者通过这个30元成本、半天完成的嵌入式小项目,阐述了嵌入式系统的特点(资源有限、软硬结合、烧录运行),并说明了软件工程师了解嵌入式的价值:打通软硬件认知、提升AIoT时代竞争力、获得即时反馈的乐趣。 项目采用职责分离设计:Arduino固件仅负责显示接收到的文本;Python守护进程汇总多个窗口状态;状态钩子脚本实时上报变化。文章详细描述了硬件选型、
2026-06-10 21:58:54
470
原创 golang 垃圾收集机制
Go语言的垃圾回收(GC)机制是其内存管理的核心,通过自动回收不再使用的内存,简化了开发过程。Go的GC主要采用三色标记法,结合写屏障技术,以减少STW(Stop The World)对程序性能的影响。三色标记法将对象分为白色、灰色和黑色,通过并发标记和清除阶段,确保内存回收的准确性和效率。写屏障技术(如插入写屏障和删除写屏障)则用于解决并发标记过程中可能出现的对象误删问题。Go 1.8版本引入了混合写屏障机制,进一步减少了STW时间,提升了GC性能。总体而言,Go的GC机制通过不断优化,实现了高效的内存管
2025-05-23 15:00:00
1268
4
原创 Golang 范型
泛型(Generic)是一种允许你编写“参数化类型”的编程方式。你可以将类型视为函数的参数,在函数或结构体中使用不同的类型而不重复写代码。这里我们用一个简单的例子介绍一下基本的应用。求和函数的应用你需要写工具类、公共库(如缓存、通用排序等)同样的逻辑重复出现在多个类型中(int、float、string 等)你想限制传入类型的范围,避免滥用 interface{}项目中类型固定(比如订单 ID 永远是int64团队成员不熟悉泛型,增加理解和维护成本为“使用泛型而使用泛型”会让代码变复杂。
2025-05-17 14:52:55
1262
原创 Golang 并发编程
并发(Concurrency)是指在同一时间段内处理多个任务的能力。它并不意味着多个任务同时运行,而是多个任务可以交替进行,共享系统资源以提升程序的响应性和资源利用率。在现代软件开发中,并发编程已经成为提升程序性能和用户体验的重要手段,尤其在处理 I/O 密集型或高并发访问的场景下,能够有效降低资源占用和响应延迟。在 Go 中,Goroutine 是一种比线程更小的调度单位,可以简单地理解为 Go 实现的“轻量级线程”,是 Go 并发的基本执行单元。
2025-04-29 18:00:00
1412
5
原创 Golang 闭包学习
闭包(Closure)是一个函数值,它"捕获"了其外部作用域中的变量,即使这个变量在函数定义时就已经离开了原来的作用域,仍然可以被访问和使用。闭包 = 函数 + 外部变量的引用环境闭包就是一个"记住了外部变量"的函数,它在自己作用域外面也能继续用这些变量。Go 编译器会将变量优先分配在栈上(更快),但如果变量在函数返回后仍然要使用,就必须分配在堆上 —— 这就叫内存逃逸。当你创建一个闭包,并捕获了外部变量。
2025-04-24 23:33:53
1311
原创 Golang 项目平滑重启
平滑重启:平滑重启是指在不中断现有服务的前提下,使用新进程替代现有进程的操作。具体来说,平滑重启包括以下步骤:启动新的进程(通常是同一个服务的升级版)。新进程接管当前的请求和连接。旧进程完成当前任务后,优雅地退出,避免未处理的请求丢失。重启信号:在类 Unix 操作系统中,信号是用来通知进程发生某些事件的一种机制。常用的重启信号包括:SIGHUP:通常用于通知进程重新加载配置或进行平滑重启。在很多应用中,SIGHUP 被用来触发进程的平滑重启。SIGTERM。
2025-04-07 11:36:15
1074
原创 进程、线程、协程与虚拟线程(进程相关)
以一张操作系统的发展历程开始,引入对进程与线程等内容的切入。看完这张图之后,我们也会阐述一下其中与操作系统资源的关系。同时也是为后续的介绍做一些基本元素的介绍操作系统的演进历程不仅是计算机科技进步的缩影,更是进程和线程概念演化的舞台。在早期的简单批处理系统中,作业一次性装入内存运行,那时的作业可以看作是一个单一的进程。随着技术的发展,多道程序系统出现了,它允许将多个作业装入内存,它们可以轮流使用 CPU 资源,这里面的每一个作业也可以理解为是一个独立的进程。继续发展,操作系统引入了分时机制。
2024-03-26 01:25:32
1503
原创 外挂的本质以及进程相关的内容
的本质是一种未经授权的软件,它通过修改或干预正常软件、游戏或系统的运行方式来提供给用户不公平的优势或功能。外挂的实现方法多种多样,其中一种常见的方式确实是通过进程内存入侵。
2024-03-09 20:06:14
2015
原创 关于 AC 自动机
AC 自动机,全称 Aho-Corasick 自动机,是一种用于字符串搜索的算法,由 Alfred V. Aho 和 Margaret J. Corasick 在 1975 年提出。这个算法是为了解决在一个主文本字符串中查找多个模式字符串(或称为“关键词”)的问题,它可以在线性时间内完成搜索,非常高效。在计算机科学中,Aho-Corasick 算法是 Alfred V. Aho 和 Margaret J. Corasick 于 1975 年发明的一种字符串搜索算法。
2024-02-22 00:23:59
5445
原创 分布式事务入门,最终一致性方案
CAP 定理(Consistency、Availability、Partition Tolerance Theorem),也称为 Brewer 定理,起源于在 2000 年 7 月,是加州大学伯克利分校的 Eric Brewer 教授于“ACM 分布式计算原理研讨会(PODC)”上提出的一个猜想。CAP 定理图CAP 分别代表的含义:代表数据在任何时刻、任何分布式节点中所看到的都是符合预期的。
2024-01-28 14:25:03
1816
原创 入门分布式事务,事务协调方法之 2PC & 3PC & XA
事务处理几乎在每一个信息系统中都会涉及,它存在的意义是为了保证系统中所有的数据都是符合期望的,且相互关联的数据之间不会产生矛盾,即数据状态的一致性C按照数据库的经典理论,要达成这个目标,需要三方面共同努力来保障。原子性Atomic):在同一项业务处理过程中,事务保证了对多个数据的修改,要么同时成功,要么同时被撤销。隔离性Isolation):在不同的业务处理过程中,事务保证了各自业务正在读、写的数据互相独立,不会彼此影响。持久性D。
2024-01-21 12:23:53
1167
原创 初探 Reactor、Proactor 线程模型与 BIO、AIO、NIO
BIO/NIO/AIO 这些只是数据传输的输入输出流的一些形式而已。也就是说他们的本质就是输入输出流。只是存在同步异步,阻塞和非阻塞的问题。reactor 和 proactor 呢,Reactors 和 Proactors 是两种用于处理并发网络请求的线程模型。它们主要用于高性能网络服务器和应用程序中,用以有效地管理多个同时发生的连接和请求。总结来说,BIO、NIO和 AIO 是处理 I/O操作的不同方式,分别对应同步阻塞、同步非阻塞和异步非阻塞I/O。
2023-12-18 01:10:18
1516
原创 ScyllaDB 基础入门
接下来我们会从名词介绍入手,再介绍到具体的 ScyllaDB 架构设计。ScyllaDB 是一个可横向扩展的数据库,其采用了 Apache Cassandra 项目的大部分分布式横向扩展设计(该项目采用了 Amazon Dynamo 的分布式概念和 Google BigTable 的数据建模概念)。服务器架构层级:集群(Cluster):Scylla 节点的集合,可视化为环。
2023-12-03 22:03:42
4235
原创 AI 学习笔记(持续更新)
通过让大模型逐步参与将一个复杂问题分解为一步一步的子问题并依次进行求解的过程可以显著提升大模型的性能。而这一系列推理的中间步骤就被称为思维链(Chain of Thought)。
2023-11-26 22:36:30
2133
原创 Flyway 数据库版本管理工具操作指南
FlyWay1、什么是 Flyway ? Flyway 是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Java 代码中,不仅支持 Command Line 和 Java API,还支持 Build 构建工具和 Spring Boot 等,同时在分布式环境下能够安全可靠地升级数据库,同时也支持失败恢复等。 简单来
2021-10-27 00:16:56
1443
原创 WebSocket 协议介绍
WebSocket 协议1、相关技术背景介绍客户端/浏览器 和 服务端在是怎么进行通信的呢 ?当前许多传统应用的 Web 项目是通过简单的 AJAX 来进行通信的,AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 图 1 AJAX 的 WEB 模型但随着当前 Web 应用对数据的实时性以及高效性,例如股票的实时行情、火车票的所剩票数、在线聊天的消息展示,随着要求的越
2021-10-26 23:55:59
4990
原创 杨辉三角 II 解题思路
119、杨辉三角 II本案例复制自LeetCode给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: rowIndex = 3输出: [1,3,3,1]示例 2:输入: rowIndex = 0输出: [1]解题思路:根据DP动态规划,根据上一次DP记录下来的状态,进行倒序算值,因为正序会破坏上一个状态的值,导致往后走不对,所以我们这里采用倒序的方式,不影响上一个位置的值,能够计算成功
2021-07-25 12:55:20
325
原创 ElasticSearch基本操作说明
ElasticSearch基本操作说明文档这里默认ip地址为 http://localhost:9201/ ,更加直观,并且已经在此环境下配置好了es,默认操作工具使用postmanes的结构一般分为 _index/_type/_id/_sourceindex是索引,type是类型,id是id值,source是字段所需要的内容相对_mapping和_settings是_mapping是对mapping结构进行操作,mapping就是type的元数据,每个type都有一个自己的mapping,决定了
2020-12-09 11:23:35
190
原创 SpringBoot整合Dubbo框架简单实例
1、创建项目这是整个项目的目录结构,DubboTest只是起一个聚合模块的作用,除了pom.xml其余的都可以删除2、创建模块依次按照流程创建consumer、provider、service三个模块,一个是消费者一个是提供者一个是公共服务接口。3、配置好maven文件consumer的pom.xml:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0
2020-10-08 10:52:09
486
原创 DP解决硬币零钱问题
322. 零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1 说明:你可以认为每种硬币的数量是无限的。代码:class Solution {
2020-09-20 22:13:47
452
原创 Java线程池知识细说及周边问题
Java线程池知识及详细理解1、引言:为什么要使用线程池?在Java中线程的创建时非常普遍的,也是我们经常用到的。那么对应一个请求我们就去自己创建一个线程,这样是不是显得有点呆板?毕竟在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键
2020-09-06 23:46:19
216
原创 关于三次握手与四次挥手的超详细解释
关于三次握手与四次挥手的超详细解释看了很多博客的文章,再结合自己想要知道的知识,发现还是需要东看一下西看一下,才能明白大概的过程。所以这里博主决定来小小的结合一下自己记录的内容。来写一个容易看明白并且能够应对面试问答的文章。首先我们知道三次握手和四次挥手都是基于IP协议基础上进行的TCP应用。我们这里展示一下TCP报文格式三次握手接下来是三次握手的流程及图片其中的SYN是随机开始的。(1)主机A,发送SYN请求字段请求B主机建立连接,然后创建一个序列号ISN发送给主机B。(2)主机B应答主机
2020-08-30 23:41:05
407
原创 打家劫舍问题集合
打家劫舍 1你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。
2020-08-05 22:10:30
241
原创 经典全排列模板
全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]代码:class Solution { public List<List<Integer>> permute(int[] nums) { List<List<Integer>> res = .
2020-08-01 17:27:28
273
原创 判断二分图(染色,DFS)
判断二分图(染色,DFS)判断二分图给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i,并且graph[i]中没有重复的值。示例 1:输入: [[
2020-07-16 11:21:43
345
原创 买卖股票最佳时机(多例题)
买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。 示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能
2020-07-10 09:48:33
378
原创 路径总和(二叉树递归系列)
路径总和 II给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,4,11,2],
2020-07-07 11:34:26
240
原创 常规动态规划(不同路径)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[ [0,0,0], [0,1,0], [0,0,0]]输出: 2解释:3x3 网格的正中间有一个障碍物。从
2020-07-06 09:40:46
391
原创 最长有效括号(字符串匹配题型)
最长有效括号(字符串匹配题型)输入: "(()"输出: 2解释: 最长有效括号子串为 "()"输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"最直观的栈解法,通过下标减下标值class Solution { public int longestValidParentheses(String s) { int res = 0; Stack<Integer> stack = new Stack<>();
2020-07-04 12:38:20
362
原创 基于docker-compose的ELK环境搭建
基于docker-compose的ELK环境搭建因为最近学习到了需要利用到ELK的环境,因为昨天自己不小心踩了坑,在这里跟大家分享一下快速搭建的方法。简单易上手。也是记录自己的学习过程,以后也可以用到。1、安装Docker具体可参照 https://docs.docker.com/engine/install/centos/ 官方文档,linux下的docker安装我这里做简单介绍1、安装Docker所需要的包:yum install -y yum-utils \ device-mapper
2020-07-03 11:02:02
2600
1
原创 有序数组转二叉搜索树
将有序数组转换为二叉搜索树将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5/** * Definition for a binary tree
2020-07-03 09:56:13
174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅