-
Notifications
You must be signed in to change notification settings - Fork 295
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Agent回傳的 /write ,如果有指定行數會重複寫入 #177
Comments
如果只是上述的代码,我测试了一下,应该只会执行一次。估计,可能受什么代码影响 —— Agent 回传。 |
应该还是执行多次导致的,能提交一个复现的步骤吗。我这边除非手动点多次执行,要不无法复现。 |
我目前測試起來,一樣的prompt,一樣的agent 感覺起來就像是前一次的資料還留著 |
应该是重复多次,执行的缘故。 |
目前看起來是這樣,寫入資料的時候,intellij他會跳出 Writing to file:xxxx 的訊息 |
重複測試了一下,這應該就原本就有的問題 |
估计有可能是之前那个处理 Agent 返回继续处理引起的 |
追蹤起來,好像是DevInsProgramRunner的
被執行好幾次.... 這跟Agent的調整有關係嗎?? |
调用的地方应该是 |
DevInsRunConfigurationProfileState的processTerminated只送了一次message 我加了一個追蹤的參數來確認,DevInsProgramRunner收到的多次message都是由DevInsRunConfigurationProfileState發出來 |
你清空一下右下角的 idea 告警试试,我本地会出现一个错误: java.lang.Exception: error when processing com.intellij.execution.process.ProcessEvent[source={processTerminatedListener=com.intellij.execution.process.ProcessTerminatedListener@325de1f6}] by class cc.unitmesh.devti.language.run.DevInsRunConfigurationProfileState$execute$1
at com.intellij.execution.process.ProcessHandler$2.processTerminated(ProcessHandler.java:268)
at com.intellij.execution.process.ProcessHandler.lambda$notifyTerminated$2(ProcessHandler.java:207)
at com.intellij.execution.process.ProcessHandler$TasksRunner.execute(ProcessHandler.java:325)
at com.intellij.execution.process.ProcessHandler.notifyTerminated(ProcessHandler.java:190)
at com.intellij.execution.process.ProcessHandler.notifyProcessTerminated(ProcessHandler.java:186)
at cc.unitmesh.devti.language.run.DevInsProcessHandler.detachProcessImpl(DevInsProcessHandler.kt:9)
at com.intellij.execution.process.ProcessHandler.lambda$detachProcess$1(ProcessHandler.java:143)
at com.intellij.execution.process.ProcessHandler$TasksRunner.execute(ProcessHandler.java:325)
at com.intellij.execution.process.ProcessHandler.detachProcess(ProcessHandler.java:140)
at cc.unitmesh.devti.language.run.DevInsRunConfigurationProfileState$agentRun$1$1.invokeSuspend(DevInsRunConfigurationProfileState.kt:152)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
Caused by: java.lang.RuntimeException: Cannot invoke (class=, method=runFinish, topic=DevInsRunListener)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:677)
at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:423)
at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:402)
at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:461)
at jdk.proxy32/jdk.proxy32.$Proxy343.runFinish(Unknown Source)
at cc.unitmesh.devti.language.run.DevInsRunConfigurationProfileState$execute$1.processTerminated(DevInsRunConfigurationProfileState.kt:57)
at com.intellij.execution.process.ProcessHandler$2.processTerminated(ProcessHandler.java:262) |
复现了,应该是 topic 没有 unsubscribe 导致的,只有多次执行 agent 才会出现。 |
對 我剛剛也測試到這段,我是加了一個是否已經subscribe的判斷 |
哦,那我就不改了,你直接来 PR ? |
agent回傳/write 時,如果檔案後面加上#L1-L2
會變成 '''java ''' 內的內容會重複寫好幾次在檔案中
沒有#L1-L2就正常只寫一次
The text was updated successfully, but these errors were encountered: