Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ tsconfig.temp.json
.DS_Store
.idea
.vscode
.chatluna
*.suo
*.ntvs*
*.njsproj
Expand All @@ -23,4 +24,4 @@ packages/*/dist
packages/*/lib

.VSCodeCounter
.yarn/install-state.gz
.yarn/install-state.gz
5 changes: 5 additions & 0 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,11 @@
"import": "./lib/utils/koishi.mjs",
"require": "./lib/utils/koishi.cjs"
},
"./utils/virtual_session": {
"types": "./lib/utils/virtual_session.d.ts",
"import": "./lib/utils/virtual_session.mjs",
"require": "./lib/utils/virtual_session.cjs"
},
"./utils/langchain": {
"types": "./lib/utils/langchain.d.ts",
"import": "./lib/utils/langchain.mjs",
Expand Down
2 changes: 2 additions & 0 deletions packages/core/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ export interface Config {
autoPurgeArchiveTimeout: number
messageQueue: boolean
messageQueueDelay: number
agentTaskAutoWakeup: boolean
infiniteContext: boolean
infiniteContextThreshold: number
rawOnCensor: boolean
Expand Down Expand Up @@ -117,6 +118,7 @@ export const Config: Schema<Config> = Schema.intersect([
.min(0)
.max(60 * 30)
.default(0),
agentTaskAutoWakeup: Schema.boolean().default(true),
showThoughtMessage: Schema.boolean().default(false)
}),

Expand Down
2 changes: 2 additions & 0 deletions packages/core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import * as request from 'koishi-plugin-chatluna/utils/request'
import { PromiseLikeDisposable } from 'koishi-plugin-chatluna/utils/types'
import { command } from './command'
import { Config } from './config'
import { applyAgentTaskWakeup } from './llm-core/agent/wakeup'
import { defaultFactory } from './llm-core/chat/default'
import { apply as loreBook } from './llm-core/memory/lore_book'
import { apply as authorsNote } from './llm-core/memory/authors_note'
Expand Down Expand Up @@ -108,6 +109,7 @@ async function initializeComponents(ctx: Context, config: Config) {
await ctx.chatluna.preset.init()
await setupAutoArchive(ctx, config)
await setupAutoPurgeArchive(ctx, config)
applyAgentTaskWakeup(ctx, config)
loreBook(ctx, config)
authorsNote(ctx, config)
}
Expand Down
2 changes: 2 additions & 0 deletions packages/core/src/llm-core/agent/agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ export interface AgentGenerateOptions {
signal?: AbortSignal
maxToken?: number
messageQueue?: MessageQueue
pauseGate?: (signal?: AbortSignal) => Promise<void>
toolMask?: ToolMask
subagentContext?: SubagentContext
source?: 'chatluna' | 'character'
Expand Down Expand Up @@ -161,6 +162,7 @@ export function createAgent(options: CreateAgentOptions): ChatLunaAgent {
const bound = runner.value.withConfig({
configurable: {
messageQueue: input.messageQueue,
pauseGate: input.pauseGate,
onAgentEvent: input.onStep,
agentContext: ctx
}
Expand Down
2 changes: 2 additions & 0 deletions packages/core/src/llm-core/agent/legacy-executor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,8 @@ export async function* runAgent(

while (iterations < maxIterations) {
checkAborted(signal)
await runtime.pauseGate?.(signal)
checkAborted(signal)

const pending = queue?.drain() ?? []
if (pending.length > 0) {
Expand Down
Loading
Loading