diff --git a/packages/extension-agent/src/config/read.ts b/packages/extension-agent/src/config/read.ts index ed6f8f878..6f122618a 100644 --- a/packages/extension-agent/src/config/read.ts +++ b/packages/extension-agent/src/config/read.ts @@ -2,6 +2,7 @@ import { Context } from 'koishi' import { readFile } from 'fs/promises' +import { deepAssign } from 'koishi-plugin-chatluna/utils/object' import { AgentConfig, createToolDefaultAvailability, @@ -68,14 +69,9 @@ export async function readConfig(ctx: Context): Promise { ) ) }, - trigger: { - ...base.trigger, - ...(cfg.trigger ?? {}), - providers: { - ...(base.trigger?.providers ?? {}), - ...(cfg.trigger?.providers ?? {}) - } - } + trigger: deepAssign({}, base.trigger, cfg.trigger ?? {}), + computer: deepAssign({}, base.computer, cfg.computer ?? {}), + subAgent: deepAssign({}, base.subAgent, cfg.subAgent ?? {}) } } catch { return getDefaultConfig() diff --git a/packages/extension-agent/src/utils/agentcli_sync.ts b/packages/extension-agent/src/utils/agentcli_sync.ts index d9536946f..592d4de60 100644 --- a/packages/extension-agent/src/utils/agentcli_sync.ts +++ b/packages/extension-agent/src/utils/agentcli_sync.ts @@ -81,7 +81,7 @@ export async function syncAgentcliConfig( const next = JSON.parse(chosen.content) as AgentConfig await writeConfig(agent.ctx, next) - await agent.reload(next) + await agent.reload() messages.push(`applied from ${sources.join(', ')}`) return {