diff --git a/.changeset/social-mirrors-juggle.md b/.changeset/social-mirrors-juggle.md new file mode 100644 index 00000000..3c331202 --- /dev/null +++ b/.changeset/social-mirrors-juggle.md @@ -0,0 +1,5 @@ +--- +'@openai/agents-core': patch +--- + +ensure getTransferMessage returns valid JSON diff --git a/packages/agents-core/src/handoff.ts b/packages/agents-core/src/handoff.ts index 40b9d18a..9e97ea44 100644 --- a/packages/agents-core/src/handoff.ts +++ b/packages/agents-core/src/handoff.ts @@ -47,7 +47,7 @@ export type HandoffInputFilter = (input: HandoffInputData) => HandoffInputData; export function getTransferMessage( agent: Agent, ) { - return `{'assistant': '${agent.name}'}`; + return JSON.stringify({ assistant: agent.name }); } /** diff --git a/packages/agents-core/test/handoffs.test.ts b/packages/agents-core/test/handoffs.test.ts index 38132dbd..96e22fae 100644 --- a/packages/agents-core/test/handoffs.test.ts +++ b/packages/agents-core/test/handoffs.test.ts @@ -69,7 +69,17 @@ describe('Agent + handoffs', () => { outputType: z.object({ a: z.string() }), }), ); - expect(result).toBe("{'assistant': 'Agent A'}"); + expect(result).toBe('{"assistant":"Agent A"}'); + }); + + it('getTransferMessage produces valid JSON', () => { + const result = getTransferMessage( + new Agent({ + name: 'Agent A', + outputType: z.object({ a: z.string() }), + }), + ); + expect(JSON.parse(result)).toEqual({ assistant: 'Agent A' }); }); it('Handoff#getHandoffAsFunctionTool', async () => {