本目录包含展示 Delphi Agent Framework 核心功能的示例案例。
| # |
目录 |
功能点 |
说明 |
| 1 |
1-basic-skill-usage |
Skills + Catalog |
指令型 / 可执行型 Skill 的注册与查询(无需 LLM) |
| 2 |
2-sandbox-isolation |
Sandbox + Header 校验 |
X-Tenant-Id 校验、SSE 流式交互、Actuator 观测 |
| 3 |
3-multi-namespace |
多 Namespace |
Skill 可见性矩阵、跨租户 Session 拒绝、Namespace 参数校验 |
| 4 |
4-multi-user-scenario |
多用户 + 命令 |
独立 Session、abort/steer/compact/continue 命令语义 |
| 5 |
5-comprehensive-demo |
综合 |
端到端 SaaS 场景:多企业客户 + 多用户 + Skills 定制 + 治理观测 |
- Java 21 和 Maven 3.9+
- MongoDB 5+(replica set,支持事务)
- Redis 6.2+
- S3/MinIO(workspace snapshot)
- Docker(sandbox 执行)
- curl + python3(测试脚本解析 JSON)
- DEEPSEEK_API_KEY(案例 2/4/5 中 LLM 相关测试需要)
# 启动服务
cd delphi-agent
mvn spring-boot:run -pl delphi-agent-server
# 运行单个案例
bash samples/1-basic-skill-usage/test.sh
# 运行综合演示
bash samples/5-comprehensive-demo/test.sh
# 运行全部案例
for t in samples/*/test.sh; do echo "=== $t ==="; bash "$t"; done
samples/
├── _lib.sh ← 共享工具函数(header、SSE 解析等)
├── README.md ← 本文件
├── 1-basic-skill-usage/
│ ├── README.md
│ ├── setup-skills.sh ← 准备 Skill 文件
│ └── test.sh ← 自动化测试
├── 2-sandbox-isolation/
│ ├── README.md
│ └── test.sh
├── 3-multi-namespace/
│ ├── README.md
│ ├── setup-namespaces.sh
│ └── test.sh
├── 4-multi-user-scenario/
│ ├── README.md
│ └── test.sh
└── 5-comprehensive-demo/
├── README.md
├── setup-comprehensive.sh
└── test.sh
所有 sample 使用以下 HTTP 接口:
| 方法 |
路径 |
说明 |
POST |
/api/chat/stream |
主入口:发送 prompt 或 command,返回 SSE 事件流。 |
GET |
/api/chat/events |
SSE replay,基于 Last-Event-ID 补读。 |
GET |
/api/catalog/skills?namespace=<ns> |
查询 namespace 可见 Skills。 |
GET |
/api/catalog/models |
查询模型列表。 |
POST |
/api/catalog/reload?namespace=<ns> |
重载 Catalog。 |
GET |
/actuator/health |
健康检查。 |
GET |
/actuator/info |
节点信息。 |
必须的 HTTP Headers
| Header |
说明 |
Content-Type: application/json |
POST 请求必须。 |
X-Tenant-Id |
租户标识,必须等于请求体中的 namespace。 |
X-User-Id |
当前用户标识。 |
| 功能 |
案例1 |
案例2 |
案例3 |
案例4 |
案例5 |
| Skill 注册/加载 |
o |
|
o |
|
o |
| 指令型 Skill |
o |
|
|
|
o |
| 可执行型 Skill |
o |
|
o |
|
o |
| Skill namespace 隔离 |
|
|
o |
|
o |
| Skill 同名覆盖 |
|
|
o |
|
o |
| X-Tenant-Id 校验 |
|
o |
o |
|
o |
| X-User-Id 校验 |
|
o |
|
|
|
| SSE 事件流 |
|
o |
o |
o |
o |
| 多 Namespace |
|
|
o |
|
o |
| 跨租户拒绝 |
|
|
o |
|
o |
| Namespace 参数校验 |
|
|
o |
|
o |
| 多用户 Session |
|
|
|
o |
o |
| abort 命令 |
|
|
|
o |
|
| steer 命令 |
|
|
|
o |
|
| compact 命令 |
|
|
|
o |
|
| continue 命令 |
|
|
|
o |
|
| Actuator health/info |
|
o |
|
|
o |
| 模型 Catalog |
o |
|
|
|
o |
所有 test.sh 在开头 source 共享的 _lib.sh,提供:
catalog_reload、catalog_skills、catalog_skill、catalog_models — Catalog API 封装
chat_stream、chat_stream_status — 带 header 的 SSE 请求
extract_sse_field、has_sse_event — SSE 事件解析
get_audit、get_usage_today — 治理 API
actuator_health、actuator_info — Actuator
json_len、json_field、json_names、json_has_name — JSON 工具
pass、fail、warn、summary — 测试断言