Skip to content

Latest commit

 

History

History
123 lines (101 loc) · 4.35 KB

File metadata and controls

123 lines (101 loc) · 4.35 KB

示例案例

本目录包含展示 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 21Maven 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

API 接口

所有 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

共享工具函数 (_lib.sh)

所有 test.sh 在开头 source 共享的 _lib.sh,提供:

  • catalog_reloadcatalog_skillscatalog_skillcatalog_models — Catalog API 封装
  • chat_streamchat_stream_status — 带 header 的 SSE 请求
  • extract_sse_fieldhas_sse_event — SSE 事件解析
  • get_auditget_usage_today — 治理 API
  • actuator_healthactuator_info — Actuator
  • json_lenjson_fieldjson_namesjson_has_name — JSON 工具
  • passfailwarnsummary — 测试断言