Skip to content

React Hooks API

React hooks for building chat interfaces.

useAgent()

Full-featured agent hook.

typescript
import { useAgent } from 'agentforge/react';

const {
  messages,
  isLoading,
  error,
  sendMessage,
  reset,
  abort,
} = useAgent(config: UseAgentConfig);

UseAgentConfig

typescript
interface UseAgentConfig {
  provider: Provider;
  tools?: Tool[];
  systemPrompt?: string;
  middleware?: Middleware[];
  memory?: MemoryConfig;
  onError?: (error: Error) => void;
  onToolCall?: (name: string, args: Record<string, unknown>) => void;
  onResponse?: (response: AgentResponse) => void;
}

Return Value

PropertyTypeDescription
messagesMessage[]Conversation history
isLoadingbooleanRequest in progress
errorError | nullLast error
sendMessage(message: string) => Promise<void>Send a message
reset() => voidClear conversation
abort() => voidCancel current request

useChat()

Simplified chat hook with input management.

typescript
import { useChat } from 'agentforge/react';

const {
  messages,
  input,
  setInput,
  handleSubmit,
  isLoading,
  reload,
  stop,
} = useChat(config: UseChatConfig);

UseChatConfig

typescript
interface UseChatConfig {
  provider: Provider;
  systemPrompt?: string;
  initialMessages?: Message[];
}

Return Value

PropertyTypeDescription
messagesMessage[]Conversation history
inputstringCurrent input value
setInput(value: string) => voidUpdate input
handleSubmit(e: FormEvent) => voidForm submit handler
isLoadingbooleanRequest in progress
reload() => voidResend last message
stop() => voidCancel current request

useStreamingAgent()

Hook with streaming support.

typescript
import { useStreamingAgent } from 'agentforge/react';

const {
  messages,
  streamingContent,
  isStreaming,
  sendMessage,
  abort,
} = useStreamingAgent(config: UseStreamingAgentConfig);

UseStreamingAgentConfig

typescript
interface UseStreamingAgentConfig {
  provider: Provider;
  tools?: Tool[];
  systemPrompt?: string;
  onToken?: (token: string) => void;
  onComplete?: (content: string) => void;
}

Return Value

PropertyTypeDescription
messagesMessage[]Conversation history
streamingContentstringCurrent streaming content
isStreamingbooleanStreaming in progress
sendMessage(message: string) => Promise<void>Send a message
abort() => voidCancel stream

AgentProvider

Context provider for sharing configuration.

tsx
import { AgentProvider } from 'agentforge/react';

<AgentProvider
  provider={provider}
  tools={tools}
  systemPrompt="You are helpful."
>
  {children}
</AgentProvider>

useAgentContext()

Access provider context:

typescript
import { useAgentContext } from 'agentforge/react';

const { provider, tools, systemPrompt } = useAgentContext();

Next Steps

Released under the MIT License.