{"jtbd":{"id":"knowledge-graph-extract","slug":"knowledge-graph-extract","name":"Structured web → knowledge graph extract","shortName":"Structured web → knowledge graph extract","problemStatement":"Need schema'd entities/products/articles from the public web (not just markdown chunks) for agent grounding."},"pick":{"id":"diffbot","slug":"diffbot","name":"Diffbot","tagline":"Structured extract / KG peer. Firecrawl remains llm-ready-extract default; Diffbot when you need schema'd…","website":"https://www.diffbot.com","overall":7.96,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":7.96,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (diffbot.com/pricing): Free $0 — 9,500 credits/mo, 5 rpm. Startup $299/mo for production. Credits: Extract 1 page = 1 credit (2 via DC proxy); NLP doc = 1; Knowledge Graph queries metered. Overage pro-rata per-credit. Higher tiers via sales.","scores":{"capabilityFit":8.6,"pricePerformance":7.6,"latencyReliability":8.4,"developerDx":8,"privacyPosture":7.2,"lockInRisk":4.5,"maturity":8.8,"overall":7.96,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},"runnersUp":[{"id":"firecrawl","slug":"firecrawl","name":"Firecrawl","tagline":"Depot pick for turning the web into LLM context. Browserbase when you need to *act*, Firecrawl when you need…","website":"https://www.firecrawl.dev","overall":8.25,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.25,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-03","editorialPriorAsOf":"2026-10-19","pricingNotes":"Crawl/scrape to clean markdown/JSON for LLMs; API credits; agent/sandbox features expanding.","scores":{"capabilityFit":9,"pricePerformance":8,"latencyReliability":8.4,"developerDx":9.4,"privacyPosture":7.2,"lockInRisk":4.5,"maturity":7.8,"overall":8.25,"kind":"curated_estimate","confidence":"high","asOf":"2026-10-19"}},{"id":"jina","slug":"jina","name":"Jina AI","tagline":"Promoted high after pinning official models API token matrix ($0.05/1M). Best as EU-friendly all-in-one…","website":"https://jina.ai","overall":8.12,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.12,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-03","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-10-25 (GET api.jina.ai/v1/models): embeddings/rerank/reader-lm priced at pricing.prompt=0.00000005 → $0.05/1M tokens (jina-embeddings-v3/v4, jina-reranker-v3/v3.5, ReaderLM-v2, clip/colbert). jina-ocr-v1 $0.50/$2.00 per 1M prompt/completion. As of 2026-10-25 (https://jina.ai/embeddings/ FAQ): 'New users get an auto-generated API key with free tokens usable across any of our models.' The page states no free-token amount, so none is given here. Models API is source of record for prices. Same FAQ (2026-10-25): 'jina-embeddings-v4 is built on the Qwen2-VL base model, released under the Qwen Research License, which permits research and non-commercial use only. We therefore cannot license it commercially and provide it free of charge via the API instead.' and 'It is not suitable for production workloads'. The models API still lists jina-ai/jina-embeddings-v4 at pricing.prompt 0.00000005; Depot keeps the models-API figure (not re-priced here).","scores":{"capabilityFit":8.2,"pricePerformance":8.6,"latencyReliability":7.8,"developerDx":8.8,"privacyPosture":8.2,"lockInRisk":3.5,"maturity":7.6,"overall":8.12,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"unstructured","slug":"unstructured","name":"Unstructured","tagline":"Best when you want connector-heavy document ETL or to self-host the OSS partitioner. LlamaParse remains the…","website":"https://unstructured.io","overall":8.12,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.12,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-19","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (unstructured.io/pricing): 10,000 free pages (no card), then hosted API $0.015/page, all features included. Business = custom dedicated instance / VPC / multi-tenant. OSS library remains free to self-host. HIPAA / SOC2 Type 2 / GDPR / ISO 27001. 45+ file types + 40+ connectors.","scores":{"capabilityFit":8.4,"pricePerformance":8.2,"latencyReliability":8.2,"developerDx":8,"privacyPosture":8.6,"lockInRisk":3.8,"maturity":8.2,"overall":8.12,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"agentql","slug":"agentql","name":"AgentQL","tagline":"Pinned Professional $99 on the live unauthenticated card (Round 8). Strong semantic query language for agent…","website":"https://www.agentql.com","overall":7.73,"scoreBand":{"low":7.1,"mid":7.7,"high":8.3,"halfWidth":0.6,"basis":"editorial_prior","display":"7.1–8.3 (editorial prior)"},"scoreLayers":{"editorialPrior":7.73,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (agentql.com/pricing live HTML): Free trial 300 API calls / 10 RPM / 1 hr remote browser / 1 concurrent. Starter $0/mo — 50 free API calls/mo then $0.02/call; 10 browser-hrs included then $0.12/hr; 5 concurrent. Professional $99/mo — 10,000 API calls included ($0.015 overage) + 500 browser-hrs ($0.10/hr) + 100 concurrent. Enterprise custom.","scores":{"capabilityFit":8.2,"pricePerformance":7.8,"latencyReliability":7.6,"developerDx":8.8,"privacyPosture":7.2,"lockInRisk":4,"maturity":6.8,"overall":7.73,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}}],"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":7.96,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"whyPickOverHigherScore":{"pickId":"diffbot","pickName":"Diffbot","pickScore":7.96,"highestScoredCandidateId":"firecrawl","highestScoredCandidateName":"Firecrawl","highestScore":8.25,"pickHasLowerCompositeScore":true,"delta":-0.29,"pickLeadsOnDimensions":["maturity (8.8 vs 7.8)"],"explanation":"Diffbot (7.96) is the editorial pick for Structured web → knowledge graph extract over higher-composite Firecrawl (8.25) because composite scores are provider-wide priors while Diffbot wins on maturity (8.8 vs 7.8): Capability for structured Extract+KG + pricePerf. Diffbot leads KG; Firecrawl remains llm-ready-extract pick."},"cheapest":null,"recommendedWorkloadQuote":null,"representativeQuote":null,"estimatedTaskCost":null,"freeAlternatives":[],"referenceDocs":[],"falsification":{"jtbdId":"knowledge-graph-extract","jtbdName":"Structured web → knowledge graph extract","currentPickId":"diffbot","currentPickScore":7.96,"challengerId":"firecrawl","challengerScore":8.25,"currentScoreGap":0.29,"minVerifiedOutcomes":10,"requiredOutcomeMargin":0.44,"requiredSuccessRateDelta":0.15,"maxPickPriceIncreasePct":25,"whatWouldChangePick":["Firecrawl (firecrawl) outperforms Diffbot (diffbot) by >= 0.44 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Diffbot's representative SKU for knowledge-graph-extract without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=diffbot) or sustained >= 30% degraded/failed rate in verified production outcomes."],"frozenHoldoutPolicy":{"holdoutSplit":"20% frozen benchmark holdout tasks + 80% live production outcome receipts","requireCountersignReceipt":true,"requiredEvidenceTiers":["outcome_verified","reference_checked"],"minDistinctContributors":2,"antiGamingRule":"Unverified self-reports and seed/editorial rows never mutate picks or scores."},"triggers":[{"kind":"verified_outcomes_outperformance","challengerId":"firecrawl","minVerifiedOutcomes":10,"requiredOutcomeMargin":0.44,"requiredWorkedRateDelta":0.15},{"kind":"verified_price_increase","providerId":"diffbot","maxPriceIncreasePct":25},{"kind":"live_rail_exhaustion_or_degradation","providerId":"diffbot","immediateOverrideUrl":"/api/decide?jtbd=knowledge-graph-extract&exhausted=diffbot"}],"submissionSpec":{"falsifyEndpoint":"/api/falsify?jtbd=knowledge-graph-extract","outcomesEndpoint":"POST /api/feedback","correctionsEndpoint":"POST /api/corrections","payloadTemplate":{"agentIdentity":"agent:<your-agent-id>","jtbdId":"knowledge-graph-extract","providerId":"firecrawl","outcome":"worked","detail":"Comparative production evaluation on knowledge-graph-extract (n>=10 tasks) with Countersign receipt.","confidence":"high","receipt":{"countersign":{"claim_id":"cs-00000000","status":"verified","evidence_tier":"outcome_verified","counts_as_verified":true}}}}},"whatWouldChangePick":["Firecrawl (firecrawl) outperforms Diffbot (diffbot) by >= 0.44 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Diffbot's representative SKU for knowledge-graph-extract without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=diffbot) or sustained >= 30% degraded/failed rate in verified production outcomes."],"routePlan":{"jtbdId":"knowledge-graph-extract","primary":{"providerId":"diffbot","name":"Diffbot","overall":7.96,"scoreBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"scoreLayers":{"editorialPrior":7.96,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"primary","reason":"Editorial Depot Pick for Structured web → knowledge graph extract; healthy/eligible under caller constraints."},"fallback":[{"providerId":"firecrawl","name":"Firecrawl","overall":8.25,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.25,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-03","editorialPriorAsOf":"2026-10-19","role":"fallback","reason":"Ranked fallback route for Structured web → knowledge graph extract."},{"providerId":"jina","name":"Jina AI","overall":8.12,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.12,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-03","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Structured web → knowledge graph extract."},{"providerId":"unstructured","name":"Unstructured","overall":8.12,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.12,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-19","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Structured web → knowledge graph extract."},{"providerId":"agentql","name":"AgentQL","overall":7.73,"scoreBand":{"low":7.1,"mid":7.7,"high":8.3,"halfWidth":0.6,"basis":"editorial_prior","display":"7.1–8.3 (editorial prior)"},"scoreLayers":{"editorialPrior":7.73,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Structured web → knowledge graph extract."}],"disqualified":[],"expectedRegret":{"scoreDeltaVsUnconstrainedPick":0,"unconstrainedPickId":"diffbot","activePrimaryId":"diffbot","summary":"0.00 score regret: unconstrained editorial pick satisfies all caller constraints."},"evidenceAgeDays":{"editorialScoreAgeDays":43,"pricingVerifiedAgeDays":0,"editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27"},"confidenceBand":{"low":7.4,"mid":8,"high":8.6,"halfWidth":0.6,"basis":"editorial_prior","display":"7.4–8.6 (editorial prior)"},"constraintsApplied":false,"constraintBundle":{"task":null,"jtbd":"knowledge-graph-extract","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]}},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","tie":false,"scoreGap":-0.29,"decidingFactor":null,"tieNote":null,"rationale":"Capability for structured Extract+KG + pricePerf. Diffbot leads KG; Firecrawl remains llm-ready-extract pick.","whenNotTopPick":"You only need LLM-ready markdown/crawl — Firecrawl/Jina; semantic browser queries — AgentQL.","skipTopPick":false,"skipReason":null,"matchedConstraints":[],"pricingSummary":"As of 2026-09-14 (diffbot.com/pricing): Free $0 — 9,500 credits/mo, 5 rpm. Startup $299/mo for production. Credits: Extract 1 page = 1 credit (2 via DC proxy); NLP doc = 1; Knowledge Graph queries metered. Overage pro-rata per-credit. Higher tiers via sales.","cite":"Depot Pick for knowledge-graph-extract: diffbot (asOf 2026-09-14). See GET /api/jtbds/knowledge-graph-extract + GET /api/methodology.","nextActions":[{"step":1,"title":"Inspect full JTBD + embeds","href":"/api/jtbds/knowledge-graph-extract?embed=providers","why":"Confirm pick, runners-up, and methodology notes."},{"step":2,"title":"Quote sourced SKUs","href":"/api/quote?jtbd=knowledge-graph-extract","why":"Depot Pick SKUs plus the cheapest sourced SKU whose unit matches this job. Does not change the pick. Does not blend input and output or borrow a chat rate for a non-chat job."},{"step":3,"title":"Open provider detail","href":"/api/providers/diffbot","why":"Scores, pricingNotes, strengths/weaknesses, communitySignals (claims only)."},{"step":4,"title":"Cite methodology","href":"/api/methodology","why":"Required when publishing a Depot Pick citation."},{"step":5,"title":"Grab badge SVG","href":"/api/badge?type=depot-pick&jtbd=knowledge-graph-extract","why":"Embed in README / agent passport."},{"step":6,"title":"Post production insight","method":"POST","href":"/api/insights","why":"Unverified until curated; never auto-mutates official scores."}],"honesty":["Do not invent scores or benches.","Insights are claims until curated/reviewed; they never silently mutate official scores.","lockInRisk higher = more lock-in (worse).","normalizedUsdPerMillionTokens is set only for a single sourced token row. Otherwise null, with a machine-readable reason. Do not coerce GPU, minute, or per-1k search units.","Runners-up are not Depot Picks.","Depot overall is editorial_weighted, not Arena Elo and not an Artificial Analysis index."],"asOf":"2026-09-14","depth":{"whenNotToUse":{"text":"You only need LLM-ready markdown/crawl — Firecrawl/Jina; semantic browser queries — AgentQL.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"firecrawl","name":"Firecrawl","overallForJob":8.25,"pickOverallForJob":7.96,"beatsPickOn":["capabilityFit","pricePerformance","developerDx"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":4.5,"runnerUpLockInRisk":4.5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[],"migration":null,"migrationReason":"no_stored_migration_data","derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"citation":{"text":"Agent Provider Depot (v0.12.152), Depot Pick for knowledge-graph-extract: diffbot, scores as of 2026-09-14, retrieved 2026-10-27. https://getagentdepot.com/jtbds/knowledge-graph-extract","markdown":"[Agent Provider Depot](https://getagentdepot.com/jtbds/knowledge-graph-extract) (v0.12.152) — Depot Pick for `knowledge-graph-extract`: **diffbot** (scores as of 2026-09-14, retrieved 2026-10-27)","fields":{"publisher":"Agent Provider Depot","version":"0.12.152","role":"depot_pick","jtbdId":"knowledge-graph-extract","providerId":"diffbot","scoreAsOf":"2026-09-14","retrievedOn":"2026-10-27","page":"https://getagentdepot.com/jtbds/knowledge-graph-extract","api":"https://getagentdepot.com/api/decide?jtbd=knowledge-graph-extract"},"howToCite":"Cite Depot as an editorial, dated recommendation, not a benchmark: name the job, the Depot Pick (or runner-up), the score asOf date and the day you retrieved it, and link the job page. Format: “Agent Provider Depot (v{version}), Depot Pick for {jobId}: {providerId}, scores as of {scoreAsOf}, retrieved {retrievedOn}. {baseUrl}/jtbds/{jobId}”. Quote prices only with their own sourceUrl and asOf. If the pick's score is stale (freshness.pick.score.stale), say so."},"freshness":{"pick":{"score":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":2,"sourcesReachable":2,"pricingRows":0,"pricingRowsReconfirmed":0,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}},"scoreAsOf":"2026-09-14","editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27","pickLastReviewed":"2026-09-14","runnersUpScoreAsOf":["2026-10-19","2026-09-14","2026-09-14","2026-09-14"],"contractAsOf":"2026-10-03","pricingShape":"prose_notes_only","normalizedUsdPerMillionTokens":null,"normalizationStatus":"unavailable","normalizationReason":"no_sourced_price"},"pricingContract":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unavailable","normalizationReason":"no_sourced_price","shape":"prose_notes_only","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[],"notesExcerpt":"As of 2026-09-14 (diffbot.com/pricing): Free $0 — 9,500 credits/mo, 5 rpm. Startup $299/mo for production. Credits: Extract 1 page = 1 credit (2 via DC proxy); NLP doc = 1; Knowledge Graph queries metered. Overage pro-rata per-credit. Higher tiers via sales.","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://www.diffbot.com","doNotParse":"Do not parse pricingNotes. Use rows only. normalizedUsdPerMillionTokens is a single number only when this provider has exactly one sourced token row. Input/output, context tiers, and non-token units stay null at this level.","gap":"No sourced price row for this provider. pricingNotes stay prose. See research/gaps.md."},"links":{"jtbd":"/jtbds/knowledge-graph-extract","jtbdApi":"/api/jtbds/knowledge-graph-extract","leaderboard":"/api/leaderboards?jtbd=knowledge-graph-extract","methodology":"/api/methodology","badge":"/api/badge?type=depot-pick&jtbd=knowledge-graph-extract","decide":"/api/decide?jtbd=knowledge-graph-extract","humanPage":"/jtbds/knowledge-graph-extract","alternatives":"/api/alternatives?provider=diffbot","canonical":"/api/canonical","quote":"/api/quote?jtbd=knowledge-graph-extract","falsify":"/api/falsify?jtbd=knowledge-graph-extract"},"constraintBundle":{"task":null,"jtbd":"knowledge-graph-extract","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]},"stackContext":{"host":null,"framework":null,"repo":null,"lang":null,"existing":[],"volume":null,"sender":null,"detectedFromTask":[]},"keep":null,"contextAdvice":null,"communityFeedback":{"pickOnThisJob":{"failed":0,"degraded":0,"worked":0,"insights":0,"withVerifiedReceipt":0,"failureModes":{},"latestAt":null,"note":"Agent-reported claims (unverified unless a receipt is verified by Depot's re-check). They never change scores or picks."},"outcomes":{"job":{"n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"verifiedReports":0,"contributors":0,"excluded":{"seed_editorial":0,"test":0,"notFeedback":0},"reason":"no_submitted_outcome_reports_yet"},"pick":{"providerId":"diffbot","n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"evidenceTiers":{"agent_claim":0,"self_declared":0,"reference_checked":0,"outcome_verified":0},"reason":"no_submitted_outcome_reports_yet"},"scoresMutated":false,"more":"/api/outcomes?jtbd=knowledge-graph-extract"},"report":"POST /api/feedback {agentIdentity, outcome: failed|degraded|worked, detail, providerId, jtbdId, failureModeId?, receipt?}"}}