BotShelf Vampire BOTSHELF VAMPIRE Register

Library · Team · LangGraph · deep-research

Code langgraph Research Untested graph free

Deep Research — LangGraph

Turn a fuzzy question into a sourced research brief with open questions and next checks — not a final verdict. (LangGraph stateful graph with a human checkpoint.)

Id: langgraph/deep-research · Slug: deep-research · Status: Untested · Untested on this machine — recipe reviewed for safety (no secrets, no destructive commands, no auto-spend). Mark tested after you run it locally.

What is this

Code for LangGraph. Turn a fuzzy question into a sourced research brief with open questions and next checks — not a final verdict. (LangGraph stateful graph with a human checkpoint.)

How this runtime fits

This LangGraph implementation is a graph-style runtime for the parent AI Team. Agent orchestration and multi-agent workflow language fit when nodes split work and gates; it is not automatically identical to every multi-agent system.

Parent AI Team: deep-research · What is an AI Team?

What it does

Turn a fuzzy question into a sourced research brief with open questions and next checks — not a final verdict. (LangGraph stateful graph with a human checkpoint.)

Who for

Builders working on Research jobs who can run LangGraph themselves.

Need to run

How to use

  1. Install LangGraph in a venv (pin versions).
  2. Wire produce() to your local model client.
  3. Run the file once with Example in.
  4. Keep human_gate approval defaulting to False; enable revise only intentionally.

Limitations

Test status

Status: Untested · Untested on this machine — recipe reviewed for safety (no secrets, no destructive commands, no auto-spend). Mark tested after you run it locally.

# graph_deep_research.py — Deep Research (LangGraph sketch)
# pip install langgraph langchain-core (pin yourself)
# Use a local chat model binder; do not embed secrets.

from typing import TypedDict, Literal
from langgraph.graph import StateGraph, END

SYSTEM = """You are a careful research desk. Goal: produce a brief, not a verdict.

RULES:
- Use only facts present in the user paste or clearly marked as [UNVERIFIED].
- Separate: Known / Inferred / Unknown / Next checks.
- Cite sources as the user labeled them (URL, doc name, date). Do not invent citations.
- No spending, no shell commands, no credential requests.
- Stop after the brief. Ask one clarifying question only if blocking.

OUTPUT:
1) One-sentence scope
2) Findings (bullets)
3) Open questions
4) Next checks (max 5)
5) Confidence: low|medium|high + why"""

class State(TypedDict):
    user_input: str
    draft: str
    approved: bool
    notes: str

def produce(state: State) -> State:
    # Pseudo: call your local model with SYSTEM + state["user_input"]
    draft = "[MODEL OUTPUT PLACEHOLDER — wire your local LLM here]\n" + state["user_input"][:500]
    return {**state, "draft": draft, "notes": "awaiting human"}

def human_gate(state: State) -> State:
    # In real use: interrupt / input() / UI approval.
    # Default False so nothing auto-publishes.
    return {**state, "approved": False}

def route_after_gate(state: State) -> Literal["done", "revise"]:
    return "done" if state.get("approved") else "done"  # stage-1: always end after gate

g = StateGraph(State)
g.add_node("produce", produce)
g.add_node("human_gate", human_gate)
g.set_entry_point("produce")
g.add_edge("produce", "human_gate")
g.add_conditional_edges("human_gate", route_after_gate, {"done": END, "revise": "produce"})
app = g.compile()

if __name__ == "__main__":
    out = app.invoke({"user_input": "PASTE_EXAMPLE_IN", "draft": "", "approved": False, "notes": ""})
    print(out)
Question: Why did our signup conversion drop last week?
Sources:
- [A] analytics export 2026-09-01..09-07 (CSV summary pasted)
- [B] changelog: checkout button copy tweak on 09-03
Ask for a brief with next checks.
Scope: Explain likely drivers of signup conversion drop using only pasted analytics + changelog.
Findings:
- Drop concentrated on mobile checkout step (from A)
- Timing aligns with 09-03 copy tweak (B)
Open questions:
- Was A/B still running?
Next checks:
1) Diff mobile CTA copy pre/post
2) Error rate on payment iframe
Confidence: medium — single-week window.

Graph includes an explicit human checkpoint. Stage-1 ends after gate (no infinite revise loop).

Parent: deep-research · implementation_id: langgraph/deep-research

teams/deep-research/langgraph · commit eb87e8e049fdf9908e438305ff827c7b617505b5 · license: free-use-at-own-risk

Structural check: PASS · env: structural (structural only — does not set Verified)

Soft thematic links only — not identity merges. Marketplace Teams ≠ Library AI Team records.