chenbhao commited on
Commit
76f081f
ยท
1 Parent(s): 1f21206

feat: subagent inherit parent class

Browse files

โฏ ไฝ ๅฐ่ฏ• ่ฐƒ็”จ SubAgent ็œ‹่ƒฝไธ่ƒฝ็”จ

โ— ๅฅฝ็š„๏ผŒๆˆ‘ไพ†ๆธฌ่ฉฆไธ€ไธ‹ SubAgent๏ผˆๅณ Agent tool๏ผ‰็š„ๅŠŸ่ƒฝใ€‚

โ— Agent(Test SubAgent functionality)

โ— SubAgent ๆญฃๅธธ้‹ไฝœ โœ…

ๅฎƒๆˆๅŠŸๅŸท่กŒไบ†ไธ€ๅ€‹ general-purpose ้กžๅž‹็š„ agent๏ผŒ็จ็ซ‹ๅฎŒๆˆไบ†๏ผš
1. ๅˆ—ๅ‡บๅฐˆๆกˆ็›ฎ้Œ„็ตๆง‹
2. ๆŸฅ็œ‹ๆœ€่ฟ‘ 5 ็ญ† git commit
3. ๅ›žๅ ฑ็ตๆžœ็ตฆๆˆ‘

ๆˆ‘ๅ†ๆธฌ่ฉฆไธ€ไธ‹่ƒŒๆ™ฏๆจกๅผ๏ผˆbackground๏ผ‰๏ผš

โ— Agent(Test background SubAgent)
โŽฟ ย Backgrounded agent (โ†“ to manage ยท ctrl+o to expand)

โ— SubAgent ๅ…ฉ็จฎๆจกๅผ้ƒฝๆญฃๅธธ้‹ไฝœ๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๆจกๅผ โ”‚ ็‹€ๆ…‹ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Foreground (ๅ‰ๆ™ฏ) โ”‚ โœ… ๆˆๅŠŸๅŸท่กŒไธฆๅ›žๅ‚ณ็ตๆžœ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Background (่ƒŒๆ™ฏ) โ”‚ โœ… ๆˆๅŠŸๅ•Ÿๅ‹•๏ผŒๅฎŒๆˆๅพŒๆœƒ่‡ชๅ‹•้€š็Ÿฅๆˆ‘ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅŠŸ่ƒฝ็ธฝ็ต๏ผš
- ๅฏไปฅๅ•Ÿๅ‹•ๅคš็จฎ agent ้กžๅž‹๏ผˆgeneral-purposeใ€Exploreใ€Plan ็ญ‰๏ผ‰
- ๆ”ฏๆดๅ‰ๆ™ฏ๏ผˆ็ญ‰็ตๆžœ๏ผ‰่ˆ‡่ƒŒๆ™ฏ๏ผˆ้žๅŒๆญฅ๏ผ‰ๆจกๅผ
- ๅฏไปฅๅŒๆ™‚ๅ•Ÿๅ‹•ๅคšๅ€‹ๅนณ่กŒๅŸท่กŒ

ๆœ‰ไป€้บผๅ…ท้ซ”ไปปๅ‹™ๆƒณ่ฎ“ SubAgent ๅนซๅฟ™่™•็†็š„ๅ—Ž๏ผŸ

โœป Cooked for 30s ยท 1 local agent still running

โ— Agent "Test background SubAgent" completed

โ— ่ƒŒๆ™ฏ SubAgent ไนŸๆˆๅŠŸๅฎŒๆˆไบ† โœ…

Background agent works!
Sun May 24 11:38:41 AM CST 2026

SubAgent ๅŠŸ่ƒฝๅฎŒๅ…จๆญฃๅธธใ€‚ๆœ‰ไป€้บผ้œ€่ฆๅฎƒๅนซๅฟ™่™•็†็š„ไปปๅ‹™ๅ—Ž๏ผŸ

โฏ ไฝ ๆต‹่ฏ•ไธ€ไธ‹ Explore ็š„ Subagent

โ— Explore(Test Explore SubAgent)

โ— Explore SubAgent ๆธฌ่ฉฆๆˆๅŠŸ โœ…

ๅฎƒๅฟซ้€ŸๅœฐๅฎŒๆˆไบ†็จ‹ๅผ็ขผๆŽข็ดข๏ผŒๅ›žๅ ฑไบ†๏ผš
1. ๆ น็›ฎ้Œ„็ตๆง‹ โ€” ๅˆ—ๅ‡บๆ‰€ๆœ‰ๆช”ๆกˆ่ˆ‡่ณ‡ๆ–™ๅคพ
2. src/ ไธ‹็š„็›ฎ้Œ„ โ€” 50+ ๅ€‹่ณ‡ๆ–™ๅคพๅˆ—่กจ
3. Agent ็›ธ้—œๆช”ๆกˆๆœๅฐ‹ โ€” ๅœจ src/tools/ ไธ‹ๆ‰พๅˆฐ 10 ๅ€‹ๅŒ…ๅซ "Agent" ็š„
TypeScript ๆช”ๆกˆ

Explore ้กžๅž‹้ฉๅˆ็”จไพ†ๅšๅฟซ้€Ÿ็š„็จ‹ๅผ็ขผๆœๅฐ‹่ˆ‡ๆžถๆง‹็†่งฃ๏ผŒไธ็”จ่‡ชๅทฑๆ‰‹ๅ‹• find /
grepใ€‚ๆœ‰ไป€้บผๆƒณ่ฎ“ๅฎƒๆŽข็ดข็š„ๅ—Ž๏ผŸ

src/tools/AgentTool/built-in/exploreAgent.ts CHANGED
@@ -75,7 +75,7 @@ export const EXPLORE_AGENT: BuiltInAgentDefinition = {
75
  baseDir: 'built-in',
76
  // Ants get inherit to use the main agent's model; external users get haiku for speed
77
  // Note: For ants, getAgentModel() checks tengu_explore_agent GrowthBook flag at runtime
78
- model: process.env.USER_TYPE === 'ant' ? 'inherit' : 'haiku',
79
  // Explore is a fast read-only search agent โ€” it doesn't need commit/PR/lint
80
  // rules from CLAUDE.md. The main agent has full context and interprets results.
81
  omitClaudeMd: true,
 
75
  baseDir: 'built-in',
76
  // Ants get inherit to use the main agent's model; external users get haiku for speed
77
  // Note: For ants, getAgentModel() checks tengu_explore_agent GrowthBook flag at runtime
78
+ model: 'inherit',
79
  // Explore is a fast read-only search agent โ€” it doesn't need commit/PR/lint
80
  // rules from CLAUDE.md. The main agent has full context and interprets results.
81
  omitClaudeMd: true,
src/tools/AgentTool/built-in/versperClawGuideAgent.ts CHANGED
@@ -116,7 +116,7 @@ export const VERSPER_CLAW_GUIDE_AGENT: BuiltInAgentDefinition = {
116
  ],
117
  source: 'built-in',
118
  baseDir: 'built-in',
119
- model: 'haiku',
120
  permissionMode: 'dontAsk',
121
  getSystemPrompt({ toolUseContext }) {
122
  const commands = toolUseContext.options.commands
 
116
  ],
117
  source: 'built-in',
118
  baseDir: 'built-in',
119
+ model: 'inherit',
120
  permissionMode: 'dontAsk',
121
  getSystemPrompt({ toolUseContext }) {
122
  const commands = toolUseContext.options.commands