A platform for discovering and governing your Agents inside your codebases.
-
Setup:
# Install Python dependencies pip install -r requirements.txt # Install Node.js dependencies cd frontend && npm install && cd .. # Copy .env.example in a .env file and set your OpenRouter API key cp .env.example .env
-
Launch:
# Start the platform python doubletrust.py -
Access:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/docs
- GitHub Repository Scanning: Discovers agents from GitHub repos
- Framework Detection: Identifies LangChain agents (
create_react_agent) and Custom agents - Tool Extraction:
- LangChain: Extracts tools from
create_react_agentparameters - Custom: Uses LLM to detect tools from system prompts
- LangChain: Extracts tools from
- Risk Assessment: LLM-powered risk evaluation (low/medium/high) based on agent role and tools
- Framework Tags: Visual indicators for LangChain vs Custom agents
- Risk Indicators: Color-coded risk levels with hover explanations
- Tool Management: Per-agent tool lists with descriptions
- Database: SQLite with agents, agent_tools tables
doubletrust/
├── doubletrust.py # Unified launcher (backend + frontend)
├── backend/
│ ├── main.py # FastAPI application
│ ├── database.py # SQLite with agents/agent_tools tables
│ ├── models/agents.py # Agent models with framework/risk fields
│ ├── services/
│ │ ├── discovery_service.py # Orchestrates discovery + risk assessment
│ │ ├── github_service.py # GitHub operations
│ │ └── discovery/
│ │ ├── discovery.py # Main discovery logic
│ │ ├── extractor.py # LangChain + Custom agent extraction
│ │ └── role_assigner.py # Role assignment
│ └── api/
│ ├── agents.py # Agent endpoints
│ └── discovery.py # Discovery endpoints
├── frontend/
│ └── src/components/
│ ├── agents/ # Agent cards with framework/risk tags
│ ├── discovery/ # GitHub repo discovery
│ └── layout/ # Navigation (Agents, Discovery)
├── llm_service/
│ ├── llm.py # OpenRouter integration
│ └── prompts/
│ ├── tool_detection.py # Tool extraction from prompts
│ └── agent_risk.py # Risk assessment
└── agent-test/ # Sample LangChain/Custom agents
Use the sample agents in agent-test/:
lc_agent_inline.py- LangChain agent with inline toolslc_agent_assigned.py- LangChain agent with variable-assigned toolscustom_agent.py- Custom agent with system prompt
- Database: Auto-created SQLite
doubletrust.dbwith migration support - LLM Integration: OpenRouter API for tool detection and risk assessment
- Framework Detection: AST parsing for LangChain
create_react_agentcalls - Risk Assessment: LLM evaluation based on agent role and discovered tools
- Support more frameworks (CrewAI, Langgraph...)
- MCP discovery