* feat: add evidence-backed reconstruction scheduling * fix: require matching provider identity in schedules --------- Co-authored-by: Haseeb Mir <[email protected]>
9.6 KiB
Dryxio/ReAgent evaluation
Inspected revisions
- Destination:
heaven-hm/re-agent, branchdevelop, commitfaa9c7b0b1e2e50c0e2c1714586c1c0c6e4d74d7. - Reference:
Dryxio/reagent, branchmain, commitd12cea338c61898b06a86fe8adb25275fa9d5615. - Dryxio's pinned
LICENSEis MIT, copyright © 2026 Dryxio. No Dryxio source or dependencies are copied into RE-Agent in this integration.
Capability matrix
| Capability | Existing RE-Agent | Dryxio approach | Decision |
|---|---|---|---|
| Function recovery | Shared autonomous investigation controller, provider analysis, reconstruction policy, runtime observations and repairs (docs/autonomous-reconstruction.md; src/application/ and src/composition/). Existing finite native benchmark demonstrates one repaired constrained reconstruction. |
agents/loop.py alternates reverser/checker and investigation; Ghidra backend supplies function context. |
Skip duplicate recovery engine; keep the existing controller and add an Evidence-backed function scheduler. |
| Reverser/checker | Provider and coding-agent integrations plus scoped reconstruction verification exist; no second opinion should be inferred from generic model output. | Separate prompt roles and configurable provider calls in agents/reverser.py, agents/checker.py, agents/loop.py. |
Do not add a parallel model loop. Existing reconstruction verification is the integration boundary; explicit independent checker role remains a documented gap for arbitrary native-function recovery. |
| Structural verification | Function dossiers, call-path evidence, native function/value-flow models, reconstruction obligations and finite expression verification provide structural/scoped checks. | Ghidra-derived signals and parity rules in parity/signals.py and parity/engine.py. |
Reuse existing evidence and verification contracts; do not duplicate a signal-scoring engine. Structural evidence is not semantic equivalence. |
| Parity checks | Existing comparisons and verification reports retain scope and evidence; finite suites are reported as finite. | GREEN/YELLOW/RED scoring in parity/scoring.py and gate policy in orchestrator/single.py. |
Skip a second parity state machine. The new schedule reports uncertainty and evidence links without making a parity claim. |
| Candidate isolation | Autonomous reconstruction already uses workspace/process ownership, bounded process runs, builds, cleanup, and persisted regression cases; see docs/autonomous-reconstruction-benchmark.md. |
Candidate overlays and optional copied project in verification/candidate.py; configured build/test/runtime commands. |
Reuse existing process/workspace facilities. No Dryxio overlay code is copied. |
| Build/test gates | Existing controller executes candidate builds and differential validation; validation outcomes are persisted with the investigation. | Candidate build, test, runtime and differential commands gate each repair iteration. | Already covered for the current controller; extend only through its existing interfaces. |
| Evidence graph | Immutable Evidence ledger/bundles, native investigation graph, function dossiers and call-path reconstruction are established contracts. | core/knowledge_graph.py tracks functions, calls, strings and globals in session storage. |
Use existing Evidence and function dossiers. Add dependency scheduling rather than another graph/persistence representation. |
| Agent orchestration | Shared CLI/MCP workflows, autonomous controller, providers, checkpoint/resume and process supervision already exist. | Python CLI/orchestrators, provider protocol, sessions and function picker. | Skip. Retain RE-Agent CLI/MCP, provider, checkpoint and process ownership architecture. |
| Dependency-aware scheduling | src/domain/callPath.ts reconstructs caller-to-callee paths, but does not produce a budgeted callee-first reconstruction plan or group recursive SCCs. |
core/function_picker.py supports dependency order, easiest-first and high-impact selection. |
Adapt the concept natively: src/domain/reconstructionSchedule.ts and schedule_reconstruction_functions MCP tool schedule Evidence-linked SCCs, respect dependency readiness and budget, and mark missing dossiers/retry limits. |
Reuse and attribution inventory
No upstream source, generated code, embedded dependency, or license text was incorporated. src/domain/reconstructionSchedule.ts and its tests are an independent TypeScript implementation over RE-Agent's existing analyze_function Evidence contract. The scheduler is inspired by the dependency-order selection concept in Dryxio's src/re_agent/core/function_picker.py; it is not a translation or derivative copy.
Dryxio's implementation was inspected for its function picker, Ghidra backends/exports, agent roles and loop, parity signals/scoring, candidate overlay and validation, session/checkpoint and knowledge graph. Its Python CLI, model clients, backend interfaces, and persistence are excluded because RE-Agent already owns corresponding infrastructure. Ghidra/P-code fidelity and checker independence are not claimed by the new scheduler.
Limits
Scheduling covers only functions represented by supplied analyze_function Evidence. Calls to addresses without supplied dossiers are retained as missing dependencies; unresolved calls and partial/unknown relationship coverage remain limitations. Unknown targets are not treated as absent. Recursive SCCs are atomic with respect to the function budget. The scheduler orders reconstruction work; it does not assert correctness, execute candidates, or prove equivalence.
Validation performed
The authored scheduler tests exercise a four-function dependency graph with a recursive SCC, missing dossier, a constrained budget, a retry-exhausted dependency, duplicate function addresses, mixed artifact identity, and unknown relationship coverage. The MCP boundary tests verify that the operation advertises valid input/output schemas and persists derived Evidence linked to the dossier. These are deterministic fixture tests, not a source-hidden C/C++ reconstruction benchmark. No end-to-end reconstruction performance or model-cost comparison was run for this scheduling-only change.