V0.8.0 async think loop #40
+10
-7
@@ -176,18 +176,21 @@ julia> # Currently returns a placeholder echo response
|
||||
function _process_message(agent::yiemAgent, msg)::assistantMessage
|
||||
# WORKING
|
||||
|
||||
# take every messages from agent.inputChannel, convert them into userMessage
|
||||
# and add them to agent._state.messages
|
||||
# loop until LLM didn't use tool calls
|
||||
while
|
||||
# take every messages from agent.inputChannel, convert them into userMessage
|
||||
# and add them to agent._state.messages
|
||||
|
||||
# call agent.preprocessContext()
|
||||
# call agent.preprocessContext()
|
||||
|
||||
# Call agent.formatMsgForLLM(agent._state) to format for LLM
|
||||
# Call agent.formatMsgForLLM(agent._state) to format for LLM
|
||||
|
||||
# Call the LLM (blocking — the task waits here)
|
||||
# Call the LLM (blocking — the task waits here)
|
||||
|
||||
# call toolArgumentValidation() to make sure soon-to-call tools has valid arguments
|
||||
# call toolArgumentValidation() to make sure soon-to-call tools has valid arguments
|
||||
|
||||
# If agent has tools, handle tool calls in a loop
|
||||
# If agent has tools, handle tool calls in a loop, save tool
|
||||
end
|
||||
|
||||
# Build assistantMessage and return it
|
||||
|
||||
|
||||
+2
-2
@@ -204,7 +204,7 @@ A tool available to the agent.
|
||||
- `parameters::TParameters`: Tool parameters schema (JSON schema)
|
||||
- `execute::Function`: Tool execution function
|
||||
- `prepareArguments::Union{Function, Nothing}`: Optional argument preparation callback
|
||||
- `executionMode::Union{toolExecutionMode, Nothing}`: Override: run tool calls sequentially or in parallel
|
||||
- `parallelExecute::Union{toolparallelExecute, Nothing}`: Override: run tool calls sequentially or in parallel
|
||||
|
||||
# Returns
|
||||
- A new `agentTool` instance
|
||||
@@ -216,7 +216,7 @@ struct agentTool{TParameters, TDetails} # A tool available to the agent
|
||||
parameters::TParameters # Tool parameters schema (JSON schema)
|
||||
execute::Function # Tool execution function
|
||||
prepareArguments::Union{Function, Nothing} # Optional argument preparation callback
|
||||
executionMode::Union{toolExecutionMode, Nothing} # Override: run tool calls sequentially or in parallel
|
||||
parallelExecute::Union{toolparallelExecute, Nothing} # Override: run tool calls sequentially or in parallel
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user