Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Pangea-Agent
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Gavin-Group
Pangea-Agent
Commits
12089728
Commit
12089728
authored
Dec 29, 2025
by
youxiaoji
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* [区分智能体,非访客预约智能体暂不添加toolcontext]
parent
3f92e64d
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
100 additions
and
86 deletions
+100
-86
DefaultReactExecutor.java
...java/pangea/hiagent/agent/react/DefaultReactExecutor.java
+100
-86
No files found.
backend/src/main/java/pangea/hiagent/agent/react/DefaultReactExecutor.java
View file @
12089728
...
...
@@ -47,7 +47,8 @@ public class DefaultReactExecutor implements ReactExecutor {
private
final
AgentToolManager
agentToolManager
;
private
final
UserTokenService
userTokenService
;
public
DefaultReactExecutor
(
EventSplitter
eventSplitter
,
AgentToolManager
agentToolManager
,
public
DefaultReactExecutor
(
EventSplitter
eventSplitter
,
AgentToolManager
agentToolManager
,
MemoryService
memoryService
,
ErrorHandlerService
errorHandlerService
,
UserSseService
userSseService
,
UserTokenService
userTokenService
)
{
this
.
eventSplitter
=
eventSplitter
;
this
.
agentToolManager
=
agentToolManager
;
...
...
@@ -168,8 +169,9 @@ public class DefaultReactExecutor implements ReactExecutor {
try
{
Prompt
prompt
=
buildPromptWithHistory
(
defaultSystemPrompt
,
userInput
,
agent
,
userId
);
SseTokenEmitter
sseTokenEmitter
=
(
SseTokenEmitter
)
tokenConsumer
;
SseTokenEmitter
sseTokenEmitter
=
(
SseTokenEmitter
)
tokenConsumer
;
String
emitterId
=
sseTokenEmitter
.
getEmitterId
();
if
(
agent
.
getId
().
contains
(
"agent-8"
))
{
chatClient
.
prompt
(
prompt
)
.
tools
(
agentTools
.
toArray
())
.
toolContext
(
Map
.
of
(
"emitterId"
,
emitterId
,
"userId"
,
sseTokenEmitter
.
getUserId
()))
...
...
@@ -177,9 +179,21 @@ public class DefaultReactExecutor implements ReactExecutor {
.
chatResponse
()
.
subscribe
(
chatResponse
->
handleTokenResponse
(
chatResponse
,
tokenConsumer
,
fullResponse
),
throwable
->
handleStreamError
(
throwable
,
tokenConsumer
,
emitterId
),
()
->
handleStreamCompletion
(
tokenConsumer
,
fullResponse
,
agent
,
userId
,
emitterId
)
throwable
->
handleStreamError
(
throwable
,
tokenConsumer
,
emitterId
),
()
->
handleStreamCompletion
(
tokenConsumer
,
fullResponse
,
agent
,
userId
,
emitterId
)
);
}
else
{
chatClient
.
prompt
(
prompt
)
.
tools
(
agentTools
.
toArray
())
.
stream
()
.
chatResponse
()
.
subscribe
(
chatResponse
->
handleTokenResponse
(
chatResponse
,
tokenConsumer
,
fullResponse
),
throwable
->
handleStreamError
(
throwable
,
tokenConsumer
,
emitterId
),
()
->
handleStreamCompletion
(
tokenConsumer
,
fullResponse
,
agent
,
userId
,
emitterId
)
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"流式执行ReAct流程时发生错误"
,
e
);
...
...
@@ -227,7 +241,7 @@ public class DefaultReactExecutor implements ReactExecutor {
String
responseStr
=
fullResponse
.
toString
();
saveAssistantResponseToMemory
(
agent
,
responseStr
,
userId
);
log
.
info
(
"complete, remove emitterId {}"
,
emitterId
);
log
.
info
(
"complete, remove emitterId {}"
,
emitterId
);
userSseService
.
removeEmitter
(
emitterId
);
sendCompletionEvent
(
tokenConsumer
,
responseStr
);
}
catch
(
Exception
e
)
{
...
...
@@ -290,7 +304,7 @@ public class DefaultReactExecutor implements ReactExecutor {
* @param throwable 异常对象
* @param tokenConsumer token消费者
*/
private
void
handleStreamError
(
Throwable
throwable
,
Consumer
<
String
>
tokenConsumer
,
String
emitterId
)
{
private
void
handleStreamError
(
Throwable
throwable
,
Consumer
<
String
>
tokenConsumer
,
String
emitterId
)
{
log
.
info
(
"error,remove emitterId:{}"
,
emitterId
);
userSseService
.
removeEmitter
(
emitterId
);
errorHandlerService
.
handleStreamError
(
throwable
,
tokenConsumer
,
"ReAct流式处理"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment