开源agent源码架构分析之claude(一)

非常想自己来设计一个agent,通过学习langchain也具备了一些知识和能力。但是还是感觉没有办法做到尽善尽美,所以这个系列开始对于已经开源的一些优秀的agent来做一个回顾和学习,看看人家的逻辑链是如何实现的,以及对于一些决策性比较薄弱的是怎么来做使用提示词来,提高和规范对于弱小ai的受用性。

获取源码

源码地址:https://github.com/anthropics/claude-code.git

架构解析:

一、整体架构:

anthropics/claude-code

├── 📄 发布与文档层

│ ├── README.md --- 项目介绍、安装指南

│ ├── CHANGELOG.md --- 版本发布日志 (最新 v2.1.150)

│ └── feed.xml --- Atom 订阅源,供 RSS 阅读器订阅更新

├── 🧩 官方插件层 (13 个插件)

│ └── plugins/

│ ├── agent-sdk-dev/ --- Agent SDK 开发工具包

│ ├── claude-opus-4-5-migration/ --- 模型迁移工具

│ ├── code-review/ --- 自动化 PR 代码审查

│ ├── commit-commands/ --- Git 工作流自动化

│ ├── explanatory-output-style/ --- 教育性输出风格

│ ├── feature-dev/ --- 7 阶段特性开发流程

│ ├── frontend-design/ --- 前端设计质量提升

│ ├── hookify/ --- 自定义 Hooks 规则引擎

│ ├── learning-output-style/ --- 交互式学习模式

│ ├── plugin-dev/ --- 插件开发工具包

│ ├── pr-review-toolkit/ --- PR 审查工具集

│ ├── ralph-wiggum/ --- 自主迭代循环

│ └── security-guidance/ --- 安全提醒 Hook

├── 🤖 GitHub Issue 自动化层

│ ├── .github/workflows/ --- 12 个 CI/CD 工作流

│ ├── scripts/ --- 自动化脚本 (TypeScript/Bash)

│ └── .claude/commands/ --- Claude Code 自定义命令

├── 📋 企业部署与示例层

│ ├── examples/

│ │ ├── settings/ --- 安全策略配置示例 (lax/strict/sandbox)

│ │ ├── mdm/ --- MDM 部署模板 (Jamf/Intune/Group Policy)

│ │ └── hooks/ --- Hook 示例

│ └── .devcontainer/ --- VS Code Dev Container 配置

└── 🏪 插件市场

└── .claude-plugin/marketplace.json --- 13 个官方插件的注册清单

二、核心流程:GitHub Issue 自动化生命周期

这是本项目最核心的自动化流程,完全由 Claude Code Action 驱动:

Issue 创建

├─→ claude-issue-triage.yml 触发

│ │

│ ├── Claude Opus 4.6 执行 /triage-issue 命令

│ ├── 分析 Issue 内容,自动打标签

│ │ ├── 类型: bug / enhancement / question / invalid / duplicate

│ │ ├── 平台: 自动识别

│ │ └── 生命周期: needs-repro / needs-info

│ └── 通过 ./scripts/edit-issue-labels.sh 写入标签

├─→ claude-dedupe-issues.yml 触发 (并行)

│ │

│ ├── Claude Sonnet 4.5 执行 /dedupe 命令

│ ├── 5 个并行 Agent 搜索重复 Issue

│ ├── 过滤误判后通过 comment-on-duplicates.sh 留言

│ └── 统计事件上报 Statsig

├─→ issue-lifecycle-comment.yml 触发 (标签事件)

│ │

│ └── 对生命周期标签 (needs-repro/info/stale/autoclose)

│ 自动留言提醒,告知用户关闭倒计时

├─→ auto-close-duplicates.yml (每日定时 9am UTC)

│ │

│ └── 自动关闭标记为 duplicate 的 Issue

├─→ sweep.yml (每日定时)

│ │

│ └── Bun 脚本扫描所有 Open Issue

│ ├── 超过 14 天无活动 → 标记 stale

│ ├── stale 超过 14 天 → 标记 autoclose

│ └── autoclose 超时 → 关闭 Issue

│ (有 👍 >= 10 的 Issue 豁免)

└─→ lock-closed-issues.yml (每日定时 2pm UTC)

└── 关闭超 7 天的 Issue → 锁定评论

关键设计点

  • Claude Code Action 是核心引擎,工作流通过 anthropics/claude-code-action@v1 调用 Claude 来执行智能任务

  • Workload Identity Federation (OIDC) 认证,无需存储静态 API Key

  • ./scripts/gh.sh 是一个安全沙箱包装器,严格限制允许的 gh 子命令和参数,防止注入

  • CLAUDE_CODE_SCRIPT_CAPS 环境变量控制脚本的能力等级

  • Issue 使用 @claude 在评论中召唤 Claude Code bot

三、插件系统架构

plugin-name/

├── .claude-plugin/

│ └── plugin.json ← 插件元数据 (name, version, author, category)

├── commands/ ← 自定义斜杠命令 (.md 文件 + frontmatter)

│ └── my-command.md ← allowed-tools, description, argument-hint

├── agents/ ← 专用 Agent 定义

│ └── my-agent.md ← 子代理的系统提示

├── skills/ ← Agent Skills (可共享的能力包)

│ └── my-skill/

│ ├── SKILL.md

│ ├── references/ ← 参考资料

│ ├── examples/ ← 示例

│ └── scripts/ ← 辅助脚本

├── hooks/ ← 事件钩子

│ ├── hooks.json ← 钩子配置 (事件->脚本映射)

│ └── *.py ← 钩子处理脚本 (stdin JSON → stdout JSON)

└── README.md

插件类型:

Hookify 规则引擎 (hookify 插件)

最复杂的插件,实现了一个 Python 规则引擎:

  • 用户通过 Markdown 文件定义规则 (.claude/hookify.*.local.md)

  • config_loader.py 解析规则配置

  • rule_engine.py 评估规则 --- 支持 regex_match / contains / equals / starts_with / ends_with 操作符

  • Hook 脚本 (pretooluse.py, posttooluse.py, stop.py, userpromptsubmit.py) 拦截对应事件

  • 支持 block (阻止) 和 warn (警告) 两种动作

四、技术栈

复制代码
  ┌──────────────────┬─────────────────────────────────────┐
  │       组件       │                技术                 │
  ├──────────────────┼─────────────────────────────────────┤
  │ CI/CD            │ GitHub Actions                      │
  ├──────────────────┼─────────────────────────────────────┤
  │ Issue 自动化脚本 │ TypeScript (Bun 运行时)             │
  ├──────────────────┼─────────────────────────────────────┤
  │ Hook 脚本        │ Python 3 / Bash                     │
  ├──────────────────┼─────────────────────────────────────┤
  │ 插件命令/代理    │ Markdown + YAML frontmatter         │
  ├──────────────────┼─────────────────────────────────────┤
  ├──────────────────┼─────────────────────────────────────┤
  │ Dev Container    │ Docker + VS Code                    │
  ├──────────────────┼─────────────────────────────────────┤
  ├──────────────────┼─────────────────────────────────────┤
  │ Dev Container    │ Docker + VS Code                    │
  ├──────────────────┼─────────────────────────────────────┤
  │ API 认证         │ Workload Identity Federation (OIDC) │
  ├──────────────────┼─────────────────────────────────────┤
  ├──────────────────┼─────────────────────────────────────┤
  │ Dev Container    │ Docker + VS Code                    │
  ├──────────────────┼─────────────────────────────────────┤
  │ Dev Container    │ Docker + VS Code                    │
  ├──────────────────┼─────────────────────────────────────┤
  │ API 认证         │ Workload Identity Federation (OIDC) │
  │ Dev Container    │ Docker + VS Code                    │
  ├──────────────────┼─────────────────────────────────────┤
  │ API 认证         │ Workload Identity Federation (OIDC) │
  │ Dev Container    │ Docker + VS Code                    │
  ├──────────────────┼─────────────────────────────────────┤
  │ Dev Container    │ Docker + VS Code                    │
  ├──────────────────┼─────────────────────────────────────┤
  │ API 认证         │ Workload Identity Federation (OIDC) │
  ├──────────────────┼─────────────────────────────────────┤
  │ CI/CD            │ GitHub Actions                      │
  ├──────────────────┼─────────────────────────────────────┤
  │ Issue 自动化脚本 │ TypeScript (Bun 运行时)             │
  ├──────────────────┼─────────────────────────────────────┤
  │ Hook 脚本        │ Python 3 / Bash                     │
  ├──────────────────┼─────────────────────────────────────┤
  │ 插件命令/代理    │ Markdown + YAML frontmatter         │
  ├──────────────────┼─────────────────────────────────────┤
  │ Dev Container    │ Docker + VS Code                    │
  ├──────────────────┼─────────────────────────────────────┤
  │ API 认证         │ Workload Identity Federation (OIDC) │
  ├──────────────────┼─────────────────────────────────────┤
  │ 统计分析         │ Statsig                             │
  └──────────────────┴─────────────────────────────────────┘
  1. 自动化 Issue 管理 --- 从 triage → 去重 → 生命周期 → 自动关闭,全由 Claude 驱动

  2. 丰富的官方插件生态 --- 13 个插件覆盖代码审查、安全、工作流、学习等场景

---------------------------------------------------------------真人分割线-----------------------------------

相关推荐
SuperHeroWu72 分钟前
【HarmonyOS 7】鸿蒙应用 AI Coding 工具链 DevEco Code 到 DevEco CLI
人工智能·华为·ai编程·harmonyos·cli·code
虾壳云官方5 分钟前
openclaw 一键安装教程(2026年6月15最新)
运维·人工智能·windows·自动化·openclaw
不爱土豆唯爱马铃薯5 分钟前
AiPy 是什么?
人工智能
deephub6 分钟前
Flash-KMeans:快速且内存高效的精确 K-Means,可在单张 GPU 进行亿级数据的聚类
人工智能·机器学习·kmeans·聚类·rag
渡众机器人8 分钟前
第八届全球校园人工智能算法精英大赛-算法应用赛-空地协同侦排挑战赛规则
人工智能·算法
前端不太难9 分钟前
从 ChatBot 到 Agent:AI 应用的范式升级
人工智能
渡众机器人9 分钟前
智能体对抗挑战赛和空地协同侦排挑战赛的报名流程
人工智能·自动驾驶·无人机·智能体·报名流程
yongyoudayee11 分钟前
跳出“AI套壳“陷阱,销售易定义中国AI CRM新标杆
人工智能·paas
小马哥crazymxm17 分钟前
Arxiv论文周选 (2026-W24)
论文阅读·人工智能·考研
Rain50917 分钟前
2.2 数据基础:数据库集成与 ORM(TypeORM / Prisma)
数据库·人工智能·ai·数据分析·node.js·自动化·ai编程