Modular Python framework for LLM agents with multiple agent patterns, memory, RAG, MCP, and context engineering.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport streamable-http · sse counts 5 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
add
-
divide
-
greet
-
multiply
-
subtract
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 23704a7 · analyzer v33 · 2w ago
skills & prompt files 1
- agent-rules Ling-ye-Lingye_Agent-23704a7/AGENTS.md
danger signals1
- dynamic code execution eval()/exec() Ling-ye-Lingye_Agent-23704a7/tests/test_mcp_server.py :24
result = eval(expression)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 86
filesystem 13
- fs (weak) Ling-ye-Lingye_Agent-23704a7/examples/PDF_learning_assistant.py :234
with open(report_file, 'w', encoding='utf-8') as f: - fs (weak) Ling-ye-Lingye_Agent-23704a7/examples/codebase_maintainer.py :424
with open(report_file, 'w', encoding='utf-8') as f: - fs (weak) Ling-ye-Lingye_Agent-23704a7/examples/doc_assistant.py :116
with open("report.md", "w", encoding="utf-8") as f: - fs Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/rag/document.py :247
with open(file_path, 'r', encoding=encoding) as f: - fs Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/rag/pipeline.py :201
with open(path, 'r', encoding='utf-8', errors='ignore') as f: - fs Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/types/perceptual.py :580
with open(image_data, 'rb') as f: - fs Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/note_tool.py :39
from pathlib import Path - fs Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/protocol/mcp_tool.py :119
with open(path, "r", encoding="utf-8") as f: - fs Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/rag_tool.py :328
with open(tmp_path, 'w', encoding='utf-8') as f: - fs Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/terminal_tool.py :26
from pathlib import Path - fs (weak) Ling-ye-Lingye_Agent-23704a7/scripts/verify_release_artifact.py :7
from pathlib import Path - fs (weak) Ling-ye-Lingye_Agent-23704a7/tests/test_release_contract.py :4
import shutil
show 1 more
- fs (weak) Ling-ye-Lingye_Agent-23704a7/tests/test_terminal_tool.py :5
from pathlib import Path
shell / exec 2
- shell Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/terminal_tool.py :24
import subprocess - shell (weak) Ling-ye-Lingye_Agent-23704a7/tests/test_release_contract.py :5
import subprocess
network 3
- net Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/embedding.py :19
from urllib.parse import urlparse - net Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/storage/qdrant_store.py :76
import httpx - net (weak) Ling-ye-Lingye_Agent-23704a7/tests/test_mcp_tool.py :35
import socket
secrets 8
- secrets Ling-ye-Lingye_Agent-23704a7/lingye_agent/core/database_config.py :55
api_key=os.getenv("QDRANT_API_KEY"), - secrets Ling-ye-Lingye_Agent-23704a7/lingye_agent/core/llm.py :76
if os.getenv("OPENAI_API_KEY"): - secrets Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/embedding.py :213
os.environ["DASHSCOPE_API_KEY"] = self.api_key - secrets Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/rag/pipeline.py :539
api_key=qdrant_api_key if qdrant_api_key is not None else os.getenv("QDRANT_API_KEY"), - secrets Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/types/episodic.py :76
qdrant_api_key = os.getenv("QDRANT_API_KEY") - secrets Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/types/perceptual.py :117
qdrant_api_key = os.getenv("QDRANT_API_KEY") - secrets Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/advanced_search.py :21
if os.getenv("TAVILY_API_KEY"): - secrets Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/rag_tool.py :59
self.qdrant_api_key = qdrant_api_key or os.getenv("QDRANT_API_KEY")
database 1
- db Ling-ye-Lingye_Agent-23704a7/lingye_agent/memory/storage/document_store.py :10
import sqlite3
tool registrations 5
- add Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/protocol/mcp_tool.py :158
- subtract Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/protocol/mcp_tool.py :163
- multiply Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/protocol/mcp_tool.py :168
- divide Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/protocol/mcp_tool.py :173
- greet Ling-ye-Lingye_Agent-23704a7/lingye_agent/tools/protocol/mcp_tool.py :180
declared dependencies 21
- fastmcp@>=2.0.0
- openai@>=1.30.0
- pydantic@>=2.5.0
- python-dotenv@>=1.0.0
- httpx@>=0.27.0
- tiktoken@>=0.9.0
- numpy@>=1.26.0
- qdrant-client@>=1.6.0
- sentence-transformers@>=2.5.0
- scikit-learn@>=1.3.0
- neo4j@>=5.0.0
- jieba@>=0.42.1
show 9 more
- dashscope@>=1.14.0
- markitdown@>=0.0.1a3
- gradio@>=4.0.0
- lingye-agent@*
- pytest@>=8.0.0
- pytest-asyncio@>=0.23.0
- build@>=1.2.2
- twine@>=5.1.1
- tomli@>=2.0.1; python_version <
transport_posture 1
- network-listening, binds all interfaces, no auth detected Ling-ye-Lingye_Agent-23704a7/lingye_agent/protocols/mcp/server.py :114
server.run(transport="http", host="0.0.0.0", port=8081)