diff --git a/packages/agent/src/agent.ts b/packages/agent/src/agent.ts index 2874bed9..1307ea5a 100644 --- a/packages/agent/src/agent.ts +++ b/packages/agent/src/agent.ts @@ -115,6 +115,7 @@ export const createAgent = (params: AgentParams) => { model: gateway, system: getSystemPrompt(), messages, + stopWhen: stepCountIs(50), tools: await getTools(), onFinish: async () => { await onComplete() @@ -142,7 +143,7 @@ export const createAgent = (params: AgentParams) => { system: getSystemPrompt(), } }, - stopWhen: stepCountIs(10), + stopWhen: stepCountIs(50), messages, tools: await getTools(), onFinish: async () => { diff --git a/packages/api/src/modules/agent/index.ts b/packages/api/src/modules/agent/index.ts index 6cba2aa7..bedd6a0f 100644 --- a/packages/api/src/modules/agent/index.ts +++ b/packages/api/src/modules/agent/index.ts @@ -58,15 +58,21 @@ export const agentModule = new Elysia({ try { const encoder = new TextEncoder() - console.log('📨 Starting agent stream for message:', body.message.substring(0, 50)) + console.log('📨 [API] Starting agent stream for message:', body.message.substring(0, 50)) + console.log('🔗 [API] Starting event loop...') + let eventCount = 0 // Send events as they come for await (const event of agent.ask(body.message)) { + eventCount++ + console.log(`📤 [API] Received event #${eventCount}, type:`, event.type) const data = JSON.stringify(event) + console.log(`📤 [API] Enqueueing event #${eventCount}...`) controller.enqueue(encoder.encode(`data: ${data}\n\n`)) + console.log(`✅ [API] Event #${eventCount} enqueued successfully`) } - console.log('✅ Agent stream completed successfully') + console.log(`✅ [API] Agent stream completed successfully (${eventCount} events)`) // Send done event controller.enqueue(encoder.encode('data: [DONE]\n\n')) diff --git a/packages/api/src/modules/agent/service.ts b/packages/api/src/modules/agent/service.ts index cf05251c..3aa1da05 100644 --- a/packages/api/src/modules/agent/service.ts +++ b/packages/api/src/modules/agent/service.ts @@ -49,6 +49,7 @@ export async function createAgent(params: CreateAgentStreamParams) { // Ensure container is running before creating agent const container = useContainer(containerInfo.containerName, { namespace: containerInfo.namespace, + socket: process.env.CONTAINERD_SOCKET, }) // Check and start container if not running diff --git a/packages/container/src/container.ts b/packages/container/src/container.ts index e478640e..ec2619c8 100644 --- a/packages/container/src/container.ts +++ b/packages/container/src/container.ts @@ -179,7 +179,8 @@ export function useContainer( buildExecCommand(command: string[]): string[] { // nerdctl exec with -i to keep STDIN open for MCP servers - return [...client.nerdctlCommand, 'exec', '-i', containerName, ...command] + const socket = options?.socket ? ['--address', options.socket] : [] + return [...client.nerdctlCommand, ...socket, 'exec', '-i', containerName, ...command] } } }