diff --git a/server/api/agents/[agentSlug]/sessions/[id]/config.put.ts b/server/api/agents/[agentSlug]/sessions/[id]/config.put.ts index 2b3f8c0..6dde35e 100644 --- a/server/api/agents/[agentSlug]/sessions/[id]/config.put.ts +++ b/server/api/agents/[agentSlug]/sessions/[id]/config.put.ts @@ -27,16 +27,28 @@ export default defineWrappedResponseHandler(async (event) => { } const body = await readBody(event); - const { modelId, enableThinking, enableTools } = body as { + const { modelId, enableThinking, enableTools, systemPrompt } = body as { modelId?: number; enableThinking?: number; enableTools?: number; + systemPrompt?: string | null; }; - const updates: { modelId?: number | null; enableThinking?: number | null; enableTools?: number | null } = {}; + const updates: { + modelId?: number | null; + enableThinking?: number | null; + enableTools?: number | null; + systemPrompt?: string | null; + } = {}; if (modelId !== undefined) updates.modelId = modelId; if (enableThinking !== undefined) updates.enableThinking = enableThinking ? 1 : 0; if (enableTools !== undefined) updates.enableTools = enableTools ? 1 : 0; + if (systemPrompt !== undefined) { + if (systemPrompt !== null && typeof systemPrompt === "string" && systemPrompt.length > 5000) { + return R.error("系统提示词不能超过5000字符", null); + } + updates.systemPrompt = systemPrompt; + } if (Object.keys(updates).length === 0) { return R.error("无更新内容", null); diff --git a/server/api/agents/[agentSlug]/sessions/index.post.ts b/server/api/agents/[agentSlug]/sessions/index.post.ts index 893a517..660eed0 100644 --- a/server/api/agents/[agentSlug]/sessions/index.post.ts +++ b/server/api/agents/[agentSlug]/sessions/index.post.ts @@ -44,6 +44,12 @@ export default defineWrappedResponseHandler(async (event) => { modelId = agent.defaultModelId; } + const body = await readBody(event).catch(() => ({})); + const systemPrompt: string | null = + typeof body?.systemPrompt === "string" && body.systemPrompt.trim().length > 0 + ? body.systemPrompt.slice(0, 5000) + : null; + const session = await createSession({ userId: identity.userId, tempToken, @@ -51,6 +57,7 @@ export default defineWrappedResponseHandler(async (event) => { modelId, enableThinking: agent.enableThinking, enableTools: agent.enableTools, + systemPrompt, expiresAt, });