【claude-code】第十步:多代理/多agent

4 月 7 日
阅读 39 分钟
182
基于对 claude-code/src/ 源码的深度分析撰写。覆盖:协调者模式、AgentTool 后台子代理、Teammate/Swarms 长驻代理、TaskClaim 与两套机制的关系。

【claude-code】第九步:MCP协议客户端

4 月 7 日
阅读 6 分钟
124
Go版本claude-code项目github地址Phase 9:MCP 协议客户端 — 完整实现方案基于对 claude-code/src/ 源码的深度分析撰写。一、claude-code 真实实现全景1.1 传输类型(Transport)claude-code 支持 8 种传输方式:类型说明典型场景stdio启动本地子进程,stdin/stdout 通信npx / python 本地 MCP serversseServer-Sent Eve...

【claude-code】第八步:todowrite & task 任务系统

4 月 7 日
阅读 14 分钟
132
对应设计方案:Phase 8 —— TodoWrite + Task 系统结构:先讲清楚设计思路,再看核心代码注意:Task 系统(V2)中的部分特性依赖子 Agent 能力,包括:TaskClaim 原子抢占(多 Agent 竞争同一任务)owner 字段追踪(标记任务归属的 Agent)blocks / blockedBy 任务依赖图(跨 Agent 协调执行顺序)Verification Nudge 中 ...

【claude-code】第七步:skill技能系统

4 月 7 日
阅读 22 分钟
135
对应设计方案:Phase 7 —— Skill 技能系统涵盖:claude-code 源码深度分析、Frontmatter 规范、Go 实现方案、与现有代码的集成点

【claude-code】第六步:记忆系统

4 月 7 日
阅读 12 分钟
131
对应设计方案:Phase 6 —— CLAUDE.md + 持久记忆系统涵盖:claude-code 源码深度分析、记忆目录规范、Go 实现方案、与现有代码的集成点

【claude-code】第五步:上下文压缩

4 月 7 日
阅读 21 分钟
202
Go版本claude-code项目github地址Phase 5 上下文压缩(Compact)实现详解对应设计方案:Phase 5 —— 上下文压缩涵盖:claude-code 源码深度分析、多层压缩机制、Go 实现方案一、claude-code 的整体压缩架构claude-code 的上下文压缩不是单一机制,而是五层防御体系,由轻到重依次触发: {代码...} 各层都有独立的触发条件...

【claude-code】第三步:实现权限系统

4 月 7 日
阅读 15 分钟
139
通用工具层(permissions.ts):对任意工具,检查 alwaysAllow / alwaysDeny 规则列表。规则匹配逻辑在 shellRuleMatching.ts 中实现,支持精确匹配、前缀通配(git:*)和通配符(npm run *)三种模式。

【claude-code】第二步:实现工具系统

4 月 7 日
阅读 7 分钟
124
工具即函数,Schema 即契约。每个工具对 LLM 暴露的不是代码,而是一份 JSON Schema 描述(名称、参数类型、必填项)。LLM 根据 Schema 生成参数 JSON,工具按 Schema 验证并执行。这使得工具可以热插拔,无需改动主循环。

【claude-code】第一步:Agent主循环流程

4 月 7 日
阅读 7 分钟
147
程序启动时并行执行几项预热操作:读取系统级配置(macOS MDM 策略)、钥匙串凭证预取、功能开关初始化(GrowthBook)。这些操作与 CLI 参数解析并行进行,以缩短首次响应时间。

【claude-code】从零开始复刻Go版本claude-code

4 月 7 日
阅读 16 分钟
161
基于本地 claude-code 源码深度分析 + Eino 框架集成语言:Go 1.22+ 框架:Eino(字节跳动 CloudWeGo)

Go服务中的502问题总结

2024-07-17
阅读 7 分钟
3.1k
  服务端开发最常见的问题可能就是HTTP状态码异常了,常见的异常状态码包括404 Not Found,502 Bad Gateway,504 Gateway Time-out等。其中502状态码最常见并且最复杂,本文主要介绍了Go服务可能出现502状态码的几种情况。需要说明的是,本文所有的示例访问链路都是客户端→网关→Go服务,也就是说除了Go服务之...

如何基于Prometheus构建Go服务监控系统

2024-07-17
阅读 6 分钟
2.6k
  在故障处理时,完善的监控系统可以帮助我们快速地发现问题与定位问题。对Go服务而言,如何监控Go服务的核心指标呢?比如协程数、内存使用量、线程数等等。本文将为大家介绍如何基于Prometheus构建Go服务监控系统。

如何排查Go服务假死问题

2024-07-17
阅读 4 分钟
1.9k
  不知道你有没有遇到过这种情况:Go服务看起来正在运行,但是大量HTTP请求却没有任何响应,甚至查不到任何业务日志。我们通常称这一现象为Go服务假死。

深入理解Go语言中的GMP调度模型

2024-07-17
阅读 5 分钟
2.5k
   Go语言天然具备高并发特性,而高并发的基础就是GMP调度模型了,理解GMP调度模型对学习Go语言并发编程至关重要。GMP调度模型解释起来很简单,G(goroutine)代表协程,M(machine)代表线程,P(processor)代表逻辑处理器。

《Go底层原理与工程化实践》发布啦!

2024-07-16
阅读 1 分钟
1.7k
  Go语言是目前的主流语言之一,具有入门快、高性能、开发效率高等特点,目前越来越多的互联网企业都在使用Go语言。另外,原生体系中的Kubernetes、Docker等开源项目就是基于Go语言开发的,想要深入研究云原生技术,就必须精通Go语言。最后,只有对Go语言底层有一定了解,才能开发出高性能、高可用的Go服务,...

Go语言三十讲【目录】

2022-10-24
阅读 1 分钟
15.3k
第一章 Go语言快速入门  第一篇 基本语法  第二讲 数组与切片  第三讲 字符串  第四讲 哈希表MAP  第五讲 结构体与接口  第六讲 反射  第七讲 泛型第二章 并发编程  第八讲 GMP调度模型  第九讲 协程管理  第十讲...

【5-6 Golang】实战—平滑升级

2022-10-24
阅读 7 分钟
3.3k
  Go服务作为常驻进程,想升级怎么办?你是不是想说这还不简单,先杀掉老的服务,再启动新的服务不就完了。可是你有没有想过,在你杀掉老服务的时候,正在处理的请求怎么办?以及老服务退出新服务启动的过程中,客户端请求到达了怎么办?这一简单粗暴的操作,必然会引起瞬时的请求异常。那怎么办,想办法平滑...

【5-5 Golang】实战—Go微服务发现问题分析

2022-10-24
阅读 10 分钟
2.4k
  某个夜黑风高的晚上,突然接收到少量错误日志报警『failed to dial server: dial tcp xxxx:yy: i/o timeout』。原来是微服务客户端请求服务端,连接失败。

【5-4 Golang】实战—Go服务502总结

2022-10-24
阅读 12 分钟
3.6k
问题引入  生产环境Golang服务有时会产生502报警,排查发现大多是以下三种原因造成的:http.Server配置了WriteTimeout,请求处理超时,Golang服务断开连接;http.Server配置了IdleTimeout,且网关和Golang之间使用长连接,Golang服务主动断开连接;Golang服务处理HTTP请求时出现了panic。  本篇文章...

【5-3 Golang】实战—HTTP服务假死问题分析

2022-10-24
阅读 5 分钟
2.1k
  下午15点左右,QA反馈灰度环境大量请求超时。kibana查询灰度网关日志,确实存在部分请求响应时间超过60秒,HTTP状态码504。进一步分析日志,所有504请求的上游地址都是xxxx:80。

【5-2 Golang】实战—dlv调试

2022-10-21
阅读 8 分钟
6k
  Go程序出异常怎么办?pprof工具分析啊,可是如果是代码方面bug等呢?分析代码bug有时需要结合执行过程,加日志呗,可是某些异常问题服务重启之后,可能会很难复现。这时候我们可以断点调试,这样就能分析每一行代码的执行,每一个变量的结果,C语言通常使用GDB调试,Go语言有专门的调试工具dlv,本篇文章主...

【5-1 Golang】实战—Go程序分析利器pprof

2022-10-20
阅读 11 分钟
4k
  不知道你有没有遇到这种情况,Go服务总是是不是的响应非常慢排查发现所有的依赖还都挺快,感觉是Go服务自身慢又不知道怎么慢在哪里;或者说请求甚至完全没响应,Go服务明明在正常运行,请求去哪儿了呢?或者说Go服务内存占用总是居高不下,内存都浪费在哪呢?这些问题都可以通过pprof分析,本篇文章将为你演...

【4-4 Golang】常用标准库—单元测试

2022-10-19
阅读 8 分钟
1.7k
  日常项目开发中,单元测试是必不可少的,Go语言本身就提供了单元测试标准库,很方便我们开展基础测试,性能测试,事例测试,模糊测试以及分析代码覆盖率,本篇文章主要介绍Go单元测试的基本操作。

【4-3 Golang】常用标准库—上下文context

2022-10-18
阅读 8 分钟
2.2k
  Context顾名思义上下文,可用于在整个请求上下文传值以及控制超时,本篇文章主要介绍Context的设计思路,以及基本使用方式。

【4-2 Golang】常用标准库—net/http.client

2022-10-17
阅读 10 分钟
6.7k
  Go语言中,当我们需要访问第三方服务时,通常基于http.Client完成,顾名思义其代表HTTP客户端。http.Client的使用相对比较简单,不过底层有一些细节还是要多注意,包括长连接(连接池问题),可能偶现的reset情况等等。本篇文章主要介绍http.Client的基本使用方式,实现原理,以及一些注意事项。

【4-1 Golang】常用标准库—net/http.server

2022-10-14
阅读 9 分钟
3.4k
  Go语言创建HTTP服务还是非常方便的,基于http.Server几行代码就能实现,本篇文章主要介绍http.Server的基本使用方式以及HTTP请求处理流程。当然,目前很多web服务都基于gin框架实现,所以我们也会简单介绍下gin框架的一些使用套路。

【3-4 Golang】GC—调度与调优

2022-10-13
阅读 10 分钟
3.4k
  关于垃圾回收的基本知识已经介绍的差不多了,只是要知道垃圾回收过程是需要耗费CPU时间的,那就有可能会影响到用户协程的调度,所以在某些场景需要垃圾回收相关调优。本篇文章主要介绍垃圾回收的触发时机,以及垃圾回收器的几种调度模式,只有了解这些才能知道如何调优;最后结合常用的缓存框架bigcache,分...

【3-3 Golang】GC—标记 清理

2022-10-12
阅读 9 分钟
2.7k
  上一篇文章我们主要介绍了三色标记法与写屏障技术,基于这些基础,本篇文章将重点介绍垃圾回收的整个处理流程(开启-标记-标记结束-清理),包括标记协程主流程,经典的startTheworld/stopTheworld问题,辅助标记是什么,清理过程等等。

【3-2 Golang】GC—三色标记与写屏障

2022-10-11
阅读 8 分钟
3.4k
  垃圾回收就是找出不再使用的对象并回收这些内存。如何找出呢?这就不得不说一下三色标记法,这是Go语言垃圾回收的基础。本篇文章主要介绍三色标记法,包括三色标记算法,写屏障技术;以及Go语言是如何实现三色标记和写屏障的。

【3-1 Golang】GC—内存管理

2022-10-10
阅读 8 分钟
3.3k
  Go语言为我们做了很多,创建对象不再需要我们手动申请内存,也不用考虑对象使用完后释放内存,这些对开发者来说都是透明的;但是作为一名Go开发者,内存管理和垃圾回收还是有必要深入研究的。毕竟,内存与CPU是程序高效运行的基础。