内容
# Agora 工作台
<p align="left">
<img src="logo.png" alt="Agora 工作台 logo" width="250">
</p>

[](LICENSE)
用于包装您的工具与MCP的工具台
<h2><a href="https://microsoft.github.io/agora-workbench">文档</a></h2>
> [!IMPORTANT]
> **研究软件和支持**
>
> Agora 工作台是一个研究软件,不是微软官方支持的产品。它按原样提供,可能会在没有任何通知的情况下更改。不提供任何支持、服务级别承诺或兼容性保证。欢迎提出问题和贡献,但不保证响应、修复和持续维护。
## 概述
Agora 工作台是一个用于构建MCP(模型上下文协议)服务器的工具包,提供带有领域特定包的沙箱Python执行环境。它与代理框架无关 - 任何与MCP兼容的客户端都可以利用Agora工作台创建的服务器。
使用Agora 工作台:
- **将领域特定的Python工具包装为MCP服务器** - 通过隔离的、会话感知的执行环境公开Python环境,任何MCP客户端都可以调用
- **使工具可发现** - 在可搜索的目录中注册工具和技能,以便代理可以通过自然语言查询找到所需的内容
- **与代码一起提供数据** - 附加文件目录,以便代理可以定位和加载数据集,而无需硬编码路径
- **部署到Azure容器应用** - 使用附带的Bicep模板和CLI将服务器与Entra ID身份验证和管理身份一起交付
## 快速入门
### 先决条件
- **Python 3.11+**
- **Git**
- **[uv](https://docs.astral.sh/uv/)** 用于依赖项管理
- **Docker** (需要用于捆绑的容器示例和本地Compose工作流)
### 安装
**使用uv(推荐用于开发):**
```bash
git clone https://github.com/microsoft/agora-workbench.git
cd agora-workbench
uv sync --group dev # 安装项目和开发工具
```
**使用pip(作为库使用):**
```bash
pip install "agora-workbench @ git+https://github.com/microsoft/agora-workbench.git@v0.1.0"
```
固定发行版标签为下游项目提供稳定的依赖项。使用uv,添加相同的发行版:
```bash
uv add "agora-workbench @ git+https://github.com/microsoft/agora-workbench.git@v0.1.0"
```
查看 [变更日志](https://github.com/microsoft/agora-workbench/blob/main/CHANGELOG.md) 获取发行历史和
[发布指南](https://github.com/microsoft/agora-workbench/blob/main/RELEASING.md) 获取版本控制策略。
**示例的额外依赖项** - 基本包是您构建和运行MCP服务器所需的一切。额外依赖项会引入示例集成使用的依赖项:
| 额外依赖项 | 示例集成 |
|-------|---------------------|
| `openai-agents` | OpenAI Agents SDK适配器 |
| `copilot-sdk` | GitHub Copilot SDK适配器 |
| `geo` | 地理空间示例服务器依赖项(rasterio等) |
使用适用于您的安装方法:
```bash
# uv(在克隆的repo中)
uv sync --extra openai-agents
# pip(作为库使用)
pip install "agora-workbench[openai-agents] @ git+https://github.com/microsoft/agora-workbench.git@v0.1.0"
```
### 配置
在本地测试时,不需要外部凭证。使用noop身份验证配置来完全跳过身份验证:
```python
from agora_workbench.code_execution import CodeExecutionServer, ServerConfig
from agora_workbench.code_execution.auth import create_noop_auth_config
config = ServerConfig(
name="myserver",
description="我的本地测试服务器",
type="uv",
dependency_file="numpy\npandas\n",
)
server = CodeExecutionServer(
server_config=config,
auth_config=create_noop_auth_config(),
)
```
有关基于Docker的本地部署和Azure容器应用,请参阅 [部署指南](https://microsoft.github.io/agora-workbench/guide/deploying/)。有关Entra ID身份验证设置,请参阅 [身份验证指南](https://microsoft.github.io/agora-workbench/guide/authentication/)。
## 贡献
该项目欢迎贡献和建议。大多数贡献需要您同意贡献者许可协议(CLA),声明您拥有授予我们使用您的贡献的权利。有关详细信息,请访问 [贡献者许可协议](https://cla.opensource.microsoft.com)。
当您提交拉取请求时,CLA机器人将自动确定您是否需要提供CLA并适当地装饰PR(例如,状态检查,注释)。只需按照机器人提供的说明进行操作即可。您只需要在使用我们的CLA的所有仓库中执行此操作一次。
**指南:**
- 对于比简单的拼写错误更复杂的更改,请先提交问题以讨论提议的更改
- 遵循项目文档中概述的开发实践
### 联系方式
如果您有问题或反馈,请 [提交问题](https://github.com/microsoft/agora-workbench/issues)。
该项目已采用 [微软开放源代码行为准则](https://opensource.microsoft.com/codeofconduct/)。有关更多信息,请参阅 [行为准则常见问题](https://opensource.microsoft.com/codeofconduct/faq/) 或联系 [opencode@microsoft.com](mailto:opencode@microsoft.com),提出其他问题或评论。
## 商标
该项目可能包含项目、产品或服务的商标或徽标。授权使用微软商标或徽标受 [微软商标和品牌指南](https://www.microsoft.com/legal/intellectualproperty/trademarks/usage/general) 的约束。在修改此项目的版本中使用微软商标或徽标不得引起混淆或暗示微软赞助。第三方商标或徽标的使用受其各自的政策约束。