欣淇
发布于 2026-05-29 / 0 阅读
0
0

🔥 learn-claude-code:63,304 stars

🤖 learn-claude-code:从零搭建你自己的AI编程助手,3个代码块就能上手

你有没有遇到过这种情况:想用AI帮你写代码,但每次都要手动复制粘贴文件内容、反复描述项目结构、在终端和聊天窗口之间来回切换?更糟的是,AI经常忘记上下文,刚聊完的代码逻辑,下一轮对话就断片了。

这不是你的问题,是工具设计的问题。市面上大多数“AI编程助手”本质上只是个带界面的聊天框——它们没有真正理解你的项目环境,无法操作文件、执行命令、查看错误日志。而真正能干活的那个东西,叫Agent。

这个项目解决了什么

learn-claude-code 是一个教你手搓AI编程Agent的教程仓库。它不卖课、不卖API,而是把Claude Code这个顶级Agent框架的底层设计模式,拆成你能直接用的代码和思路。

项目上线后迅速登上GitHub趋势榜(Trendshift),社区贡献者超过30人。核心作者明确说了一句话:

智能来自模型训练,Agent产品 = 模型 + 外部框架。

翻译成大白话:模型是大脑,框架是身体。你不需要重新训练一个大脑,但你需要给它装一双手、一双眼睛和一个能干活的环境。这个项目教的就是这个。

核心功能拆解:一个Agent框架到底长什么样

先看一段最核心的代码,这是Agent的“工具箱”定义:

# 摘自 learn-claude-code 核心示例
class Harness:
    def __init__(self):
        self.tools = {
            "read_file": self.read_file,
            "write_file": self.write_file,
            "run_shell": self.run_shell,
            "search_code": self.search_code
        }
        self.knowledge = []
        self.permissions = {"sandbox": True, "need_approval": ["delete", "overwrite"]}

就这么简单?对。一个Agent的核心骨架就是:工具集 + 知识库 + 权限控制。模型通过工具感知环境,通过知识库理解领域,通过权限边界保障安全。

再看一个实际的工具实现——文件读写:

def read_file(self, path: str) -> str:
    """读取文件内容,返回文本。路径自动做沙箱检查。"""
    if not self._in_sandbox(path):
        return "Error: path outside sandbox"
    with open(path, 'r') as f:
        return f.read()

def write_file(self, path: str, content: str) -> str:
    """写入文件内容。需要用户确认才能覆盖已有文件。"""
    if os.path.exists(path):
        if not self._get_approval(f"Overwrite {path}?"):
            return "Cancelled: overwrite not approved"
    with open(path, 'w') as f:
        f.write(content)
    return f"Written {len(content)} bytes to {path}"

每个工具都遵循三个原则:原子性(一次只做一件事)、可组合(工具之间能串联)、描述清晰(模型能理解工具用途)。

实操步骤:3分钟跑起来

第一步,克隆项目:

git clone https://github.com/shareAI-lab/learn-claude-code.git
cd learn-claude-code

第二步,安装依赖并配置你的Agent:

# config.py - 你的Agent配置文件
AGENT_CONFIG = {
    "model": "claude-3-5-sonnet-20241022",
    "tools": ["file_io", "shell", "search"],
    "knowledge_dirs": ["./docs", "./api_specs"],
    "max_context_tokens": 32000,
    "approval_mode": "interactive"  # 危险操作需要你点头
}

第三步,启动Agent并让它干活:

python run_agent.py --task "修复 src/main.py 中所有未处理的异常"

Agent会自己读取代码、分析异常类型、生成修复方案、询问你是否执行修改。你只需要在关键步骤点个“确认”按钮。

避坑指南:别踩这3个雷

1. 别给Agent太多上下文。 很多人一股脑把整个项目塞进去,结果模型被无关代码淹没了判断力。正确做法是按需加载——只给当前任务相关的文件。项目里有个 context_compaction 模块就是干这个的。

2. 别跳过权限控制。 Agent跑 rm -rf / 这种事不是没有发生过。永远给文件操作加沙箱,给危险命令加审批。代码里已经写好了 sandboxapproval 两个基类,直接用。

3. 别指望一次对话搞定一切。 Agent会遗忘,这是模型本身的天花板。解决方案是“任务持久化”——把长期目标存成文件,每次对话开始前重新加载。项目里的 task_system.py 就是干这个的:

class TaskSystem:
    def __init__(self):
        self.tasks = []
        self.persist_path = "./agent_tasks.json"

    def add_task(self, description: str, priority: int):
        self.tasks.append({"desc": description, "priority": priority, "status": "open"})
        self._save()

    def get_active_tasks(self):
        return [t for t in self.tasks if t["status"] == "open"]

要点总结

  • Agent的核心不是代码,是模型训练出来的智能。 你能做的是给它一个高质量的执行环境。
  • 一个合格的Agent框架 = 工具 + 知识 + 上下文管理 + 权限控制。 缺任何一个,你的Agent都会变成智障。
  • 从模仿开始。 learn-claude-code 已经把Claude Code的架构拆成可复用的模块,你直接改改就能用在自己的项目里。
  • 别过度工程化。 很多人给Agent套了十几层if-else、节点图、流程编排,结果模型被规则卡死,反而不会干活了。框架要轻,模型要重。

最后一句:你写的是车,不是司机。车造好了,司机自然会上路。


评论