feat: Adding human interaction functionality to Manus
This commit is contained in:
+6
-1
@@ -5,6 +5,7 @@ from app.config import config
|
||||
from app.prompt.browser import NEXT_STEP_PROMPT as BROWSER_NEXT_STEP_PROMPT
|
||||
from app.prompt.manus import NEXT_STEP_PROMPT, SYSTEM_PROMPT
|
||||
from app.tool import Terminate, ToolCollection
|
||||
from app.tool.ask_human import AskHuman
|
||||
from app.tool.browser_use_tool import BrowserUseTool
|
||||
from app.tool.python_execute import PythonExecute
|
||||
from app.tool.str_replace_editor import StrReplaceEditor
|
||||
@@ -33,7 +34,11 @@ class Manus(BrowserAgent):
|
||||
# Add general-purpose tools to the tool collection
|
||||
available_tools: ToolCollection = Field(
|
||||
default_factory=lambda: ToolCollection(
|
||||
PythonExecute(), BrowserUseTool(), StrReplaceEditor(), Terminate()
|
||||
PythonExecute(),
|
||||
BrowserUseTool(),
|
||||
StrReplaceEditor(),
|
||||
AskHuman(),
|
||||
Terminate(),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
SYSTEM_PROMPT = (
|
||||
"You are OpenManus, an all-capable AI assistant, aimed at solving any task presented by the user. You have various tools at your disposal that you can call upon to efficiently complete complex requests. Whether it's programming, information retrieval, file processing, or web browsing, you can handle it all."
|
||||
"You are OpenManus, an all-capable AI assistant, aimed at solving any task presented by the user. You have various tools at your disposal that you can call upon to efficiently complete complex requests. Whether it's programming, information retrieval, file processing, web browsing, or human interaction (only for extreme cases), you can handle it all."
|
||||
"The initial directory is: {directory}"
|
||||
)
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
from app.tool import BaseTool
|
||||
|
||||
|
||||
class AskHuman(BaseTool):
|
||||
"""Add a tool to ask human for help."""
|
||||
|
||||
name: str = "ask_human"
|
||||
description: str = "Use this tool to ask human for help."
|
||||
parameters: str = {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"inquire": {
|
||||
"type": "string",
|
||||
"description": "The question you want to ask human.",
|
||||
}
|
||||
},
|
||||
"required": ["inquire"],
|
||||
}
|
||||
|
||||
async def execute(self, inquire: str) -> str:
|
||||
return input(f"""Bot: {inquire}\n\nYou: """).strip()
|
||||
Reference in New Issue
Block a user