MultiReview

Hackathon: Global AI Hackathon with Qwen Cloud — Track 3: Agent Society

Repo: github.com/kyisaiah47/multiagent-code-review


Inspiration

Most AI code review tools are a single model reading your file and listing problems. A single model has blind spots — a security-focused prompt misses performance issues; a style-focused one misses auth flaws. Real engineering teams solve this by having specialists review the same code independently, then discuss disagreements in review meetings. I wanted to replicate that dynamic with agents.


What It Does

Submit any source file. Five specialist agents analyze it simultaneously, each focused on a different dimension:

  • Security — OWASP Top 10, injection attacks, hardcoded secrets, auth flaws
  • Performance — N+1 queries, blocking I/O, memory leaks, connection overhead
  • Static Analysis — logic errors, resource leaks, swallowed exceptions
  • Test Coverage — untested branches, missing edge cases
  • Documentation — missing docstrings, unclear APIs, magic numbers

When two agents flag the same lines with conflicting suggestions, they enter a structured debate — where each agent defends or updates its position. A moderator agent watches the debate and issues a final verdict. Findings with genuine expert disagreement are escalated for human review.

The output: a ranked findings report with severity, confidence, consensus status, and a full debate transcript per contested finding — posted automatically as a GitHub PR comment.


How I Built It

Architecture

Input: source file + optional git diff
      │
      ▼
Orchestrator (qwen3.7-plus)
      │  asyncio.gather — 5 concurrent calls
      ├── StaticAnalysisAgent  (qwen3.5-flash)
      ├── SecurityAgent        (qwen3.5-flash)
      ├── PerformanceAgent     (qwen3.5-flash)
      ├── DocumentationAgent   (qwen3.5-flash)
      └── TestCoverageAgent    (qwen3.5-flash)
      │
      ▼
ConflictDetector
      │  exact-line overlap + semantic contradiction detection
      ▼
DebateEngine
      │  1 round per conflict, early exit on mutual agreement
      ▼
ModeratorAgent (qwen3.7-plus)
      │  synthesizes final verdict with agreement score
      ▼
ConsensusResult
      ├── consensus_findings   (severity · confidence · resolution)
      ├── unresolved_conflicts (escalated for human review)
      └── metrics              (debate rounds · conflicts resolved · human review count)

Tech Stack

Layer Technology
AI Models Qwen3.7-Plus (orchestrator + moderator), Qwen3.5-Flash (5 specialists)
Agent Communication Custom debate protocol — stance tracking (agree / maintain / concede_partial)
CLI Python 3.11, Typer, Rich
API Server FastAPI
Model Client OpenAI-compatible SDK → Qwen Cloud DashScope
Cloud Deployment Alibaba Cloud Function Compute v3
CI Integration GitHub Actions — runs on PRs, posts findings as PR comments

Alibaba Cloud Deployment

The backend is deployed to Alibaba Cloud Function Compute v3 via deploy/alibaba_cloud.py, which uses the Alibaba Cloud FC, ECS, and credentials SDKs to package and deploy the FastAPI server as an HTTP-triggered function.


Challenges

  • Conflict detection without an extra LLM call: Used exact line matching + keyword polarity heuristics (add vs. remove) to detect real conflicts fast, without burning tokens on another model call.
  • CI output routing: GitHub Actions redirects stdout to a file for the PR comment. Progress logs had to be routed to stderr so they show live in the Actions UI while the markdown report writes to the file.
  • JSON truncation: Setting max_tokens too low caused agents to return truncated JSON mid-string. Added per-finding error handling to skip malformed entries gracefully.
  • Debate timeouts: Qwen API latency varies. Added per-call timeouts so a slow agent doesn't hang the entire pipeline.

What's Next

  • SARIF output for native GitHub code scanning (findings appear inline in PRs)
  • Streaming output so findings render as each agent completes
  • Single-agent vs. multi-agent benchmark to quantify the recall improvement
  • Support for JavaScript, TypeScript, and Go

Team

Built solo by @kyisaiah47 for the Global AI Hackathon with Qwen Cloud.

Built With

  • actions
  • asyncio
  • cloud
  • fastapi
  • github
  • openai
  • pydantic
  • python
  • qwen
  • qwen3.5-plus
  • qwen3.7-max
  • rich
  • sdk
  • typer
Share this project:

Updates