docs: update docs page

This commit is contained in:
Simon
2025-10-21 21:53:24 +08:00
parent 7278b73290
commit e81291f54b
4 changed files with 27 additions and 85 deletions

View File

@@ -6,8 +6,6 @@ export default function CustomTools() {
<div> <div>
<h1 className="text-4xl font-bold mb-6"></h1> <h1 className="text-4xl font-bold mb-6"></h1>
<BetaNotice />
<p className="text-xl text-foreground/80 mb-8 leading-relaxed"> <p className="text-xl text-foreground/80 mb-8 leading-relaxed">
AI Agent 使 Zod AI AI Agent 使 Zod AI
@@ -21,92 +19,40 @@ export default function CustomTools() {
</p> </p>
<CodeEditor <CodeEditor
code={`import { z } from 'zod' code={`import zod from 'zod'
import { pageAgent } from 'page-agent' import { PageAgent, tool } from 'page-agent'
// 定义输入 schema // override internal tool
const CreateUserSchema = z.object({ const customTools = {
name: z.string().min(1, '姓名不能为空'), ask_user: tool({
email: z.string().email('邮箱格式不正确'), description:
role: z.enum(['admin', 'user', 'guest']).default('user') 'Ask the user or parent model a question and wait for their answer. Use this if you need more information or clarification.',
}) inputSchema: zod.object({
question: zod.string(),
// 注册工具 }),
pageAgent.registerTool({ execute: async function (this: PageAgent, input) {
name: 'createUser', const answer = await do_some_thing(input.question)
description: '创建新用户账户', return "✅ Received user answer: " + answer
input: CreateUserSchema, },
execute: async (params) => {
// 执行业务逻辑
const response = await fetch('/api/users', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(params)
}) })
return await response.json() }
}
})`} // remove internal tool
const customTools = {
ask_user: null // never ask user questions
}
const pageAgent = new PageAgent({customTools})
`}
language="javascript" language="javascript"
/> />
</section> </section>
<section>
<h2 className="text-2xl font-bold mb-4"></h2>
<div className="space-y-4">
<div className="p-4 bg-blue-50 dark:bg-blue-900/20 rounded-lg">
<h3 className="text-lg font-semibold text-blue-900 dark:text-blue-300 mb-2">
📝 name ()
</h3>
<p className="text-foreground/80 mb-2">AI </p>
<div className="bg-white dark:bg-gray-800 rounded p-3 text-sm">
<code>name: 'searchProducts' // 驼峰命名,语义清晰</code>
</div>
</div>
<div className="p-4 bg-green-50 dark:bg-green-900/20 rounded-lg">
<h3 className="text-lg font-semibold text-green-900 dark:text-green-300 mb-2">
💬 description ()
</h3>
<p className="text-foreground/80 mb-2"> AI 使</p>
<div className="bg-white dark:bg-gray-800 rounded p-3 text-sm">
<code>description: '根据关键词搜索商品,支持价格区间和分类筛选'</code>
</div>
</div>
<div className="p-4 bg-purple-50 dark:bg-purple-900/20 rounded-lg">
<h3 className="text-lg font-semibold text-purple-900 dark:text-purple-300 mb-2">
🔧 input ()
</h3>
<p className="text-foreground/80 mb-2">Zod schema </p>
<div className="bg-white dark:bg-gray-800 rounded p-3 text-sm">
<code>{`input: z.object({
keyword: z.string().min(1),
priceRange: z.object({
min: z.number().optional(),
max: z.number().optional()
}).optional()
})`}</code>
</div>
</div>
<div className="p-4 bg-orange-50 dark:bg-orange-900/20 rounded-lg">
<h3 className="text-lg font-semibold text-orange-900 dark:text-orange-300 mb-2">
execute ()
</h3>
<p className="text-foreground/80 mb-2"></p>
<div className="bg-white dark:bg-gray-800 rounded p-3 text-sm">
<code>{`execute: async (params) => {
// params 已通过 Zod 验证
const result = await businessLogic(params)
return result // 返回结果给 AI
}`}</code>
</div>
</div>
</div>
</section>
<section> <section>
<h2 className="text-2xl font-bold mb-4"></h2> <h2 className="text-2xl font-bold mb-4"></h2>
<BetaNotice />
<p className="text-foreground/80 mb-4"> <p className="text-foreground/80 mb-4">
<code className="bg-gray-200 dark:bg-gray-700 px-2 py-1 rounded">pageFilter</code>{' '} <code className="bg-gray-200 dark:bg-gray-700 px-2 py-1 rounded">pageFilter</code>{' '}

View File

@@ -6,8 +6,6 @@ export default function ModelIntegration() {
<div> <div>
<h1 className="text-4xl font-bold mb-6"></h1> <h1 className="text-4xl font-bold mb-6"></h1>
<BetaNotice />
<p className="text-xl text-gray-600 dark:text-gray-300 mb-6 leading-relaxed"> <p className="text-xl text-gray-600 dark:text-gray-300 mb-6 leading-relaxed">
OpenAI tool call OpenAI tool call
</p> </p>

View File

@@ -6,8 +6,6 @@ export default function QuickStart() {
<div> <div>
<h1 className="text-4xl font-bold mb-6">Quick Start</h1> <h1 className="text-4xl font-bold mb-6">Quick Start</h1>
<BetaNotice />
<p className=" mb-6 leading-relaxed"> page-agent </p> <p className=" mb-6 leading-relaxed"> page-agent </p>
<h2 className="text-2xl font-bold mb-3"></h2> <h2 className="text-2xl font-bold mb-3"></h2>

View File

@@ -43,7 +43,7 @@ export interface UIConfig {
* }), * }),
* execute: async function (this: PageAgent, input) { * execute: async function (this: PageAgent, input) {
* const answer = await do_some_thing(input.question) * const answer = await do_some_thing(input.question)
* return `✅ Received user answer: ${answer}` + (await getSystemInfo()) * return `✅ Received user answer: ${answer}`
* }, * },
* }) * })
* } * }