自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 收藏
  • 关注

原创 手写一个 Claude Code(3):从上下文压缩到持久记忆,拆解 Context Compact 与 Memory

本文聚焦Agent长任务中的上下文管理与记忆机制,区分“上下文压缩”与“长期记忆”的本质差异。通过s08 Context Compact四步策略:控制工具结果、归档中间消息、缩短已读结果、生成历史摘要,实现有限上下文中任务持续运行;s09 Memory则解决跨会话知识留存问题。强调落盘≠记忆,需具备检索机制才能复用。二者独立设计,组合使用方能支撑复杂任务的连续性与可恢复性。

2026-09-30 10:42:51 339

原创 手写一个 Claude Code(2):从 TodoWrite 到 Agent Teams,拆解任务管理与执行

围绕 learn-claude-code 的 s05、s06、s10、s11、s13,梳理 TodoWrite、同步子 Agent、持久化任务图、后台命令与 Agent Teams 的分工。详解 ready 判定、两阶段建图、原子认领、计划审批、结果投递和 worktree 整合,用后端重构案例串起完整执行流程。

2026-09-29 14:44:00 233

原创 手写一个 Claude Code(1):从 Agent Loop 到工具、权限、Hooks 与任务规划

从 learn-claude-code 的前五章出发,拆解编码 Agent 的核心闭环:工具调用、消息回传、分发表、权限检查、Hooks 和 TodoWrite。结合 Python 核心代码,补充环境搭建、版本定位、运行验证及常见错误排查,讲清教学实现的能力与边界。

2026-09-28 12:51:07 325

原创 AI Agent 创建完整指南

Agent 技术演进与架构解析 Agent 是融合大模型(LLM)、规划、记忆、工具与执行引擎的智能系统,具备自主决策与闭环执行能力。核心演进路径为:2022年ChatGPT开启对话式AI,2023年AutoGPT定义Agent雏形,2026年随MCP协议标准化进入爆发期。 架构四模块: 规划模块:目标解析、任务分解(链式/树状)、动态调整策略(ReAct/Plan-Act/ToT) 记忆系统:工作记忆(上下文窗口)、短期记忆(会话历史)、长期记忆(向量库/结构化存储) 工具系统:通过Function Ca

2026-07-21 17:19:26 485

原创 Claude 终端命令大全(Claude Code CLI 完整手册)

Claude 终端命令手册摘要 本文全面整理 Anthropic 官方 CLI 工具 Claude Code 的使用指南,包含: 核心命令:交互模式、打印模式启动及参数说明 实用功能:斜杠命令、快捷键、配置文件和权限管理 高阶应用:MCP工具配置、Hooks自动化、实战场景示例 效率技巧:常用命令组合、权限控制、项目记忆文件(CLAUDE.md)配置 安全提示:危险参数(--dangerously-skip-permissions)的使用注意事项 关键功能: 支持管道操作和JSON输出 可指定模型和权限模式

2026-07-17 17:21:49 489

原创 claude code 常用skill安装和使用命令介绍

SKILL是ClaudeCode的可复用能力扩展模块,它封装了特定领域的操作流程和最佳实践,相当于专业工作流模板。安装SKILL能提升效率、降低门槛并实现自动化工作流。文章建议围绕主工作流安装3-5个高频使用的SKILL,避免功能重复和上下文占用。推荐组合包括Superpowers(标准化开发流程)、planning-with-files(复杂任务管理)、TestWriter(测试用例生成)等,并介绍了document-skills(文档处理)、skill-creator(Skill开发工具)和ralph-

2026-06-30 20:39:16 375

原创 ClaudeCode 高效使用技巧2:添加skill

1:创建插件基础目录, 在 ~/.claude/plugin 目录下# 1. 创建插件根目录# 2. 创建插件清单专属目录(仅存放 plugin.json)2:编写插件清单(plugin.json)"description": "用于学习Skill创建的问候插件","name": "你的名字"nameSkill 命名空间,最终调用格式为/命名空间:技能名(如:插件管理器展示的功能描述version:语义化版本号,用于更新管理3:创建 Skill 核心文件插件内所有 Skill 统一放在根目录。

2026-04-30 17:23:56 1017

原创 ClaudeCode 高效使用技巧1:model配置以及几个档位

本文介绍了使用CCSwitch配置和切换Claude模型的方法,包括预设模型设置和命令行切换操作。重点阐述了模型的四个档位特性:主模型(默认全局)、Haiku(轻量极速)、Sonnet(编程全能)和Opus(旗舰深度),通过同一任务的输出差异展示了不同档位的特性差异。文章还提供了模型匹配策略:简单任务用Haiku、日常开发用Sonnet、复杂分析用Opus,并建议在文档中添加模型切换提醒功能。不同档位在速度、成本和推理能力上各有侧重,即使底层模型相同,输出效果也会因档位规则而差异显著。

2026-04-29 16:30:36 2257

原创 windows 不翻墙,本地安装Claude Code

摘要:本文介绍了ClaudeCode的安装配置流程。由于国内网络问题,需改用npm安装并设置镜像源。安装后需验证版本确认成功。配置部分需下载cc-switch工具,选择供应商(如阿里百炼)并填写API Key,同时修改模型映射关系(包括主模型、Haiku、Sonnet、Opus四种类型)。最后说明启动方法和基本指令,包括系统命令(如查看版本、更新)和软件内置指令(如清空对话、切换模型等)。整个过程解决了国内用户安装ClaudeCode的主要障碍。

2026-04-24 08:30:00 758

原创 Linux lvs负载均衡

Linux Virtual Server(LVS)是一个基于Linux内核的开源软件项目,用于构建高性能、高可用性的服务器群集。LVS通过将客户端请求分发到一组后端服务器上的不同节点来实现负载均衡,从而提高系统的可扩展性和可靠性。

2023-08-02 20:00:00 3474

原创 Java NIO 详解

java.nio.Buffer 用于读写数据,是Java NIO读写操作的中间容器。​​​​​​​数据从通道读入缓冲区,从缓冲区写入通道。缓冲区本质上是一块可以写入和读取数据的内存,这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便该块的内存访问​​​​​​​。缓冲区实际上就是一个容器对象/数组。常用的Buffer子类包括:ByteBuffer:ByteBuffer是最常用的Buffer实现类,用于读写字节数据。CharBuffer:用于读写字符数据。

2023-07-28 19:00:00 2771

原创 Java IO(BIO) 总结

java IO BIO

2023-07-26 08:00:00 2160

原创 Spark(1)-- 一文看懂Spark

Spark是一个快速而通用的大数据处理框架,它提供了高效的分布式数据处理和分析能力。spark与Hadoop的关系:Spark虽然不是Hadoop的一部分,但与Hadoop生态系统紧密集成。Spark提供了更快的数据处理和分析能力,具备批处理、流处理、机器学习和图计算等功能,spark可以理解为Hadoop中MapReduce的升级后的计算模型。HadoopSpark类型完整的分布式基础平台,支持计算、存储、调度等分布式计算工具,可用于迭代计算, 交互式计算, 流计算生态系统。

2023-07-24 08:00:00 807

原创 hadoop -- Hbase

HBase是一个分布式、可扩展、面向列的数据存储(百万级别列)、可伸缩、高可靠性、实时读写的NoSQL 数据库。HBase利用 Hadoop的 HDFS作为其文件存储系统, 利用MapReduce 来处理HBase中的海量数据, 利用Zookeeper作为分布式协同服务。

2023-07-12 10:00:00 1267

原创 hadoop --- hive

..Hive 使用HiveQL的建表语句,DDL 来定义表结构。DDL可以用于创建、修改、删除Hive表的元数据,包括表名、列定义、分区定义、存储格式等。这里的发部分语法与标准的SQL建表语句还是相同的。EXTERNAL:可选项, 用于创建外表IF NOT EXISTS : 可选项,如果表已存在,就不创建。与标准SQL用法相同table_name :指定要创建的表名称column1, column2 : 表的列名,以及列的数据类型。

2023-07-11 09:00:00 1046

原创 hadoop --- MapReduce

MapReduce可以分解为Map (映射) + Reduce (规约) , 具体过程:Map : 输入数据集被切分成多个小块,并分配给不同的计算节点进行处理Shuffle and Sort:洗牌和排序,在 Map 阶段结束后,将每个 Mapper 生成的键值对按照键进行排序,并将相同键的值归并在一起,并将相同的键发送给后续的reduceReduce: 规约计算,每个计算节点独立处理它们的键值对,并生成最终的输出结果。

2023-07-05 20:00:00 1817

原创 Hadoop --- HDFS配置与操作

hadoop的配置文件存放目录在 {HADOOP_HOME}/etc/hadoop 下, 与 hdfs相关的配置:新增属性信息: fs.defaultFSfs.defaultFS表示指定集群的文件系统类型是分布式文件系统(HDFS),datanode心跳发送到nameNode的地址。

2023-06-25 11:56:22 2923

原创 Hadoop --- HDFS介绍

HDFS 文件存储系统。适合一次写入,多次读出的场景。HDFS不需要单独安装,安装Hadoop的时候带了HDFS系统。

2023-06-21 17:33:56 2716

原创 大数据hadoop生态技术简介

大数据生态知识体系

2023-06-15 15:46:23 4523

原创 Redis中的缓存穿透、雪崩、击穿

缓存穿透:大量请求根本不存在的key, 应用服务器压力变大缓存雪崩:redis中大量key集体过期,数据库压力变大,服务器崩溃缓存击穿:redis中一个热点key过期(大量用户访问该热点key,但是热点key过期),,数据库的访问压力瞬间激增三者出现三者出现的根本原因:Redis命中率下降,请求直接打在DB上。正常情况下,大量的资源请求都会被redis响应,在redis得不到响应的小部分请求才会去请求DB,这样DB的压力是非常小的,是可以正常工作的。

2023-05-13 16:47:25 968

原创 Java8--Stream的各种用法(二):collect、Collectors

Steam Collectors的使用

2022-11-30 15:08:21 3897

原创 Java8--Stream的各种用法(一)

java8 Stream API

2022-10-25 16:04:00 763

原创 线上问题处理1---CPU飙高问题定位

线上CPU飙高问题定位, top命令详解

2022-07-31 18:39:13 1987

原创 代码简洁3 —— 注释

前段时间在组织代码review时,提到代码可读性问题时,很多人的第一反应竟然是多添加注释。而我始终觉得注释只能是锦上添花,而不能雪中送炭。再多的注释也改变不了代码逻辑组织混乱的现实,反而过多的注释会加重代码阅读的时间。 什么也比不上放置良好的注释来得有用;什么也不会比乱七八糟的注释更能搞乱一个模块;什么也不会比陈旧、提供错误信息的注释更有破坏性 注释是一种必须的恶,只有在编程语言表达能力不够时,我们才需要借助注释来说明代码含义。注释的恰当用法是用来弥补我们...

2022-01-25 17:17:43 1718

原创 代码简洁2 —— 函数、类

读过spring源码的同学一定还记得spring中的核心方法—— refresh() , 它用十几行代码为我们描述了spring容器的启动过程: @Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. prepar

2022-01-25 15:31:36 413

原创 代码简洁1 —— 什么是简洁代码、有意义的命名

最近新入职一家初创公司, 团队不大,工作了一段时间后发现团队中的代码情况很糟糕。团队一共两个产品线,五个开发人员, 每个人一个代码风格,每个人有每个人的代码风格本无可厚非, 但是如果代码没有经过合理的组织,只是机械的堆积功能,那对于以后功能迭代和需求变更会是很灾难性的。所以我打算将几年前看的一本书《代码整洁之道》—— 英文名叫《clean code》 重新再读一遍,也为了不让自己跑偏了。1、首先思考几个问题:我们读代码读的是什么?? 我们写出的代码的作用是什么?? 什么是好代码,...

2022-01-24 17:59:52 1241

原创 MYSQL JSON数据操作

mysql JSON函数

2021-11-29 16:26:41 2066

原创 Mysql replace into 和 update or insert

在用mysql做批量数据同步时, 经常会遇到的一种情况是: 批量获取的数据, 有些需要新增,有些需要修改。 mysql对此提供了两种解决方案REPLACE INTO代替 INSERT INTO INSERT ...ON DUPLICATE KEY UPDATE ...这两种方案, 都需要有主键或唯一索引, 当主键或唯一索引存在冲突时, 会执行修改数据,否则会插入数据。 下面我们具体看一下两种方案。首先我们先创建表和索引:show create table person; -- 查看...

2021-10-12 18:41:38 3631 1

原创 Mysql 锁

部分内容摘录自博客:正确的理解MySQL中让你想到就烦的各种锁 (一)锁分类:1、按照操作粒度划分:表级锁: 每次操作锁住整张表。锁定粒度大,发生锁冲突的概率最高,并发度最低 行级锁:每次操作锁住一行数据。锁定粒度最小,发生锁冲突概率最低,并发度最高 记录锁(RECORD):锁定单个行记录(索引记录),普通认知上的行锁(RR、RC隔离级别) 间隙锁(GAP):锁定索引记录间隙,确保索引记录间隙不变(RR 隔离级别) 临键锁(NEXT-KEY):记录锁和间隙锁的组合,锁住数据的同时..

2021-09-28 17:44:19 983

原创 MySQL MVCC实现原理

什么是MVCC:MVCC 全名Multi Version Concurrency Control 多版本控制, 是指在数据库中为了实现高并发的数据访问,对数据进行多版本处理,并通过事务的可见性来保证事务能看到自己应该看到的数据版本。MVCC 在MySQL Innodb中的实现主要是为了提高数据库的并发性,更好的处理读写冲突问题。MVCC中的几个概念:当前读:读取的是最新版本的数据,且读取是其它并发事务不能修改当前记录,需要对读操作进行加锁。如: select lock in share mo

2021-09-27 19:02:28 816

原创 MYSQL 事务ACID与日志关系

事务相关特性回顾:事务的四个特性: ACIDAtomicity: 原子性,一个事务包含多个操作,要么完全执行所有部分,要么不执行任何操作。如果执行过程发生意外错误,应该支持回滚操作。 Consistency: 一致性,数据库操作前后应该保持某个特征不变 Isolation: 隔离性,事务提交之前,相关数据不能被其他事务访问 Durability: 持久性,事务提交后,修改将被永久保存于数据库中事务的隔离级别:脏读: 实时读取其他事务未提交的数据,数据随时可能会发生修改 不可重复读:..

2021-09-27 09:51:59 630

原创 Mysql系统文件--日志文件、数据文件

系统文件包数据文件、配置文件、pid进程文件、socket网络链接文件,这些文件都可以理解为日志文件。日志文件分类:错误日志(error log) : 记录mysql服务的启停时正确和错误的信息,还记录启动、停止、运行过程中的错误信息。默认开启, 查看命令 --- show variables like '%log_error%' 通用查询日志(general query log) : 记录一般查询语句, 查看命令 --- show variables like '%general%' 中继..

2021-09-26 11:30:50 2601

原创 Java多线程---Phaser

Phaser是Java7新引入的并发API,我们可以将Phaser的概念看成是一个个的阶段, 每个阶段都需要执行的线程任务,任务执行完毕后就进入下一阶段。这里和CyclicBarrier 和CountDownLatch的概念类似, 实际上也确实可以用Phaser代替CyclicBarrier和CountDownLatch。Phaser也是通过计数器来控制, 在Phaser中叫parties, 我们在指定了parties之后, Phaser可以根据需要动态增加或减少parties的值。Phaser常用

2021-07-01 16:37:34 3809 1

原创 java多线程---CyclicBarrier

CyclicBarrier翻译过来也叫栅栏,意思很明显,就是一组线程相互等待,均到达栅栏的时候,再运行,功能与CountDLatch有些相似。CyclicBarrier是可以重复使用的,而之前的CountDownLatch是一次性的。CyclicBarrier允许一组线程相互等待,直到到达某个公共屏障点,屏障点即一组任务执行完毕的时候。CyclicBarrier 与 CountDownLatch的区别CyclicBarrier是可重复使用的, CountDownLatch是一次性的 使用场景, C

2021-06-29 12:05:48 508

原创 java多线程---Semaphore

Semaphore(信号量):是一种计数器, 用来保护一个或多个共享资源的访问。 如果线程要访问一个资源就必须先获取信号量。 如果信号量内部计数器大于0, 信号量减1, 然后允许共享这个资源; 否则,如果信号量的计数器等于0, 信号量将会将线程置于休眠状态,直至计数器大于0。注意: 信号量使用完后,必须释放。Semaphore的常用API: // 构造方法 public Semaphore(int permits) { //permits指定计数器大小 sync

2021-06-28 16:57:49 320

原创 JVM常用指令

1、jpsjps(java process status tool), 用于查看java进程及相关信息,如果你想找到一个java进程的pid,可以使用jps命令代替linux的ps命令。命令格式: jps 【options】 【hostid】options参数:-l : 显示进程ID, 显示主类全名或jar路径 -q :显示进程ID -m :显示进程ID, 显示JVM启动时传给main() 函数的参数 -v : 显示进程ID,显示JVM启动参数hostid : 主机或其他服务器IP

2021-06-26 13:27:41 6116

原创 ES 集群规划和集群调优策略

1、集群规划

2021-05-31 19:25:23 2524

原创 ES分布式架构

ES的架构遵循其基本概念: 一个采用Restful API 标准的高扩展和高可用性的实时数据分析特性:高扩展: 体现在EStia

2021-05-31 14:59:12 1984

原创 ES集成中文分词器: IK 3.0

<?xml version="1.0" encod<!DOCTYPE properties SYST<properties><comment>IK Analy<!--用户可以在这里配<entry key="ext_d<!--用户可以在这里

2021-05-30 17:56:38 963

转载 力扣39:组合总和

给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/combination-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2021-05-28 20:30:27 331

空空如也

空空如也

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

TA关注的人

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