LangGraph is a domain-agnostic multi-agent framework that aims to provide reusable LangChain tools and an MCP (Model Context Protocol) backend (memory, search (RAG), HTTP, scheduler, notifications, authentication, logging). You might find the flight search agent example particularly helpful.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in ace19-dev/agentic-ai-common-tools
transport stdio counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit df2e988 · analyzer v28 · 3h ago
skills & prompt files 1
danger signals2
- dynamic code execution __import__ sink ace19-dev-agentic-ai-common-tools-df2e988/examples/flight_monitor/run.py :668
_SCAN_WORKERS = int(__import__("os").environ.get("SCAN_WORKERS", "4")) - suspicious endpoint api.telegram.org ace19-dev-agentic-ai-common-tools-df2e988/services/notification.py :165
url = f"https://api.telegram.org/bot{token}/sendMessage"
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 93
filesystem 3
- fs ace19-dev-agentic-ai-common-tools-df2e988/config.py :15
from pathlib import Path - fs ace19-dev-agentic-ai-common-tools-df2e988/mcp_client/loader.py :18
from pathlib import Path - fs ace19-dev-agentic-ai-common-tools-df2e988/services/backends/logging/file.py :57
with open(self.log_path, encoding="utf-8") as f:
network 6
- net ace19-dev-agentic-ai-common-tools-df2e988/services/backends/logging/datadog.py :8
import requests - net ace19-dev-agentic-ai-common-tools-df2e988/services/backends/logging/elasticsearch.py :8
import requests - net ace19-dev-agentic-ai-common-tools-df2e988/services/backends/logging/loki.py :9
import requests - net ace19-dev-agentic-ai-common-tools-df2e988/services/http.py :10
import requests - net ace19-dev-agentic-ai-common-tools-df2e988/services/notification.py :21
import requests - net ace19-dev-agentic-ai-common-tools-df2e988/tools/crawl_tools.py :20
from urllib.parse import urljoin, urlparse
secrets 2
- secrets ace19-dev-agentic-ai-common-tools-df2e988/config.py :22
OPENAI_API_KEY: str = os.getenv("OPENAI_API_KEY", "") - secrets ace19-dev-agentic-ai-common-tools-df2e988/services/backends/retrieval/vector.py :51
api_key = os.getenv("OPENAI_API_KEY", "")
database 7
- db ace19-dev-agentic-ai-common-tools-df2e988/services/auth.py :14
import sqlite3 - db ace19-dev-agentic-ai-common-tools-df2e988/services/backends/logging/postgres.py :42
import psycopg2 - db ace19-dev-agentic-ai-common-tools-df2e988/services/backends/logging/sqlite.py :6
import sqlite3 - db ace19-dev-agentic-ai-common-tools-df2e988/services/backends/memory/sqlite.py :6
import sqlite3 - db ace19-dev-agentic-ai-common-tools-df2e988/services/backends/retrieval/bm25_sqlite.py :6
import sqlite3 - db ace19-dev-agentic-ai-common-tools-df2e988/services/backends/retrieval/postgres.py :35
import psycopg2 # noqa: F401 - db ace19-dev-agentic-ai-common-tools-df2e988/services/backends/scheduler/apscheduler.py :6
import sqlite3
declared dependencies 17
- mcp@>=1.9.0
- langfuse@>=2.0.0
- langchain@>=1.0
- langgraph@>=1.0
- langchain-openai@>=1.0
- langchain-anthropic@>=1.0
- langchain-google-genai@>=4.2
- requests@>=2.31.0
- python-dotenv@>=1.0.0
- urllib3@>=2.0.0
- langchain-mcp-adapters@>=0.3
- cryptography@>=42.0.0
- numpy@>=1.24.0
- APScheduler@>=3.10.0
- chromadb@>=1.0
- sentence-transformers@>=2.7.0
- airportsdata@>=20240101