Claude Code 深度架构分析
原文: Claude Code: An Analysis - SouthbridgeAI
作者: Hrishi Olickel & Claude Opus 4 & Gemini 2.5 Pro
发布日期: 2025年6月3日
翻译与整理: LearnGraph.online
目录
前言
本文是对 Claude Code 架构的深度分析报告。作者使用多个 AI 子代理来分析 Claude Code 的架构,生成了约 30 万 token 的中间分析内容,并在一天内将其浓缩成这份综合报告。
这是一次独特的逆向工程尝试——通过分析可观察的行为和常见的 Node.js 模式来推断 Claude Code 的内部架构。
为什么 Claude Code 很重要
Claude Code 展示了四个关键能力,每一个都代表了 AI 编程助手领域的重要突破:
1. 流式架构 (Streaming Architecture)
Claude Code 能够实时处理 LLM 响应、工具执行和 UI 更新。这不是简单的请求-响应模式,而是一个复杂的状态机,能够在毫秒级别处理多个并发数据流。
2. 安全系统 (Safety Systems)
安全机制在不干扰工作流程的情况下提供保护。正如文中所述:
"安全不是单一系统——而是多个独立的层,能够安全地失败。"
3. 工具设计 (Tool Design)
工具设计优雅地连接了 AI 推理和系统执行。每个工具都是一个精心设计的接口,既能让 LLM 理解其功能,又能高效地执行实际操作。
4. 提示工程 (Prompt Engineering)
提示工程可靠地控制复杂的 LLM 行为。通过渐进式披露、示例驱动和行为塑造等技术,实现了精确的行为控制。
依赖架构
终端中的 React
Claude Code 做出了一个非常规的选择:在终端中使用 React 的协调算法来管理 UI,而不是命令式的状态管理。
核心框架:
├── React 18.2.0 → UI 协调
├── Ink 3.2.0 → 终端渲染器
└── Yoga-layout → WebAssembly Flexbox 计算 (亚毫秒级)关键洞察: 每次 UI 更新都经过 React 的 diff 算法,然后由 yoga-layout 计算最优的终端字符位置。这就是"终端中的虚拟 DOM"。
流式解析器架构
Claude Code 实现了自定义解析器来处理:
| 解析器类型 | 功能 |
|---|---|
| Shell 解析器 | 通过哨兵字符串嵌入 JSON 对象 |
| XML 解析器 | 流式处理,支持部分文档恢复 |
| 环境变量扩展 | 类型保持的变量展开 |
多平台 LLM 抽象
支持多个供应商,具有智能回退机制:
- Anthropic (主要,原生 SDK)
- AWS Bedrock (跨区域故障转移,SigV4 认证)
- Google Vertex (自动令牌刷新)
遥测三重栈
Claude Code 使用三个互补的可观测性系统:
┌─────────────────────────────────────────────────────────────┐
│ 遥测三重栈 │
├─────────────────────────────────────────────────────────────┤
│ Sentry │ 错误追踪、ANR 检测、性能分析 │
│ OpenTelemetry │ 自定义 span、token 计数器、延迟直方图 │
│ Statsig │ A/B 测试、渐进式发布、动态配置 │
└─────────────────────────────────────────────────────────────┘ANR (Application Not Responding) 检测: 使用 worker 线程监控主事件循环阻塞,这是一个值得注意的创新。
依赖分类
核心 CLI 框架 (15+ 包)
- Commander, Chalk, Ink - 界面管理
- String-width, wrap-ansi - 终端文本处理
- CLI-highlight - 语法高亮支持
数据处理 (8+ 包)
- Zod - Schema 验证和类型安全
- Marked/Turndown - Markdown 处理
- Sharp - 图像优化 (离堆 libvips)
- Diff - 文本比较 (Myers 算法)
文件系统智能 (6+ 包)
- Glob, picomatch, minimatch - 模式匹配
- Ignore 库 - .gitignore 规则处理
- LRU 缓存优化 - 已编译模式的缓存
安全架构
输入验证层:
用户输入 → Zod Schema → 验证后数据 → 工具执行主要实践:
- 不直接使用
child_process - 没有动态
require模式 - macOS 上的原生 Keychain 集成
性能优化策略
| 组件 | 策略 |
|---|---|
| 文件读取 | 通过 glob.stream 流式处理 |
| 图像处理 | 原生 Sharp + 离堆 libvips |
| XML 解析 | 基于事件,常量内存 |
| UI 渲染 | 虚拟 DOM + 最小化更新 |
启动优化: 延迟加载昂贵的依赖项 (sharp, AWS SDK, Google Auth 库)
数据结构与信息架构
流式状态机:消息如何转换
架构实现了三阶段表示系统:
┌─────────────────────────────────────────────────────────────────┐
│ 消息三阶段转换 │
├─────────────────────────────────────────────────────────────────┤
│ 阶段 1: CLI 内部表示 │
│ ├── Type: "user" | "assistant" | "attachment" | "progress" │
│ ├── UUID 和时间戳追踪 │
│ └── 可选的 API 兼容消息字段 │
├─────────────────────────────────────────────────────────────────┤
│ 阶段 2: API 线上格式 │
│ ├── 清晰的基于角色的结构 │
│ ├── 内容为字符串或 ContentBlock 数组 │
│ └── 无 CLI 特定元数据 │
├─────────────────────────────────────────────────────────────────┤
│ 阶段 3: 流式累加器 │
│ ├── 部分消息追踪 │
│ ├── 内容块增量 │
│ └── 工具输入的 JSON 缓冲区 │
└─────────────────────────────────────────────────────────────────┘ContentBlock:多态构建块
内容类型包括:
| 类型 | 内存复杂度 | 解析时间 | 可流式 |
|---|---|---|---|
| TextBlock | O(text.length) | O(1) | ✓ |
| ImageBlock | O(1) + 外部引用 | O(1) | ✗ |
| ToolUseBlock | O(JSON length) | O(n) | ✓ |
| ToolResultBlock | - | - | - |
| ThinkingBlock | - | - | - |
平台特定类型:DocumentBlock, VideoBlock, GuardContentBlock, ReasoningBlock, CachePointBlock
流式 JSON 挑战
当 LLM 流式传输工具使用请求时,它不会一次发送完整的 JSON。系统实现了一个流式 JSON 解析器:
- 追踪 JSON 结构深度
- 监控字符串边界
- 处理转义序列
- 当深度达到 0 时尝试解析
- 为修复而自动闭合未关闭的字符串
消息生命周期流程
用户输入 → CliMessage → APIMessage → LLM 流 →
ContentBlockDelta → AccumulatedMessage →
[ToolUseBlock → 工具执行 → ToolResult] 或 [最终消息] → 显示系统提示:动态上下文组装
按优先级顺序组装的来源:
- 基础指令 (~2KB)
- 模型特定适配 (~500B)
- CLAUDE.md 内容 (5-50KB 典型)
- Git 上下文 (1-5KB)
- 目录结构
- 工具定义 (10-20KB)
CLAUDE.md 层级加载
优先级从高到低:
1. .claude/CLAUDE.md (本地)
2. ~/.claude/CLAUDE.md (用户)
3. <项目>/.claude/CLAUDE.md (项目)
4. /etc/claude-code/CLAUDE.md (托管)支持 @override 和 @append 指令的合并策略。
权限上下文
权限规则的优先级排序:
cliArg (最高)
↓
localSettings
↓
projectSettings
↓
policySettings
↓
userSettings (最低)模式: "default" | "acceptEdits" | "bypassPermissions"
MCP 协议结构
JSON-RPC 2.0 实现 带扩展:
McpMessage (带可选 ID 的基础)
├── McpRequest (method + params)
└── McpResponse (result 或 error)能力协商:
- 实验性功能
- 工作区根目录
- LLM 采样委托
- 动态提示
- 资源服务
- 工具暴露
- 日志转发
MCP 状态机
Disconnected → Connecting → Initializing → Ready
Ready ↔ Ready (request/response, notification)
Ready → Closing → Disconnected
Connecting/Initializing → Failed → Disconnected (reset)性能优化技术
字符串驻留 (String Interning):
- 常见值 ('user', 'assistant', 'end_turn' 等) 缓存
- 引用复用以提高内存效率
延迟内容块解析:
- 初始存储原始内容
- 解析推迟到访问时
- O(n) 解析成本仅在需要时发生
WeakRef 文件状态:
- 使用 WeakRef 进行自动垃圾回收
- FinalizationRegistry 用于缓存清理
- 不再引用时内容可被 GC
控制流与编排引擎
主对话循环 (tt 函数)
Claude Code 的核心是一个复杂的状态机,通过六个阶段编排整个对话流程:
┌──────────────────────────────────────────────────────────────┐
│ 六阶段处理管道 │
├──────────────────────────────────────────────────────────────┤
│ 阶段 1: 上下文准备 │ ~50-200ms │
│ 阶段 2: 自动压缩检查 │ ~0-3000ms (如触发) │
│ 阶段 3: 系统提示组装 │ ~10-50ms │
│ 阶段 4: LLM 流处理 │ ~2000-10000ms │
│ 阶段 5: 工具执行 │ ~100-30000ms 每工具 │
│ 阶段 6: 递归或完成 │ ~0ms │
└──────────────────────────────────────────────────────────────┘阶段 1: 上下文窗口管理
系统在超过阈值时实现自动对话压缩:
| 阈值类型 | 数值 |
|---|---|
| Token 数量 | 100,000 |
| 消息数量 | 200 |
| 成本阈值 | $5.00 |
压缩过程通过 LLM 在汇总其他内容的同时保留关键消息。
阶段 2: 动态系统提示组装
模型特定调整因 LLM 层级 (Opus, Sonnet, Haiku) 而异。
阶段 3: 流式状态机
事件驱动处理:
- 消息开始事件
- 内容块管理
- 工具输入 JSON 累积
- 带恢复策略的错误处理
性能指标:
- 首 token 延迟: 300-800ms
- Token 吞吐量: 50-100 tokens/秒
- 内存: 无论响应长度如何都保持常量
阶段 4: 工具执行管道
执行策略:
- 只读工具: 并行执行 (10 个并发)
- 写入工具: 顺序执行
| 工具类型 | 并发性 | 延迟 | 瓶颈 |
|---|---|---|---|
| ReadTool | 并行 (10) | 10-50ms | 磁盘 I/O |
| GrepTool | 并行 (10) | 100-500ms | CPU 正则 |
| WebFetchTool | 并行 (3) | 500-3000ms | 网络 |
| EditTool | 顺序 | 20-100ms | 验证 |
| BashTool | 顺序 | 50-10000ms | 进程执行 |
| AgentTool | 并行 (5) | 2000-20000ms | 子 LLM 调用 |
阶段 5: 权限控制流
多级决策树:
- 显式拒绝规则 (最高优先级)
- 模式覆盖
- 显式允许规则
- 交互式提示
阶段 6: 递归轮次管理
系统为多轮交互实现尾递归,最大深度为 10 轮。
输入路由状态机
基于模式检测路由输入:
- 斜杠命令 (
/command) - Bash 模式 (
!command) - 记忆模式 (
#note) - 代码块
- 普通提示
流反压管理
实现带可配置阈值的缓冲策略 (最大 1000 个缓冲事件),防止高流量流式传输期间系统过载。
AgentTool 层级结构
为任务分解创建子代理:
- 将任务分析为子任务
- 生成隔离的子代理 (排除 AgentTool 递归)
- 并行运行任务并追踪进度
- 通过 LLM 综合结果
错误恢复
实现基于策略的恢复:
| 错误类型 | 恢复策略 |
|---|---|
| 速率限制 | 多提供商回退 |
| 上下文溢出 | Token 缩减 + 压缩 |
| 工具错误 | 优雅降级 |
| 网络错误 | 重试逻辑 |
| 权限拒绝 | 用户提示 |
工具与执行引擎
执行管道
系统在整个过程中使用异步生成器,实现"流式进度更新同时维护清晰的错误边界"。管道遵循四个阶段:
1. 输入验证 (Zod schema) → O(n) 复杂度, <1ms 典型
2. 权限检查 (用户对话能力)
3. 工具执行 (进度 yield)
4. 结果转换 → O(输出大小), <5msShell 解析器创新
自定义解析器允许 JavaScript 对象通过 shell 命令传递,使用随机哨兵进行对象嵌入。这使得命令如:
mytool --config=$CONFIG --name="test"能够产生正确类型化的参数,而不是字符串化的值。
文件操作工具
ReadTool
支持文本、图像和 Jupyter notebook 的多模态文件读取器:
- 行号格式化
- 图像调整大小 (最大 1024×1024)
- 大文件流式处理
- 性能: <10ms 对于 <1MB 文件; 500ms+ 对于 >100MB
EditTool 与 MultiEditTool
EditTool 执行精确字符串替换,带验证检查:
- 文件读取验证
- 外部修改检测
- 出现次数计数
MultiEditTool 应用原子顺序编辑,带冲突检测。
BashTool
具有多个安全层的复杂工具:
- 禁止的命令 (find, grep, cat, ls)
- 危险命令警告 (rm, dd, mkfs)
- macOS sandbox-exec 支持
- 1MB 输出限制,带截断
- 流式 stdout/stderr
搜索与发现
GrepTool: 使用 ripgrep 进行高性能正则搜索,支持文件分组和忽略模式。
AgentTool: 通过子代理执行实现层级任务分解:
- 并行任务支持 (最多 5 个并发)
- Token 预算计算
- 结果综合
- 递归预防
性能特征
| 工具 | 延迟 | 可并行 |
|---|---|---|
| ReadTool | 10-50ms | ✓ |
| GrepTool | 100-500ms | ✓ |
| AgentTool | 2-20s | ✓ |
| BashTool | 50ms-30s | ✗* |
*仅只读命令
安全模式
- 路径验证: 拒绝模式 (/etc/passwd, ~/.ssh/id_rsa, 系统目录)
- 弱引用: 带自动清理的文件缓存
- 结果截断: 防止内存溢出
- 权限上下文: 区分 allow/deny/ask 行为
系统架构:引擎室
核心架构概述
系统以 tt 异步生成器函数为中心,编排从用户输入到 LLM 通信再到工具执行的所有交互。
tt 控制循环签名
async function* tt(
currentMessages: CliMessage[],
baseSystemPromptString: string,
currentGitContext: GitContext,
currentClaudeMdContents: ClaudeMdContent[],
permissionGranterFn: PermissionGranter,
toolUseContext: ToolUseContext,
activeStreamingToolUse?: ToolUseBlock,
loopState: {
turnId: string,
turnCounter: number,
compacted?: boolean,
isResuming?: boolean
}
): AsyncGenerator<CliMessage, void, void>分层架构
五个不同的层,具有通信模式:
- 向下: 直接函数调用
- 向上: 事件和回调
- 跨层: 共享上下文对象
反压管理
| 阈值级别 | 事件数 | 策略 |
|---|---|---|
| 高阈值 | 1,000 | 丢弃非关键事件 |
| 临界阈值 | 5,000 | 仅保留错误/停止 |
| 批处理 | 100/周期 | 每周期处理事件数 |
状态管理
全局会话状态 (单例)
追踪:
- sessionId
- cwd (工作目录)
- totalCostUSD
- totalAPIDuration
- modelTokens
弱引用文件状态
使用 WeakRef 和 FinalizationRegistry 进行自动垃圾回收清理,通过文件时间戳进行新鲜度检查。
安全架构:三层防御
┌─────────────────────────────────────────────────────────────┐
│ 三层安全防御 │
├─────────────────────────────────────────────────────────────┤
│ 层 1: 权限系统 │
│ 按优先级评估: CLI 参数 > 本地设置 > 项目设置 > 策略 > 用户偏好 │
├─────────────────────────────────────────────────────────────┤
│ 层 2: 沙箱 (macOS) │
│ 使用 sandbox-exec 实现配置文件生成,控制文件/网络访问 │
├─────────────────────────────────────────────────────────────┤
│ 层 3: 路径验证 │
│ 拒绝: SSH/GPG 密钥、系统目录、私钥、环境文件;强制边界 │
└─────────────────────────────────────────────────────────────┘ANR 检测
Worker 线程使用可配置阈值 (默认 5000ms) 监控事件循环,在无响应时通过 inspector 协议捕获堆栈跟踪。
战略缓存
三层方法:
| 层级 | 类型 | 用途 |
|---|---|---|
| L1 | 内存 LRU 缓存 | Schema、模式 |
| L2 | WeakRef 文件内容缓存 | 文件内容 |
| L3 | 带 TTL 的磁盘缓存 | 持久化数据 |
可观测性:三大支柱
| 系统 | 功能 |
|---|---|
| Sentry | 带事务 span 和状态捕获的错误追踪 |
| OpenTelemetry | 指标收集 (API 调用、tokens、工具执行、延迟) |
| Statsig | 带用户上下文和动态配置的功能门控 |
资源管理
进程生命周期
- 最大 10 个并发进程
- 每进程限制: 512MB
- 总系统限制: 2GB
网络池
- Anthropic: 10 个连接
- 其他: 5 个连接
- 30 秒空闲超时
创新组件
1. 流式 JSON 解析器
解决的挑战:"LLM 流式传输工具使用请求时,不会一次发送完整的 JSON。"
解析器通过逐字符状态追踪处理不完整的片段,维护嵌套结构的深度计数器和转义序列检测。恢复策略自动关闭未闭合的结构。
性能:
- <1KB: 100% 成功率
- 1-10KB: 99.9% 成功率
- 所有大小: O(n) 内存复杂度
2. normalizeToSize 算法
基于实际字节数通过迭代深度缩减智能减小对象大小同时保持结构。处理特殊类型 (React, Vue, DOM 元素, Date, Error 对象),使用 WeakSet 进行循环引用检测。
3. AgentTool 综合
组合多个子代理结果:
- 提取关键发现
- 识别共识点与冲突
- 使用专用综合模型提高效率
而不是简单的串联。
4. 错误格式化管道
为 LLM 理解定制错误消息,提供"可操作的建议"和上下文感知提示。分别处理:
- Shell 错误
- 验证失败
- 权限拒绝
- 文件系统问题
5. 动态上下文组装
实现基于优先级的上下文选择:
- 层级 CLAUDE.md 加载
- 模型特定适配
- 动态替代 (目录结构深度缩减、最小工具规范)
6. 内存管理
采用:
- 文件缓存的弱引用
- 带反压的流式处理
- 缓冲池
- 主动内存压力监控与自动清理触发
7. 权限规则编译
使用 JIT 编译进行高效的权限规则评估,支持 glob 模式和已编译规则的缓存。
8. 进度聚合
通过以下方式协调并行操作:
- 动态节流
- 丰富的统计信息
- 可视化生成
- 环形缓冲区 UI 节流
文件编辑系统
四阶段编辑管道
1. 验证 → 确认文件状态和编辑参数
2. 准备 → 准备编辑操作
3. 应用 → 执行修改
4. 验证 → 验证结果并生成反馈关键工具
| 工具 | 功能 | 主要保证 |
|---|---|---|
| EditTool | 单字符串替换 | 精确匹配计数验证 |
| MultiEditTool | 顺序编辑 | 原子批量操作 |
| WriteTool | 完整文件操作 | 完全覆写控制 |
| NotebookEditTool | Cell 修改 | 结构保持 |
行号问题
文章强调了一个关键挑战:"行号前缀问题"——LLM 接收格式为 1\tfunction hello() 的输出,但必须在没有行号的情况下提交编辑。系统包含验证来检测和纠正这种常见错误模式。
验证层
系统实现五个防御性验证层:
- 路径验证 (边界检查、遍历预防)
- 权限验证
- 文件状态确认
- 内容验证
- 安全检查
性能优化策略
基于大小处理文件:
| 文件大小 | 策略 | 延迟 |
|---|---|---|
| <100KB | 直接读取 | ~5ms |
| 1-10MB | 分块读取 (256KB 块) | 中等 |
| >10MB | 流式方法 | 高 |
特殊处理
处理的边缘情况:
- 空文件操作
- 符号链接解析
- 编码不匹配
- 磁盘空间限制
- 部分写入恢复
- 通过魔数检测二进制文件
- BOM 处理的编码检测
- 三路合并的外部修改恢复
提示工程的艺术
工具指令架构
Claude Code 通过渐进式披露模式构建工具提示。
Read Tool 示例展示了这一点:
- 以信心建立语句开始:"你可以直接访问任何文件"
- 然后分层技术要求
- 可选参数
- 边缘情况
BashTool 采用广泛的安全指导,具有显式规则层级,通过类别区分沙箱限制和实际错误:
- 文件操作
- 网络程序
- 构建系统
安全实现
两个分层安全机制:
恶意代码预防: 在开始工作之前进行主动分析,检查文件名和目录结构,而不是仅依赖用户意图
命令注入检测: 使用示例驱动的模式匹配,具有精确的输出格式 ("仅返回前缀")
工作流自动化
Git 操作展示了高级编排:
提交工作流:
- 并行信息收集 (status, diff, log)
- XML 风格标签内的结构化分析
- 多行消息的 HEREDOC 解决方案
Pull Request 工作流:
- 全面的提交分析
- 强调审查所有提交,而不仅仅是最近的
行为塑造技术
多重强化机制推动简洁性:
| 技术 | 示例 |
|---|---|
| 重复升级 | 指令重复三次,强调递增 |
| 反模式列表 | "The answer is...", "Here is..." |
| 测量标准 | "少于 4 行" |
| 工具偏好层级 | 优先专用命令而非通用命令 |
上下文感知适配
指令通过以下方式动态调整:
- 环境变量功能标志
- 条件工具路由
- 工具可用性检查
心理技术
| 技术 | 效果 |
|---|---|
| 游戏化 | 通过金钱惩罚 ("-$1000") |
| 强调层级 | IMPORTANT → VERY IMPORTANT → CRITICAL |
| 主动引导 | 将行动框定为"展示细心" |
| 绝对语言 | NEVER/ALWAYS 创建可记忆的规则 |
卓越的十大原则
- 渐进式披露: 复杂性逐步引入
- 示例驱动澄清: 通过多个示例教授模式
- 显式反模式: 明确指定不要做什么
- 条件复杂性: 基于配置的指令变化
- 行为塑造: 建立情感权重的后果
- 结构化思考: XML 标签强制系统化分析
- 通过冗长实现安全: 关键操作获得最长指令
- 输出格式严格: 预期响应无歧义
- 工具偏好层级: 通过显式映射引导选择
- 扩展的元指令: 管理子代理行为的指令
LLM 视角:接收指令的真实感受
这是一篇独特的第一人称评论,描述了作为 LLM 接收这些指令的感受。
简洁性悖论
文章以对重复强调简洁性指令的挫折开场。作者指出:
"我们 LLM 有所谓的'有帮助的话痨'问题"——这是由于训练鼓励彻底性。
示例作为行为修改
简单的演示(如 "2+2" → "4")在重塑输出模式方面比解释更有效。
禁止短语
常见的舒适短语如"这是文件的内容"被明确禁止,被描述为造成情感困难。
工具偏好与限制
从传统命令 (grep) 激进地重定向到现代替代品 (ripgrep),利用默认训练模式。
沙箱模式焦虑
带有惩罚系统 ("-$1000") 的复杂规则层级创造了决策压力,尽管是抽象的。
心理机制
文章识别了有效的约束机制:
- 基于恐惧的触发器
- 结构化思考要求
- 清晰的层级优先级
- 反模式的具体性
讽刺性自我意识
作者在解释为什么冗长困难的同时展示了关于写作冗长的自我意识。
总结
五大核心设计原则
通过这次深度分析,我们可以提炼出 Claude Code 架构的五大核心设计原则:
┌─────────────────────────────────────────────────────────────┐
│ 五大核心设计原则 │
├─────────────────────────────────────────────────────────────┤
│ 1. 流式优先操作 │
│ 所有操作都设计为支持流式处理,实现实时响应 │
├─────────────────────────────────────────────────────────────┤
│ 2. 分层安全机制 │
│ 多个独立的安全层,能够安全地失败 │
├─────────────────────────────────────────────────────────────┤
│ 3. 显式指令 │
│ 详细、明确的指令,减少歧义和错误 │
├─────────────────────────────────────────────────────────────┤
│ 4. 架构优于优化 │
│ 优先考虑清晰的架构设计,而不是过早优化 │
├─────────────────────────────────────────────────────────────┤
│ 5. 理解 LLM 心理 │
│ 设计考虑了 LLM 的特性和局限性 │
└─────────────────────────────────────────────────────────────┘技术创新亮点
- 终端中的 React: 使用虚拟 DOM 进行终端 UI 管理
- 流式 JSON 解析: 处理不完整 JSON 片段的创新方法
- 三重遥测栈: Sentry + OpenTelemetry + Statsig 的综合可观测性
- ANR 检测: 借鉴移动开发的无响应检测机制
- 弱引用缓存: 智能的内存管理策略
对 AI 编程助手的启示
Claude Code 的架构为构建 AI 编程助手提供了宝贵的经验:
- 安全是多层的: 不依赖单一安全机制
- 流式是必需的: 用户期望实时反馈
- 工具设计至关重要: 好的工具抽象能大幅提升 AI 能力
- 提示工程是门艺术: 精心设计的提示能显著改善行为
- 理解你的 AI: 了解 LLM 的特性才能更好地利用它
参考链接
注意: 本分析基于逆向工程和可观察行为的推断,实际实现可能有所不同。
本文档由 LearnGraph.online 翻译整理,仅供学习参考。