AI Agent that researches the lives of historical figures and extracts events into structured JSON timelines using LangGraph multi-agent orchestration.
# Add to your Claude Code skills
git clone https://github.com/bernatsampera/event-deep-researchGuides for using ai agents skills like event-deep-research.
Last scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T15:25:28.781Z",
"npmAuditRan": true,
"pipAuditRan": true
}event-deep-research is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by bernatsampera. AI Agent that researches the lives of historical figures and extracts events into structured JSON timelines using LangGraph multi-agent orchestration. It has 248 GitHub stars.
Yes. event-deep-research passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/bernatsampera/event-deep-research" and add it to your Claude Code skills directory (see the Installation section above).
event-deep-research is primarily written in Python. It is open-source under bernatsampera on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh event-deep-research against similar tools.
No comments yet. Be the first to share your thoughts!
AI Agent that researchs the lifes of historical figures and extracts the events into a structured JSON timeline.
https://github.com/user-attachments/assets/ebda1625-fdf6-4f3b-a5d2-319d6db40ec2
Input:
{
"person_to_research": "Albert Einstein"
}
Output:
{
"structured_events": [
{
"name": "Birth in Ulm",
"description": "Albert Einstein was born in Ulm, Germany to Hermann and Pauline Einstein",
"date": {"year": 1879, "note": "March 14"},
"location": "Ulm, German Empire",
"id": "time-1879-03-14T00:00:00Z"
},
{
"name": "Zurich Polytechnic",
"description": "Entered the Swiss Federal Polytechnic School in Zurich to study physics and mathematics",
"date": {"year": 1896, "note": ""},
"location": "Zurich, Switzerland",
"id": "time-1896-01-01T00:00:00Z"
},
{
"name": "Miracle Year Papers",
"description": "Published four groundbreaking papers on photoelectric effect, Brownian motion, special relativity, and mass-energy equivalence",
"date": {"year": 1905, "note": ""},
"location": "Bern, Switzerland",
"id": "time-1905-01-01T00:00:00Z"
},
{
"name": "Nobel Prize in Physics",
"description": "Awarded Nobel Prize for his discovery of the law of the photoelectric effect",
"date": {"year": 1921, "note": ""},
"location": "Stockholm, Sweden",
"id": "time-1921-01-01T00:00:00Z"
},
{
"name": "Death in Princeton",
"description": "Albert Einstein died at Princeton Hospital after refusing surgery for an abdominal aortic aneurysm",
"date": {"year": 1955, "note": "April 18"},
"location": "Princeton, New Jersey, USA",
"id": "time-1955-04-18T00:00:00Z"
}
]
}
# 1. Clone the repository
git clone https://github.com/bernatsampera/event-deep-research.git
cd event-deep-research
# 2. Create virtual environment and install dependencies
uv venv && source .venv/bin/activate
uv sync
# 3. Set up environment variables
cp .env.example .env
# Edit .env with your API keys:
# FIRECRAWL_BASE_URL (https://api.firecrawl.com/v1)
# - FIRECRAWL_API_KEY (required for production, optional for local testing)
# - TAVILY_API_KEY (required)
# - OPENAI_API_KEY, ANTHROPIC_API_KEY, or GOOGLE_API_KEY (Change model in configuration.py)
# 4. Start the development server
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
# Open http://localhost:2024 to access LangGraph Studio
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blockingsupervisor graph{
"person_to_research": "Albert Einstein"
}
llm_model: Primary LLM model to use for both structured output and tools
# Optional overrides to change the models used for different parts of the workflow
structured_llm_model: Override model for structured output
tools_llm_model: Override model for tools
chunk_llm_model: Small model for chunk biographical event detection
# Maximum tokens for the models
structured_llm_max_tokens: Maximum tokens for structured output model
tools_llm_max_tokens: Maximum tokens for tools model
# Maximum retry attempts for the models
max_structured_output_retries: Maximum retry attempts for structured output
max_tools_output_retries: Maximum retry attempts for tool calls
# Values from graph files
default_chunk_size: Default chunk size for text processing
default_overlap_size: Default overlap size between chunks
max_content_length: Maximum content length to process
max_tool_iterations: Maximum number of tool iterations
max_chunks: Maximum number of chunks to process for biographical event detection
We welcome contributions! This is a great project to learn:
git checkout -b feature/amazing-featuregit commit -m 'Add amazing feature'git push origin feature/amazing-featureSee the open issues for a full list of proposed features and known issues.
Distributed under the MIT License. See LICENSE.txt for details.