diff --git a/agent/agent.tsx b/agent/agent.tsx index e84c24d..76f3fb9 100644 --- a/agent/agent.tsx +++ b/agent/agent.tsx @@ -32,7 +32,8 @@ async function router( const prompt = `You're a highly helpful AI assistant, tasked with routing the user's query to the appropriate tool. You should analyze the user's input, and choose the appropriate tool to use.`; - const recentHumanMessage = state.messages + const messagesCopy = state.messages; + const recentHumanMessage = messagesCopy .reverse() .find((m) => m.getType() === "human"); @@ -65,7 +66,11 @@ function handleRoute( async function handleGeneralInput(state: GenerativeUIState) { const llm = new ChatOpenAI({ model: "gpt-4o-mini", temperature: 0 }); - const response = await llm.invoke(state.messages); + const messagesCopy = state.messages; + messagesCopy.reverse(); + console.log("messagesCopy", messagesCopy); + + const response = await llm.invoke(messagesCopy); return { messages: [response], diff --git a/agent/stockbroker/nodes/tools.tsx b/agent/stockbroker/nodes/tools.tsx index 8212965..9fbe432 100644 --- a/agent/stockbroker/nodes/tools.tsx +++ b/agent/stockbroker/nodes/tools.tsx @@ -1,5 +1,4 @@ import { StockbrokerState } from "../types"; -import { ToolMessage } from "@langchain/core/messages"; import { ChatOpenAI } from "@langchain/openai"; import { typedUi } from "@langchain/langgraph-sdk/react-ui/server"; import type ComponentMap from "../../uis/index"; @@ -64,19 +63,8 @@ export async function callTools( ui.write("portfolio", {}); } - const toolMessages = - message.tool_calls?.map((tc) => { - return new ToolMessage({ - name: tc.name, - tool_call_id: tc.id ?? "", - content: "Successfully handled tool call", - }); - }) || []; - - console.log("Returning", [message, ...toolMessages]); - return { - messages: [message, ...toolMessages], + messages: [message], // TODO: Fix the ui return type. ui: ui.collect as any[], timestamp: Date.now(), diff --git a/agent/uis/stock-price/index.tsx b/agent/uis/stock-price/index.tsx index 99ce8cd..d773f07 100644 --- a/agent/uis/stock-price/index.tsx +++ b/agent/uis/stock-price/index.tsx @@ -15,7 +15,9 @@ export default function StockPrice(props: { apiUrl: "http://localhost:3123", }); - const aiTool = thread.messages + const messagesCopy = thread.messages; + + const aiTool = messagesCopy .slice() .reverse() .find( diff --git a/src/components/assistant-ui/thread.tsx b/src/components/assistant-ui/thread.tsx index 5c3aa30..d99e53d 100644 --- a/src/components/assistant-ui/thread.tsx +++ b/src/components/assistant-ui/thread.tsx @@ -1,6 +1,5 @@ import { ActionBarPrimitive, - BranchPickerPrimitive, ComposerPrimitive, getExternalStoreMessages, MessagePrimitive, @@ -8,17 +7,7 @@ import { useMessage, } from "@assistant-ui/react"; import type { FC } from "react"; -import { - ArrowDownIcon, - CheckIcon, - ChevronLeftIcon, - ChevronRightIcon, - CopyIcon, - PencilIcon, - RefreshCwIcon, - SendHorizontalIcon, -} from "lucide-react"; -import { cn } from "@/lib/utils"; +import { ArrowDownIcon, PencilIcon, SendHorizontalIcon } from "lucide-react"; import { LoadExternalComponent } from "@langchain/langgraph-sdk/react-ui/client"; import { Avatar, AvatarFallback } from "@/components/ui/avatar"; @@ -168,8 +157,6 @@ const UserMessage: FC = () => {