fix(docs): address documentation site review

This commit is contained in:
Yichen Jiang
2026-07-13 17:49:30 +08:00
parent 341b56ebc3
commit 6be219a0bc
12 files changed
+333 -212

No files matched your search

+9 -8
View File
@@ -4,10 +4,11 @@
## 定义 Config 类型
在插件中导出一个 `Config` 类型和可选的默认值
在插件中导出一个 `Config` 类型和同名的 Schemastery schema;默认值直接写在 schema 中
```typescript
import type { Context } from 'cordis'
import Schema from 'schemastery'
export const name = 'my-plugin'
@@ -17,11 +18,11 @@ export interface Config {
verbose?: boolean
}
export const Config = {
greeting: 'Hello',
maxRetries: 3,
verbose: false,
}
export const Config: Schema<Config> = Schema.object({
greeting: Schema.string().default('Hello'),
maxRetries: Schema.number().default(3),
verbose: Schema.boolean().default(false),
})
export function apply(ctx: Context, config: Config) {
console.log(config.greeting) // 用户配置或默认值
@@ -37,7 +38,7 @@ export function apply(ctx: Context, config: Config) {
maxRetries: 5
```
未提供字段使用导出的 `Config` 对象中的默认值。
插件加载时,Cordis 会通过导出的 schema 校验配置,并填充未提供字段的默认值。不要导出普通对象作为 `Config`,因为它不满足 Cordis 要求的 Standard Schema 接口
## Schema 校验
@@ -92,7 +93,7 @@ export interface Config {
```typescript
export function apply(ctx: Context, config: Config) {
if (!ctx.llm.hasAdapter(config.model)) {
if (!ctx.llm.models().includes(config.model)) {
throw new Error(`Model "${config.model}" is not registered by any LLM adapter`)
}
}
+4 -9
View File
@@ -28,10 +28,8 @@ import type { Context } from 'cordis'
export const name = 'hello-plugin'
export function apply(ctx: Context) {
// 监听 agent-loop 的 ready 事件
ctx.on('ready', () => {
console.log('[hello-plugin] 插件已加载!')
})
// apply 被调用时,插件的必选依赖已就绪
console.log('[hello-plugin] 插件已加载!')
}
```
@@ -100,17 +98,14 @@ export default {
### 类形式
```typescript
import { Service } from 'cordis'
import { Service, type Context } from 'cordis'
export default class MyService extends Service {
static inject = ['tools']
constructor(ctx: Context) {
super(ctx, 'myService')
}
start() {
// 服务启动逻辑
// 构造函数内完成同步初始化
}
}
```
+5 -7
View File
@@ -133,14 +133,14 @@ defineTool({
// ...
presentCall(args) {
return {
intent: 'terminal',
title: `bash(${JSON.stringify(args.command).slice(0, 60)})`,
card: 'terminal',
title: args.command,
}
},
presentResult(args, result) {
return {
intent: 'terminal',
body: result.content.map(b => b.type === 'text' ? b.text : '').join(''),
card: 'terminal',
output: result.content.map(b => b.type === 'text' ? b.text : '').join(''),
}
},
})
@@ -156,9 +156,7 @@ defineTool({
// 这样就够了:
ctx.tools.register(defineTool({ /* ... */ }))
// 不需要:
// const dispose = ctx.tools.register(...)
// ctx.on('dispose', dispose)
// 不需要额外保存 disposer 或注册清理逻辑
```
## 完整实战示例