Files
claude-code/docs/introduction/what-is-claude-code.mdx
claude-code-best a031f892b3 docs: 重写项目介绍,聚焦工程设计与考量
从新人视角重新审视,移除代码实现细节(polyfill/MACRO注入),
增加设计原则分析、架构权衡讨论和导航指引。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-19 22:44:04 +08:00

113 lines
5.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "项目介绍"
description: "Claude Code 是运行在终端中的 agentic coding system。理解它的设计定位、架构选择和核心能力。"
keywords: ["Claude Code", "AI 编程助手", "Agentic Coding", "终端 AI"]
og:image: "https://ccb.agent-aura.top/docs/images/og-cover.png"
---
## 一句话定义
Claude Code 是一个**运行在本地终端中的 agentic coding system**。它不是给建议的聊天机器人——它直接在你的项目目录中读代码、改文件、跑命令、调试程序,拥有完整的 shell 能力。
## 设计定位
理解 Claude Code 的关键在于三个词:
| 定位 | 含义 | 设计影响 |
|------|------|----------|
| **Terminal-native** | 原生 CLI 应用,不是 IDE 插件也不是 Web 界面 | 拥有完整 shell 访问权,但需要自建权限模型和安全沙箱 |
| **Agentic** | AI 自主决定调用什么工具、传什么参数、何时停止 | 不是"一问一答",而是多轮自主决策循环 |
| **Coding system** | 面向软件工程全流程设计 | 工具集覆盖文件操作、命令执行、代码搜索、任务管理 |
### 为什么选择终端
终端不是限制,而是一个有意为之的架构选择。它带来了独特的能力,也带来了对应的代价:
**优势:**
- **完整的 shell 访问** — 可以运行任何命令行工具,无需为每个能力写插件
- **项目原生** — 直接在项目目录工作,天然理解文件系统结构和 git 状态
- **可组合性** — 管道模式(`echo "..." | claude -p`)允许嵌入 CI/CD 和自动化流程
- **低延迟** — 没有 Electron 开销React/Ink 渲染的 TUI 响应极快
**代价:**
- 用户需要适应命令行界面
- 没有 GUI 意味着无法直接展示图片、图表等富内容
- 权限管理的复杂度远高于 IDE 插件(因为能力边界更大)
### 与同类工具的架构差异
| 工具 | 架构模式 | 工具执行方式 | 安全边界 |
|------|----------|-------------|----------|
| **Claude Code** | Terminal-native agentic loop | 直接 shell 执行 | 自建权限模型 + 沙箱 |
| Cursor / Copilot | IDE-integrated autocomplete + chat | LSP / IDE API | IDE 沙箱天然隔离 |
| Aider | CLI chat → git patch | 文件操作为主 | 通过 git diff 约束变更范围 |
| ChatGPT / Claude.ai | Cloud chat + artifacts | 沙箱容器 | 云端容器隔离 |
核心区别Claude Code 把 AI 放在了**与用户相同的权限层级**上。这既是它最强大的地方,也是安全设计最复杂的挑战。
## 端到端:一次任务的生命周期
当你在终端中输入 `bun run dev 有个 TypeScript 报错,帮我修一下` 时,系统经历了什么?
```
用户输入 → REPL 捕获 → 上下文组装 → API 调用 → 流式响应
解析工具调用
权限检查 → 执行工具
结果回传 → 再次调 API
循环直到完成
```
具体到这个报错修复场景,一次典型的 agentic loop
| 步骤 | AI 自主决策 | 工具调用 | 设计考量 |
|------|------------|----------|----------|
| 1 | 先复现报错 | `Bash("bun run dev 2>&1 | head -30")` | AI 自行决定先诊断再修复,而非直接改代码 |
| 2 | 定位到问题文件 | `Read("src/utils/foo.ts")` | 读取而非猜测,保证修改基于最新代码 |
| 3 | 搜索相关类型定义 | `Grep("interface Foo", "src/")` | 跨文件理解依赖关系 |
| 4 | 修改代码 | `FileEdit(old, new)` | 精确替换而非全文重写,保留 git 历史可追溯 |
| 5 | 验证修复 | `Bash("bun run dev 2>&1 | head -10")` | 自主验证是 agentic 系统的关键闭环 |
每一步都是 AI 自主决策的。它决定用哪个工具、传什么参数、何时停止——这就是 "agentic" 的含义。
## 核心设计原则
这些原则贯穿整个系统的设计:
**1. 能力优先,安全兜底**
系统设计的第一步是"让 AI 能做什么",然后才是"如何限制它"。这导致工具系统非常强大(完整 shell但需要配套的权限模型每次敏感操作可配置为需用户确认
**2. 本地优先**
所有代码执行都在本地机器上,不经过云端沙箱。这意味着:
- 用户对数据有完全控制权
- 可以访问本地文件系统、网络、硬件
- 但也需要自己承担安全风险
**3. 流式一切**
从 API 响应到工具执行结果,所有数据都以流的方式处理。这让用户可以在 AI 思考的同时看到进展,也使得长时间运行的任务可以中途取消。
**4. 上下文工程**
系统花大量精力在"给 AI 看什么"上——自动收集 git 状态、项目结构、CLAUDE.md 指令、历史记忆等。上下文的质量直接决定 AI 的表现。
## 它不是什么
理解边界和了解能力一样重要:
- **不是 IDE 插件** — 没有图形界面,不依赖任何 IDE
- **不是 API wrapper** — 它有自己的工具系统、权限模型、上下文工程、会话管理
- **不是聊天机器人** — 输出不是纯文本建议,而是实际的文件修改和命令执行
- **不是无脑执行器** — 每个敏感操作都有权限检查,系统内置规划模式用于复杂任务
## 接下来
- **架构总览** — 了解系统的模块划分和数据流
- **Agent Loop** — 深入理解核心循环的工作机制
- **工具系统** — 了解 AI 拥有哪些工具及其设计考量