@easbot/plugin
v0.3.23
Published
EASBot Plugin for client applications
Readme
English | 中文
@easbot/plugin
EASBot 插件系统 - Hook、命令和工具管理
特性
- Hook 系统:事件驱动的 Hook 机制,扩展 Agent 行为
- 命令系统:可扩展的命令注册和执行
- 工具系统:插件工具与权限控制
- Shell 集成:Shell 命令执行支持
安装
pnpm add @easbot/plugin快速开始
Hook 系统
import { createHookRegistry, HOOK_EVENTS } from '@easbot/plugin';
// 创建 Hook 注册表
const hooks = createHookRegistry();
// 注册 Hook
hooks.register(HOOK_EVENTS.BEFORE_TOOL_CALL, async (tool, context) => {
console.log('Tool called:', tool.name);
return context;
});命令系统
import { createCommandRegistry } from '@easbot/plugin';
const commands = createCommandRegistry();
// 注册命令
commands.register({
name: 'hello',
description: '打招呼',
execute: async (args, session) => {
await session.send('你好!');
}
});工具系统
import { createTool } from '@easbot/plugin';
const tool = createTool({
name: 'my-tool',
description: '自定义工具',
parameters: z.object({
input: z.string()
}),
execute: async ({ input }) => {
return { result: input.toUpperCase() };
}
});API
HookRegistry
| 方法 | 说明 |
|------|------|
| register(event, handler) | 注册 Hook 处理器 |
| unregister(event, handler) | 移除 Hook 处理器 |
| clear(event) | 清除事件的所有处理器 |
CommandRegistry
| 方法 | 说明 |
|------|------|
| register(command) | 注册命令 |
| get(name) | 获取命令 |
| execute(name, args) | 执行命令 |
createTool
| 属性 | 类型 | 说明 | |------|------|------| | name | string | 工具名称 | | description | string | 工具描述 | | parameters | ZodSchema | 参数模式 | | execute | function | 工具实现 |
开发
# 安装依赖
pnpm install
# 构建
pnpm build
# 测试
pnpm test
# 类型检查
pnpm type-check许可证
MIT
