内容
AI 驱动的 HPC 研究助手 — 面向 Slurm 集群、生物信息学工作流和科学计算的对话式接口。
IrisAI 使研究人员能够通过自然语言与 HPC 资源交互:提交和监控 Slurm 作业、运行 AlphaFold3 结构预测、分析基因组学数据、管理文件和执行代码 — 所有这些都来自通过 Open OnDemand 部署的 Chainlit 聊天界面。
## 架构
IrisAI 是一个**基于技能路由的单代理系统**。每个用户回合都会动态组合一个 LLM 代理,并且只使用与任务相关的工具和指令。
```
┌─────────────────────────────────────────────────────────────────────┐
│ 浏览器(Chainlit UI) │
└──────────────────────────────────┬──────────────────────────────────┘
│ WebSocket
┌──────────────────────────────────▼──────────────────────────────────┐
│ app.py(编排器) │
│ │
│ ┌──────────┐ ┌──────────────────┐ ┌────────────────────────┐ │
│ │ 技能 │ │ 原生代理 │ │ 策略强制执行层 │ │
│ │ 选择器 │→ │ 执行器 │→ │ 层(PEL) │ │
│ │ (Haiku) │ │ (Anthropic API) │ │ (config/policy.yaml) │ │
│ └──────────┘ └────────┬─────────┘ └────────────────────────┘ │
│ │ LLM 调用(所有模型) │
│ ┌───────────▼───────────────────────┐ │
│ │ LiteLLM 代理 → LLM 后端 │ │
│ │ (AWS Bedrock、Azure、OpenAI 等) │ │
│ └───────────────────────────────────┘ │
└───────────────────────────┬─────────────────────────────────────────┘
│ 工具调用(结果返回给 LLM)
┌──────────────────┼────────────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌─────────────────┐ ┌────────────────────┐
│ MCP 服务器 │ │ 本地工具 │ │ 子代理 │
│ (4 服务器) │ │ (批处理,支出, │ │ (工作代理, │
│ ~65 工具 │ │ 网络搜索) │ │ 分析文件) │
└──────────────┘ └─────────────────┘ └────────────────────┘
文件操作,生物, 读取/写入文件, 委托 LLM 调用
Slurm,代码执行 成本跟踪,网络 通过 app.py → LiteLLM
```
**关键组件:**
- **技能路由器** — Haiku 分类每个请求并选择相关的技能(s)+ 工具子集
- **原生代理执行器** — 直接 Anthropic Messages API(不是 LangChain);启用提示缓存和扩展思考
- **策略强制执行层(PEL)** — 每个工具调用预算、阻止规则、审计日志
- **MCP 服务器** — 4 个模块服务器(~65 个工具):文件操作、生物处理、Slurm 管理、代码执行
- **分阶段执行** — 研究 → 计划 → 执行阶段,带有结构化工具门控
-压缩** — 3 牌管理(每个工具压缩、滑动窗口、会话结束整理)
查看 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) 以获取完整详细信息 基础设施需求
I 设计用于机构 HPC 部署:
| 组件 | 目的 |
|-----------|---------|
| **Slurm** | HPC 工作 |
| **Singularity/ainer ≥1.5和代码执行的容器运行时 |
| **Open OnDemand 用户身份验证和交互启动的 Web 门户 |
LiteLLM 代理 将 LLM 调用路由到您的提供商(AWS Bedrock、Azure 等) |
| **PostgreSQL** | LiteLLM 虚拟密钥管理所需 |
| **AWS Bedrock** (或兼容) | LLM 后端 — Claude Sonnet 4、Opus 4、Haiku 4.5 |
没有独立的本地开发模式。有关设置说明,请参见 [docs/deployment.md](docs/deployment.md)。
## 功能
- **30+ 技能**、生物信息学Fold3、代码执行分析、文件操作等 **Slurm 集成** — 通过自然语言提交、监控作业
- **Alpha** — 具有自动准备的结构预测
- **生物信息学工具** — V、H5AD/数据、序列处理
-系统操作** — 读取、在 HPC 存储上搜索- **多模型支持** Sonnet/Opus/Haiku + OpenAI 兼容
- **策略引擎 每个工具的速率阻止模式、审批流程
会话内存** — 的持久项目内存
容器化执行** — 所有计算都在 Singularity 容器内运行
## 仓库结构
app.py # 主 Chain排器
├── core # 纯 Python 逻辑(45+ 模块)
│ native_executor.py # 原生代理执行器
│ ├── policy_enforcement.py 策略强制执行层 ├── skill_loader.py 技能发现和解析
│ ├── history.py #牌管理和上下文压缩
│ └── ...
├── skills/ # 30+ 技能定义ILL.md 文件)
├──_servers/ # MCP服务器
│ ├── file_ops_server.py # 文件操作(~38 工具)
│ bio_processing_server.py #信息学(~12 工具)
│ ├── slurm.py # Slurm( 工具)
│ _execution_server.py #(~4 工具 config/
│ ├── policy # PEL 规则和每个工具的限制
│ ├── mcp_servers.yaml #注册表
│ _schemas.json # 工具模式定义
├── containers/ # Singularity 容器定义
├── template/ # Open OnDemand 生命周期脚本
└── # 文档
```
##
所有环境变量 Open OnDemand 在会话通过 `template/before.sh.erb` 注入。有关完整列表和描述,请参见 [.env.example](.env.example)。
关键变量:
| 变量 | 目的 |
|----------|---------|
| `LITELLM_URL` | LiteLLM 代理 URL |
| `LITELLM_API_BASE` | 与 LITELLM_URL 相同(SDK性别名) `LITELLM` | 每用户身份牌(在会话启动) |
| `MCP_SHARED_BEARER_TOKEN` | MCP 服务器身份验证令牌 |
贡献
有关代码约定和贡献指南,请参见/DEVELOPMENT.mdDEVELOPMENT.md 引用
如果您或出版物中使用 Iris引用:
```bib@inproceedings{valleru2026irisai,
title {赋予癌症研究人员权力:一个用于与计算直观交互的代理式 {AI} 系统},
= {Valler Lohit 和其他人},
booktitle = {高级研究计算实践与经验会议论文PEARC '26) year = {202 publisher = {ACM```
> Lohit V 等人。“赋予研究人员权力:一个计算直观代理式 AI 系统。” 2026.
##
版权 2026 Valleru 和纪念凯特林癌症贡献者
在 **, Version 2. 下许可。有关全文,请参见 [LICENSE](LICENSE)。
](https://img.shields/License-Apache%.svg)](LICENSE)