mirror of
https://github.com/agent0ai/agent-zero.git
synced 2026-05-06 16:21:54 +00:00
agent response improvements
This commit is contained in:
parent
3daf2f9f8c
commit
73e6855345
11 changed files with 815 additions and 538 deletions
0
python/extensions/response_stream/.gitkeep
Normal file
0
python/extensions/response_stream/.gitkeep
Normal file
28
python/extensions/response_stream/_10_log_from_stream.py
Normal file
28
python/extensions/response_stream/_10_log_from_stream.py
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
from python.helpers import persist_chat, tokens
|
||||
from python.helpers.extension import Extension
|
||||
from agent import LoopData
|
||||
import asyncio
|
||||
from python.helpers.log import LogItem
|
||||
from python.helpers import log
|
||||
|
||||
|
||||
class LogFromStream(Extension):
|
||||
|
||||
async def execute(
|
||||
self,
|
||||
loop_data: LoopData = LoopData(),
|
||||
text: str = "",
|
||||
parsed: dict = {},
|
||||
**kwargs
|
||||
):
|
||||
|
||||
# create log message and store it in loop data temporary params
|
||||
if "log_item_generating" not in loop_data.params_temporary:
|
||||
loop_data.params_temporary["log_item_generating"] = self.agent.context.log.log(
|
||||
type="agent",
|
||||
heading=f"{self.agent.agent_name}: Generating",
|
||||
)
|
||||
|
||||
# update log message
|
||||
log_item = loop_data.params_temporary["log_item_generating"]
|
||||
log_item.update(content=text, kvps=parsed)
|
||||
41
python/extensions/response_stream/_20_live_response.py
Normal file
41
python/extensions/response_stream/_20_live_response.py
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
from python.helpers import persist_chat, tokens
|
||||
from python.helpers.extension import Extension
|
||||
from agent import LoopData
|
||||
import asyncio
|
||||
from python.helpers.log import LogItem
|
||||
from python.helpers import log
|
||||
|
||||
|
||||
class LiveResponse(Extension):
|
||||
|
||||
async def execute(
|
||||
self,
|
||||
loop_data: LoopData = LoopData(),
|
||||
text: str = "",
|
||||
parsed: dict = {},
|
||||
**kwargs,
|
||||
):
|
||||
try:
|
||||
if (
|
||||
not "tool_name" in parsed
|
||||
or parsed["tool_name"] != "response"
|
||||
or "tool_args" not in parsed
|
||||
or "text" not in parsed["tool_args"]
|
||||
or not parsed["tool_args"]["text"]
|
||||
):
|
||||
return # not a response
|
||||
|
||||
# create log message and store it in loop data temporary params
|
||||
if "log_item_response" not in loop_data.params_temporary:
|
||||
loop_data.params_temporary["log_item_response"] = (
|
||||
self.agent.context.log.log(
|
||||
type="response",
|
||||
heading=f"{self.agent.agent_name}: Responding",
|
||||
)
|
||||
)
|
||||
|
||||
# update log message
|
||||
log_item = loop_data.params_temporary["log_item_response"]
|
||||
log_item.update(content=parsed["tool_args"]["text"])
|
||||
except Exception as e:
|
||||
pass
|
||||
|
|
@ -1,13 +1,15 @@
|
|||
from python.helpers.tool import Tool, Response
|
||||
|
||||
|
||||
class ResponseTool(Tool):
|
||||
|
||||
async def execute(self,**kwargs):
|
||||
async def execute(self, **kwargs):
|
||||
return Response(message=self.args["text"], break_loop=True)
|
||||
|
||||
async def before_execution(self, **kwargs):
|
||||
self.log = self.agent.context.log.log(type="response", heading=f"{self.agent.agent_name}: Responding", content=self.args.get("text", ""))
|
||||
# self.log = self.agent.context.log.log(type="response", heading=f"{self.agent.agent_name}: Responding", content=self.args.get("text", ""))
|
||||
# don't log here anymore, we have the live_response extension now
|
||||
pass
|
||||
|
||||
|
||||
async def after_execution(self, response, **kwargs):
|
||||
pass # do not add anything to the history or output
|
||||
pass # do not add anything to the history or output
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue