用途
本项目是一个教育性质的实现,目标是让学习者亲手构建一个类似 Claude Code 风格的 AI 代码智能体脚手架,最终产出一个名为 agent-code 的命令行工具。
agent-code 支持一次性提示词或进入交互式 REPL;调用真实 LLM(默认使用通过 Anthropic 兼容端点访问的 DeepSeek);使用工具调用(tool_use / tool_result)完成文件操作、网页搜索和 bash 执行;实现 read-before-edit、diff 预览和权限系统等安全机制;管理会话、项目记忆与上下文压缩;并支持斜杠命令、hooks、skills、子智能体与 MCP 工具。
核心哲学是:模型负责推理,脚手架负责上下文、工具、权限、执行、状态和反馈循环。
主要能力(14 天学习路径)
- 第 1 天:Hello Agent —— CLI、REPL、MockProvider、最小 Agent Loop
- 第 2 天:真实模型 + 工具调用 —— AnthropicProvider、
tool_use/tool_result - 第 3 天:文件 + 网页工具 —— cwd 边界、文件读取/搜索、网页工具
- 第 4 天:安全编辑 —— read-before-edit、字符串替换、diff 预览
- 第 5 天:Bash + 权限 —— 命令执行、权限系统、后台任务
- 第 6 天:会话 + 记忆 —— 会话 JSONL、项目记忆、memdir
- 第 7 天:斜杠命令 + Hooks —— slash commands、hooks、cron
/loop - 第 8 天:交互式 Shell + Plan 模式 —— 交互式 shell、TodoWrite、计划审批
- 第 9 天:Skills —— 按需加载领域知识与工作流
- 第 10 天:子智能体 —— 将任务委托给专用子智能体
- 第 11 天:上下文压缩 —— 长上下文压缩、成本追踪
- 第 12 天:智能体协调器 —— 轻量级多智能体编排
- 第 13 天:Worktree + 最终演示 —— worktree 隔离、端到端代码任务
- 第 14 天:MCP + ToolSearch —— MCP 客户端、工具发现、生态扩展
使用方式
安装与运行(每日为独立包)。从 Day 1 开始自学:
mkdir my-agent-code && cd my-agent-code
uv init
uv add anthropic typer rich aiofiles
# 参照 docs/day-01-hello-agent.md
运行参考快照:
git clone https://github.com/bozhouDev/14days-build-claude-code-cli
cd 14days-build-claude-code-cli/packages/day-08-interactive-shell-plan-mode
uv sync
uv run agent-code "list files in this project"
配套 Web 教程:访问 https://buildcc.dev,或本地运行:
cd agent-code-learn
npm install && npm run dev
# 打开 http://localhost:3000
配置 LLM 提供商(环境变量):
# 默认:DeepSeek 的 Anthropic 兼容 API
export ANTHROPIC_AUTH_TOKEN="sk-your-deepseek-key"
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
# 或使用官方 Claude
export ANTHROPIC_AUTH_TOKEN="sk-ant-..."
export ANTHROPIC_BASE_URL="https://api.anthropic.com"
在 CLI 中覆盖模型:
uv run agent-code --model deepseek-v4-flash "your task"
uv run agent-code --model claude-3-7-sonnet-20250219 "your task"
常用命令示例:
# 一次性提示词
uv run agent-code "create a hello.py file"
# 交互式 REPL
uv run agent-code
# 指定模型
uv run agent-code --model deepseek-v4-flash "analyze this codebase"
# 恢复会话
uv run agent-code --session my-session-id
交互式 REPL 命令(第 7 天起):/help、/quit、/new、/save my-session、/load my-session、/clear、/tools、/loop 5m "task" 等。
Plan 模式(第 8 天起):
uv run agent-code --plan-mode "refactor auth module"
# 智能体创建 todo 列表,由你逐步批准
架构要点(来源于项目代码示例)
项目提供了若干核心模式实现:
- 最小 Agent Loop 与 AnthropicProvider(工具调用循环)
- FileTools:限制在工作区内的路径检查(
_check_path)、read_file、list_files - EditTools:read-before-edit 校验、字符串替换、unified_diff 预览
- BashTools:危险命令集合(
rm、sudo、chmod、mv)与权限回调 - Session:JSONL 保存/加载/列出会话
- SlashRouter:斜杠命令注册与分发
- TodoTools / Plan 模式:todo 列表、逐项审批
- ToolRegistry、PermissionEngine 等通用模式
测试
每日包含测试,在对应日的目录中运行:
cd packages/day-02-real-model-tool-calling
uv run pytest
uv run pytest tests/test_anthropic_provider.py -v
uv run pytest tests/
限制与故障排查
项目文档中提到的排查方向包括:API key 问题(检查环境变量、用 curl 测试)、工具调用不工作(检查 tool schema 是否符合 Anthropic 格式)、文件路径错误(相对工作区解析路径)、会话无法持久化(确保会话目录存在且可写)、模型上下文溢出(实现上下文裁剪)。
未提供的说明
项目资料未说明该项目的收费方式、价格、许可协议、具体的适用人群规模或效果承诺等信息。