Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 63d645fc3b | |||
| 7f496feb90 |
@@ -52,6 +52,18 @@ def publish_skill(review_result, config):
|
||||
subprocess.run(["git", "config", "user.email", "hermes@agent.local"], cwd=repo_dir)
|
||||
subprocess.run(["git", "config", "user.name", "Hermes Pipeline"], cwd=repo_dir)
|
||||
|
||||
# Check for duplicates in skills/ directory
|
||||
skills_dir = os.path.join(repo_dir, "skills")
|
||||
existing_skills = []
|
||||
if os.path.isdir(skills_dir):
|
||||
existing_skills = [d for d in os.listdir(skills_dir) if os.path.isdir(os.path.join(skills_dir, d))]
|
||||
|
||||
if skill_name in existing_skills:
|
||||
return {
|
||||
"status": "SKIP",
|
||||
"reason": f"Skill '{skill_name}' already exists in skills/ directory",
|
||||
}
|
||||
|
||||
# Create skill directory
|
||||
skill_dir = os.path.join(repo_dir, "skills", skill_name)
|
||||
os.makedirs(skill_dir, exist_ok=True)
|
||||
|
||||
@@ -137,6 +137,8 @@ def main():
|
||||
if publish_output.get("status") == "PUBLISHED":
|
||||
print(f" ✓ Published! PR: {publish_output.get('pr_url', '')}")
|
||||
results["published"] += 1
|
||||
elif publish_output.get("status") == "SKIP":
|
||||
print(f" ⏸ Skipped: {publish_output.get('reason', '')}")
|
||||
else:
|
||||
print(f" ! {publish_output.get('status', '?')}: {publish_output.get('message', publish_output.get('error', ''))[:100]}")
|
||||
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
---
|
||||
name: langgraph-workflow-creation
|
||||
version: 1.0.0
|
||||
description: Create a LangGraph workflow to gather facts using SerperDevTool and process
|
||||
them with an AI agent.
|
||||
inputs:
|
||||
- API Key for SerperDevTool
|
||||
- Search Query
|
||||
steps:
|
||||
- 'Step 1: Import necessary modules from langgraph and langchain libraries'
|
||||
- 'Step 2: Create a LangGraph agent using `langgraph.create_react_agent` function
|
||||
with SerperDevTool as the tool node'
|
||||
- 'Step 3: Define the search query and pass it to the agent for fact gathering'
|
||||
- 'Step 4: Process the gathered facts within the AI agent'
|
||||
outputs:
|
||||
- Processed Facts
|
||||
tags: []
|
||||
metadata:
|
||||
source_repo: https://github.com/jkmaina/LangGraphProjects.git
|
||||
extracted_at: ''
|
||||
confidence: 0.95
|
||||
---
|
||||
|
||||
# langgraph-workflow-creation
|
||||
|
||||
Create a LangGraph workflow to gather facts using SerperDevTool and process them with an AI agent.
|
||||
|
||||
## Setup
|
||||
|
||||
**Dependencies:**
|
||||
|
||||
```text
|
||||
pip install langchain serperdev
|
||||
```
|
||||
|
||||
**Setup steps:**
|
||||
|
||||
1. Install required libraries: pip install langchain serperdev
|
||||
1. Add API key to .env file: OPENAPI_API_KEY=your_api_key
|
||||
|
||||
## Key Files
|
||||
|
||||
- `agent.py - Contains the LangGraph agent creation logic`
|
||||
- `tool_node.py - Defines the SerperDevTool node`
|
||||
|
||||
## Steps
|
||||
|
||||
1. Step 1: Import necessary modules from langgraph and langchain libraries
|
||||
2. Step 2: Create a LangGraph agent using `langgraph.create_react_agent` function with SerperDevTool as the tool node
|
||||
3. Step 3: Define the search query and pass it to the agent for fact gathering
|
||||
4. Step 4: Process the gathered facts within the AI agent
|
||||
|
||||
## Implementation Details
|
||||
|
||||
```python
|
||||
import langgraph
|
||||
from serperdev import SerperDevTool
|
||||
|
||||
def create_agent(api_key, query):
|
||||
tool = SerperDevTool(api_key)
|
||||
agent = langgraph.create_react_agent(tool=tool)
|
||||
facts = agent.run(query)
|
||||
return process_facts(facts)
|
||||
```
|
||||
|
||||
## Inputs
|
||||
|
||||
- API Key for SerperDevTool
|
||||
- Search Query
|
||||
|
||||
## Outputs
|
||||
|
||||
- Processed Facts
|
||||
|
||||
## Failure Modes
|
||||
|
||||
- API Key not provided
|
||||
- Invalid Search Query
|
||||
|
||||
## Source
|
||||
|
||||
Extracted from: [https://github.com/jkmaina/LangGraphProjects.git](https://github.com/jkmaina/LangGraphProjects.git)
|
||||
Confidence: 0.95
|
||||
@@ -0,0 +1,6 @@
|
||||
# Commands: langgraph-workflow-creation
|
||||
|
||||
## Available Commands
|
||||
|
||||
- `/skill langgraph-workflow-creation` — Load this skill
|
||||
- `/run langgraph-workflow-creation` — Execute workflow
|
||||
@@ -0,0 +1,10 @@
|
||||
# Examples: langgraph-workflow-creation
|
||||
|
||||
## Usage Example
|
||||
|
||||
```python
|
||||
# How to use this skill
|
||||
# Inputs: API Key for SerperDevTool, Search Query
|
||||
# Process: Step 1: Import necessary modules from langgraph and langchain libraries → Step 2: Create a LangGraph agent using `langgraph.create_react_agent` function with SerperDevTool as the tool node → Step 3: Define the search query and pass it to the agent for fact gathering
|
||||
# Outputs: Processed Facts
|
||||
```
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "langgraph-workflow-creation",
|
||||
"version": "1.0.0",
|
||||
"goal": "Create a LangGraph workflow to gather facts using SerperDevTool and process them with an AI agent.",
|
||||
"inputs": [
|
||||
"API Key for SerperDevTool",
|
||||
"Search Query"
|
||||
],
|
||||
"steps": [
|
||||
"Step 1: Import necessary modules from langgraph and langchain libraries",
|
||||
"Step 2: Create a LangGraph agent using `langgraph.create_react_agent` function with SerperDevTool as the tool node",
|
||||
"Step 3: Define the search query and pass it to the agent for fact gathering",
|
||||
"Step 4: Process the gathered facts within the AI agent"
|
||||
],
|
||||
"outputs": [
|
||||
"Processed Facts"
|
||||
],
|
||||
"failure_modes": [
|
||||
"API Key not provided",
|
||||
"Invalid Search Query"
|
||||
],
|
||||
"confidence": 0.95,
|
||||
"explanation": "This workflow is specific to fact gathering and can be adapted for different search queries or tools.",
|
||||
"source_repo": "https://github.com/jkmaina/LangGraphProjects.git",
|
||||
"score": 1.0
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
# Tests: langgraph-workflow-creation
|
||||
|
||||
## 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