Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 965f838114 |
@@ -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
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
# Tests: text-concatenation
|
||||
# Tests: langgraph-explainable-agent
|
||||
|
||||
## Test Checklist
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
---
|
||||
name: text-concatenation
|
||||
version: 1.0.0
|
||||
description: Concatenate two text inputs using Blacknode node graph
|
||||
inputs:
|
||||
- text_a
|
||||
- text_b
|
||||
steps:
|
||||
- Create a Blacknode Graph instance
|
||||
- Add a Text node with param value set to text_a
|
||||
- Add a second Text node with param value set to text_b
|
||||
- Add a Concat node that accepts inputs 'a' and 'b' and outputs 'value'
|
||||
- Add an Output node with input port 'value'
|
||||
- Connect first Text node 'value' port to Concat 'a' port
|
||||
- Connect second Text node 'value' port to Concat 'b' port
|
||||
- Connect Concat 'value' port to Output 'value' port
|
||||
- Invoke graph cook on Output 'value' to evaluate and return result
|
||||
outputs:
|
||||
- concatenated_text
|
||||
tags: []
|
||||
metadata:
|
||||
source_repo: https://github.com/temiroff/Blacknode.git
|
||||
extracted_at: ''
|
||||
confidence: 0.9
|
||||
---
|
||||
|
||||
# text-concatenation
|
||||
|
||||
Concatenate two text inputs using Blacknode node graph
|
||||
|
||||
## Steps
|
||||
|
||||
1. Create a Blacknode Graph instance
|
||||
2. Add a Text node with param value set to text_a
|
||||
3. Add a second Text node with param value set to text_b
|
||||
4. Add a Concat node that accepts inputs 'a' and 'b' and outputs 'value'
|
||||
5. Add an Output node with input port 'value'
|
||||
6. Connect first Text node 'value' port to Concat 'a' port
|
||||
7. Connect second Text node 'value' port to Concat 'b' port
|
||||
8. Connect Concat 'value' port to Output 'value' port
|
||||
9. Invoke graph cook on Output 'value' to evaluate and return result
|
||||
|
||||
## Inputs
|
||||
|
||||
- text_a
|
||||
- text_b
|
||||
|
||||
## Outputs
|
||||
|
||||
- concatenated_text
|
||||
|
||||
## Failure Modes
|
||||
|
||||
- Port name mismatch causes connection error
|
||||
- Missing runtime or graph not initialized
|
||||
- Cook on nonexistent node returns error
|
||||
|
||||
## Source
|
||||
|
||||
Extracted from: [https://github.com/temiroff/Blacknode.git](https://github.com/temiroff/Blacknode.git)
|
||||
Confidence: 0.9
|
||||
@@ -1,6 +0,0 @@
|
||||
# Commands: text-concatenation
|
||||
|
||||
## Available Commands
|
||||
|
||||
- `/skill text-concatenation` — Load this skill
|
||||
- `/run text-concatenation` — Execute workflow
|
||||
@@ -1,10 +0,0 @@
|
||||
# Examples: text-concatenation
|
||||
|
||||
## Usage Example
|
||||
|
||||
```python
|
||||
# How to use this skill
|
||||
# Inputs: text_a, text_b
|
||||
# Process: Create a Blacknode Graph instance → Add a Text node with param value set to text_a → Add a second Text node with param value set to text_b
|
||||
# Outputs: concatenated_text
|
||||
```
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
"name": "text-concatenation",
|
||||
"version": "1.0.0",
|
||||
"goal": "Concatenate two text inputs using Blacknode node graph",
|
||||
"inputs": [
|
||||
"text_a",
|
||||
"text_b"
|
||||
],
|
||||
"steps": [
|
||||
"Create a Blacknode Graph instance",
|
||||
"Add a Text node with param value set to text_a",
|
||||
"Add a second Text node with param value set to text_b",
|
||||
"Add a Concat node that accepts inputs 'a' and 'b' and outputs 'value'",
|
||||
"Add an Output node with input port 'value'",
|
||||
"Connect first Text node 'value' port to Concat 'a' port",
|
||||
"Connect second Text node 'value' port to Concat 'b' port",
|
||||
"Connect Concat 'value' port to Output 'value' port",
|
||||
"Invoke graph cook on Output 'value' to evaluate and return result"
|
||||
],
|
||||
"outputs": [
|
||||
"concatenated_text"
|
||||
],
|
||||
"failure_modes": [
|
||||
"Port name mismatch causes connection error",
|
||||
"Missing runtime or graph not initialized",
|
||||
"Cook on nonexistent node returns error"
|
||||
],
|
||||
"confidence": 0.9,
|
||||
"explanation": "The repo contains example converted workflows; converted_text_pipeline.py demonstrates a simple reusable pattern of two source nodes feeding a concatenation node into an output, applicable to any string joining task in Blacknode.",
|
||||
"source_repo": "https://github.com/temiroff/Blacknode.git",
|
||||
"score": 1.0
|
||||
}
|
||||
Reference in New Issue
Block a user