avatar
文章
491
标签
109
分类
29
首页
归档
分类
标签
关于
xhj的博客
首页
归档
分类
标签
关于

xhj的博客

08-Thinking-与推理控制
发表于2026-05-08|Claude Code
第 8 篇:Thinking 与推理控制 — 让模型”想”多少 本篇是《深入 Claude Code 源码》系列的第 8 篇。我们将深入分析 Claude Code 如何精细控制模型的推理深度——从 Extended Thinking 的三种模式、Effort 级别系统、ultrathink 关键词触发,到 Advisor 这一”更强模型审阅”机制。 这些机制共同回答了一个核心问题:在速度、质量和成本之间,如何给用户最大的控制权? 为什么需要推理控制?大语言模型的推理能力不是免费的。当模型”想得更深”时,它消耗更多的 token、花费更多的时间、产生更高的成本。但并非所有任务都需要深度推理——重命名一个变量和重构整个模块的架构,需要的思考量天差地别。 Claude Code 面对的工程挑战是:如何让用户(和系统)灵活地在”快速响应”和”深度思考”之间切换,同时确保不同模型版本的行为一致性? 源码中围绕这个问题构建了四个相互关联的子系统: ThinkingConfig — 控制模型是否开启 Extended Thinking 及其模式 Effort — 控制模型的推理努力程度(...
07-Prompt-Cache
发表于2026-05-07|Claude Code
第 7 篇:Prompt Cache — 跨模块的缓存策略如何降低 API 成本 本篇是《深入 Claude Code 源码》系列的第 7 篇。我们将从一个横切视角,解析 Prompt Cache 机制如何贯穿 System Prompt、对话循环、上下文管理三大模块,以及 Fork Agent 如何通过精密的参数对齐实现跨进程缓存共享。 为什么需要理解 Prompt Cache?调用大模型 API 最大的成本来自 input tokens。在一个典型的 Claude Code 交互式会话中,每次用户提问都会把完整的 System Prompt(约 2 万 token)、工具定义(几千 token)、以及之前所有的对话历史一起发送给 API。如果对话进行了 50 轮,每轮平均 5 万 input tokens,那一个会话就消耗 250 万 input tokens。 Anthropic 的 Prompt Caching 机制可以将 重复前缀 的成本降低 90%。服务端会缓存请求前缀(System Prompt + 工具定义 + 消息历史前缀),只要下次请求的前缀字节完全一致,就...
06-上下文管理
发表于2026-05-06|Claude Code
第 6 篇:上下文管理 — 无限对话的秘密 本篇是《深入 Claude Code 源码》系列的第 6 篇。我们将深入分析 Claude Code 如何在有限的 context window 内支撑无限长度的对话——从 token 预算管理、多级压缩策略,到文件状态缓存与 compact 后恢复的设计。 范围说明:上下文的”构建”(System Prompt 组装、CLAUDE.md 注入、git status 获取)已在第 4 篇中覆盖,缓存策略的横切视角将在第 7 篇中展开。本篇聚焦于上下文构建完成后的压缩、清理与恢复——即当 context window 不够用时,Claude Code 如何在不中断对话的情况下释放空间并重建必要的工作上下文。 为什么上下文管理如此重要?LLM 的 context window 是有限的。Claude 的模型通常有 200K token 的窗口(部分模型支持 1M),看起来很大,但在实际使用中消耗极快: 一次 System Prompt 可能占 5K-15K token 用户附带的 CLAUDE.md 文件可能占 3K-10K token...
05-对话循环
发表于2026-05-05|Claude Code
第 5 篇:对话循环 — query.ts 如何驱动一次完整的 AI 交互 本篇是《深入 Claude Code 源码》系列的第 5 篇。我们将深入 query.ts 这个 1729 行的核心文件,揭示一次完整的 AI 对话是如何被驱动的——从消息组装、API 调用、工具执行到错误恢复,理解这个 Agent 运行时的”心跳”。 为什么需要理解对话循环?如果把 Claude Code 比作一个人体,那 query.ts 就是它的心脏——对话循环的编排入口。当然,心脏需要血管系统才能工作:重试逻辑在 services/api/withRetry.ts,工具执行在 services/tools/,停止钩子在 query/stopHooks.ts,环境配置在 query/config.ts。本篇会覆盖这个完整的”循环系统”,而不仅仅是 query.ts 一个文件。每一次用户提问,都会触发这个循环: 1用户输入 → 组装消息 → 调用 API → 模型返回 → 执行工具 → 结果回传 → 模型继续... 这个循环看似简单,但实际的工程复杂度远超预期。一个生产级的 AI 对话循环需要处理...
04-System-Prompt-工程
发表于2026-05-04|Claude Code
第 4 篇:System Prompt 工程 — 精密控制模型行为的提示词体系 本篇是《深入 Claude Code 源码》系列的第 4 篇。我们将深入 constants/prompts.ts(约 915 行)这个核心文件,揭示 Claude Code 如何通过精心设计的 System Prompt 架构,在「精确控制模型行为」和「最大化 Prompt Cache 命中率」之间取得平衡。 为什么 System Prompt 值得单独一篇?在大多数 AI 应用中,System Prompt 就是一段硬编码的字符串。但在 Claude Code 这样的生产级 AI Agent 中,System Prompt 是一个工程系统: 它不是一段话,而是十几个独立模块的组装结果 — 每个模块有独立的生命周期和缓存策略 它直接影响 API 成本 — Anthropic 的 Prompt Cache 机制可以大幅降低重复 token 的费用,但前提是 prompt 前缀保持稳定 它是模型行为的根基 — 代码风格约束、安全指令、工具使用优先级、输出格式,全部编码在这里 它有内外版差异 — 通过...
03-状态管理
发表于2026-05-03|Claude Code
第 3 篇:状态管理 — React 与非 React 世界的状态桥接 本篇是《深入 Claude Code 源码》系列的第 3 篇。我们将深入分析 Claude Code 如何用一个 35 行的极简 Store 实现,桥接 React UI 与非 React 业务逻辑之间的状态管理,并理解三层状态架构的设计哲学。 为什么状态管理值得单独一篇?Claude Code 面临一个独特的状态管理难题:它既是一个 React 应用,又不完全是。 终端 UI 用 Ink(React for CLI)渲染,组件需要响应式的状态更新。但核心业务逻辑 —— API 调用、工具执行、Agent 编排 —— 运行在 React 树之外。一次工具调用的结果需要同时: 更新 React 组件(显示在终端 UI 上) 被非 React 的 query.ts 对话循环读取 被 Agent 子系统使用(可能运行在隔离的上下文中) 如果用 Redux/Zustand 这类库?太重了。React 内置的 useState/useReducer?无法从 React 树外部访问。模块级全局变...
02-启动优化
发表于2026-05-02|Claude Code
第 2 篇:启动优化 – 毫秒级 CLI 启动的工程艺术 本篇是《深入 Claude Code 源码》系列的第 2 篇。我们将深入 cli.tsx 和 main.tsx 的启动路径,揭示 Claude Code 团队如何将 CLI 启动时间优化到毫秒级别。 为什么启动速度如此重要?CLI 工具的第一印象就是启动速度。用户在终端输入 claude 并回车的那一刻,心理预期是”即时响应”。如果启动需要 2 秒,用户会觉得卡顿;如果需要 5 秒,用户会开始怀疑是不是命令输错了。 对于 Claude Code 这样一个重量级应用——近 1900 个 TypeScript 文件、依赖 React/Ink/Yoga 渲染引擎、需要连接 MCP 服务器和 Anthropic API——要做到毫秒级启动,绝非易事。 本篇将揭示 Claude Code 采用的 6 大启动优化策略: 快速路径(Fast Path):对简单命令实现零 import 返回 侧效果前置(Side-Effect Hoisting):利用模块求值时间并行执行 I/O API 预连接(Prec...
01-项目全景
发表于2026-05-01|Claude Code
第 1 篇:项目全景 — 一个 AI CLI 产品的技术蓝图 本篇是《深入 Claude Code 源码》系列的开篇。我们将从技术栈选型、启动链路、模块依赖三个维度,建立对整个项目的全局认知。 为什么要从全景开始?当你面对一个约 1900 个源码文件(其中 TypeScript 文件约 1884 个)、核心文件超过 4000 行的大型项目时,最大的挑战不是读懂某个函数,而是不知道从哪里开始读。 Claude Code 是 Anthropic 公司开发的 AI 驱动命令行编程助手。它不是一个简单的 API wrapper —— 它是一个完整的 AI Agent 运行时,包含了从终端 UI 渲染、多 Agent 编排、工具系统、权限安全到 Prompt 工程的全技术栈。理解它的全貌,等于理解了一个生产级 AI 产品的完整架构。 本篇将回答三个核心问题: 为什么选择这些技术? — Bun + TypeScript + Ink + Commander.js 的技术栈选型逻辑 程序是怎么启动的? — 从 cli.tsx 到 REPL 的启动链路 代码是怎么组织的? — 约 1900 个...
legal-and-compliance
发表于2026-04-19|Claude Code
法律和合规 Claude Code 的法律协议、合规认证和安全信息。 Starting June 15, 2026, Agent SDK and `claude -p` usage on subscription plans will draw from a new monthly Agent SDK credit, separate from your interactive usage limits. See [Use the Claude Agent SDK with your Claude plan](https://support.claude.com/en/articles/15036540-use-the-claude-agent-sdk-with-your-claude-plan) for details. 法律协议许可证您对 Claude Code 的使用受以下条款约束: 商业条款 - 适用于 Team、Enterprise 和 Claude API 用户 消费者服务条款 - 适用于 Free、Pro 和 Max 用户 商业协议无论您是直接使用 ...
jetbrains
发表于2026-04-18|Claude Code
JetBrains IDEs 在 JetBrains IDE(包括 IntelliJ、PyCharm、WebStorm 等)中使用 Claude Code Claude Code 通过专用插件与 JetBrains IDE 集成,提供交互式差异查看、选择上下文共享等功能。 支持的 IDEClaude Code 插件适用于大多数 JetBrains IDE,包括: IntelliJ IDEA PyCharm Android Studio WebStorm PhpStorm GoLand 功能 快速启动:使用 Cmd+Esc(Mac)或 Ctrl+Esc(Windows/Linux)直接从编辑器打开 Claude Code,或点击 UI 中的 Claude Code 按钮 差异查看:代码更改可以直接在 IDE 差异查看器中显示,而不是在终端中显示 选择上下文:IDE 中的当前选择或标签页会自动与 Claude Code 共享。Read 拒绝规则会阻止对匹配文件的此共享 文件引用快捷方式:使用 Cmd+Option+K(Mac)或 Alt+Ctrl+K(Linux&#x...
1234…50
avatar
xhj
相关学习笔记
文章
491
标签
109
分类
29
Follow Me
公告
欢迎来到我的博客
最新文章
Multi-Agent2026-06-03
Multi-Agent vs Single-Agent2026-06-02
Harness Engineering2026-06-01
25-架构模式总结2026-05-25
24-Skill-Plugin开发实战2026-05-24
分类
  • AI Agent40
  • Algorithm20
  • Backend Dev74
  • Big Data2
  • C/C++2
  • Claude Code71
  • Computer Basics18
  • Computer Network2
标签
Netty PyG Stacking Pandas Neural Networks PCA Maven Tornado PCV RabbitMQ Claude Code Heap Memory Tree dijkstra Redis GAT MySQL Computer Basics JVM Architecture Linear Regression List Kruskal Algorithm Object Identification Message Queue Gradient descent HBOS LOF Grid search OSI Embedding OLSE Prim NMF DataFrame AI Agent Kafka GNN Thread Compilation
归档
  • 六月 2026 3
  • 五月 2026 25
  • 四月 2026 16
  • 三月 2026 20
  • 二月 2026 10
  • 一月 2026 22
  • 十二月 2025 15
  • 十一月 2025 19
网站信息
文章数目 :
491
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By xhj框架 Hexo 8.1.2|主题 Butterfly 5.5.4