Skip to content

geffzhang/learn-cc-csharp

 
 

Repository files navigation

Learn Claude Code (C#) - Bash 就是 Agent 的一切

.NET 10.0 License: MIT

声明: 这是 shareAI Lab 的独立教育项目 learn-claude-code 的 C# (.NET) 实现版本。与 Anthropic 无关,未获其认可或赞助。"Claude Code" 是 Anthropic 的商标。

从零开始构建你自己的 AI Agent (.NET 版本)。

Python 原版


为什么有这个仓库?

这个仓库是 learn-claude-code 的 .NET 移植版。原仓库以 Python 语言深入浅出地剖析了 Claude Code 的核心原理。为了方便 .NET 开发者学习掌握 Agent 的构建精髓,我们将其核心代码使用 C# 的最新特性进行了完整重写。

我们认为 Claude Code 是世界上最优秀的 AI 编程代理,通过学习它的设计模式,你将对 "什么才是真正的 AI Agent" 有全新的认知。


兼容 Kode CLIClaude CodeCursor,以及任何支持 Agent Skills Spec 的 Agent。

你将学到什么

完成本教程后,你将理解:

  • Agent 循环 - 所有 AI 编程代理背后那个令人惊讶的简单模式
  • 工具设计 - 如何让 C# 代码与 AI 模型及真实世界交互
  • 显式规划 - 使用约束让 AI 行为可预测
  • 上下文管理 - 通过子代理(进程隔离)保持代理记忆干净
  • 知识注入 - 按需加载领域专业知识,无需重新训练

学习路径

从这里开始
    |
    v
[v0: Bash Agent] -----> "一个工具就够了"
    |                    v0_bash_agent.cs
    v
[v1: Basic Agent] ----> "完整的 Agent 模式"
    |                    4 个工具: Bash, Read, Write, Ls
    v
[v2: Todo Agent] -----> "让计划显式化"
    |                    +TodoManager
    v
[v3: Subagent] -------> "分而治之"
    |                    +Task 工具 (进程隔离)
    v
[v4: Skills Agent] ---> "按需领域专业"
                         +Skill 工具

推荐学习方式:

  1. 先阅读并运行 v0 - 理解核心循环
  2. 对比 v0v1 - 看工具如何演进
  3. 学习 v2 的规划模式
  4. 探索 v3 的复杂任务分解
  5. 掌握 v4 构建可扩展的 Agent

快速开始

前置要求

  • .NET SDK (推荐 .NET 10.0 )
  • 一个 Anthropic API Key (或兼容的 API 代理)

运行步骤

  1. 克隆仓库

    git clone https://github.com/your-repo/learn-cc-csharp
    cd learn-cc-csharp/dotnet
  2. 配置 API Key 复制 .env.example.env 并填入你的 Key。国内用户可使用智谱 GLM-4.7 等兼容模型。

    Powershell:

    cp .env.example .env
    # 编辑 .env 文件填入 ANTHROPIC_API_KEY=sk-ant-xxx...
  3. 运行 使用 dotnet run 运行对应的 Agent。

    # 极简版(从这里开始!)
    dotnet run v0_bash_agent.cs
    
    # 核心 Agent 循环
    dotnet run v1_basic_agent.cs
    
    # + Todo 规划
    dotnet run v2_todo_agent.cs
    
    # + 子代理
    dotnet run v3_subagent.cs
    
    # + Skills
    dotnet run v4_skills_agent.cs

核心模式

每个 Agent 都只是这个循环(C# 伪代码):

while (true)
{
    var response = await model.ChatAsync(history, tools);
    
    if (response.StopReason != StopReason.ToolUse)
        return response.Text;
        
    var results = await ExecuteTools(response.ToolCalls);
    history.Add(results);
}

就这样。模型持续调用工具直到完成。其他一切都是精化。

版本对比

版本 文件 工具 核心新增 关键洞察
v0 v0_bash_agent.cs bash 递归子代理 一个工具就够了
v1 v1_basic_agent.cs bash, read, write, edit 核心循环 模型即代理
v2 v2_todo_agent.cs +TodoWrite 显式规划 约束赋能复杂性
v3 v3_subagent.cs +Task 上下文隔离 干净上下文 = 更好结果
v4 v4_skills_agent.cs +Skill 知识加载 专业无需重训

深入阅读 (文章)

该系列配套了详细的公众号风格文章,深入剖析设计理念:

设计哲学

模型是 80%,代码是 20%。

Kode 和 Claude Code 等现代 Agent 能工作,不是因为巧妙的工程,而是因为模型被训练成了 Agent。我们的工作就是给它工具,然后闪开。

License

MIT


模型即代理。这就是全部秘密。

About

这个仓库是 https://github.com/shareAI-lab/learn-claude-code 的 .NET 移植版。原仓库以 Python 语言深入浅出地剖析了 Claude Code 的核心原理。为了方便 .NET 开发者学习掌握 Agent 的构建精髓,我们将其核心代码使用 C# 的最新特性进行了完整重写。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 100.0%