65 lines
2.0 KiB
C
65 lines
2.0 KiB
C
|
#ifndef HUMANUS_AGENT_MANUS_H
|
||
|
#define HUMANUS_AGENT_MANUS_H
|
||
|
|
||
|
#include "base.h"
|
||
|
#include "toolcall.h"
|
||
|
#include "../prompt.h"
|
||
|
#include "../tool/tool_collection.h"
|
||
|
#include "../tool/python_execute.h"
|
||
|
#include "../tool/terminate.h"
|
||
|
#include "../tool/google_search.h"
|
||
|
#include "../tool/file_saver.h"
|
||
|
|
||
|
namespace humanus {
|
||
|
|
||
|
/**
|
||
|
* A versatile general-purpose agent that uses planning to solve various tasks.
|
||
|
*
|
||
|
* This agent extends PlanningAgent with a comprehensive set of tools and capabilities,
|
||
|
* including Python execution, web browsing, file operations, and information retrieval
|
||
|
* to handle a wide range of user requests.
|
||
|
*/
|
||
|
struct Manus : ToolCallAgent {
|
||
|
std::string name = "manus";
|
||
|
std::string description = "A versatile agent that can solve various tasks using multiple tools";
|
||
|
|
||
|
std::string system_prompt = prompt::manus::SYSTEM_PROMPT;
|
||
|
std::string next_step_prompt = prompt::manus::NEXT_STEP_PROMPT;
|
||
|
|
||
|
|
||
|
Manus(
|
||
|
const ToolCollection& available_tools = ToolCollection(
|
||
|
{
|
||
|
std::make_shared<PythonExecute>(),
|
||
|
std::make_shared<Puppeteer>(),
|
||
|
std::make_shared<FileSystem>(),
|
||
|
std::make_shared<Terminate>()
|
||
|
}
|
||
|
),
|
||
|
const std::string& tool_choice = "auto",
|
||
|
const std::set<std::string>& special_tool_names = {"terminate"},
|
||
|
const std::string& name = "manus",
|
||
|
const std::string& description = "A versatile agent that can solve various tasks using multiple tools",
|
||
|
const std::string& system_prompt = prompt::manus::SYSTEM_PROMPT,
|
||
|
const std::string& next_step_prompt = prompt::manus::NEXT_STEP_PROMPT,
|
||
|
int max_steps = 30,
|
||
|
int current_step = 0,
|
||
|
int duplicate_threshold = 2
|
||
|
) : ToolCallAgent(
|
||
|
available_tools,
|
||
|
tool_choice,
|
||
|
special_tool_names,
|
||
|
name,
|
||
|
description,
|
||
|
system_prompt,
|
||
|
next_step_prompt,
|
||
|
max_steps,
|
||
|
current_step,
|
||
|
duplicate_threshold
|
||
|
) {}
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif // HUMANUS_AGENT_MANUS_H
|