内容
# 判断包演示
判断包的克隆和启动沙盒:只需一个 `docker compose up` 命令,即可为您提供一个浏览器工作区 — 聊天、文件资源管理器、编辑器、终端 — 预先配置了判断包运行时,作为MCP服务器和一个已验证的示例项目,准备好进行评估。 **自带密钥**:您选择模型提供商,并在UI中粘贴您的API密钥;判断包运行时从未看到过密钥,打开过网络连接,也没有存储任何数据。
此处的所有内容都是非规范性的演示材料。评估者的合规性声明在运行时发布中的 `CONFORMANCE.md` 中完整且仅在此声明;本仓库中没有重述该声明。
## 快速启动(浏览器沙盒)
先决条件:Docker(Windows/macOS上的Docker Desktop)。
```bash
cp .env.example .env # 默认值是好的
docker compose up --build
```
打开 http://localhost:8000/canvas。首次运行时,打开 **设置**,选择您的模型提供商,并粘贴您的API密钥(BYOK - 任何受支持的提供商都有效;一流的模型在下面的脚本化问题中提供了最佳结果)。然后在文件浏览器中打开 `judgment-pack-quickstart` 项目。
判断包MCP服务器在首次启动时注册:`mcp-seed` 一次性容器([scripts/seed-mcp.sh](scripts/seed-mcp.sh))通过API将服务器写入agent-canvas设置,指向快速启动项目。在 **设置 → MCP** 下验证 - 该条目显示 `judgment-pack` / 命令 `judgment-pack` / 参数 `mcp`.
### 包存储位置
包是您磁盘上的普通JSON文件 - 永远不会存储在数据库中。文件浏览器的根目录是 `.env` 中的 `PACKS_DIR` 目录(默认为此仓库的 [projects/](projects/))。将 `PACKS_DIR` 指向您喜欢的任何目录;它内部的每个文件夹都成为沙盒中的一个项目,代理写入的任何内容都可见在文件浏览器和您自己的文件管理器中。
## 三分钟论文(无需AI)
在沙盒终端(或任何具有二进制路径的shell)中:
```bash
cd /projects/judgment-pack-quickstart
# 完整的事实文档决定:
judgment-pack experimental evaluate packs/data-request-intake-triage.pack.json \
--facts full-facts.json --evidence evidence.json
# → disposition: outcome proceed, with a trace of exactly which rules fired
# 删除一个负载事实并重新运行 - 它将升级而不是猜测:
jq 'del(.request.completeness)' full-facts.json > partial-facts.json
judgment-pack experimental evaluate packs/data-request-intake-triage.pack.json \
--facts partial-facts.json --evidence evidence.json
# → disposition: unresolved (unknown), handoff requested to "Intake reviewer",
# trace showing each rule that went unknown and escalated
```
相同的输入,相同的字节,在任何机器上 - 这是符合性声明发挥作用的地方。每次有效载荷中的 `trace` 都是基于包的推理:哪些异常和规则评估为 什么,哪些未知值正在升级,哪些被忽略。
## 演示脚本(询问代理)
1. *"列出此项目中的判断包,并描述每个包的作用。"* → `list_packs` → 一个包,`intake-triage`,及其证据要求和源提示。
2. *"使用以下事实评估 `intake-triage` 包..."* (粘贴矩阵行的 `facts` 和 `evidenceAvailability`)→ `experimental_evaluate` 使用 `pack_id` → 一个具有包身份和规则追踪的处置。
3. **升级测试**:使用相同的请求,但移除完整性事实,询问代理进行 **诚实评估,报告任何无法确定的内容为未知**。正确行为:`unresolved`,原因 `["unknown"]`,请求交由 "Intake reviewer" 处理 - 模型没有猜测;包拒绝了。
4. **创作**:说 *"为此策略创作一个判断包:..."* - 工作区的 [创作微代理](projects/judgment-pack-quickstart/.openhands/microagents/authoring.md) 指导代理完成创建 → 验证 → 修复循环,以退出0,编写包及其预备事实账本为实际文件,您可以观察到文件浏览器中出现的文件。要求它添加矩阵行并运行 `judgment-pack packs test` 以锁定行为。
## 其他客户端(相同的服务器,您的工具)
此仓库还提供了原生MCP客户端的现成线路 - 二进制文件必须在路径上([发布版本](https://github.com/Judgment-Pack/judgment-pack-runtime/releases)):
- **Claude Code**:[.mcp.json](.mcp.json) 在您打开此仓库时被拾取;MCP提示作为斜杠命令出现(`/mcp__judgment-pack__author_pack`)。
- **VS Code / Copilot**:[.vscode/mcp.json](.vscode/mcp.json),提示为 `/mcp.judgment-pack.…`。
- **GitHub Codespaces / devcontainer**:在此仓库中打开Codespace - [devcontainer](.devcontainer/devcontainer.json) 安装固定的发布版本并在创建时验证符合性语料库。
- 任何其他客户端:请参阅运行时的 [MCP客户端指南](https://github.com/Judgment-Pack/judgment-pack-runtime/blob/main/docs/mcp-clients.md)。不支持显示MCP提示的客户端可以使用 [prompts/author_pack-prompt.txt](prompts/author_pack-prompt.txt) 中的粘贴方法文件。
## 信任边界
- **您的密钥属于您**。模型在您的沙盒中使用您的密钥运行;判断包运行时从未看到或存储过任何密钥(它是无密钥、无网络和无状态的)。
- **读取被隔离**。服务器仅通过项目自身目录下的读取器读取文件;如果路径超出此范围,则拒绝读取。
- **此处不授权任何操作**。处置是应用包到事实的§8.3便携式结果;是否采取行动由您决定(JPS §3.5)。
## 故障排除
- **聊天中缺少工具** - 检查设置 → MCP 中的 `judgment-pack` 条目;使用 `docker compose run --rm mcp-seed`(幂等)重新运行种子,或在UI中添加条目。
- **`list_packs` 返回为空** - 它会显示搜索位置;服务器的 `JPACK_CONFIG` 必须通过容器路径(在 `/projects/…` 下)命名项目的 `jpack.json`。编辑设置 → MCP 中的条目,或使用 `JPACK_CONFIG=/projects/<your-project>/jpack.json docker compose run --rm -e JPACK_CONFIG mcp-seed` 重新种子。
- **二进制问题** - `docker compose exec openhands judgment-pack version` 必须报告固定的发布版本;`judgment-pack spec test-conformance --quiet` (退出0)验证已发布的语料库在您的容器中离线通过。
- 版本在 [.env.example](.env.example) 中固定,每周由 [drift CI](.github/workflows/drift.yml) 重新验证。