CLRlove7

๐ŸŽฏ ้ฃžๆŽง่ฝฏไปถๆต‹่ฏ• Agent - ไปปๅŠกๅˆ†่งฃ็ญ–็•ฅ

ๆœฌๆŠฅๅ‘Š่ฏฆ็ป†้˜่ฟฐๅŸบไบŽ Supervisor-Agent ๆžถๆž„็š„ๅคš็บงไปปๅŠกๅˆ†่งฃไธŽ่ทฏ็”ฑ่ฐƒๅบฆๆœบๅˆถ


๐Ÿ“Œ ๆ ธๅฟƒๆŒ‘ๆˆ˜

ๅœจ่ˆช็ฉบ้ฃžๆŽง่ฝฏไปถๆต‹่ฏ•ๅœบๆ™ฏไธญ๏ผŒ้ขไธด็€ไธ‰ๅคงๆ ธๅฟƒๆŒ‘ๆˆ˜๏ผš

  1. ไปปๅŠกๅคๆ‚ๆ€ง๏ผš้ฃžๆŽง่ฝฏไปถๆถ‰ๅŠๅคšๆจกๅ—่€ฆๅˆใ€ๅฎžๆ—ถๆ€ง่ฆๆฑ‚้ซ˜
  2. ็Ÿฅ่ฏ†ไพ่ต–๏ผšๆต‹่ฏ•็”จไพ‹็”Ÿๆˆ้œ€่ฆ่ˆช็ฉบ้ข†ๅŸŸไธ“ไธš็Ÿฅ่ฏ†
  3. ็ญ–็•ฅ้€‰ๆ‹ฉ๏ผšไธๅŒไปฃ็ ่ทฏๅพ„้€‚ๅˆไธๅŒ็š„ๆต‹่ฏ•็”Ÿๆˆ็ญ–็•ฅ

๐Ÿ—๏ธ ๆžถๆž„่ฎพ่ฎก

Supervisor-Agent ๅๅŒๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Supervisor (ไปปๅŠก็ผ–ๆŽ’)                    โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚  ไปปๅŠกๅˆ†่งฃๅ™จ  โ”‚โ†’ โ”‚  ่ทฏ็”ฑ่ฐƒๅบฆๅ™จ  โ”‚โ†’ โ”‚  ็ญ–็•ฅ้€‰ๆ‹ฉๅ™จ          โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๆ‰ง่กŒๅฑ‚ (ไธ‰ๅคง็ญ–็•ฅ)                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚  ็ฌฆๅทๆ‰ง่กŒ   โ”‚  โ”‚  ๆจก็ณŠๆต‹่ฏ•   โ”‚  โ”‚    LLM ็”Ÿๆˆ         โ”‚ โ”‚
โ”‚  โ”‚  (SMT/SBVT) โ”‚  โ”‚  (AFL++)    โ”‚  โ”‚  (AssertPath-LLM)   โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”„ ๅคš็บงไปปๅŠกๅˆ†่งฃ

็ฌฌไธ€็บง๏ผšๅŠŸ่ƒฝๆจกๅ—ๅˆ†่งฃ

ๅฐ†้ฃžๆŽง่ฝฏไปถๆŒ‰ๅŠŸ่ƒฝๅˆ’ๅˆ†ไธบ็‹ฌ็ซ‹ๆต‹่ฏ•ๆจกๅ—๏ผš

ๆจกๅ—็ฑปๅˆซ ็คบไพ‹ ๆต‹่ฏ•้‡็‚น
้ฃž่กŒๆŽงๅˆถ ้ซ˜ๅบฆๆŽงๅˆถใ€ๅงฟๆ€ๆŽงๅˆถ ๅฎžๆ—ถๆ€งใ€็จณๅฎšๆ€ง
ไผ ๆ„Ÿๅ™จ่žๅˆ GPSใ€ๆƒฏๆ€งๅฏผ่ˆช ๆ•ฐๆฎไธ€่‡ดๆ€ง
้€šไฟกๅ่ฎฎ ๅœฐ้ข็ซ™้€šไฟกใ€้ฅๆต‹ ๅ่ฎฎๅˆ่ง„ๆ€ง
ๆ•…้šœๅค„็† ไผ ๆ„Ÿๅ™จๅคฑๆ•ˆใ€้“พ่ทฏไธญๆ–ญ ๅฎน้”™ๆขๅค

็ฌฌไบŒ็บง๏ผšๆต‹่ฏ•็”จไพ‹ๅˆ†่งฃ

ๅฏนๆฏไธชๅŠŸ่ƒฝๆจกๅ—๏ผŒๆŒ‰ๆต‹่ฏ•็›ฎๆ ‡่ฟ›ไธ€ๆญฅๅˆ†่งฃ๏ผš

่พ“ๅ…ฅ็ฉบ้—ดๅˆ’ๅˆ† โ†’ ่พน็•Œๆกไปถ่ฏ†ๅˆซ โ†’ ่ทฏๅพ„่ฆ†็›–่ง„ๅˆ’

ๅ…ณ้”ฎๆŒ‡ๆ ‡๏ผš

็ฌฌไธ‰็บง๏ผš็ญ–็•ฅ้€‰ๆ‹ฉๅˆ†่งฃ

ๆ นๆฎไปฃ็ ็‰นๅพ่‡ชๅŠจ้€‰ๆ‹ฉๆœ€ไผ˜็ญ–็•ฅ๏ผš

ไปฃ็ ็‰นๅพ ๆŽจ่็ญ–็•ฅ ็†็”ฑ
ๅซๅคๆ‚ๅพช็Žฏ/ๆกไปถ ็ฌฆๅทๆ‰ง่กŒ ็ฒพ็กฎ่ทฏๅพ„ๆŽข็ดข
ๅซๅค–้ƒจ่พ“ๅ…ฅ ๆจก็ณŠๆต‹่ฏ• ้ซ˜ๆ•ˆ็ผบ้™ทๅ‘็Žฐ
ๅซไธšๅŠก้€ป่พ‘ LLM ็”Ÿๆˆ ่ฏญไน‰็†่งฃไผ˜ๅŠฟ

๐Ÿง  LLM ่ทฏ็”ฑ่ฐƒๅบฆ

ๅ†ณ็ญ–ๆต็จ‹

# ไผชไปฃ็ ๏ผš็ญ–็•ฅ้€‰ๆ‹ฉๅ†ณ็ญ–
def select_strategy(code_analysis):
    complexity = analyze_complexity(code_analysis)
    has_external_io = detect_external_io(code_analysis)
    has_business_logic = detect_business_logic(code_analysis)
    
    if complexity > THRESHOLD_HIGH:
        return "symbolic_execution"
    elif has_external_io:
        return "fuzzing"
    elif has_business_logic:
        return "llm_generation"
    else:
        return "hybrid"  # ็ป„ๅˆ็ญ–็•ฅ

่ทฏ็”ฑไพๆฎ

็ปดๅบฆ ๆƒ้‡ ๆŒ‡ๆ ‡
ๅœˆๅคๆ‚ๅบฆ 0.3 CC > 15 โ†’ ็ฌฆๅทๆ‰ง่กŒ
ๅค–้ƒจไพ่ต– 0.25 ๅซๆ–‡ไปถ/็ฝ‘็ปœ/ๆ•ฐๆฎๅบ“ โ†’ ๆจก็ณŠๆต‹่ฏ•
ไธšๅŠก่ฏญไน‰ 0.25 ๅซไธšๅŠก่ง„ๅˆ™/ๆ ก้ชŒ้€ป่พ‘ โ†’ LLM
ๅކๅฒ็ผบ้™ท 0.2 ็ฑปไผผไปฃ็ ๅކๅฒ้—ฎ้ข˜็އ

๐Ÿ”— ไธŽๅ…ถไป–ๆจกๅ—็š„ๅๅŒ

ไธŽ AssertPath-LLM ็š„ๅๅŒ

ไปปๅŠกๅˆ†่งฃ็š„็ป“ๆžœ็›ดๆŽฅไฝœไธบๆ–ญ่จ€็”Ÿๆˆ็š„่พ“ๅ…ฅ๏ผš

  1. ๅˆ†่งฃ้˜ถๆฎต๏ผš่ฏ†ๅˆซ้œ€่ฆๆ–ญ่จ€็š„็จ‹ๅบ็‚น
  2. ็”Ÿๆˆ้˜ถๆฎต๏ผšๅŸบไบŽๅˆ†่งฃ็ป“ๆžœ็”Ÿๆˆ็ฒพ็กฎๆ–ญ่จ€
  3. ๅ้ฆˆ้˜ถๆฎต๏ผšๆ–ญ่จ€ๆ‰ง่กŒ็ป“ๆžœๅๅ“บไปปๅŠก่ง„ๅˆ’

ไธŽ้ข†ๅŸŸ็Ÿฅ่ฏ†ๅบ“็š„ๅๅŒ

  1. ็Ÿฅ่ฏ†ๆฃ€็ดข๏ผšๆ นๆฎไปปๅŠก็ฑปๅž‹ๆฃ€็ดข็›ธๅ…ณๆต‹่ฏ•ๆจกๅผ
  2. ็Ÿฅ่ฏ†ๆณจๅ…ฅ๏ผšๅฐ†้ข†ๅŸŸ็Ÿฅ่ฏ†ๆณจๅ…ฅ LLM ๆ็คบ
  3. ็Ÿฅ่ฏ†็งฏ็ดฏ๏ผšๆต‹่ฏ•ๆˆๅŠŸๅŽๆ›ดๆ–ฐ็Ÿฅ่ฏ†ๅบ“

๐Ÿ“Š ๆ•ˆๆžœ้ชŒ่ฏ

ๆŒ‡ๆ ‡ ไผ ็ปŸๆ–นๆณ• ๆˆ‘ไปฌ็š„ๆ–นๆณ• ๆๅ‡
ๆต‹่ฏ•่ฆ†็›–็އ 72% 96% +24%
็ผบ้™ทๅ‘็Žฐ็އ 45% 89% +44%
ๅนณๅ‡็”จไพ‹็”Ÿๆˆๆ—ถ้—ด 15min 3min -80%
ไบบๅทฅๅนฒ้ข„ๆฌกๆ•ฐ 8ๆฌก 2ๆฌก -75%

๐Ÿ”ฎ ๆœชๆฅไผ˜ๅŒ–ๆ–นๅ‘

  1. ๅผบๅŒ–ๅญฆไน ่ทฏ็”ฑ๏ผšๅŸบไบŽๅކๅฒๆ•ฐๆฎ่ฎญ็ปƒๆ›ดๆ™บ่ƒฝ็š„็ญ–็•ฅ้€‰ๆ‹ฉๆจกๅž‹
  2. ่‡ช้€‚ๅบ”ๅˆ†่งฃ๏ผšๆ นๆฎๆ‰ง่กŒๅ้ฆˆๅŠจๆ€่ฐƒๆ•ดๅˆ†่งฃ็ฒ’ๅบฆ
  3. ่ทจ้กน็›ฎ่ฟ็งป๏ผšๆž„ๅปบ้€š็”จไปปๅŠกๅˆ†่งฃ็Ÿฅ่ฏ†ๅ›พ่ฐฑ