Install any skill in seconds. Free to start, no credit card required.
Get Started Free →All-in-one Python library for NLP, agents, and knowledge graphs
.claude/skills/brycewang-stanford-npcpy-research-guide/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -37% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -57% | 0% |
npcpy is an all-in-one Python library that combines NLP, agent orchestration, and knowledge graph capabilities in a single package. It provides tools for text processing, entity extraction, agent creation, graph-based reasoning, and research automation. Designed as a Swiss Army knife for AI researchers who need quick access to diverse NLP and agent capabilities without juggling many dependencies.
bashpip install npcpy
pythonfrom npcpy import NLP nlp = NLP() # Text processing pipeline doc = nlp.process( "Transformers have revolutionized NLP since Vaswani et al. " "introduced the attention mechanism in 2017." ) # Named entities for entity in doc.entities: print(f"[{entity.type}] {entity.text}") # [METHOD] Transformers # [PERSON] Vaswani # [CONCEPT] attention mechanism # [DATE] 2017 # Key phrases print(doc.key_phrases) # ["attention mechanism", "Transformers", "NLP"] # Sentiment / stance print(doc.sentiment) # positive
pythonfrom npcpy import Agent, Tool # Create a research agent agent = Agent( name="research_assistant", llm_provider="anthropic", tools=[ Tool("web_search", description="Search the web"), Tool("paper_search", description="Search academic papers"), Tool("calculator", description="Math calculations"), ], ) # Run a task result = agent.run( "Find the top 5 most cited papers on few-shot learning " "from 2023 and summarize their approaches." ) print(result.output)
pythonfrom npcpy import KnowledgeGraph kg = KnowledgeGraph() # Extract knowledge from text kg.extract_from_text( "BERT uses masked language modeling for pre-training. " "GPT uses autoregressive language modeling. " "Both are based on the Transformer architecture." ) # Query the graph results = kg.query("What models use Transformer architecture?") # ["BERT", "GPT"] # Visualize kg.visualize("knowledge_graph.html") # Export kg.export("kg.json")
pythonfrom npcpy import ResearchWorkflow workflow = ResearchWorkflow(llm_provider="anthropic") # Literature search + synthesis report = workflow.literature_review( topic="prompt engineering techniques", num_papers=20, synthesis_style="academic", ) report.save("review.md") # Paper analysis analysis = workflow.analyze_paper("paper.pdf") print(analysis.summary) print(analysis.methodology) print(analysis.key_findings)
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 9,437 | 7,830 | -17% | 1 | 1 | 0% | 1,877 | 2,290 | +22% | 0 | 0 | — |
case-01 | fail→pass | 17,248 | 14,740 | -15% | 1 | 1 | 0% | 3,308 | 2,939 | -11% | 0 | 0 | — |
case-02 | fail→pass | 9,739 | 5,107 | -48% | 1 | 1 | 0% | 1,638 | 1,734 | +6% | 0 | 0 | — |
case-03 | fail→pass | 13,622 | 9,661 | -29% | 1 | 1 | 0% | 2,457 | 2,437 | -1% | 0 | 0 | — |
case-04 | pass→pass | 4,913 | 3,870 | -21% | 1 | 1 | 0% | 958 | 1,437 | +50% | 0 | 0 | — |
case-05 | pass→pass | 11,524 | 7,033 | -39% | 1 | 1 | 0% | 2,073 | 2,092 | +1% | 0 | 0 | — |
case-07 | pass→pass | 2,673 | 1,590 | -41% | 1 | 1 | 0% | 357 | 948 | +166% | 0 | 0 | — |
case-08 | fail→pass | 9,886 | 2,003 | -80% | 1 | 1 | 0% | 1,676 | 1,050 | -37% | 0 | 0 | — |
case-09 | pass→pass | 15,450 | 2,176 | -86% | 1 | 1 | 0% | 2,823 | 1,060 | -62% | 0 | 0 | — |
case-10 | pass→pass | 8,281 | 3,553 | -57% | 1 | 1 | 0% | 1,362 | 1,346 | -1% | 0 | 0 | — |
case-11 | fail→pass | 16,240 | 2,281 | -86% | 1 | 1 | 0% | 2,754 | 1,186 | -57% | 0 | 0 | — |
case-12 | fail→pass | 11,660 | 2,135 | -82% | 1 | 1 | 0% | 1,939 | 1,068 | -45% | 0 | 0 | — |
case-13 | fail→fail | 16,260 | 4,253 | -74% | 1 | 1 | 0% | 2,871 | 1,442 | -50% | 0 | 0 | — |
case-14 | fail→pass | 14,238 | 3,709 | -74% | 1 | 1 | 0% | 2,444 | 1,128 | -54% | 0 | 0 | — |
case-15 | fail→fail | 13,900 | 11,232 | -19% | 1 | 1 | 0% | 2,254 | 2,835 | +26% | 0 | 0 | — |
case-16 | fail→pass | 12,865 | 2,193 | -83% | 1 | 1 | 0% | 2,301 | 1,090 | -53% | 0 | 0 | — |
case-17 | fail→pass | 16,885 | 2,543 | -85% | 1 | 1 | 0% | 2,998 | 1,162 | -61% | 0 | 0 | — |
case-18 | pass→pass | 13,956 | 2,171 | -84% | 1 | 1 | 0% | 2,580 | 1,123 | -56% | 0 | 0 | — |
case-19 | pass→pass | 7,620 | 1,770 | -77% | 1 | 1 | 0% | 1,246 | 1,009 | -19% | 0 | 0 | — |
case-20 | fail→pass | 9,291 | 2,646 | -72% | 1 | 1 | 0% | 1,685 | 1,190 | -29% | 0 | 0 | — |
case-21 | pass→pass | 8,601 | 2,688 | -69% | 1 | 1 | 0% | 1,352 | 1,208 | -11% | 0 | 0 | — |
case-22 | pass→pass | 11,859 | 2,694 | -77% | 1 | 1 | 0% | 2,034 | 1,162 | -43% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.