How fishmingyu/orcaloca works
OrcaLoca localizes software issues in benchmark repositories through trace analysis followed by LLM-guided search. Its search layer builds and queries a repository symbol graph and inverted index, while the agent manages prioritized actions, decomposition, relevance scoring, and context pruning before producing bug locations. The README also documents top-K retrieval and external SearchAgent-backend support. Sampled source confirms parts of search, graph construction, parsing, and CLI trace execution; wiring for the full trace/search orchestration is therefore shown only where documented, and finer internal trace details are omitted.
Main entry points: search_agent.py Search agent · run.py Evaluation runner · trace_analysis_agent.py Trace analysis agent · cli.py CLI
Components 18
Entry and orchestration
- Evaluation runner
evaluation/run.py - CLI
cli.py - Benchmark dataset
Orcar/load_cache_dataset.py - Benchmark environment
Orcar/environment
Trace analysis
- Trace analysis agent
Orcar/trace_analysis_agent.py - Execution tracer
Orcar/tracer.py - Trace result types
Orcar/types.py
Search and retrieval
- Orca agent
Orcar/agent.py - Search agent
Orcar/search_agent.py - Search manager
Orcar/search/search_tool.py - Output parser
Orcar/output_parser.py - Bug locations
Orcar/types.py
Repository model
- Symbol graph
Orcar/search/build_graph.py - Inverted index
Orcar/search/inverted_index.py - Code relevance scorer
Orcar/code_scorer.py
Other components
- Benchmark user
- Issue repository
- LLM service
Connections 20
- Benchmark user → Evaluation runner: starts run
- Evaluation runner → Benchmark dataset: loads instances
- Evaluation runner → CLI: dispatches stages
- CLI → Benchmark environment: sets up environment
- CLI → Trace analysis agent: runs analysis
- Benchmark environment → Issue repository: prepares repository
- Trace analysis agent → LLM service: requests analysis
- Trace analysis agent → Execution tracer: uses tracing
- Trace analysis agent → Trace result types: produces trace output
- Evaluation runner → Search agent: runs search stage
- Search agent → LLM service: requests actions
- Search agent → Search manager: invokes search tools
- Search agent → Output parser: parses responses
- Search agent → Code relevance scorer: scores candidates
- Search agent → Bug locations: emits locations
- Search manager → Symbol graph: queries graph
- Search manager → Inverted index: queries index
- Issue repository → Symbol graph: indexed as symbols
- Issue repository → Inverted index: indexed for lookup
- Orca agent → Search agent: provides agent framework