Token导航 LogoToken导航TokenDH.com
Easy Reasy Claude Agent SDK logo
开发工具未说明官方级别未说明来源级核验

Easy Reasy Claude Agent SDK

MCP Server

一个用于与Claude Code CLI交互的.NET库,支持简单查询和多轮对话。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
人工智能C#Claude开发工具Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AdamTovatt

提供方

AdamTovatt

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

用于的Claude代理SDK。网

![Tests](https://github.com/AdamTovatt/easy-reasy-claude-agent-sdk/actions/workflows/build.yml) ![NuGet](https://www.nuget.org/packages/EasyReasy.Claude.AgentSdk)

现代。NET库,用于与Claude Code CLI交互,提供简单的一次性操作 QueryAsync() API和完全双向客户端,支持控制协议。

概述

建造。NET应用程序,利用Claude Code CLI——从简单的一次性查询到与工具控件、钩子、MCP服务器和自定义代理的完整多轮对话。

特性

  • 简单 Claude.QueryAsync() 用于一次性请求的API
  • ClaudeSDKClient 用于多回合双向对话
  • 控制协议支持(中断、模式、动态模型切换)
  • 挂钩系统(PreToolUse、PostToolUse、UserPromptSubmit)
  • 具有允许/拒绝控制的工具权限回调
  • 过程中MCP服务器支持(工具、提示、资源)
  • 跨平台:Windows、Linux、macOS
  • 消息类型的源代码生成JSON模型
  • 测试良好:128个测试(123个单元+5个集成;默认情况下禁用集成测试)

先决条件

  • .NET 8.0或更高版本
  • 克劳德代码CLI>=2.0.0(https://code.claude.com/docs/en/setup)
SDK按以下顺序发现Claude Code CLI: 1. ClaudeAgentOptions.CliPath (显式路径) 1. CLAUDE_CLI_PATH 环境变量 1. PATH 搜索 claude (或 claude.cmd 在Windows上)

快速开始

单次查询

using EasyReasy.Claude.AgentSdk;

await foreach (Message message in Claude.QueryAsync("What is 2+2?"))
{
    if (message is AssistantMessage assistantMessage)
        foreach (ContentBlock block in assistantMessage.Content)
            if (block is TextBlock textBlock)
                Console.Write(textBlock.Text);
}

多回合对话

using EasyReasy.Claude.AgentSdk;

await using ClaudeSDKClient client = new ClaudeSDKClient();
await client.ConnectAsync();

await client.QueryAsync("Write a Python hello world");

await foreach (Message message in client.ReceiveResponseAsync())
{
    if (message is AssistantMessage assistantMessage)
        foreach (ContentBlock block in assistantMessage.Content)
            if (block is TextBlock textBlock)
                Console.Write(textBlock.Text);
}

带选项

ClaudeAgentOptions options = Claude.Options()
    .SystemPrompt("You are a helpful coding assistant.")
    .MaxTurns(5)
    .Model("claude-sonnet-4-20250514")
    .AcceptEdits()
    .Build();

await foreach (Message message in Claude.QueryAsync("Explain async/await", options))
{
    // handle messages
}

核心概念

消息类型

  • AssistantMessage -克劳德的回应 Content
  • UserMessage -用户输入
  • SystemMessage -系统通知
  • ResultMessage -查询完成,包含成本/工期信息

内容块

  • TextBlock -文本内容
  • ThinkingBlock -扩展思维(附签名)
  • ToolUseBlock -工具调用
  • ToolResultBlock -刀具输出

配置

ClaudeAgentOptions 镜像Python SDK的选项:

属性类型描述
SystemPromptstring?替换默认系统提示
AppendSystemPromptstring?附加到默认系统提示
MaxTurnsint?最大对话次数
MaxBudgetUsddecimal?美元支出限额
Modelstring?要使用的模型
FallbackModelstring?回退模型
PermissionModePermissionMode?默认、接受编辑、计划、旁路权限(不能将旁路权限与CanUseTool组合使用)
McpServersobject?MCP服务器配置
CanUseToolCanUseToolCallback?工具权限回调(不能与BypassPermissions结合使用)
HooksIReadOnlyDictionary?事件挂钩
AllowedToolsIReadOnlyList白名单工具
DisallowedToolsIReadOnlyList黑名单工具
Cwdstring?工作目录
CliPathstring?显式CLI路径

高级用法

工具权限回调

警告: CanUseTool 不能与 BypassPermissions()绕过模式使CLI在不咨询回调的情况下自动允许所有工具,从而使其无效。建造者将投掷 InvalidOperationException 如果两者都已设置。
ClaudeAgentOptions options = Claude.Options()
    .CanUseTool(async (toolName, input, context, cancellationToken) =>
    {
        if (toolName == "Bash" && input.GetProperty("command").GetString()?.Contains("rm") == true)
            return new PermissionResultDeny("Destructive commands not allowed");
        return new PermissionResultAllow();
    })
    .Build();

钩子

ClaudeAgentOptions options = Claude.Options()
    .AllowTools("Bash")
    .Hooks(hooks => hooks
        .PreToolUse("Bash", (input, toolUseId, context, cancellationToken) =>
        {
            Console.WriteLine($"[Hook] Bash: {input}");
            return Task.FromResult(new HookOutput { Continue = true });
        }))
    .Build();

MCP工具(进行中)

using EasyReasy.Claude.AgentSdk;
using EasyReasy.Claude.AgentSdk.Mcp;

ClaudeAgentOptions options = Claude.Options()
    .McpServers(servers => servers.AddSdk("calculator", sdk => sdk
        .Tool("add", (double left, double right) => left + right, "Add two numbers")))
    .AllowAllTools()
    .Build();

自定义代理

ClaudeAgentOptions options = Claude.Options()
    .Agents(agents => agents
        .Add("reviewer", "Reviews code", "You are a code reviewer.", "Read", "Grep")
        .Add("writer", "Writes code", "You are a clean coder.", tools: ["Read", "Write"]))
    .Build();

沙盒配置

ClaudeAgentOptions options = Claude.Options()
    .Sandbox(sandbox => sandbox
        .Enable()
        .AutoAllowBash()
        .ExcludeCommands("rm", "sudo")
        .Network(network => network.AllowLocalBinding()))
    .Build();

安装

NuGet包(即将推出)

dotnet add package EasyReasy.Claude.AgentSdk

来自源头

git clone https://github.com/anthropics/claude-agent-sdk-dotnet.git
cd claude-agent-sdk-dotnet
dotnet build

状态和奇偶校验

  • 当前版本: 0.1.0
  • 状态: 预览(API和行为可能会更改)
  • 对等: 设计用于匹配Python-Claude Agent SDK API、行为和人体工程学
  • 测验: 128个测试(123个单元+5个集成;默认情况下禁用集成测试)
规范规则: 蟒蛇 claude-agent-sdk 是规范参考。这个。NET端口跟踪其行为和API。

已知限制

  • control_cancel_request 当前被忽略(取消正在进行的控制请求尚未实现;与Python SDK TODO匹配)。

运行集成测试

集成测试需要一个可用的Claude Code CLI,默认情况下是禁用的。

通过以下方式启用它们: CLAUDE_AGENT_SDK_RUN_INTEGRATION_TESTS=1 dotnet test

相关项目

项目语言描述
claude代理sdk pythonPython官方Python SDK(规范参考)
克劳德特工sdk-cpp具有全功能奇偶校验的C++C++端口

免责声明

这是一个独立的、非官方的港口,与Anthropic、PBC无关或不受其认可。

该存储库最初基于Elias Bachaalany的麻省理工学院授权作品。 如果感兴趣,请在此处查看原始存储库: https://github.com/0xeb/claude-agent-sdk-dotnet

这个存储库现在已经出现了相当大的分歧。

许可证

根据MIT许可证获得许可。看 LICENSE 了解详情。

这是一个。NET端口 claude代理sdk python 中国人民银行Anthropic。 从Python移植这个库后,它也略有发展,因此可能不是100%匹配。

开始建造克劳德动力。NET应用程序今天!

目录标签

目录标签

人工智能C#Claude开发工具本地部署自然语言处理SDK对话系统

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP