From 072ec4321f10084cffbbcce1582d90db3937508a Mon Sep 17 00:00:00 2001 From: siage Date: Tue, 15 Apr 2025 21:03:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=80=9D=E7=B6=AD=E9=8F=88?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=9A=84=E6=8F=90=E7=A4=BA=E5=85=A7=E5=AE=B9?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=81=9C=E6=AD=A2=E6=80=9D=E8=80=83?= =?UTF-8?q?=E7=9A=84=E6=A2=9D=E4=BB=B6=E8=AA=AA=E6=98=8E=EF=BC=8C=E4=B8=A6?= =?UTF-8?q?=E8=AA=BF=E6=95=B4=E6=80=9D=E7=B6=AD=E8=B3=87=E6=96=99=E7=B5=90?= =?UTF-8?q?=E6=A7=8B=E7=9A=84=E9=A9=97=E8=AD=89=E9=82=8F=E8=BC=AF=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E5=8D=87=E7=94=A8=E6=88=B6=E5=9C=A8=E6=80=9D=E8=80=83?= =?UTF-8?q?=E9=81=8E=E7=A8=8B=E4=B8=AD=E7=9A=84=E9=9D=88=E6=B4=BB=E6=80=A7?= =?UTF-8?q?=E8=88=87=E6=B8=85=E6=99=B0=E5=BA=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 2 +- src/tools/thoughtChainTools.ts | 82 ++++++++++++++-------------------- 2 files changed, 35 insertions(+), 49 deletions(-) diff --git a/src/index.ts b/src/index.ts index e2961bd..777aa6c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -187,7 +187,7 @@ async function main() { // 註冊思維鏈工具 server.tool( "process_thought", - "你可以透過靈活的、可適應和發展的思考過程來分析問題,隨著理解的加深,每個想法都可以建立、質疑或修改先前的見解。你可以質疑想法、假設想法、驗證想法,並且可以建立新的想法。你將重複這個過程,直到你對問題有足夠的理解,並且能夠提出有效的解決方案。", + "你可以透過靈活的、可適應和發展的思考過程來分析問題,隨著理解的加深,每個想法都可以建立、質疑或修改先前的見解。你可以質疑想法、假設想法、驗證想法,並且可以建立新的想法。你將重複這個過程,直到你對問題有足夠的理解,並且能夠提出有效的解決方案。如果你覺得思考已經充分可以把 nextThoughtNeeded 設為 false 並且停止思考。", processThoughtSchema.shape, async (args) => { return await processThought(args); diff --git a/src/tools/thoughtChainTools.ts b/src/tools/thoughtChainTools.ts index f4b1557..99706cc 100644 --- a/src/tools/thoughtChainTools.ts +++ b/src/tools/thoughtChainTools.ts @@ -1,47 +1,6 @@ import { z } from "zod"; import { ThoughtData, ThoughtStage } from "../types/index.js"; -/** - * 思維資料驗證結構 - */ -const thoughtDataSchema = z.object({ - thought: z - .string() - .min(1, { - message: "思維內容不能為空,請提供有效的思考內容", - }) - .describe("思維內容"), - thoughtNumber: z - .number() - .int() - .positive({ - message: "思維編號必須是正整數", - }) - .describe("思維編號"), - totalThoughts: z - .number() - .int() - .positive({ - message: "總思維數必須是正整數", - }) - .describe("總思維數"), - nextThoughtNeeded: z.boolean().describe("是否需要更多思維"), - stage: z - .nativeEnum(ThoughtStage, { - message: "思維階段不能為空,請提供有效的思考階段", - }) - .describe("思維階段"), - tags: z.array(z.string()).optional().describe("思維標籤,是一個陣列字串"), - axioms_used: z - .array(z.string()) - .optional() - .describe("使用的公理,是一個陣列字串"), - assumptions_challenged: z - .array(z.string()) - .optional() - .describe("挑戰的假設,是一個陣列字串"), -}); - /** * 格式化思維內容,返回美觀的格式化輸出 * @param thoughtData 思維資料 @@ -97,14 +56,41 @@ function formatThought(thoughtData: ThoughtData): string { * processThought工具的參數結構 */ export const processThoughtSchema = z.object({ - thought: z.string().describe("思維內容"), - thought_number: z.number().int().positive().describe("當前思維編號"), - total_thoughts: z.number().int().positive().describe("預計總思維數量"), + thought: z + .string() + .min(1, { + message: "思維內容不能為空,請提供有效的思考內容", + }) + .describe("思維內容"), + thought_number: z + .number() + .int() + .positive({ + message: "思維編號必須是正整數", + }) + .describe("當前思維編號"), + total_thoughts: z + .number() + .int() + .positive({ + message: "總思維數必須是正整數", + }) + .describe("預計總思維數量"), next_thought_needed: z.boolean().describe("是否需要下一步思維"), - stage: z.string().describe("思考階段"), - tags: z.array(z.string()).optional().describe("思維標籤"), - axioms_used: z.array(z.string()).optional().describe("使用的公理"), - assumptions_challenged: z.array(z.string()).optional().describe("挑戰的假設"), + stage: z + .nativeEnum(ThoughtStage, { + message: "思維階段不能為空,請提供有效的思考階段", + }) + .describe("思考階段"), + tags: z.array(z.string()).optional().describe("思維標籤,是一個陣列字串"), + axioms_used: z + .array(z.string()) + .optional() + .describe("使用的公理,是一個陣列字串"), + assumptions_challenged: z + .array(z.string()) + .optional() + .describe("挑戰的假設,是一個陣列字串"), }); /**