From 65e03f0b1ef6c4f420ca7eb4675fb85c807b268e Mon Sep 17 00:00:00 2001 From: Acbox Date: Sat, 17 Jan 2026 13:12:49 +0800 Subject: [PATCH] feat: increase max-step of agent --- packages/agent/src/agent.ts | 3 ++- packages/api/src/modules/agent/index.ts | 10 ++++++++-- packages/api/src/modules/agent/service.ts | 1 + packages/container/src/container.ts | 3 ++- 4 files changed, 13 insertions(+), 4 deletions(-) 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] } } }