Metadata-Version: 2.4
Name: deepcraft-agent
Version: 0.36.0
Summary: DeepCraft — DeepSeek-powered AI coding agent
Author: 元哥
Author-email: liyuan@glazero.com
Requires-Python: >=3.10
Requires-Dist: requests>=2.28
Requires-Dist: rich>=13.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: httpx>=0.25
Requires-Dist: fastapi>=0.100
Requires-Dist: uvicorn>=0.22
Requires-Dist: lancedb>=0.5
Requires-Dist: pylance>=0.9
Requires-Dist: numpy>=1.24
Project-URL: Homepage, https://github.com/liyuan1161/deepcraft
Project-URL: Documentation, https://github.com/liyuan1161/deepcraft/blob/main/docs/USAGE.md
Description-Content-Type: text/markdown

# DeepCraft

**多 Provider AI Coding Agent** — Claude Code 开源替代，轻量、高效、可扩展。

[![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
[![ruff](https://img.shields.io/badge/ruff-0-ok)](https://github.com/astral-sh/ruff)
[![mypy](https://img.shields.io/badge/mypy-strict-ok)](https://mypy-lang.org/)
[![pytest](https://img.shields.io/badge/pytest-176%2F177-green)](https://pytest.org)
[![coverage](https://img.shields.io/badge/coverage-35%25-red)](https://github.com/liyuan1161/deepcraft/actions)
[![lines](https://img.shields.io/badge/lines-17,900-blue)]()

## 为什么用 DeepCraft

| 特性 | DeepCraft | Claude Code |
|------|-----------|-------------|
| 大模型 | DeepSeek / OpenAI / Anthropic / Ollama | Claude only |
| 协议 | 标准 MCP + Skills + A2A | MCP + 自定义 |
| 依赖 | 零 MCP 第三方库 | heavy SDK |
| 开源 | MIT | 闭源 |
| 代码量 | ~14,000 行（65 个 Python 文件）| 数万行 |
| 记忆 | 长期记忆 + 跨会话记忆（BM25 检索 + 时效衰减）| 单 session |
| 多 Agent | route / pipeline / broadcast | ❌ |

## 四层架构

```
┌─────────────────────────────────────┐
│ A2A：多 Agent 协作引擎              │  ← route / pipeline / broadcast
├─────────────────────────────────────┤
│ Skills：Markdown 知识注入           │  ← 领域知识
├─────────────────────────────────────┤
│ MCP：JSON-RPC 远程工具              │  ← 能力扩展
├─────────────────────────────────────┤
│ Function Call：ReAct 本地工具       │  ← 基础调用
└─────────────────────────────────────┘
```

## 快速开始

### 安装

```bash
pip install deepcraft-agent        # PyPI
# 或 Homebrew
brew tap liyuan1161/tap && brew install deepcraft-agent
# 或 macOS：下载 DMG 拖到 Applications 双击即用 🍎
# 或源码
```

### 配置

```bash
export DEEPSEEK_API_KEY=sk-your-key-here

# 可选：多 Provider
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...
```

### 运行

```bash
# 交互 REPL
deepcraft

# 单次任务
deepcraft run "搜索 GitHub 上 deepcraft 的仓库"

# Web UI + SSE 流式 API
deepcraft serve --port 8000
```

## 能力矩阵

| 能力 | 状态 | 版本 |
|------|:--:|:--:|
| ReAct 循环（流式 + Function Call）| ✅ | v0.1 |
| MCP 协议（手写 JSON-RPC 2.0，零依赖）| ✅ | v0.2 |
| Skills 系统（Markdown 知识注入）| ✅ | v0.2 |
| Plan-Execute 模式 + SelfCorrector 纠错 | ✅ | v0.3 |
| SubAgent 并行委派 + 安全三道防线 | ✅ | v0.3 |
| 三层上下文压缩 | ✅ | v0.4 |
| 会话录制/回放 | ✅ | v0.5 |
| 长期记忆系统（跨 session 持久化）| ✅ | v0.6 |
| 多 Provider 切换 + A2A 多 Agent 协作 | ✅ | v0.7 |
| Web UI + SSE 流式 API | ✅ | v0.8 |
| Web Search + Diff 精确编辑 | ✅ | v0.9 |
| 代码库索引（AST 扫描 + 缓存）| ✅ | v0.10 |
| Prompt 缓存层级（fixed/session/sliding）| ✅ | v0.11 |
| Docker 沙箱（Safe/Whitelist/Offline 模式）| ✅ | v0.12 |
| RAG 知识库（语义分块 + TF-IDF 检索）| ✅ | v0.13 |
| 测试自动生成（pytest 骨架）| ✅ | v0.14 |
| 自主执行模式（Plan→Execute→Report）| ✅ | v0.15 |
| 原子重构（多文件变更 + 失败全量回滚）| ✅ | v0.16 |
| 符号导航（跳转定义/引用/重命名/悬停）| ✅ | v0.17 |
| 可视 Diff 引擎（unified/并排/git diff）| ✅ | v0.18 |
| PR 工作流（create/list/status/merge）| ✅ | v0.19 |
| Code Review 引擎（规则 + Agent 审查）| ✅ | v0.20 |
| BM25 语义搜索（升级 TF-IDF）| ✅ | v0.21 |
| 跨会话记忆（LLM 提取 + BM25 检索 + 时效衰减）| ✅ | v0.22 |
| 对话分支（保存/切换/对比上下文路径）| ✅ | v0.23 |
| 上下文感知型智能体（环境自适应）| ✅ | v0.24 |
| 多轮对话优化 + 工具调用稳定性 | ✅ | v0.25 |
| UX 优化（工具透明化/启动并行化/上下文预警/语义索引缓存）| ✅ | v0.26 |
| Tab 补全（命令/文件路径）+ System Prompt 重构 | ✅ | v0.27 |
| Skills 可见化 + 会话摘要 + Git 染色 + Monaco 离线 + 终端 stdin | ✅ | v0.28 |

## REPL 命令

### 会话管理

| 命令 | 说明 |
|------|------|
| `/quit` `/exit` `/q` | 退出 |
| `/help` | 显示全部命令 |
| `/clear` | 清除对话历史 |
| `/status` | Token 用量、工具数、模式、轮次 |
| `/cache` | 显示 Prompt 缓存层级与预算 |

### 模式切换

| 命令 | 说明 |
|------|------|
| `/mode react` | ReAct 模式（默认）|
| `/mode plan` | Plan-Execute 模式 |
| `/mode sub` | SubAgent 并行委派 |
| `/mode auto` | 关键词自动选择（推荐）|

### 文件操作

| 命令 | 说明 |
|------|------|
| `read_file(path)` | 读取文件 |
| `write_file(path, content)` | 写入文件 |
| `search_files(pattern)` | 搜索文件内容或文件名 |

### 代码分析与导航

| 命令 | 说明 |
|------|------|
| `/diff <file> [vs_file]` | Unified diff（与 HEAD 对比或两文件对比）|
| `/diff-side <a> <b>` | 并排 diff 视图 |
| `/diff-review` | 展示所有未提交变更 |
| `/def <symbol>` | 跳转到符号定义 |
| `/refs <symbol>` | 查找所有引用（最多 30 条）|
| `/rename <old> <new>` | 跨文件重命名 |
| `/hover <file:line>` | 查看符号签名与文档 |
| `/index` | 显示代码库索引统计 |

### 重构

| 命令 | 说明 |
|------|------|
| `/refactor <描述>` | 原子重构：输入变更 → 预览 → 确认执行，失败全量回滚 |
| `/checkpoint` | 手动保存文件快照 |
| `/rollback [N]` | 回滚到第 N 号快照 |
| `/checkpoints` | 列出所有快照 |

### 搜索与知识

| 命令 | 说明 |
|------|------|
| `/search <query>` | BM25 语义搜索 |
| `/search index <id> <content>` | 索引单个文档 |
| `/search stats` | 显示索引统计 |
| `/knowledge` | 查看知识库状态 |
| `/knowledge add <path>` | 添加文档到 RAG 知识库 |
| `/knowledge search <query>` | 搜索知识库（TF-IDF + 语义分块）|
| `/knowledge clear` | 清空知识库 |

### 记忆系统

| 命令 | 说明 |
|------|------|
| `/mem search <query>` | 搜索跨会话记忆（BM25 + 时效衰减）|
| `/mem save <key> <value>` | 保存记忆事实 |
| `/mem stats` | 显示记忆统计 |
| `/mem consolidate` | 去重与合并记忆 |
| `/memory save <key> <value>` | 保存长期记忆（持久化文件）|
| `/memory search <query>` | 搜索长期记忆 |
| `/memory list` | 列出所有长期记忆 |
| `/memory clear` | 清除所有长期记忆 |

### PR 工作流

| 命令 | 说明 |
|------|------|
| `/pr create <title>` | 从当前分支创建 PR |
| `/pr list [open\|closed\|all]` | 列出 PR |
| `/pr status <N>` | 查看 PR CI 
