# agent-builder **Repository Path**: yegetaier/agent-builder ## Basic Information - **Project Name**: agent-builder - **Description**: 基于Claude Agent SDK,使用markdown编排,实现主子架构的自主智能体。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-14 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# 🧩 agent-builder ### 把可描述、可流程化的 SOP 写成 Markdown,就能跑出一条多 Agent 协作的工作流 **业务逻辑写在 Markdown 里,引擎通用不改一行代码。** 审核判定、内容创作、研究汇总、批量自动化…… —— 同一套引擎,换一套 `Markdown + 技能` 就能跑,几小时上线一个新 Agent。
[![Python](https://img.shields.io/badge/Python-3.10+-3776AB?logo=python&logoColor=white)](https://www.python.org/) [![Built with Claude Agent SDK](https://img.shields.io/badge/Built%20with-Claude%20Agent%20SDK-D97757)](https://docs.claude.com/en/api/agent-sdk) [![Orchestrate in Markdown](https://img.shields.io/badge/Orchestrate%20in-Markdown-000000?logo=markdown&logoColor=white)](#-60-秒看懂工作原理) [![Structured Output](https://img.shields.io/badge/Output-Structured%20JSON-2EA043)](#-核心能力) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) **简体中文** | [English](README.en.md)
--- > ### 一句话 > 凡是 **「可描述、可流程化、可 SOP」** 的业务 —— 既包括**判定类**(风险审核、合规审查、材料初筛、简历筛选、工单分级、内容审核……),也包括**生成 / 执行类**(写一篇文章并发布、生成一条短视频、出一份带引用的研究简报、批量产出文案、串起一条数据处理流水线……)—— 你都可以**只写 Markdown + 技能(Skill)**,复用本项目的通用引擎,跑成一个多 Agent 协作的工作流,输出**结构化结果**(内置判定 schema,或你自定义的产出结构)。 --- ## 😫 你是不是也遇到过这些 - **流程天天变,每次改都要改代码、发版、等开发排期。** 想调一条规则 / 一个步骤,得开一张需求单等一周。 - **一个巨型 prompt 越塞越乱。** 步骤越加越多、多份材料顾此失彼,改 A 处坏 B 处,没人敢动。 - **输出格式靠运气。** 这次返回 JSON,下次夹带一段废话,解析代码天天打补丁;LLM 一抽风,整条链路直接崩。 - **懂业务的不写代码,写代码的不懂业务。** 业务专家把 SOP 讲得头头是道,却落不进系统;开发照着抄,细节全靠猜。 **agent-builder 把这件事反过来:让业务流程回到它本来该在的地方 —— 一份人人能读、能改、能评审的 Markdown。** --- ## 💡 它是什么 一套基于 [Claude Agent SDK](https://docs.claude.com/en/api/agent-sdk) 的**多 Agent 工作流编排骨架**,把「主协调器(Master)按流程调度若干专精子 Agent、各自产出、再汇总成结构化结果」这一范式,固化成一个**开箱即用、业务无关**的通用引擎。 ``` 你写这里 ✍️ 引擎搞定 ⚙️(不用改) ┌────────────────────┐ ┌──────────────────────────────┐ │ task.yaml │ │ 驱动 Claude Agent SDK │ │ master/CLAUDE.md │ ───────▶ │ 按流程调度子 Agent · 超时重试 │ │ sub_agents/*.md │ │ 结构化校验 · 异常兜底 │ │ skills/*(可选) │ │ │ └────────────────────┘ └──────────────────────────────┘ 纯 Markdown + 技能的业务流程 framework/ 通用内核 ``` - **引擎(`framework/`)业务无关**:负责驱动 SDK、按你的 Markdown 调度子 Agent、超时重试、结构化校验、异常兜底。**一般一行都不用改。** - **任务(`tasks//`)是纯 Markdown**:`master/CLAUDE.md` 写编排与决策规则,`sub_agents//CLAUDE.md` 写每个专精子 Agent 的职责,一个 `task.yaml` 把它们串起来。 - **技能(`skills/`)= 能力与动作的来源**:读文件、调外部 API、生成内容、发布到某平台…… 都是一个「脚本 + SKILL.md」的技能,子 Agent 在 `task.yaml` 里按白名单 opt-in。**这就是把"会判断"的 Agent 变成"能干活"的 Agent 的开关。** > 📦 **开箱即跑的样板**是**简历筛选**(一个判定类 SOP):Master 把每份简历分发给 `resume-parser` 解析,再分发给 `fit-evaluator` 对照 JD 打分,最后汇总出每位候选人的判定与整体推荐。它演示的"调度 → 专精 → 汇总"范式,对生成 / 执行类 SOP 同样成立 —— 见 [👉 不止审核](#-不止审核还能做什么)。 --- ## ⭐ 核心能力 | 能力 | 说明 | | --- | --- | | 📝 **Markdown 即编排** | task.yaml + CLAUDE.md 定义整条多 Agent 工作流,**判定类任务默认零 Python**。业务同学改 Markdown 就能上线 / 调流程。 | | 🧠 **Master + 专精子 Agent** | 主协调器按流程调度、汇总;子 Agent 各管一段(取数 / 生成 / 校验 / 判断)。任何能拆成步骤的 SOP 都能拆得开、说得清、加得上。 | | 🎯 **结构化输出,强约束** | JSON Schema 锁死输出。内置通用判定 schema(`PASS / REJECT / REVIEW` + 逐对象 `items` + 逐维度 `dimensions`,每条都带理由);**任何其它产出**(文章、报告、文案、生成物的地址……)只需在 `task.yaml` 指向你自己的 schema。 | | 🔌 **可插拔技能 = 能干活** | 内置 `reading-files`(读 PDF/Word/Excel/图片 + OCR,本地与 URL 通吃)。要发布、要调用生成 API、要联网取数?**自己写一个 Skill**(脚本 + SKILL.md),子 Agent 通过 Bash 调用 —— 和 demo 读文件是同一套机制。 | | 🛟 **永不崩的兜底** | 单次会话硬超时 + 自动重试(退避间隔逐次递增);**任何异常都兜底成一个 schema 合法的结果**(判定类任务兜底为 `REVIEW`),上游永远拿到合法回包,不会因 LLM 抽风而崩。 | | 🔍 **所见即所得** | 每次运行在 `.runs//` 重建工作区 —— 那就是 SDK 实际看到的全部上下文,排障时一眼到底。 | | 🔄 **模型无关** | 走 Anthropic 兼容端点,默认接智谱 GLM;换模型 / 换厂商只改 `.env` 两行。 | | 🌐 **可选联网能力** | 配上 `SERPER_API_KEY` 即获 Google 搜索,加上内置 `WebFetch` 抓网页 —— 框架提供联网管道,怎么用由你的 Markdown 决定。 | | 🧬 **会自进化** | 从**人工反馈**中自动蒸馏「特殊规则」并沉淀复用 —— 经验 / 技能 / 规则三重沉淀,基础 SOP 不变、**越用越准**。`run --evolve` 开启,详见下方「会自进化」一节。 | --- ## 🕐 60 秒看懂工作原理 ``` $ python cli.py run -i input.json │ ▼ framework.run_task(task, input) ├─ ① 读 tasks//task.yaml + 各 CLAUDE.md(早校验,缺文件立即报错) ├─ ② 把输入里的相对文件路径改写成绝对路径(技能稳定可读) ├─ ③ 装配工作区:把 Markdown + 声明的 skills 拷进 .runs// ├─ ④ 取结果 JSON Schema(默认通用判定 schema,可被 task.yaml 指向你的自定义 schema) └─ ⑤ 构造 SDK options(cwd=master、注册子 Agent、output_format=结果 schema) │ ▼ MasterAgent 驱动 Claude Agent SDK: Master 按 master/CLAUDE.md 调度子 Agent ──▶ 子 Agent 各自产出 (子 Agent 可调用白名单内技能:读文件 / 调 API / 生成 / 发布 / 联网……) ──▶ Master 汇总 ──▶ StructuredOutput │ ▼ 结构化结果(默认判定结果,或你自定义的产出结构) ``` **关键心智模型**:业务流程全在 Markdown 里、动作全在技能里;Python 引擎是通用的「放映机」,把它们喂给 Claude Agent SDK 跑起来。想改流程?改 Markdown,不碰代码。 --- ## 🎯 什么场景该用它 判断只需一句话: > ### 「这件事能不能写成一份**可复用的 SOP 手册**,交给一个新人照着一步步做出来?」 > 能 → 它就是为你造的。**结论是"通过 / 不通过"可以,产出是"一篇文章 / 一段视频 / 一份报告"也可以。** | 适合 ✅ | 例子 | | --- | --- | | 流程能用文字讲清楚、可拆成步骤 | 「先读文件抽字段,再按规则核验」「先研究选题、再拟纲、再成文」 | | 要稳定的结构化产出 | 判定结果、或一篇带字段的文章、一份带引用的报告 —— 都要能被下游直接消费 | | 多份材料 / 多个对象 / 多个镜头横向处理 | 多份单据交叉校验、多名候选人排序、多镜头逐个生成 | | 需要可解释、可复核 | 每一步、每条结论都有迹可循 | | 能容忍秒级~分钟级延迟 | 异步处理 / 批处理,不卡在用户同步点击路径上 | **不适合 ❌**:一句 prompt 就能解决、不值得编排的一次性小事;流程完全说不清、纯临场主观发挥、无法沉淀成步骤的事;毫秒级强实时链路。 > 💡 关于"动作 / 副作用":子 Agent 默认**不授予** `Write/Edit/MultiEdit`(避免乱改文件)。真正要"产出文件 / 调用生成 API / 发布"时,通过你显式授予的**技能 / Bash / MCP**来完成 —— 能力是你主动装上去的,而不是放任 Agent 乱来。
📊 和「直接调一次 LLM」相比,省在哪? | | 直接调一次 LLM | agent-builder | | --- | --- | --- | | 流程维护 | 塞进一个巨型 prompt,越改越乱 | 拆进多份 Markdown,分层清晰 | | 多材料 / 多步骤 | 容易顾此失彼 | 每段一个子 Agent,互不干扰 | | 结果可靠性 | 输出格式靠运气 | JSON Schema 强约束 + 异常兜底 | | 可解释性 | 一段话 | 每步 / 每对象都有结构化记录 | | 扩展性 | 改 prompt | 加一个子 Agent / 加一个技能(= 加 Markdown / 加脚本) | 只是「问一句答一句」?本框架是杀鸡用牛刀。一旦涉及**多步骤、多材料、要可解释、要稳定结构化产出**,它就开始显著省事。
--- ## ✨ 不止审核:还能做什么 审核只是其中一类。同一套「Master 调度 + 专精子 Agent + 结构化产出」范式,**换一套 Markdown + 技能(+ 可选自定义 schema)**就能跑别的 SOP: | 你想做的事 | 怎么拆成子 Agent(示例) | 产出 / 落地方式 | | --- | --- | --- | | ✍️ **写一篇文章并发布** | 选题研究 → 拟提纲 → 撰写 → 校对润色 →(发布) | 文章正文(自定义 schema);发布由一个 `publish` 技能调平台 API | | 🎬 **生成一条短视频** | 写脚本 → 分镜 → 逐镜头生成 → 配音 → 合成 | 视频文件 / URL;生成由 `video-gen` 技能调外部生成 API | | 📑 **出一份研究简报** | 多源检索(联网)→ 交叉验证 → 汇总成稿(带引用) | 结构化报告(自定义 schema) | | 🗂️ **批量生成营销文案** | 按产品并行生成 → 统一风格校对 | 文案集合(自定义 schema) | **关键点**:在这些任务里,「**动作**」(发布、调用生成 / 检索 API)由你写的 **Skill** 承担 —— 和 demo 里 `reading-files` 读文件是同一套机制;「**产出结构**」由你的 **schema** 描述;而**调度、并行、重试、兜底**仍然由通用引擎负责。你依旧只写 `Markdown + 技能(+ 可选 schema)`,不碰引擎。 > 本仓库内置的 demo 与默认 schema 面向判定类任务;上面这些生成 / 执行类玩法需要你按 [docs/create-a-new-task.md](docs/create-a-new-task.md) 写自己的 Markdown、技能与(如需)schema —— 范式完全一致。 --- ## 🧬 会自进化:经验 · 技能 · 规则,三重沉淀 别的 Agent 跑完就忘;agent-builder 把每一次运行都**沉淀成资产**,越用越聪明。 | 三重沉淀 | 沉淀什么 | 怎么来 | 收获 | | --- | --- | --- | --- | | 🗄️ **经验沉淀** | 每次运行的输入、结构化判定、子 Agent 推理轨迹 → 可追溯 `episode` | **自动**(开 `--evolve` 即捕获,无需人工) | 越用越懂你的业务 | | 🧩 **技能沉淀** | 每写一个技能(脚本 + `SKILL.md`)→ 全任务、全 Agent 复用 | 人工写一次,处处复用 | 越用越能干 | | 📋 **规则沉淀** | 每条人工反馈 → 自动蒸馏成带条件、带置信度的结构化规则 | **人工反馈驱动** | 越用越准 | **两层分离**:公共 / 基础 SOP 留在 `CLAUDE.md`(人写、版本化、**永远权威**);**特殊规则**从「运行轨迹 + 人工反馈」蒸馏出来,沉淀后下次运行**自动召回、注入**到基础之上 —— 基础不变,特殊经验自动生长。 **闭环(人工只给反馈,其余全自动)**: ``` 运行(--evolve) → 注入已沉淀规则 + 捕获 episode → 人工复核给反馈 → 自动蒸馏候选规则 → 沉淀(advisory) → 下次运行自动召回复用 → 置信度维护 ``` ```bash # 1) 开启自进化跑任务(运行结束自动捕获 episode,无需人工) python cli.py run resume-screening -i examples/resume-screening/input.json --evolve # → 末尾打印「📌 已捕获 episode=ep_xxx」;忘了可用 `python cli.py episodes list --task resume-screening` 查 # 2) 人工复核后给一次反馈(ep_xxx 换成上一步的 id)—— 之后蒸馏 + 沉淀全自动,不需要另起命令 python cli.py feedback ep_xxx --task resume-screening \ --subject 张三 --corrected REJECT --comment "无相关经验" # → 已记录反馈 → 自动蒸馏并沉淀规则 rule_xxx(advisory · 置信度 0.60,下次运行起自动召回复用) # 3)(可选)治理规则:查看 / 升级 / 调置信度 / 退役 / 体检 python cli.py rules list --task resume-screening python cli.py rules promote # advisory → active python cli.py rules outcome --contradicted # 后续被证伪 → 降置信度 python cli.py rules lint --task resume-screening ``` > **安全可控**:人工闸门(`proposed → advisory → active`)+ 注入前防提示注入消毒 + 作用域隔离(规则绑到具体子 Agent / 维度)+ 置信度随反馈升降、坍塌自动退役 + 一键回滚(规则是 git 文件)。**基础 SOP 永远权威**,学习规则只是作用域内的例外 / 细化。 > > 默认关闭(`--evolve` 显式开启),不影响普通运行。基于 [claude-mem](https://docs.claude-mem.ai/) 的本地记忆范式,融合 Reflexion / ExpeL / Meta-Policy Reflexion;设计详见 [docs/superpowers/specs/2026-06-14-agent-self-evolution-design.md](docs/superpowers/specs/2026-06-14-agent-self-evolution-design.md)。 --- ## 🚀 使用手册(新手 5 分钟跑通) > 🤖 **在用 AI 编程助手(Claude Code / Cursor / Cline…)?** 把仓库里的 **[use-agent-install.md](use-agent-install.md)** 整个发给它 —— 它会自动装依赖、配密钥、跑通 demo,并按你的描述改造成新任务。你只需在它要密钥时把 GLM Key 交给它。 > > 下面是**手动版**:跟着 7 步走,零基础也能跑通、看懂、验证。命令均可直接复制粘贴。 ### ✅ 开跑前,先备齐这几样 | 你需要 | 干嘛用 | 怎么拿 / 自检 | | --- | --- | --- | | **Python ≥ 3.10** | 运行环境 | 终端跑 `python3 --version`;没有就去 [python.org](https://www.python.org/downloads/) 装 | | **智谱 GLM API Key** | **唯一必填**密钥 | 到 [open.bigmodel.cn](https://open.bigmodel.cn/) 免费注册 → 控制台「API Keys」→ 新建,复制形如 `xxxxxxxx.yyyyyyyy` 的串 | | **git**(可选) | 拉代码 | `git --version`;没有也行 —— 在仓库页点「下载 ZIP」解压即可 | > ⚠️ 跑 demo 会发起**真实、计费**的 GLM 调用(一次通常几分钱)。示例简历是纯文本 PDF,**happy path 不需要 OCR 或任何其它密钥**。 ### 第 1 步 · 拿到代码 ```bash git clone https://gitee.com/yegetaier/agent-builder.git cd agent-builder ``` > 没装 git?在仓库页下载 ZIP,解压后用终端 `cd` 进入该目录即可。 ### 第 2 步 · 建好并激活虚拟环境 ```bash # macOS / Linux python3 -m venv .venv && source .venv/bin/activate # Windows(PowerShell) python -m venv .venv ; .venv\Scripts\Activate.ps1 ``` > 激活成功后,命令行最前面会出现 `(.venv)` 字样。**之后每开一个新终端,都要重新 `activate`。** ### 第 3 步 · 安装依赖 ```bash pip install -r requirements.txt ``` > 装得慢 / 失败?换国内镜像重装:`pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple` ### 第 4 步 · 填入你的 API Key ```bash cp .env.example .env # Windows: copy .env.example .env ``` 用任意编辑器打开 `.env`,把密钥填到这一行(等号后**直接粘贴**,不要加引号): ```ini GLM_API_KEY=在这里粘贴你的智谱密钥 ``` > 整个文件**只有 `GLM_API_KEY` 必填**,其余项都有默认值。框架会自动把它桥接成 SDK 需要的 `ANTHROPIC_API_KEY` 并指向智谱端点 —— 你不用操心。 ### 第 5 步 · 生成示例数据 ```bash python examples/resume-screening/make_sample_resumes.py ``` > 会在 `examples/resume-screening/resumes/` 下生成 3 份示例简历 PDF(张三 / 李四 / 王五)。 ### 第 6 步 · 跑通内置 demo ```bash python cli.py list # ① 先看看有哪些任务 python cli.py run resume-screening -i examples/resume-screening/input.json # ② 跑「简历筛选」 ``` ### 第 7 步 · 看懂并验证结果 跑完后,终端会打印一段结构化 JSON(节选): ```json { "result": "PASS", "reason": "3 名候选人中 1 人完全匹配,推荐张三进入面试;王五待定、李四不通过。", "items": [ {"subject": "张三", "result": "PASS", "score": 90, "reason": "本科 + 6 年后端 + Python/MySQL/Redis 全覆盖", "dimensions": [{"name": "核心技能", "result": "PASS", "score": 95, "reason": "..."}]}, {"subject": "王五", "result": "REVIEW", "score": 45, "reason": "简历过简,缺学历与工作年限,需人工"}, {"subject": "李四", "result": "REJECT", "score": 20, "reason": "命中一票否决:无任何后端开发经验,学历大专"} ] } ``` **怎样算「验证通过」?逐条对照:** - ✅ 顶层有 `result`(`PASS` / `REVIEW` / `REJECT`)和一句 `reason` - ✅ `items` 里**每位候选人**都有自己的判定、`score`、`reason`,以及逐维度的 `dimensions` - ✅ 语义合理:张三 ≈ `PASS`、李四 ≈ `REJECT`(命中「无后端经验」一票否决)、王五 ≈ `REVIEW`(资料太少、需人工) - ✅ 打开 `.runs/resume-screening/` 目录,能看到这次运行 SDK **实际看到的全部上下文**(Markdown + 技能 + 输入)—— 排障时所见即所得 > 💡 LLM 有创造性,分数 / 措辞每次略有不同属正常;只要**结构合法**且**三人判定方向大致正确**,就说明你已经跑通。 ### (可选)第 8 步 · 让它「越用越准」 demo 跑通后,想让 Agent 从你的纠偏中自我进化?见上文 [🧬 会自进化](#-会自进化经验--技能--规则三重沉淀):`--evolve` 跑一次 → `feedback` 给一次反馈 → 规则自动沉淀,下次运行自动复用。 ### 🆘 卡住了?常见问题排查 | 现象 / 报错 | 多半是因为 | 怎么解决 | | --- | --- | --- | | `运行时配置校验失败:缺少 GLM_API_KEY` | `.env` 没填密钥 | 回到第 4 步,把密钥填进 `GLM_API_KEY=` | | `401` / `令牌已过期或验证不正确` | 密钥不对,或机器上有更高优先级的 Anthropic 凭证 | 先确认密钥正确;框架已自动清理 Claude Code 的 `ANTHROPIC_AUTH_TOKEN` / OAuth,若仍报错,检查 shell 里有没有手动设过 `ANTHROPIC_API_KEY=""` 之类的空值 | | `command not found: python` | 你的系统命令叫 `python3` | 把命令里的 `python` 换成 `python3` | | 命令行没有 `(.venv)` 前缀 | 虚拟环境没激活 | 重跑第 2 步的 `activate`(每个新终端都要) | | `pip install` 卡在 PyMuPDF / Pillow | 网络慢或缺编译环境 | 用上面的清华镜像重装 | | 结果整体兜底成 `REVIEW`、`reason` 像「系统异常」 | LLM 调用超时 / 失败 / 额度不足 | 查网络与密钥余额;到 `.runs/resume-screening/` 看实际报错 | | Windows 激活报「无法加载…执行策略」 | PowerShell 默认禁止脚本 | 先跑 `Set-ExecutionPolicy -Scope Process RemoteSigned`,再激活 | 跑通之后,下一节教你把它**改造成你自己的任务**。 --- ## 🛠️ 造一个你自己的任务(判定类默认零 Python) **判定类示例(报销单审核)**: ```bash cp -r tasks/resume-screening tasks/reimbursement-audit # ① 复制 demo 作骨架 ``` ```yaml # ② 改 task.yaml:声明你的子 Agent 和它们能用的技能 name: reimbursement-audit title: 报销单审核 description: 审核报销单与配套发票,核对金额一致性与合规性,输出 PASS/REVIEW/REJECT。 sub_agents: - key: invoice-parser # 要读文件 → 给它 reading-files description: 发票解析专家——读取单张发票,抽取金额/开票方/日期/税号等字段。 skills: [reading-files] - key: compliance-checker # 纯推理 → 不给技能 description: 合规核验专家——对照报销单与发票,核对金额一致性与报销规则。 skills: [] ``` ```text ③ 重写两类 Markdown: • master/CLAUDE.md —— 输入结构 / 调度顺序 / 汇总决策 / 输出约定 • sub_agents//CLAUDE.md —— 每个子 Agent 的角色、要做的事、降级规则 ④ python cli.py run reimbursement-audit -i path/to/input.json ``` **生成类示例(文章撰写)** 的差异只有两处: - **加一个"动作"技能**:写 `skills/publish/`(`SKILL.md` + 一个调用平台 API 的脚本),在某个子 Agent 的 `skills:` 里登记它(和 `reading-files` 完全一样)。 - **指定产出 schema**:在任务目录写一个 `schema.py`(Pydantic 模型,如 `{title, body_markdown, tags, status}`),在 `task.yaml` 里 `schema: schema.py:ArticleResult` 指向它。 ```yaml # task.yaml(节选) sub_agents: - key: researcher # 联网检索选题素材 skills: [] # 用内置 WebFetch / Serper - key: writer # 按提纲撰写 skills: [] - key: publisher # 调平台 API 发布 skills: [publish] # ← 你写的动作技能 schema: schema.py:ArticleResult # ← 你的产出结构 ``` > 经验法则:**凡是「取数 / 生成 / 调外部 API」的环节,独立成一个子 Agent 并配上对应技能;「做判断 / 汇总」的环节,再独立一个。** 子 Agent 越聚焦,越好写、越稳。 > > 📌 三处名字要一致:任务**目录名** = `task.yaml` 的 `name` = `cli.py run ` 里的参数。 📖 手把手详解见 **[docs/create-a-new-task.md](docs/create-a-new-task.md)**。 --- ## 📁 项目结构 ``` agent-builder/ ├── framework/ # ★ 通用引擎(业务无关,一般不改) │ ├── runner.py # 高层入口 run_task() │ ├── master_agent.py # 驱动 SDK:调度 / 重试 / 超时 / 结构化 / 兜底 │ ├── options.py # 组装 ClaudeAgentOptions(工具 / 域名 / MCP / 输出 schema) │ ├── agent_definitions.py# 从 CLAUDE.md 构造子 Agent │ ├── workspace.py # 把任务资产装配进可运行工作区 │ ├── task.py # task.yaml 清单加载 │ ├── schemas.py # 通用结果 TaskResult + 校验(可被任务自定义 schema 覆盖) │ ├── config.py # .env 加载(GLM → Anthropic 桥接) │ └── evolution/ # 🧬 自进化层:episodes / rules / feedback + 注入 / 治理 / 蒸馏 ├── skills/ # 共享技能库(任务按名 opt-in)—— 读文件 / 动作 / 生成 的来源 │ └── reading-files/ # 读 PDF/Word/Excel/图片(+OCR),本地路径与 URL 通吃 ├── tasks/ # ★ 你真正复制 / 编辑的地方 │ └── resume-screening/ # demo:简历筛选(判定类) │ ├── task.yaml │ ├── master/CLAUDE.md │ └── sub_agents/{resume-parser,fit-evaluator}/CLAUDE.md ├── examples/ # demo 输入 + 示例简历 + 简历生成脚本 ├── cli.py # 命令行入口(list / run / feedback / episodes / rules) ├── use-agent-install.md # 🤖 发给 AI Agent:自动安装 / 运行 / 改造本项目 ├── tests/ # 测试套件(mock SDK,不打真实 GLM) └── docs/ # 详细文档(见下) ``` --- ## 📚 文档 | 文档 | 解决什么问题 | | --- | --- | | [use-agent-install.md](use-agent-install.md) | 🤖 **给 AI Agent 的安装运行手册**:发给 Claude Code / Cursor 等,自动装好、跑通、并帮你改造成新任务 | | [docs/when-to-use.md](docs/when-to-use.md) | 什么场景适合 / 不适合用它(含判断清单) | | [docs/how-it-works.md](docs/how-it-works.md) | 架构与一次运行的完整数据流(含「我想改 X 该动哪里」对照表) | | [docs/create-a-new-task.md](docs/create-a-new-task.md) | **手把手**:复制 demo → 改 Markdown → 跑起来,造你自己的任务 | | [docs/writing-claude-md.md](docs/writing-claude-md.md) | 怎么写好 Master / 子 Agent 的 CLAUDE.md(章节套路 + 实战踩坑) | --- ## 🧱 技术栈 - **编排内核**:[Claude Agent SDK](https://docs.claude.com/en/api/agent-sdk)(`ClaudeSDKClient` + `AgentDefinition` + 结构化输出) - **结构化校验**:Pydantic v2(结果 schema + 三态归一;任务可指向自定义 schema) - **LLM 后端**:Anthropic 兼容端点,默认 [智谱 GLM](https://open.bigmodel.cn/)(`glm-4.6`);改 `.env` 的 `ANTHROPIC_BASE_URL` / `CLAUDE_MODEL` 即可切换厂商 - **文件读取**:`reading-files` 技能凭 magic bytes 识别并读取 PDF / DOC / DOCX / XLS / XLSX / JPG / PNG(PyMuPDF / python-docx / openpyxl / xlrd / Pillow / httpx);图片走智谱 GLM 视觉模型 OCR;旧版 `.doc` 需运行环境内有 LibreOffice 或 antiword - **可选联网**:Serper MCP(Google 搜索) --- ## 📄 License [MIT](LICENSE) —— 自由用于商业与个人项目。