5#ifndef FORESTHUB_AGENT_HANDOFF_HPP
6#define FORESTHUB_AGENT_HANDOFF_HPP
23using json = nlohmann::json;
39 this->name = std::move(
name);
42 parameters = json{{
"type",
"object"}, {
"properties", json::object()}};
55inline std::shared_ptr<Handoff>
NewHandoff(std::string name, std::string description, std::shared_ptr<Agent>
agent,
57 return std::make_shared<Handoff>(std::move(name), std::move(description), std::move(
agent), std::move(model));
Agent with instructions, tools, and optional response format.
std::shared_ptr< Agent > target_agent
Agent to switch to when invoked.
Definition handoff.hpp:28
core::ModelID model
Optional model override (empty = use runner default).
Definition handoff.hpp:29
Handoff(std::string name, std::string description, std::shared_ptr< Agent > agent, foresthub::core::ModelID model="")
Construct a handoff tool that transfers control to the given target agent.
Definition handoff.hpp:36
core::ToolType GetToolType() const override
Identifies this tool as a handoff.
Definition handoff.hpp:46
Wrapper for nlohmann/json that works around abs macro conflicts.
Model metadata and capability identifiers.
Agent framework: multi-turn execution with tool calling and handoffs.
std::shared_ptr< Handoff > NewHandoff(std::string name, std::string description, std::shared_ptr< Agent > agent, core::ModelID model="")
Create a new Handoff tool.
Definition handoff.hpp:55
ToolType
Type discriminator for Tool subclasses.
Definition tools.hpp:29
@ kHandoff
Agent handoff tool.
Definition tools.hpp:32
std::string ModelID
Unique identifier for an LLM model.
Definition model.hpp:23
Top-level namespace for the ForestHub SDK.