360 Secure SkillHub
360 安全技能中心

DeepRead Legal Documents

该技能通过向 DeepRead 服务上传合同、NDA、租约、法院文件等,按自定义 JSON schema 抽取当事人、日期、管辖法律、关键条款、签署人等结构化字段,并标注需人工复核项;另提供 PII 脱敏接口,输出脱敏文件与识别统计。需配置 DEEPREAD_API_KEY,处理在外部服务完成。

uday390
uday390
热度 43.88
最近更新 2026-05-11 17:39:55
分类:数据依赖:第三方 API / 代码执行应用场景:法律文档 / 数据处理 / 工作流 / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add deepread-legal
Metadata
name
deepread-legal
title
DeepRead Legal Documents
description
Extract structured data from contracts, legal agreements, court filings, and compliance documents. Pre-built schemas for parties, clauses, dates, obligations. PII redaction for privilege review. 97%+ accuracy. Free 2,000 pages/month.
metadata
{"openclaw":{"requires":{"env":["DEEPREAD_API_KEY"]},"primaryEnv":"DEEPREAD_API_KEY","homepage":"https://www.deepread.tech"}}

DeepRead Legal Document Processing

Extract structured data from contracts, legal agreements, NDAs, court filings, leases, and compliance documents. Then redact privileged or sensitive information before sharing with opposing counsel, auditors, or external parties.

This skill instructs the agent to POST documents to https://api.deepread.tech and poll for results. No system files are modified.

What You Get Back

Submit a contract and get structured JSON:

{
  "document_type": {"value": "Master Services Agreement", "hil_flag": false, "found_on_page": 1},
  "parties": {"value": [
    {"name": "Acme Corp", "role": "Service Provider", "address": "123 Tech Blvd, San Francisco, CA"},
    {"name": "GlobalCo Inc", "role": "Client", "address": "456 Market St, New York, NY"}
  ], "hil_flag": false, "found_on_page": 1},
  "effective_date": {"value": "2026-01-15", "hil_flag": false, "found_on_page": 1},
  "termination_date": {"value": "2027-01-14", "hil_flag": false, "found_on_page": 1},
  "governing_law": {"value": "State of California", "hil_flag": false, "found_on_page": 8},
  "contract_value": {"value": 250000.00, "hil_flag": true, "reason": "Multiple amounts found on different pages"},
  "payment_terms": {"value": "Net 45 from invoice date", "hil_flag": false, "found_on_page": 3},
  "key_clauses": {"value": [
    {"type": "Indemnification", "summary": "Provider indemnifies Client against third-party IP claims", "page": 5},
    {"type": "Limitation of Liability", "summary": "Capped at 12 months of fees paid", "page": 5},
    {"type": "Termination", "summary": "Either party may terminate with 30 days written notice", "page": 6},
    {"type": "Non-Compete", "summary": "12-month non-compete within same industry vertical", "page": 7}
  ], "hil_flag": false, "found_on_page": 5},
  "signatures": {"value": [
    {"name": "John Smith", "title": "CEO, Acme Corp", "date": "2026-01-10"},
    {"name": "Jane Doe", "title": "General Counsel, GlobalCo Inc", "date": "2026-01-12"}
  ], "hil_flag": false, "found_on_page": 8}
}

Fields with hil_flag: true need human review. Everything else is high-confidence.

Setup

Get Your API Key

open "https://www.deepread.tech/dashboard/?utm_source=clawhub"

Save it:

export DEEPREAD_API_KEY="sk_live_your_key_here"

Contract Schema

Pre-built schema for contracts and legal agreements:

{
  "type": "object",
  "properties": {
    "document_type": {"type": "string", "description": "Type of legal document (MSA, NDA, lease, employment agreement, etc.)"},
    "parties": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string", "description": "Full legal name of the party"},
          "role": {"type": "string", "description": "Role in the agreement (e.g., Licensor, Licensee, Landlord, Tenant)"},
          "address": {"type": "string", "description": "Address of the party"}
        }
      },
      "description": "All parties to the agreement"
    },
    "effective_date": {"type": "string", "description": "Date the agreement takes effect (YYYY-MM-DD)"},
    "termination_date": {"type": "string", "description": "End date or expiration of the agreement (YYYY-MM-DD)"},
    "governing_law": {"type": "string", "description": "Jurisdiction governing the agreement"},
    "contract_value": {"type": "number", "description": "Total contract value or consideration amount"},
    "payment_terms": {"type": "string", "description": "Payment schedule and terms"},
    "key_clauses": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {"type": "string", "description": "Clause type (Indemnification, Limitation of Liability, Termination, Non-Compete, Confidentiality, IP Ownership, etc.)"},
          "summary": {"type": "string", "description": "Brief summary of the clause terms"},
          "page": {"type": "number", "description": "Page number where the clause appears"}
        }
      },
      "description": "Key clauses and their summaries"
    },
    "renewal_terms": {"type": "string", "description": "Auto-renewal terms if applicable"},
    "notice_period": {"type": "string", "description": "Required notice period for termination"},
    "signatures": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string", "description": "Signatory name"},
          "title": {"type": "string", "description": "Title and organization"},
          "date": {"type": "string", "description": "Date signed (YYYY-MM-DD)"}
        }
      },
      "description": "Signatories and execution dates"
    }
  }
}

Extract Data From Legal Documents

Python

import requests
import json
import time

API_KEY = "sk_live_YOUR_KEY"
BASE = "https://api.deepread.tech"
headers = {"X-API-Key": API_KEY}

schema = json.dumps({
    "type": "object",
    "properties": {
        "document_type": {"type": "string", "description": "Type of legal document"},
        "parties": {
            "type": "array",
            "items": {"type": "object", "properties": {
                "name": {"type": "string", "description": "Full legal name"},
                "role": {"type": "string", "description": "Role in agreement"}
            }},
            "description": "All parties"
        },
        "effective_date": {"type": "string", "description": "Effective date (YYYY-MM-DD)"},
        "termination_date": {"type": "string", "description": "End date (YYYY-MM-DD)"},
        "governing_law": {"type": "string", "description": "Governing jurisdiction"},
        "contract_value": {"type": "number", "description": "Total value"},
        "key_clauses": {
            "type": "array",
            "items": {"type": "object", "properties": {
                "type": {"type": "string", "description": "Clause type"},
                "summary": {"type": "string", "description": "Summary of terms"},
                "page": {"type": "number"}
            }},
            "description": "Key clauses"
        },
        "signatures": {
            "type": "array",
            "items": {"type": "object", "properties": {
                "name": {"type": "string"},
                "title": {"type": "string"},
                "date": {"type": "string"}
            }},
            "description": "Signatories"
        }
    }
})

# Submit contract
with open("contract.pdf", "rb") as f:
    job = requests.post(
        f"{BASE}/v1/process",
        headers=headers,
        files={"file": f},
        data={"schema": schema},
    ).json()

job_id = job["id"]
print(f"Processing: {job_id}")

# Poll for results
delay = 5
while True:
    time.sleep(delay)
    result = requests.get(f"{BASE}/v1/jobs/{job_id}", headers=headers).json()

    if result["status"] == "completed":
        data = result["result"]["data"]
        print(json.dumps(data, indent=2))

        # Flag fields needing review
        for field, value in data.items():
            if isinstance(value, dict) and value.get("hil_flag"):
                print(f"\n  REVIEW: {field} — {value.get('reason')}")
        break
    elif result["status"] == "failed":
        print(f"Failed: {result.get('error')}")
        break

    delay = min(delay * 1.5, 15)

cURL

curl -s -X POST https://api.deepread.tech/v1/process \
  -H "X-API-Key: $DEEPREAD_API_KEY" \
  -F "file=@contract.pdf" \
  -F 'schema={"type":"object","properties":{"document_type":{"type":"string","description":"Type of legal document"},"parties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string"}}},"description":"All parties"},"effective_date":{"type":"string","description":"Effective date"},"governing_law":{"type":"string","description":"Governing jurisdiction"},"contract_value":{"type":"number","description":"Total value"},"key_clauses":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"summary":{"type":"string"}}},"description":"Key clauses"}}}'

Privilege Review: Redact Before Sharing

Redact privileged or sensitive information before sharing with opposing counsel, auditors, or external parties:

# Step 1: Extract the data you need
with open("contract.pdf", "rb") as f:
    extract_job = requests.post(
        f"{BASE}/v1/process",
        headers=headers,
        files={"file": f},
        data={"schema": schema},
    ).json()

# Step 2: Redact PII from the original before sharing
with open("contract.pdf", "rb") as f:
    redact_job = requests.post(
        f"{BASE}/v1/pii/redact",
        headers=headers,
        files={"file": f},
    ).json()

# Poll for redaction
redact_id = redact_job["id"]
delay = 5
while True:
    time.sleep(delay)
    result = requests.get(f"{BASE}/v1/pii/{redact_id}", headers=headers).json()
    if result["status"] == "completed":
        report = result["report"]
        print(f"Redacted {report['total_redactions']} PII instances")
        for pii_type, info in report["pii_detected"].items():
            print(f"  {pii_type}: {info['count']} found")
        pdf = requests.get(result["redacted_file_url"]).content
        with open("contract_redacted.pdf", "wb") as f:
            f.write(pdf)
        print("Saved: contract_redacted.pdf")
        break
    elif result["status"] == "failed":
        print(f"Failed: {result.get('error')}")
        break
    delay = min(delay * 1.5, 15)

Use Cases

  • Contract Review — Extract parties, dates, key clauses, and obligations from contracts and MSAs
  • NDA Analysis — Pull confidentiality terms, duration, exclusions, and governing law
  • Lease Extraction — Extract tenant, landlord, rent, term, renewal options from commercial leases
  • Court Filings — Pull case numbers, parties, filing dates, and relief sought from legal filings
  • Legal Discovery — Bulk-process documents, extract metadata, and redact privileged information
  • Compliance Audit — Extract regulatory clauses, reporting obligations, and compliance deadlines
  • M&A Due Diligence — Process stacks of contracts to extract key terms, liabilities, and change-of-control clauses
  • Employment Agreements — Pull compensation, non-compete terms, equity vesting, and termination clauses

Tips for Legal Documents

  • Specify clause types — Listing expected clause types (Indemnification, Limitation of Liability, etc.) in the schema description improves extraction
  • Use page numbers — Adding "page number where the clause appears" helps locate extracted terms in the original
  • Create blueprints for recurring document types — If you process the same type of contract repeatedly (e.g., NDAs, MSAs), train a blueprint at deepread.tech/dashboard/optimizer for 20-30% accuracy improvement
  • Always redact before external sharing — Use PII redaction before sending documents to opposing counsel, third-party reviewers, or LLMs

BYOK — Zero Processing Costs

Connect your own OpenAI, Google, or OpenRouter key via the dashboard. All document processing routes through your provider — zero DeepRead LLM costs, page quota skipped.

Set it up: https://www.deepread.tech/dashboard/byok

Related DeepRead Skills

  • deepread-ocr — General OCR and structured extraction — clawhub install uday390/deepread-ocr
  • deepread-pii — Redact PII from any document — clawhub install uday390/deepread-pii
  • deepread-form-fill — Fill PDF forms with AI vision — clawhub install uday390/deepread-form-fill
  • deepread-invoice — Invoice and receipt processing — clawhub install uday390/deepread-invoice
  • deepread-medical — Medical records processing — clawhub install uday390/deepread-medical
  • deepread-agent-setup — OAuth device flow authentication — clawhub install uday390/deepread-agent-setup
  • deepread-byok — Bring Your Own Key setup — clawhub install uday390/deepread-byok

Support


Get started free: https://www.deepread.tech/dashboard/?utm_source=clawhub