diff --git a/examples/example.ts b/examples/example.ts index e720955..fa382d4 100644 --- a/examples/example.ts +++ b/examples/example.ts @@ -32,11 +32,11 @@ const machine = setup({ invoke: [ { src: 'summarizer', - input: { - context: true, + input: (x) => ({ + context: x.context, prompt: 'Summarize the patient visit in a single sentence. The summary should be in English.', - }, + }), onDone: { actions: assign({ englishSummary: ({ event }) => event.output.text, @@ -45,11 +45,11 @@ const machine = setup({ }, { src: 'summarizer', - input: { - context: true, + input: (x) => ({ + context: x.context, prompt: 'Summarize the patient visit in a single sentence. The summary should be in Spanish.', - }, + }), onDone: { actions: assign({ spanishSummary: ({ event }) => event.output.text, diff --git a/examples/wiki.ts b/examples/wiki.ts index 718adcc..be8a182 100644 --- a/examples/wiki.ts +++ b/examples/wiki.ts @@ -20,7 +20,7 @@ async function main() { console.log(response1.text); const response2 = await agent.generateText({ - messages: true, + messages: (x) => x.select((ctx) => ctx.messages), prompt: 'What about the first one?', }); diff --git a/src/text.ts b/src/text.ts index d6c8c26..20ae8f4 100644 --- a/src/text.ts +++ b/src/text.ts @@ -35,9 +35,7 @@ async function getMessages( options: AgentStreamTextOptions ): Promise { let messages: CoreMessage[] = []; - if (options.messages === true) { - messages = agent.select((s) => s.messages); - } else if (typeof options.messages === 'function') { + if (typeof options.messages === 'function') { messages = await options.messages(agent); } else if (options.messages) { messages = options.messages; @@ -164,15 +162,10 @@ export function fromTextStream>( ): ObservableActorLogic< { textDelta: string }, Omit & { - context?: AgentStreamTextOptions['context'] | boolean; + context?: AgentStreamTextOptions['context']; } > { - return fromObservable(({ input, self }) => { - const context = - input.context === true - ? (self._parent?.getSnapshot() as AnyMachineSnapshot).context - : input.context; - + return fromObservable(({ input }) => { const observers = new Set>(); // TODO: check if messages was provided instead @@ -181,7 +174,7 @@ export function fromTextStream>( const result = await agentStreamText(agent, { ...defaultOptions, ...input, - context, + context: input.context, }); for await (const part of result.fullStream) { @@ -214,18 +207,14 @@ export function fromText>( ): PromiseActorLogic< GenerateTextResult>>, Omit & { - context?: AgentGenerateTextOptions['context'] | boolean; + context?: AgentGenerateTextOptions['context']; } > { - return fromPromise(async ({ input, self }) => { - const context = - input.context === true - ? (self._parent?.getSnapshot() as AnyMachineSnapshot).context - : input.context; + return fromPromise(async ({ input }) => { return await agentGenerateText(agent, { ...input, ...defaultOptions, - context, + context: input.context, }); }); } diff --git a/src/types.ts b/src/types.ts index 1dd5a1b..a2e581e 100644 --- a/src/types.ts +++ b/src/types.ts @@ -325,7 +325,7 @@ export interface CommonTextOptions { prompt: FromAgent; model?: LanguageModel; context?: Record; - messages?: FromAgent | true; + messages?: FromAgent; template?: PromptTemplate; }