需先安装 .NET 6+ SDK 并执行 dotnet restore,否则会因依赖报错启动失败;LLM 调用需在 appsettings.json 中配置对应提供商的 API Key 和正确的模型名;管理界面是独立仓库 BotSharp-UI,需另行克隆并用 npm install && npm run dev 启动。
git clone https://github.com/dotnetcore/BotSharp
cd BotSharp
dotnet run --project ./src/WebStarter/WebStarter.csproj -p SolutionName=BotSharpREADME 未说明显存或 GPU 要求;框架运行在 .NET Core 上,支持 Windows、Linux、macOS,需 .NET 6+ SDK。
基于 .NET 的开源多智能体应用框架,把 LLM 接入现有业务系统
基于 .NET 的多智能体 AI 框架,用来快速搭建对话机器人和多 Agent 协作应用,省去从零编排通信与任务分发的麻烦。
核心能力
- 内置多智能体与带状态管理的会话
- 插件化流水线设计,LLM 提供商与 UI 可替换
- 内置 RAG 接口与基于向量的记忆检索
- 支持 RESTful Open API 与 WebSocket 实时通信
- 内置 MCP 集成,可视化配置工具调用
容易踩的坑
- r5.2-image-composition最新正式版2025-10-17 · 2025-10-17 19:39 UTC
What's Changed
- fix fork conversation by @iceljc in https://github.com/SciSharp/BotSharp/pull/1082
- fix realtime toolcall by @iceljc in https://github.com/SciSharp/BotSharp/pull/1087
- refine side car states by @iceljc in https://github.com/SciSharp/BotSharp/pull/1089
- temp revert by @iceljc in https://github.com/SciSharp/BotSharp/pull/1090
- revert by @iceljc in https://github.com/SciSharp/BotSharp/pull/1091
- optimize twilio by @yileicn in https://github.com/SciSharp/BotSharp/pull/1092
- detour rate limit by @iceljc in https://github.com/SciSharp/BotSharp/pull/1094
- Refine realtime and twilio by @iceljc in https://github.com/SciSharp/BotSharp/pull/1093
- refine chat stream with initial states by @iceljc in https://github.com/SciSharp/BotSharp/pull/1095
- Add hook to handle locate element for PlayWright by @visagang in https://github.com/SciSharp/BotSharp/pull/1096
- fix #1097 SqlDriver: Database type mssql is not supported by @yuguoqiang in https://github.com/SciSharp/BotSharp/pull/1098
- refine chat stream request by @iceljc in https://github.com/SciSharp/BotSharp/pull/1099
- Add default result by @iceljc in https://github.com/SciSharp/BotSharp/pull/1100
- refine message states by @iceljc in https://github.com/SciSharp/BotSharp/pull/1101
- Filter conversation by agent ids by @iceljc in https://github.com/SciSharp/BotSharp/pull/1102
- add channel to the instruct controller by @visagang in https://github.com/SciSharp/BotSharp/pull/1105
- Features/refine agent template link by @iceljc in https://github.com/SciSharp/BotSharp/pull/1106
- update router instruction by @iceljc in https://github.com/SciSharp/BotSharp/pull/1107
- update router instruction by @iceljc in https://github.com/SciSharp/BotSharp/pull/1108
- add invoke source by @iceljc in https://github.com/SciSharp/BotSharp/pull/1103
- upgrade openai by @iceljc in https://github.com/SciSharp/BotSharp/pull/1109
- add logging in twilio stream by @iceljc in https://github.com/SciSharp/BotSharp/pull/1111
- Features/init reactive x by @iceljc in https://github.com/SciSharp/BotSharp/pull/1084
- add default return by @iceljc in https://github.com/SciSharp/BotSharp/pull/1112
- feat(playwright): handle dropdowns in DropDown action by @ywang1110 in https://github.com/SciSharp/BotSharp/pull/1113
- fix concurrent issue by @JackJiang1234 in https://github.com/SciSharp/BotSharp/pull/1104
- add option agents by @iceljc in https://github.com/SciSharp/BotSharp/pull/1115
- optimize ConvertToString by @yileicn in https://github.com/SciSharp/BotSharp/pull/1116
- fix missing params by @iceljc in https://github.com/SciSharp/BotSharp/pull/1117
- refine indication by @iceljc in https://github.com/SciSharp/BotSharp/pull/1114
- add chart handler by @iceljc in https://github.com/SciSharp/BotSharp/pull/1085
- sending json data by @iceljc in https://github.com/SciSharp/BotSharp/pull/1118
- fix chart handler by @iceljc in https://github.com/SciSharp/BotSharp/pull/1119
- Update IRealtimeHook by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1121
- add end time by @leonleonyu in https://github.com/SciSharp/BotSharp/pull/1120
- Add function to get browser url for Playwright by @visagang in https://github.com/SciSharp/BotSharp/pull/1122
- Features/refine vector store by @iceljc in https://github.com/SciSharp/BotSharp/pull/1123
- add reasoning effort level by @iceljc in https://github.com/SciSharp/BotSharp/pull/1126
- add reasoning settings by @iceljc in https://github.com/SciSharp/BotSharp/pull/1127
- use session in twilio stream by @iceljc in https://github.com/SciSharp/BotSharp/pull/1110
- Features/refine conv filter by @leonleonyu in https://github.com/SciSharp/BotSharp/pull/1129
- Add agent function visibility and init web search by @iceljc in https://github.com/SciSharp/BotSharp/pull/1128
- Update dropdown selection based on PressKey by @visagang in https://github.com/SciSharp/BotSharp/pull/1130
- add vector payload value operator by
- r5.1-utility-improment2025-06-27 · 2025-06-27 14:05 UTC
查看更新说明
What's Changed
- feat: Added Google Multimodal Live APIs by @gunpal5 in https://github.com/SciSharp/BotSharp/pull/993
- Clean code for GeminiLive by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/997
- realtime-hub-refactor by @Oceania2018 in https://github.com/SciSharp/BotSharp/pull/999
- Add InterruptResponse in RealtimeModelSettings by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1000
- InputAudioTranscribe by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1001
- rename WaveStreamChannel by @yileicn in https://github.com/SciSharp/BotSharp/pull/1003
- Update Microsoft.Extensions.AI version to 9.4.0-preview.1.25207.5 by @MackinnonBuck in https://github.com/SciSharp/BotSharp/pull/1002
- Fix conversation states before loading agent for init-outbound-call by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1004
- function log by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1005
- Features/debug local realtime by @iceljc in https://github.com/SciSharp/BotSharp/pull/1006
- Features/debug local realtime by @iceljc in https://github.com/SciSharp/BotSharp/pull/1007
- add default func by @iceljc in https://github.com/SciSharp/BotSharp/pull/1008
- fix: Google realtime communication by @gunpal5 in https://github.com/SciSharp/BotSharp/pull/1009
- fix init state by @iceljc in https://github.com/SciSharp/BotSharp/pull/1011
- Test/realtime test by @iceljc in https://github.com/SciSharp/BotSharp/pull/1010
- refine init mcp by @iceljc in https://github.com/SciSharp/BotSharp/pull/1012
- PEOL-187 hotfix System object Disposed Exception: Cannot access a dis… by @yileicn in https://github.com/SciSharp/BotSharp/pull/1013
- revert set state by @iceljc in https://github.com/SciSharp/BotSharp/pull/1014
- fix init states by @iceljc in https://github.com/SciSharp/BotSharp/pull/1015
- ResponseDoneStatusDetail by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1017
- Remove unnecessary agent load by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1018
- Add webdriver hook to support file uploads by @visagang in https://github.com/SciSharp/BotSharp/pull/1016
- Optimize realtime route_to_agent by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1019
- Add agent routing mode by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1020
- Twilio SpeechModel by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1021
- optimize naming, ConfigureAwait by @yileicn in https://github.com/SciSharp/BotSharp/pull/1022
- Allow settings to disable audio generation. by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1023
- Features/refactor llm cost by @iceljc in https://github.com/SciSharp/BotSharp/pull/1024
- Add
Triggersproperty toSqlDriverCrontabHookclass by @adenchen123 in https://github.com/SciSharp/BotSharp/pull/1026 - GenerateEndingAudio by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1027
- Refactor Triggered method to return conversation IDs by @adenchen123 in https://github.com/SciSharp/BotSharp/pull/1028
- Support reconnect in Twilio by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1029
- response_to_user by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1030
- Flag realtime feature in Labels. by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1031
- optimize by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1032
- Fix the issue of UserIdentity loss by @yileicn in https://github.com/SciSharp/BotSharp/pull/1033
- optimize ITwilioCallStatusHook by @yileicn in https://github.com/SciSharp/BotSharp/pull/1036
- Adding inbound call recording. by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/1038
- Update AgentService.GetAgents.cs by @JackJiang1234 in https://github.com/SciSharp/BotSharp/pull/1040
- Track phone call success state in application by @adenchen123 in https://github.com/SciSharp/BotSharp/pull/1041
- Update AgentService.GetAgents.cs by @JackJiang1234 in https://gith
- r5.0-mcp2025-04-05 · 2025-04-05 00:32 UTC
查看更新说明
What's Changed
- util-twilio-transfer_phone_call by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/948
- hotfix twilio stream conversationId is null by @yileicn in https://github.com/SciSharp/BotSharp/pull/950
- add missing template by @iceljc in https://github.com/SciSharp/BotSharp/pull/951
- Hang up phone with audio by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/952
- Update web driver functionalities by @visagang in https://github.com/SciSharp/BotSharp/pull/953
- Append dialogs into model context by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/954
- util-twilio-leave_voicemail by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/955
- Update web driver to handle mutiple tasks per agent by @visagang in https://github.com/SciSharp/BotSharp/pull/956
- Update code to singleton for WebBrowsing settings by @visagang in https://github.com/SciSharp/BotSharp/pull/957
- realtime model not suppot v1/chat/completions by @yileicn in https://github.com/SciSharp/BotSharp/pull/959
- Add agent-id for all phone endpoints. by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/960
- Fixed agent label bug by @GreenShadeZhang in https://github.com/SciSharp/BotSharp/pull/958
- refine instruction log settings by @iceljc in https://github.com/SciSharp/BotSharp/pull/961
- Update default timeout for web driver by @visagang in https://github.com/SciSharp/BotSharp/pull/962
- call dummy func by @iceljc in https://github.com/SciSharp/BotSharp/pull/943
- add additional llm cost by @iceljc in https://github.com/SciSharp/BotSharp/pull/963
- IAudioSynthesis by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/964
- merge to botsharp by @geffzhang in https://github.com/SciSharp/BotSharp/pull/966
- feat(Gemini): Added Text Embedding Model by @gunpal5 in https://github.com/SciSharp/BotSharp/pull/969
- update function param desc by @iceljc in https://github.com/SciSharp/BotSharp/pull/970
- Update webdriver code by @visagang in https://github.com/SciSharp/BotSharp/pull/971
- Updated readme to add deepseek v3 introduction by @GreenShadeZhang in https://github.com/SciSharp/BotSharp/pull/972
- Add Twilio realtime transcribe. by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/973
- Modelcontextprotocol by @geffzhang in https://github.com/SciSharp/BotSharp/pull/968
- Update webdriver to handle fileupload and dropdown selection by @visagang in https://github.com/SciSharp/BotSharp/pull/976
- refine instruction and mcp by @iceljc in https://github.com/SciSharp/BotSharp/pull/978
- fix file selection by @iceljc in https://github.com/SciSharp/BotSharp/pull/979
- Add UrlAfterAction into Content by @evan-cao-wb in https://github.com/SciSharp/BotSharp/pull/980
- OnCallBusyStatus by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/981
- Dev fix pizza Demo by @GreenShadeZhang in https://github.com/SciSharp/BotSharp/pull/975
- add mcp service by @iceljc in https://github.com/SciSharp/BotSharp/pull/982
- add wait time for webdriver by @visagang in https://github.com/SciSharp/BotSharp/pull/983
- fix json by @iceljc in https://github.com/SciSharp/BotSharp/pull/984
- optimize twilio by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/985
- Change to modelType when getting realtime model. by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/986
- Fix output endpoint. by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/987
- fix Dialogs is null by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/988
- Fix conversation id in HangupPhoneCallFn by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/989
- fix gemini function call by @iceljc in https://github.com/SciSharp/BotSharp/pull/990
- SetMessageId by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/991
- Add route_to_agent log by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/992
- feat:upgrade modelcontextprotocol 0.1.0-preview.5 by @geffzhang in https://github.com/SciSharp/BotSh
- r4.1-realtimev4.1-Realtime2025-03-16 · 2025-03-16 14:48 UTC
查看更新说明
What's Changed
- revert open ai client by @iceljc in https://github.com/SciSharp/BotSharp/pull/812
- Update README.md Add LiteDBStorage Link by @GreenShadeZhang in https://github.com/SciSharp/BotSharp/pull/813
- add agent event rule by @iceljc in https://github.com/SciSharp/BotSharp/pull/814
- add http request hook by @iceljc in https://github.com/SciSharp/BotSharp/pull/815
- rename by @iceljc in https://github.com/SciSharp/BotSharp/pull/817
- add criteria by @iceljc in https://github.com/SciSharp/BotSharp/pull/818
- remove fields by @iceljc in https://github.com/SciSharp/BotSharp/pull/819
- X-Twilio-BotSharp by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/820
- refine agent load by @iceljc in https://github.com/SciSharp/BotSharp/pull/821
- refine idle conv by @iceljc in https://github.com/SciSharp/BotSharp/pull/823
- ignore case by @iceljc in https://github.com/SciSharp/BotSharp/pull/824
- add conv append by @iceljc in https://github.com/SciSharp/BotSharp/pull/825
- Generate Indication from LLM by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/822
- append list by @iceljc in https://github.com/SciSharp/BotSharp/pull/826
- enable answering machine detection by @wcao-lessen in https://github.com/SciSharp/BotSharp/pull/827
- refine prompt by @iceljc in https://github.com/SciSharp/BotSharp/pull/829
- fix gemini function call by @iceljc in https://github.com/SciSharp/BotSharp/pull/832
- refine gemini function parameter by @iceljc in https://github.com/SciSharp/BotSharp/pull/833
- ICrontabSource by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/834
- add data by @iceljc in https://github.com/SciSharp/BotSharp/pull/835
- Update M.E.AI to 9.1.0-preview.1.25064.3 by @stephentoub in https://github.com/SciSharp/BotSharp/pull/831
- clean code of sql planner by @Oceania2018 in https://github.com/SciSharp/BotSharp/pull/836
- refactor cache by @yileicn in https://github.com/SciSharp/BotSharp/pull/838
- refine side car attribute by @iceljc in https://github.com/SciSharp/BotSharp/pull/839
- optimize RedisCache by @yileicn in https://github.com/SciSharp/BotSharp/pull/840
- add global stats by @iceljc in https://github.com/SciSharp/BotSharp/pull/842
- refine by @iceljc in https://github.com/SciSharp/BotSharp/pull/843
- hang up after maximum gather attempts by @wcao-lessen in https://github.com/SciSharp/BotSharp/pull/841
- refine sidecar async by @iceljc in https://github.com/SciSharp/BotSharp/pull/845
- Features/add deep seek by @iceljc in https://github.com/SciSharp/BotSharp/pull/846
- Support distributed crontab workers by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/844
- rename by @iceljc in https://github.com/SciSharp/BotSharp/pull/847
- refine global stats by @iceljc in https://github.com/SciSharp/BotSharp/pull/848
- Allow append states in RuleTrigger. by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/849
- relocate by @iceljc in https://github.com/SciSharp/BotSharp/pull/850
- fix cost calculation by @iceljc in https://github.com/SciSharp/BotSharp/pull/851
- add entry agent id by @iceljc in https://github.com/SciSharp/BotSharp/pull/853
- Make name readonly by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/854
- Refactor Agemt Task by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/855
- Features/refine agent filter by @iceljc in https://github.com/SciSharp/BotSharp/pull/856
- Features/refine agent filter by @iceljc in https://github.com/SciSharp/BotSharp/pull/857
- Features/refine agent filter by @iceljc in https://github.com/SciSharp/BotSharp/pull/859
- Add IsRealTime Flag by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/858
- revert by @iceljc in https://github.com/SciSharp/BotSharp/pull/861
- Revert by @iceljc in https://github.com/SciSharp/BotSharp/pull/862
- fix by @iceljc in https://github.com/SciSharp/BotSharp/pull/863
- add routing dialogs by @iceljc in https://github.com/SciSharp/BotSharp/pull/864
- WebUt
- r4.0-sidecar2025-01-02 · 2025-01-02 22:53 UTC
查看更新说明
What's Changed
- fix vector db by @iceljc in https://github.com/SciSharp/BotSharp/pull/672
- Features/add notification by @iceljc in https://github.com/SciSharp/BotSharp/pull/673
- remove params by @iceljc in https://github.com/SciSharp/BotSharp/pull/674
- minor fix by @Joannall in https://github.com/SciSharp/BotSharp/pull/675
- Upgrade Anthropic.SDK to v4 by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/676
- add processor by @iceljc in https://github.com/SciSharp/BotSharp/pull/679
- Add Refined Knowledge memorize and search. Update Planner terms by @Joannall in https://github.com/SciSharp/BotSharp/pull/680
- Bump System.Text.Json from 8.0.4 to 8.0.5 in /src/Infrastructure/BotSharp.Abstraction by @dependabot in https://github.com/SciSharp/BotSharp/pull/678
- add message update by @iceljc in https://github.com/SciSharp/BotSharp/pull/681
- optimize sql driver by @Oceania2018 in https://github.com/SciSharp/BotSharp/pull/682
- Bump Microsoft.Extensions.Caching.Memory from 8.0.0 to 8.0.1 in /src/Infrastructure/BotSharp.Core by @dependabot in https://github.com/SciSharp/BotSharp/pull/683
- Miscellaneous improvements by @Oceania2018 in https://github.com/SciSharp/BotSharp/pull/685
- Add attachment example and refine dictionary lookup by @Joannall in https://github.com/SciSharp/BotSharp/pull/684
- Skip refine if tables is empty by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/686
- Add knowledge generation refinement by @Joannall in https://github.com/SciSharp/BotSharp/pull/687
- add instruct by @iceljc in https://github.com/SciSharp/BotSharp/pull/688
- minor fix by @iceljc in https://github.com/SciSharp/BotSharp/pull/689
- Voice copilot support postback by @yileicn in https://github.com/SciSharp/BotSharp/pull/690
- add comments by @iceljc in https://github.com/SciSharp/BotSharp/pull/691
- fix routing context by @iceljc in https://github.com/SciSharp/BotSharp/pull/693
- support assistant message payload by @yileicn in https://github.com/SciSharp/BotSharp/pull/692
- Add relevant knowledge to Summary Plan by @Joannall in https://github.com/SciSharp/BotSharp/pull/694
- minor change by @Joannall in https://github.com/SciSharp/BotSharp/pull/695
- add tags by @iceljc in https://github.com/SciSharp/BotSharp/pull/696
- support assistant message playload by @yileicn in https://github.com/SciSharp/BotSharp/pull/697
- Docs: Typo Fix by @Chaitanya110703 in https://github.com/SciSharp/BotSharp/pull/700
- add default by @iceljc in https://github.com/SciSharp/BotSharp/pull/701
- Docs: Typo Fix by @Chaitanya110703 in https://github.com/SciSharp/BotSharp/pull/699
- Fix model by @iceljc in https://github.com/SciSharp/BotSharp/pull/702
- create conv with tags by @iceljc in https://github.com/SciSharp/BotSharp/pull/703
- add text field in generic element by @iceljc in https://github.com/SciSharp/BotSharp/pull/704
- Add drop tmp table, Refined kg search by @Joannall in https://github.com/SciSharp/BotSharp/pull/705
- Code Driver init by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/706
- Add a ChannelId column to the ConversationDocument by @yileicn in https://github.com/SciSharp/BotSharp/pull/698
- support intent in welcome webhook by @wcao-lessen in https://github.com/SciSharp/BotSharp/pull/711
- naming change-domain knowledge by @Joannall in https://github.com/SciSharp/BotSharp/pull/710
- fix states query parameter by @wcao-lessen in https://github.com/SciSharp/BotSharp/pull/713
- Add BotSharp.Plugin.MicrosoftExtensionsAI by @stephentoub in https://github.com/SciSharp/BotSharp/pull/707
- formatter update by @Joannall in https://github.com/SciSharp/BotSharp/pull/715
- Add Database Hook by @Joannall in https://github.com/SciSharp/BotSharp/pull/717
- minor change by @Joannall in https://github.com/SciSharp/BotSharp/pull/719
- Fix planner issue of Claude output array is not stable by @hchen2020 in https://github.com/SciSharp/BotSharp/pull/718
- WebDriver improvement by @Oceania201
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
The Open Source AI Agent Application Framework
Connect LLMs to your existing application focused on your business
"Conversation as a platform (CaaP) is the future, so it's perfect that we're already offering the whole toolkits to our .NET developers using the BotSharp AI BOT Platform Builder to build a CaaP. It opens up as much learning power as possible for your own robots and precisely control every step of the AI processing pipeline."
BotSharp is an open source machine learning framework for AI Bot platform builder. This project involves natural language understanding, computer vision and audio processing technologies, and aims to promote the development and application of intelligent robot assistants in information systems. Out-of-the-box machine learning algorithms allow ordinary programmers to develop artificial intelligence applications faster and easier.
It's written in C# running on .Net Core that is full cross-platform framework, the plug-in and pipeline flow execution design is adopted to completely decouple the plug-ins. C# is a enterprise grade programming language which is widely used to code business logic in information management related system. More friendly to corporate developers. BotSharp adopts machine learning algorithm in C# directly. That will facilitate the feature of the typed language C#, and be more easier when refactoring code in system scope.
BotSharp is in accordance with components principle strictly, decouples every part that is needed in the platform builder. So you can choose different UI/UX, or pick up a different LLM providers. They are all modularized based on unified interfaces. BotSharp provides an advanced Agent abstraction layer to efficiently manage complex application scenarios in enterprises, allowing enterprise developers to efficiently integrate AI into business systems.

Some Features
- Built-in multi-agents and conversation with state management.
- Support multiple LLM Planning approaches to handle different tasks from simple to complex.
- Built-in RAG related interfaces, Memory based vector searching.
- Support multiple AI platforms (ChatGPT 3.5/ 4o/ o1, Gemini 2, LLaMA 3, Claude Sonnet 3.5,DeepSeek V3, HuggingFace).
- Allow multiple agents with different responsibilities cooperate to complete complex tasks.
- Build, test, evaluate and audit your LLM agent in one place.
- Build-in
BotSharp UIwritten in SvelteKit. - Abstract standard Rich Content data structure. Integrate with popular message channels like Facebook Messenger, Slack and Telegram.
- Provide RESTful Open API and WebSocket real-time communication.
- Built-in MCP Integration: Visual management of MCP, enabling large model calls to Tools. Supports mainstream services like mcp.so
Quick Started
- Run backend service
PS D:\> git clone https://github.com/dotnetcore/BotSharp
PS D:\> cd BotSharp
# For Windows
PS D:\BotSharp\> dotnet run --project .\src\WebStarter\WebStarter.csproj -p SolutionName=BotSharp
# For Linux
$ dotnet run --project ./src/WebStarter/WebStarter.csproj -p SolutionName=BotSharp
- Run Admin UI project, reference to BotSharp UI.
PS D:\> git clone https://github.com/SciSharp/BotSharp-UI
PS D:\> cd BotSharp-UI
PS D:\> npm install
PS D:\> npm run dev
Access http://localhost:5015/
Core Modules
The core module is mainly composed of abstraction and framework function implementation, combined with some common tools.
- Plugin Loader
- Hooking
- Authentication
- Agent Profile
- Conversation & State
- Routing & Planning
- Templating
- File Repository
- Caching
- Rich Content
- LLM Provider
Plugins
BotSharp uses component design, the kernel is kept to a minimum, and business functions are implemented by external components. The modular design also allows contributors to better participate. Below are the built-in plugins:
Data Storages
- BotSharp.Core.Repository
- BotSharp.Plugin.MongoStorage
- BotSharp.Plugin.LiteDBStorage
- BotSharp.Plugin.TencentCos
LLMs
- BotSharp.Plugin.Planner
- BotSharp.Plugin.AzureOpenAI
- BotSharp.Plugin.OpenAI
- BotSharp.Plugin.AnthropicAI
- BotSharp.Plugin.DeepSeekAI
- BotSharp.Plugin.GoogleAI
- BotSharp.Plugin.MetaAI
- BotSharp.Plugin.HuggingFace
- BotSharp.Plugin.LLamaSharp
- BotSharp.Plugin.SemanticKernel
- BotSharp.Plugin.SparkDesk
Messaging / Channel
- BotSharp.OpenAPI
- BotSharp.Plugin.ChatHub
- BotSharp.Plugin.MetaMessenger
- BotSharp.Plugin.Twilio
- BotSharp.Plugin.TelegramBots
- BotSharp.Plugin.WeChat
RAGs
- BotSharp.Plugin.KnowledgeBase
- BotSharp.Plugin.Qdrant
Visions
- BotSharp.Plugin.PaddleSharp
Tools
- BotSharp.Plugin.Dashboard
- BotSharp.Plugin.RoutingSpeeder
- BotSharp.Plugin.AudioHandler
- BotSharp.Plugin.ChartHandler
- BotSharp.Plugin.EmailHandler
- BotSharp.Plugin.ExcelHandler
- BotSharp.Plugin.FileHandler
- BotSharp.Plugin.ImageHandler
- BotSharp.Plugin.HttpHandler
- BotSharp.Plugin.SqlDriver
- BotSharp.Plugin.WebDriver
- BotSharp.Plugin.PythonInterpreter
UIs
- BotSharp.Plugin.ChatbotUI
Roadmap
- A2A
- MCP
- Realtime
- Computer Use
- Browser Use
- Database Assistant
- Code Interpreter
- Conversation Management
- Multi-Agent Routing
- Knowledge Base
FAQ
General Questions
What is BotSharp? BotSharp is an open-source .NET machine learning framework for building AI Bot platforms. It provides out-of-the-box components for natural language understanding, computer vision, and audio processing, enabling enterprise developers to integrate AI into business systems efficiently.
What .NET versions are supported? BotSharp runs on .NET Core, which is fully cross-platform. It supports .NET 6+ and works on Windows, Linux, and macOS.
Is BotSharp free to use? Yes, BotSharp is licensed under Apache 2.0, allowing free use in both personal and commercial projects.
LLM Provider Configuration
Which LLM providers are supported? BotSharp supports multiple AI platforms including ChatGPT (3.5/4o/o1), Gemini 2, LLaMA 3, Claude Sonnet 3.5, DeepSeek V3, HuggingFace, and more through its modular plugin system.
How do I configure a custom LLM provider?
Create a plugin that implements the LLM provider interface, or use one of the built-in plugins like BotSharp.Plugin.OpenAI or BotSharp.Plugin.AnthropicAI. Configure the API keys in your appsettings.json.
Agent Development
How do I create a custom agent? Define an agent profile with its responsibilities, then implement the required hooks and plugins. BotSharp's advanced Agent abstraction layer handles the complex orchestration automatically.
Can multiple agents cooperate on a task? Yes, BotSharp supports multi-agent scenarios where agents with different responsibilities can cooperate to complete complex tasks. The routing and planning system handles agent coordination.
MCP Integration
What is MCP and how does BotSharp support it? MCP (Model Context Protocol) enables large model calls to external tools. BotSharp has built-in MCP integration with visual management capabilities, supporting mainstream services like mcp.so.
Deployment
How do I deploy BotSharp in production?
Run the backend service using dotnet run and deploy it behind a reverse proxy (Nginx/IIS). The Admin UI (built with SvelteKit) can be deployed separately. See the documentation for detailed deployment guides.
Can I use BotSharp without the UI? Yes, BotSharp provides RESTful Open API and WebSocket real-time communication. You can integrate it directly with your own frontend or messaging channels.
Troubleshooting
BotSharp fails to start with dependency errors
Ensure you have .NET 6+ SDK installed and all NuGet packages are restored. Run dotnet restore before dotnet run.
LLM calls are timing out
Check your API key configuration in appsettings.json, verify network connectivity to the LLM provider, and ensure the model name is correct.
Documents
Read the docs: https://botsharp.readthedocs.io?wt.mc_id=AI-MVP-5005183
New documentation website: https://botsharp.verdure-hiro.cn
If you feel that this project is helpful to you, please Star the project, we would be very grateful.
Member project of SciSharp STACK which is the .NET based ecosystem of open-source software for mathematics, science, and engineering.