Add Skill: langgraph-explainable-agent #36
@@ -0,0 +1,578 @@
|
|||||||
|
---
|
||||||
|
name: langgraph-explainable-agent
|
||||||
|
version: 1.0.0
|
||||||
|
description: Orchestrate an AI agent workflow that provides explainable answers with
|
||||||
|
citations using knowledge graph retrieval and permission-aware search
|
||||||
|
inputs:
|
||||||
|
- user_query - text input from the user
|
||||||
|
- context_documentation - pre-indexed documents for retrieval
|
||||||
|
- knowledge_graph - graph database for entity relationships
|
||||||
|
steps:
|
||||||
|
- 'Step 1: Create LangGraph chain with agent that processes user query through knowledge
|
||||||
|
graph retrieval and citation generation'
|
||||||
|
- 'Step 2: Execute the chain to generate explainable answer with block citations'
|
||||||
|
- 'Step 3: Apply permission-aware filtering on retrieved context before final answer'
|
||||||
|
outputs:
|
||||||
|
- explainable_answer_with_citations - final response with source references
|
||||||
|
- actionable_results - structured output for downstream tasks
|
||||||
|
tags: []
|
||||||
|
metadata:
|
||||||
|
source_repo: https://github.com/pipeshub-ai/pipeshub-ai.git
|
||||||
|
extracted_at: ''
|
||||||
|
confidence: 0.95
|
||||||
|
---
|
||||||
|
|
||||||
|
# langgraph-explainable-agent
|
||||||
|
|
||||||
|
Orchestrate an AI agent workflow that provides explainable answers with citations using knowledge graph retrieval and permission-aware search
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
**Dependencies:**
|
||||||
|
|
||||||
|
```text
|
||||||
|
pip install langchain langgraph neoelephant pydantic
|
||||||
|
```
|
||||||
|
|
||||||
|
**Setup steps:**
|
||||||
|
|
||||||
|
1. 1
|
||||||
|
1. .
|
||||||
|
1.
|
||||||
|
1. I
|
||||||
|
1. n
|
||||||
|
1. s
|
||||||
|
1. t
|
||||||
|
1. a
|
||||||
|
1. l
|
||||||
|
1. l
|
||||||
|
1.
|
||||||
|
1. l
|
||||||
|
1. a
|
||||||
|
1. n
|
||||||
|
1. g
|
||||||
|
1. c
|
||||||
|
1. h
|
||||||
|
1. a
|
||||||
|
1. i
|
||||||
|
1. n
|
||||||
|
1.
|
||||||
|
1. a
|
||||||
|
1. n
|
||||||
|
1. d
|
||||||
|
1.
|
||||||
|
1. l
|
||||||
|
1. a
|
||||||
|
1. n
|
||||||
|
1. g
|
||||||
|
1. g
|
||||||
|
1. r
|
||||||
|
1. a
|
||||||
|
1. p
|
||||||
|
1. h
|
||||||
|
1.
|
||||||
|
1. p
|
||||||
|
1. a
|
||||||
|
1. c
|
||||||
|
1. k
|
||||||
|
1. a
|
||||||
|
1. g
|
||||||
|
1. e
|
||||||
|
1. s
|
||||||
|
1.
|
||||||
|
1. 2
|
||||||
|
1. .
|
||||||
|
1.
|
||||||
|
1. C
|
||||||
|
1. o
|
||||||
|
1. n
|
||||||
|
1. f
|
||||||
|
1. i
|
||||||
|
1. g
|
||||||
|
1. u
|
||||||
|
1. r
|
||||||
|
1. e
|
||||||
|
1.
|
||||||
|
1. k
|
||||||
|
1. n
|
||||||
|
1. o
|
||||||
|
1. w
|
||||||
|
1. l
|
||||||
|
1. e
|
||||||
|
1. d
|
||||||
|
1. g
|
||||||
|
1. e
|
||||||
|
1.
|
||||||
|
1. g
|
||||||
|
1. r
|
||||||
|
1. a
|
||||||
|
1. p
|
||||||
|
1. h
|
||||||
|
1.
|
||||||
|
1. c
|
||||||
|
1. o
|
||||||
|
1. n
|
||||||
|
1. n
|
||||||
|
1. e
|
||||||
|
1. c
|
||||||
|
1. t
|
||||||
|
1. i
|
||||||
|
1. o
|
||||||
|
1. n
|
||||||
|
1.
|
||||||
|
1. 3
|
||||||
|
1. .
|
||||||
|
1.
|
||||||
|
1. D
|
||||||
|
1. e
|
||||||
|
1. f
|
||||||
|
1. i
|
||||||
|
1. n
|
||||||
|
1. e
|
||||||
|
1.
|
||||||
|
1. a
|
||||||
|
1. g
|
||||||
|
1. e
|
||||||
|
1. n
|
||||||
|
1. t
|
||||||
|
1.
|
||||||
|
1. c
|
||||||
|
1. h
|
||||||
|
1. a
|
||||||
|
1. i
|
||||||
|
1. n
|
||||||
|
1.
|
||||||
|
1. 4
|
||||||
|
1. .
|
||||||
|
1.
|
||||||
|
1. R
|
||||||
|
1. u
|
||||||
|
1. n
|
||||||
|
1.
|
||||||
|
1. t
|
||||||
|
1. h
|
||||||
|
1. e
|
||||||
|
1.
|
||||||
|
1. w
|
||||||
|
1. o
|
||||||
|
1. r
|
||||||
|
1. k
|
||||||
|
1. f
|
||||||
|
1. l
|
||||||
|
1. o
|
||||||
|
1. w
|
||||||
|
|
||||||
|
## Key Files
|
||||||
|
|
||||||
|
- `agent.py - main LangGraph chain definition`
|
||||||
|
- `workflow_config.yaml - chain configuration`
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
1. Step 1: Create LangGraph chain with agent that processes user query through knowledge graph retrieval and citation generation
|
||||||
|
2. Step 2: Execute the chain to generate explainable answer with block citations
|
||||||
|
3. Step 3: Apply permission-aware filtering on retrieved context before final answer
|
||||||
|
|
||||||
|
## Implementation Details
|
||||||
|
|
||||||
|
```python
|
||||||
|
f
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
r
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
o
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
m
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
l
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
n
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
g
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
g
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
r
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
p
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
h
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
i
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
m
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
p
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
o
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
r
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
t
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
L
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
n
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
g
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
G
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
r
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
p
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
h
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
;
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
f
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
r
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
o
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
m
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
l
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
n
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
g
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
c
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
h
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
i
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
n
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
i
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
m
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
p
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
o
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
r
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
t
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
.
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
.
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
.
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
;
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
c
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
h
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
i
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
n
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
=
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
L
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
n
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
g
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
G
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
r
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
p
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
h
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
(
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
.
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
.
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
.
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
;
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
c
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
h
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
a
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
i
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
n
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
.
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
r
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
u
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
n
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
(
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inputs
|
||||||
|
|
||||||
|
- user_query - text input from the user
|
||||||
|
- context_documentation - pre-indexed documents for retrieval
|
||||||
|
- knowledge_graph - graph database for entity relationships
|
||||||
|
|
||||||
|
## Outputs
|
||||||
|
|
||||||
|
- explainable_answer_with_citations - final response with source references
|
||||||
|
- actionable_results - structured output for downstream tasks
|
||||||
|
|
||||||
|
## Failure Modes
|
||||||
|
|
||||||
|
- Empty knowledge graph causes missing citations
|
||||||
|
- Permission denied on source documents blocks retrieval
|
||||||
|
- LangGraph chain execution fails due to missing dependencies
|
||||||
|
|
||||||
|
## Source
|
||||||
|
|
||||||
|
Extracted from: [https://github.com/pipeshub-ai/pipeshub-ai.git](https://github.com/pipeshub-ai/pipeshub-ai.git)
|
||||||
|
Confidence: 0.95
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# Commands: langgraph-explainable-agent
|
||||||
|
|
||||||
|
## Available Commands
|
||||||
|
|
||||||
|
- `/skill langgraph-explainable-agent` — Load this skill
|
||||||
|
- `/run langgraph-explainable-agent` — Execute workflow
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# Examples: langgraph-explainable-agent
|
||||||
|
|
||||||
|
## Usage Example
|
||||||
|
|
||||||
|
```python
|
||||||
|
# How to use this skill
|
||||||
|
# Inputs: user_query - text input from the user, context_documentation - pre-indexed documents for retrieval, knowledge_graph - graph database for entity relationships
|
||||||
|
# Process: Step 1: Create LangGraph chain with agent that processes user query through knowledge graph retrieval and citation generation → Step 2: Execute the chain to generate explainable answer with block citations → Step 3: Apply permission-aware filtering on retrieved context before final answer
|
||||||
|
# Outputs: explainable_answer_with_citations - final response with source references, actionable_results - structured output for downstream tasks
|
||||||
|
```
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"name": "langgraph-explainable-agent",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"goal": "Orchestrate an AI agent workflow that provides explainable answers with citations using knowledge graph retrieval and permission-aware search",
|
||||||
|
"inputs": [
|
||||||
|
"user_query - text input from the user",
|
||||||
|
"context_documentation - pre-indexed documents for retrieval",
|
||||||
|
"knowledge_graph - graph database for entity relationships"
|
||||||
|
],
|
||||||
|
"steps": [
|
||||||
|
"Step 1: Create LangGraph chain with agent that processes user query through knowledge graph retrieval and citation generation",
|
||||||
|
"Step 2: Execute the chain to generate explainable answer with block citations",
|
||||||
|
"Step 3: Apply permission-aware filtering on retrieved context before final answer"
|
||||||
|
],
|
||||||
|
"outputs": [
|
||||||
|
"explainable_answer_with_citations - final response with source references",
|
||||||
|
"actionable_results - structured output for downstream tasks"
|
||||||
|
],
|
||||||
|
"failure_modes": [
|
||||||
|
"Empty knowledge graph causes missing citations",
|
||||||
|
"Permission denied on source documents blocks retrieval",
|
||||||
|
"LangGraph chain execution fails due to missing dependencies"
|
||||||
|
],
|
||||||
|
"confidence": 0.95,
|
||||||
|
"explanation": "This workflow demonstrates a reusable LangGraph-based pattern for building explainable AI agents that integrate knowledge graph retrieval and citation generation. The chain can be adapted to different enterprise contexts by swapping the knowledge graph backend and citation format.",
|
||||||
|
"source_repo": "https://github.com/pipeshub-ai/pipeshub-ai.git",
|
||||||
|
"score": 1.0
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# Tests: langgraph-explainable-agent
|
||||||
|
|
||||||
|
## Test Checklist
|
||||||
|
|
||||||
|
- [ ] Workflow has at least 3 steps
|
||||||
|
- [ ] All inputs are defined
|
||||||
|
- [ ] All outputs are defined
|
||||||
|
- [ ] Failure modes are documented
|
||||||
|
- [ ] Skill can be loaded without errors
|
||||||
Reference in New Issue
Block a user