Agent Module Documentation
This document provides an overview of the public functions available in the agent module, based on the header include/agent.h and implementation in src/agent.c.
Public Function Signatures and Descriptions
agent_handle agent_create(const char *goal, messages_handle messages)
- Purpose: Creates a new agent instance with a specified goal and message history.
- Details: Initializes the agent's state, loads message history, and sets up necessary resources.
void agent_destroy(agent_handle agent)
- Purpose: Cleans up and frees resources associated with an agent.
- Details: Destroys HTTP client, message history, and frees memory.
void agent_set_max_iterations(agent_handle agent, int max)
- Purpose: Sets the maximum number of iterations for the agent's run loop.
- Details: Limits the number of recursive or iterative steps.
void agent_set_verbose(agent_handle agent, bool verbose)
- Purpose: Enables or disables verbose logging.
- Details: Controls detailed output during agent execution.
void agent_set_is_subagent(agent_handle agent, bool is_subagent)
- Purpose: Marks the agent as a sub-agent.
- Details: Influences behavior such as output verbosity.
void agent_set_tool_registry(agent_handle agent, tool_registry_t *registry)
- Purpose: Assigns a specific tool registry to the agent.
- Details: Customizes available tools for the agent.
agent_state_t agent_get_state(agent_handle agent)
- Purpose: Retrieves the current state of the agent.
- Details: States include idle, running, error, completed, etc.
const char *agent_get_error(agent_handle agent)
- Purpose: Gets the last error message.
- Details: Useful for debugging and error handling.
int agent_get_iteration_count(agent_handle agent)
- Purpose: Returns the number of iterations performed.
- Details: Useful for monitoring progress.
char *agent_chat(const char *user_message, messages_handle messages)
- Purpose: Runs the agent with a user message and returns the response.
- Details: Executes the main loop, handling response processing, tool calls, and recursion.
char *agent_chat_with_limit(const char *user_message, int max_iterations, messages_handle messages)
- Purpose: Runs the agent with a user message, limiting iterations.
- Details: Useful for bounded execution.
This documentation summarizes the core public API of the agent module, facilitating integration and understanding of its capabilities.