Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Claude Code

架构设计

Claude_Code四层架构

  • 引擎层。负责调度,不包含任何逻辑实际操作,只做三件事:
    1、拼prompt
    2、调用tools
    3、决策是继续循环还是结束对话
  • 工具层。统一放置所有的tools,同时定义三个安全属性:这个工具是只读的还是会改东西的?它是否具有破坏性需要额外确认?它能不能和其他工具同时执行?
  • 服务层。包括三样东西:调大模型 API(不管是谁要调,主循环也好、子 Agent 也好,都走这一层)、上下文压缩(后面会详细讲的五步压缩策略)、MCP 协议(和外部工具服务器通信的标准接口)
  • 安全和治理层。权限系统决定哪些操作需要用户确认、哪些可以自动执行;Hook 系统允许在工具执行前后插入自定义行为(比如「每次 git push 前自动跑 lint」);Bash 安全模块会对 Shell 命令做语法级别的分析,检测命令注入、路径逃逸等危险模式,而不是简单地用正则匹配关键词。

Agent工作模式

Tool-Use Loop

  • 节省了原本React中的thought步骤,通过模型直接选择输出仍需要继续调用的工具还是直接回答
    优化点:减少上下文消耗
  • API 原生支持 tool_use。 Claude 的 API 原生支持工具调用,模型可以直接返回 tool_use 类型的响应,不需要用正则表达式从文本中提取「Action」。这消除了 ReAct 的格式解析问题,应用层代码变得极其简洁。
  • Tool-Use Loop 用模型的 end_turn 信号作为终止条件

Plan Mode

通过两阶段工作流区分:先规划、再执行。
架构不变,通过切换模式更改使用工具的范围,输出计划。然后通过用户确认进行更改

prompt

-角色定义和安全红线

  • 行为准则
  • 操作安全
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    仔细考虑操作的可逆性(reversibility)和影响范围(blast radius)。
    一般来说,你可以自由执行本地的、可逆的操作,比如编辑文件或
    运行测试。但对于难以撤销、影响共享系统或有风险的操作,
    请先和用户确认后再执行。

    需要用户确认的高风险操作示例:
    - 破坏性操作:删除文件/分支、删表、rm -rf
    - 难以逆转的操作:force-push、git reset --hard、修改已发布的 commit
    - 对他人可见的操作:推送代码、创建/关闭 PR、发送消息
    - 上传到第三方工具:内容可能被缓存或索引,即使删除也无法撤回

记忆系统

四类型分类

1
2
3
4
5
6
export const MEMORY_TYPES = [
'user', // 用户画像:角色、偏好、知识水平
'feedback', // 行为反馈:该做什么、不该做什么
'project', // 项目动态:在做什么、截止日期、协作信息
'reference', // 外部指针:哪里能找到什么信息
] as const

用户画像

目的:这类记忆让 Agent 的回答因人而异

feedback

记住用户说过「不要做什么」和「做得好继续保持」。这类记忆的关键在于,它不仅记规则本身,还要求记录 Why(为什么) 和 How to apply(怎么应用)

project

记住正在发生什么」,谁在做什么、截止日期是什么、有什么重要决策。这类记忆有一个特殊要求:必须把相对日期转成绝对日期。用户说「周四之前冻结合并」,Agent 要存成「2026-03-05 之前冻结合并」,因为「周四」过几天就没意义了,但「2026-03-05」永远准确。

reference 外部指针

记的是「去哪找什么信息」,Bug 在 Linear 的哪个项目里追踪、Grafana 看板的地址是什么、Slack 的哪个频道能问到相关的人。这类记忆的价值在于,Agent 不需要知道外部系统的具体内容,只需要知道去哪里找。

排除清单

可以从当前代码推导出来的信息,一律不存。包括git历史、git最近的改动、Claude.md、项目中的文件、

评论