@@ -895,7 +895,14 @@ export class AgentService {
895895 for ( const tc of msg . toolCalls ) {
896896 if ( tc . name === "load_skill" ) {
897897 try {
898- const args = JSON . parse ( tc . arguments || "{}" ) ;
898+ let args : Record < string , any > = { } ;
899+ if ( tc . arguments ) {
900+ try {
901+ args = JSON . parse ( tc . arguments ) ;
902+ } catch {
903+ // 不是有效 JSON ,忽略 arguments
904+ }
905+ }
899906 if ( args . skill_name ) {
900907 await loadSkillMeta . executor . execute ( { skill_name : args . skill_name } ) ;
901908 }
@@ -1682,6 +1689,7 @@ export class AgentService {
16821689 const subSendEvent = ( event : ChatStreamEvent ) => {
16831690 // 转发事件给父代理
16841691 params . sendEvent ( event ) ;
1692+ let argText ;
16851693 // 收集执行详情
16861694 switch ( event . type ) {
16871695 case "content_delta" :
@@ -1692,15 +1700,19 @@ export class AgentService {
16921700 currentMsg . thinking = ( currentMsg . thinking || "" ) + event . delta ;
16931701 break ;
16941702 case "tool_call_start" :
1703+ argText = `${ event . toolCall . arguments || "" } ` ;
1704+ if ( argText === "{}" ) argText = "" ;
16951705 currentMsg . toolCalls . push ( {
16961706 ...event . toolCall ,
1697- arguments : event . toolCall . arguments || "" ,
1707+ arguments : argText ,
16981708 status : "running" ,
16991709 } ) ;
17001710 break ;
17011711 case "tool_call_delta" :
17021712 if ( currentMsg . toolCalls . length ) {
1703- currentMsg . toolCalls [ currentMsg . toolCalls . length - 1 ] . arguments += event . delta ;
1713+ argText = `${ currentMsg . toolCalls [ currentMsg . toolCalls . length - 1 ] . arguments || "" } ` ;
1714+ if ( argText === "{}" ) argText = "" ;
1715+ currentMsg . toolCalls [ currentMsg . toolCalls . length - 1 ] . arguments = argText + event . delta ;
17041716 }
17051717 break ;
17061718 case "tool_call_complete" : {
@@ -2137,7 +2149,14 @@ export class AgentService {
21372149 for ( const tc of msg . toolCalls ) {
21382150 if ( tc . name === "load_skill" ) {
21392151 try {
2140- const args = JSON . parse ( tc . arguments || "{}" ) ;
2152+ let args : Record < string , any > = { } ;
2153+ if ( tc . arguments ) {
2154+ try {
2155+ args = JSON . parse ( tc . arguments ) ;
2156+ } catch {
2157+ // 不是有效 JSON ,忽略 arguments
2158+ }
2159+ }
21412160 if ( args . skill_name ) {
21422161 loadedSkillNames . add ( args . skill_name ) ;
21432162 }
@@ -2417,6 +2436,7 @@ export class AgentService {
24172436 sendEvent ( event ) ;
24182437 }
24192438 }
2439+ let argText ;
24202440
24212441 switch ( event . type ) {
24222442 case "content_delta" :
@@ -2430,11 +2450,15 @@ export class AgentService {
24302450 if ( currentToolCall ) {
24312451 toolCalls . push ( currentToolCall ) ;
24322452 }
2433- currentToolCall = { ...event . toolCall , arguments : event . toolCall . arguments || "" } ;
2453+ argText = `${ event . toolCall . arguments || "" } ` ;
2454+ if ( argText === "{}" ) argText = "" ;
2455+ currentToolCall = { ...event . toolCall , arguments : argText } ;
24342456 break ;
24352457 case "tool_call_delta" :
24362458 if ( currentToolCall ) {
2437- currentToolCall . arguments += event . delta ;
2459+ argText = `${ currentToolCall . arguments || "" } ` ;
2460+ if ( argText === "{}" ) argText = "" ;
2461+ currentToolCall . arguments = argText + event . delta ;
24382462 }
24392463 break ;
24402464 case "done" : {
0 commit comments