- Upload agent code
- Describe your agent
Uploading code gives Orizon QA the most information. It scans your files to detect the framework, extract tool definitions, identify agent types, and understand how your agent is structured — all without you having to fill anything in manually.Accepted file types:
.py, .js, .ts, .json, .yaml, .yml, and .zip archives containing any of the above.What Orizon QA extracts from your code
When you upload agent code, Orizon QA parses the file and extracts:- Framework — detected automatically from imports and class patterns (see Framework auto-detection below)
- Tools — names, parameters, and descriptions pulled from decorators (
@tool),Tool()constructors,FunctionDeclaration, and similar patterns - Agent types — the specific agent class or pattern in use (e.g.
ReActAgent,AssistantAgent,genai.Agent) - Memory configuration — whether conversation memory is in use and what type
- System prompt — if present in the code
- Rules and constraints — keywords like
never,always,must notin system prompts
Orizon QA does not run your code during the upload step. It performs static analysis only — no agent is invoked until you explicitly start a test run.
How to upload
Select your files
Drag and drop your agent file(s) or click to browse. You can upload a single file or a
.zip archive with multiple files.Review detection results
Orizon QA displays the detected framework and a summary of what it found — tools, agent types, memory, and any system prompt. Verify the results are correct.
Correct if needed
If the framework was not detected or was detected incorrectly, use the framework selector to choose the right one manually.
Framework auto-detection
When you upload code, Orizon QA checks for framework-specific patterns in sequence. The first framework whose detection patterns match is selected.LangChain detection patterns
LangChain detection patterns
Orizon QA identifies LangChain code by looking for:
- Imports:
from langchain,from langchain_core,from langchain_community - JavaScript imports:
@langchain/core,@langchain/community - The string
LangChain(case-insensitive)
- Tools via
@tooldecorator,Tool()constructor,StructuredToolsubclasses, and JSnew DynamicTool() - Chains:
LLMChain,SequentialChain, LCEL pipe operators,RetrievalQA - Agents:
create_react_agent,create_tool_calling_agent,AgentExecutor,ZeroShotAgent - Memory:
ConversationBufferMemory,ConversationSummaryMemory,VectorStoreRetrieverMemory, and others
CrewAI detection patterns
CrewAI detection patterns
Orizon QA identifies CrewAI code by looking for:
- Imports:
from crewai - Decorators:
@agent,@task,@crew - The
Crew()constructor
- Crew definitions from
@crewdecorators andCrew(agents=[...], tasks=[...])constructors - Agent roles, goals, and backstories from
@agentdecorators andAgent()constructors - Task descriptions and expected outputs from
@taskdecorators andTask()constructors - Process type:
sequential(default) orhierarchical - Built-in tools:
SerperDevTool,ScrapeWebsiteTool,FileReadTool,DirectoryReadTool, and others
AutoGen detection patterns
AutoGen detection patterns
Orizon QA identifies AutoGen code by looking for:
- Imports:
from autogen - Class names:
ConversableAgent,UserProxyAgent,AssistantAgent,GroupChat
- Agent types and their configurations (system message,
human_input_mode,max_consecutive_auto_reply) - Group chat agents and
GroupChatManagerreferences - Code execution settings (
code_execution_config, Docker usage, working directory) - Registered functions via
@register_for_llmdecorators andregister_function()calls
Google ADK detection patterns
Google ADK detection patterns
Orizon QA identifies Google ADK code by looking for:
- Imports:
from google.adk,from google.generativeai - Class names:
AgentDefinition,VertexAI - Constructor:
genai.Agent - Package:
@google-cloud/vertexai
- Agent definitions from
AgentDefinitionsubclasses andgenai.Agent()constructors - Tools from
@genai.tooldecorators andFunctionDeclaration()constructors - Built-in tools:
google_search,code_execution,retrieval - Orchestration patterns: orchestrator, sequential, parallel, router
Claude SDK detection patterns
Claude SDK detection patterns
Orizon QA identifies Claude Agent SDK code by looking for:
- Imports:
from anthropic,@anthropic-ai/sdk - Constructor:
Anthropic() - Model name strings:
claude-3,claude-sonnet,claude-opus,claude-haiku
- Tools from
@tooldecorators,tools=[{...}]arrays, andtool_useblocks - Computer use tools:
computer,text_editor,bash - Hooks:
on_message,on_tool_call,on_tool_result,on_error,before_completion,after_completion - System prompt from the
systemparameter or{"role": "system"}message - Rules from explicit
rules=[...]arrays and constraint keywords in the system prompt
Solace Mesh detection patterns
Solace Mesh detection patterns
Orizon QA identifies Solace Agent Mesh code by looking for:
- Package names:
solace-agent-mesh,solace.messaging - Class names:
SolaceAgentMesh,AgentMesh,PubSubPlus - Imports:
from solace,@solace
- Agent definitions from
Agent/BaseAgentsubclasses andAgentMesh.register()calls - Topic and queue names
- Event handlers from
@on_messageand@on_eventdecorators - A2A communication patterns: request-reply, pub-sub, direct messaging, broadcast, event sourcing
- PubSub+ configuration: host, VPN name, QoS settings
