Skip to content

About

#develop (short for SharpDevelop) is a free IDE for .NET programming languages.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

SharpDevelop 6 — C# AI Agent IDE

基于 SharpDevelop 5.1 架构的现代化 C# IDE,深度集成 Roslyn 语言服务与 Microsoft Agent Framework (MAF) 1.0 AI Agent 能力。

CI

项目愿景

构建一个 C# 原生、开源、支持 AI Agent 的现代 IDE,对标 Zed 的性能与 Copilot Chat 的 AI 体验:

  • AddInTree 插件系统(继承自 SharpDevelop 5.1)— XML 声明式扩展点,插件可注册 AI Agent 与 MCP Server
  • Roslyn 语言服务(替换废弃的 NRefactory)— 语法高亮、智能补全、诊断、格式化、代码修复、符号导航
  • AI Agent 层 — 基于 IAgentBackend 抽象的可替换后端:进程内(MAF 1.0 IChatClient 模型抽象,OpenAI / Azure / Ollama / 任意兼容端点)或外部 Agent CLI 后端(Native AOT 独立进程,二进制协议经 stdin/stdout 通信);工具注册、上下文收集、斜杠命令、内联补全
  • .NET 9+ 全链路 — SDK-style 项目、net9.0-windows 目标、Native AOT、现代化构建管线

技术栈

层 技术
编辑器 AvalonEdit 6.x(ICSharpCode.AvalonEdit)
语言服务 Roslyn Microsoft.CodeAnalysis 4.12(Common / CSharp / Workspaces / Features / MSBuild)
AI Agent(进程内) Microsoft.Agents.AI 1.17 + Microsoft.Extensions.AI(OpenAI SDK 客户端)
AI Agent(外部 CLI) SharpDevelop.Agent.Cli(net9.0-windows + Native AOT,sd-agent.exe)、Microsoft.Extensions.AI.OpenAI
插件系统 ICSharpCode.Core AddInTree(SharpDevelop 5.1 遗产,已现代化)
目标框架 net9.0 / net9.0-windows
CI GitHub Actions

解决方案结构

src/
├── ICSharpCode.Core/            # AddInTree 插件系统 + 服务子系统(SD 5.1 遗产)
├── SharpDevelop.Agent.Protocol/ # Agent 二进制协议(帧编码:握手/配置/消息/会话/心跳/取消)
├── SharpDevelop.Roslyn/         # Roslyn 语言服务
│   ├── SyntaxHighlighting/      #   Roslyn 语义语法高亮(SD-P1-T01)
│   ├── Completion/              #   智能补全(SD-P1-T02)
│   ├── Diagnostics/             #   诊断桥接 → 波浪线/Error List(SD-P1-T03)
│   ├── Formatting/              #   格式化服务(SD-P1-T04)
│   ├── CodeActions/             #   代码修复服务(SD-P1-T05)
│   ├── Symbols/                 #   符号导航:定义/引用/重命名
│   └── Tools/                   #   AI 工具桥接(GetDiagnostics/SearchSymbols/...)
├── SharpDevelop.AI/             # AI Agent 层(IAgentBackend 抽象 + MAF 实现)
│   ├── Configuration/           #   IChatClient 抽象 + 模型配置(SD-P2-T02)
│   ├── Agents/                  #   chat-assistant / inline-completer / 工作流(SD-P2-T03/09)
│   ├── Tools/                   #   工具框架:ReadFile/WriteFile/ApplyEdit/Git/MCP(SD-P2-T05/08)
│   ├── Context/                 #   编辑器上下文收集器(SD-P2-T06)
│   ├── Commands/                #   斜杠命令 /explain /fix /test ...(SD-P2-T07)
│   ├── Prompts/                 #   Prompt 模板体系(嵌入 prompts/ 目录)
│   └── MCP/                     #   MCP Client(.mcp.json → stdio 工具桥接)
├── SharpDevelop.Agent.Core/     # 类 Claude Code 代理运行时(AOT 安全):Agent 循环/工具/规划
├── SharpDevelop.Agent.Cli/      # Agent CLI(Native AOT,sd-agent.exe):协议服务端 + run/exec 代理模式
└── SharpDevelop.Host/           # WPF IDE 宿主(可运行)
    ├── Editor/                  #   AvalonEdit + Roslyn 高亮/诊断/内联补全(SD-P1/2 UI)
    ├── AgentCli/                #   AgentCliClient:子进程 + 二进制协议 → IAgentBackend
    ├── Chat/                    #   AI 聊天面板(流式 + Markdown + 斜杠命令补全,SD-P2-T04/07)
    └── Settings/                #   模型设置对话框(SD-P4-T01 基础)

tests/
└── SharpDevelop.AI.Tests/       # xUnit 测试(工具/命令/工作流/提示词/MCP 解析 + AgentCli e2e)

AI 编程代理(sd-agent)

sd-agent(Native AOT 原生可执行)既是 IDE 的外部 Agent 后端,也是独立的 类 Claude Code 交互式编程代理:

# 交互式 REPL(观察→思考→行动循环,/help 查看命令)
sd-agent run

# 单次任务执行
sd-agent exec --task "为 Worker 类补充单元测试" --workdir ./src

# 二进制协议服务端(IDE 集成,无参数启动)
sd-agent

能力矩阵(改造路线图):

阶段 能力 状态
1 ① Agent 循环 ② 工具设计 ③ 显式规划 ✅ 已实现
2 ④ 子代理上下文 ⑤ 知识注入 ⑥ 三层压缩 ⑬ 长程记忆 ✅ 已实现
3 ⑦ 文件任务看板 ⑧ 后台执行 ⑪ WORK/IDLE 自治 ✅ 已实现
4 ⑨ JSONL 团队 ⑩ request_id 协议 FSM ⑫ Worktree 隔离 ✅ 已实现
5 多进程并发加固(LockedFile 原子存储 / 并发认领零重复) ✅ 已实现
6 终端命令执行确认机制(Dangerous 恒拒 / Risky 交互确认 + headless 拒绝 / Safe 白名单) ✅ 已实现
7 网络请求白名单 + fetch_url(SSRF 双防线:内网/IP/元数据恒拒 + 白名单/交互确认 + DNS 解析校验) ✅ 已实现
8 内容安全门(提示注入防护:未信任数据定界 + 注入检测警示;输出脱敏:密钥打码) ✅ 已实现
9 Azure AD 认证(BearerTokenPolicy:AzureOpenAI 无 API Key 时用 az 令牌 Bearer 认证,DPAPI 落盘) ✅ 已实现

构建

前置要求

  • .NET SDK 9.0+(CI 使用 9.0.x)
  • Windows(ICSharpCode.Core / SharpDevelop.Host 使用 net9.0-windows,WPF)

命令

# 还原 + 构建整个解决方案
dotnet restore SharpDevelop.slnx
dotnet build SharpDevelop.slnx

# 运行 IDE(编辑器 + AI 聊天面板)
dotnet run --project src/SharpDevelop.Host

# 发布 Release 版本(完整安装包:IDE + sd-agent.exe + 插件,自动后验关键产物)
powershell -ExecutionPolicy Bypass -File scripts/publish-windows.ps1 -Version 6.0.0

# 发布 Agent CLI 为独立原生可执行文件(Native AOT,sd-agent.exe)
dotnet publish src/SharpDevelop.Agent.Cli -c Release -r win-x64

# 运行测试
dotnet test SharpDevelop.slnx

# 检查依赖漏洞
dotnet list SharpDevelop.slnx package --vulnerable --include-transitive

使用 IDE

启动后在「⚙ 设置」中填写模型信息(OpenAI / Azure / Ollama / 任意 OpenAI 兼容端点),然后:

  • 打开任意文件:Roslyn 语义高亮 + 实时诊断波浪线(红=错误,黄=警告)
  • 右侧 AI 助手 面板:对话式问答;输入 / 触发斜杠命令(/explain /fix /test /doc /review /refactor)
  • 勾选「内联补全」:打字停顿后光标右侧出现灰色幽灵文本,Tab 接受、Esc 取消
  • AI 可调用工具:读/写文件、项目搜索、Git 状态、符号查询、.mcp.json 中的 MCP 服务器工具
  • sd-agent 斜杠命令:/tasks /task-create /team /worktree /memory /knowledge /protocol /work 等由本机 sd-agent.exe 直接执行(后端无关、不耗 token、无需配置模型即可查看/操作任务看板);/sd <子命令> 可透传任意白名单子命令
  • 任务看板面板:「视图 → 任务看板」打开底部停靠面板,可视化 sd-agent 任务(状态 着色、依赖/结果列、5s 自动刷新);工具栏可新建任务(标题/描述/依赖)、标记完成、 刷新;双击任务跳转聊天面板查看详情。后台 worker 认领/完成任务会自动出现在看板上
  • 团队状态面板:「视图 → 团队状态」展示队友列表(含收件箱消息数)与协议请求日志 (状态着色,双击查看详情)。收件箱为非破坏性 peek——面板轮询不会抢走智能体消息
  • 隔离工作区面板:「视图 → 隔离工作区」列出 sd-agent worktree(每行含该工作区独立 的任务看板统计),可新建/删除,双击查看任务详情。多个工作区并行开发互不干扰
  • 标签式工具窗口:任务看板/团队状态/隔离工作区合并为一个底部标签窗口(单选切换, 点标签头或菜单项均可),三个面板共享同一主题化 TabControl 样式

AI 后端选择(AgentBackend)

设置中可切换 AI 后端:

  • InProcess(默认):进程内 MAF 1.0 agent(AssistantAgent),随 IDE 加载。
  • Cli:外部 Agent CLI 后端(sd-agent.exe,Native AOT 原生进程)。IDE 经 AgentCliClient 以子进程 + 二进制协议(stdin/stdout,帧编码见 SharpDevelop.Agent.Protocol)通信,模型连接、 会话与流式均在独立进程完成。AgentCliPath 可指向官方 sd-agent.exe 或第三方实现同一协议的可执行文件 (默认取宿主目录下部署的 sd-agent.exe)。CLI 独立缓存模型连接,IDE 崩溃不影响其生命周期, 便于独立更新/发布与隔离。

里程碑状态

Phase 状态 说明
P0 项目初始化 ✅ SharpDevelop 5.1 核心提取、.NET 9 SDK 迁移、NRefactory 移除、Roslyn 引入、CI、文档
P1 核心现代化 ✅ Roslyn 高亮/补全/诊断/格式化/CodeFix/符号服务;宿主内语义高亮 + 诊断波浪线
P2 AI Agent 层 ✅ MAF 1.0、IChatClient 抽象、工具集(含 Git/MCP)、上下文收集、斜杠命令、内联补全、聊天面板 UI、多 Agent 工作流、外部 Agent CLI 后端(Native AOT + 二进制协议)
P3 插件增强 ✅ AddInTree /AI/Agents /AI/MCPServers 扩展点、进程沙箱(Job Object)、主题系统(深色/浅色/高对比度)、性能优化
P4 生产化 🔶 设置持久化/导入导出、遥测(OpenTelemetry)、自动更新、文档已完成;Beta 测试与 v0.1.0 发布(GitHub 远端)待人工

快速开始(AI 能力)

// 1. 创建模型配置(OpenAI 示例)
var config = new ModelConfiguration
{
    Provider = ModelProvider.OpenAI,
    ModelName = "gpt-4o-mini",
    ApiKey = "<your-key>"
};

// 2. 构建 Agent
using var factory = new ChatClientFactory();
var tools = new ToolRegistry();
tools.RegisterProvider(new FileSystemToolProvider(@"C:\path\to\project"));
tools.RegisterProvider(new RoslynToolProvider(workspace));

using var assistant = new AssistantAgent(factory, config, tools);

// 3. 对话(带编辑器上下文)
var context = new ContextCollector().Collect(
    filePath: "Program.cs", fileContent: code, cursorLine: 12, cursorColumn: 4, selectedText: null);

await foreach (var chunk in assistant.ChatWithContextAsync("/explain", context))
    Console.Write(chunk);

文档

  • docs/user-manual.md — 用户手册(入门 / 进阶 / 参考 / 快捷键)
  • docs/faq.md — FAQ / 故障排除
  • docs/plugin-development-guide.md — 插件开发指南(AddInTree + AI 扩展点 + 沙箱)
  • docs/api-reference.md — API 参考(SharpDevelop.AI / Roslyn / Host / Core)
  • docs/spec.md — 技术规格说明书(三方案对比)
  • docs/tasks.md — 任务分解与里程碑
  • docs/checklist.md — 实施检查清单
  • docs/addin-ai-extension-points.md — 插件注册 AI Agent / MCP Server 指南
  • docs/telemetry-privacy.md — 遥测数据隐私声明
  • docs/agent-capabilities-manual.md — sd-agent 13 项能力操作手册(REPL/CLI 命令、示例场景)
  • docs/agent-capabilities-verification.md — sd-agent 13 项能力验证手册(自动化测试 + 手动验证步骤)
  • docs/sd-agent-vs-ide-ai.md — sd-agent CLI 与 IDE AI 助手执行差异注意事项(引擎/提示词/工具/沙箱差异与对齐方法)
  • docs/small-model-context-mitigation.md — 小模型上下文长度限制应对措施与整改方案(Ollama 本地小模型:操作对策 + 分阶段代码整改 + 验证方案)
  • prompts/ — Agent 系统提示词模板库(已嵌入 SharpDevelop.AI)

许可

MIT(继承 SharpDevelop 5.1 许可;SharpDevelop © 2000-2016 AlphaSierraPapa / ICSharpCode Team)。

About

#develop (short for SharpDevelop) is a free IDE for .NET programming languages.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages