68 lines
2.1 KiB
Markdown
68 lines
2.1 KiB
Markdown
---
|
|
summary: "Viết các công cụ (tools) cho Agent trong một plugin (định nghĩa schema, các công cụ tùy chọn, danh sách cho phép)"
|
|
read_when:
|
|
- Bạn muốn thêm một công cụ mới cho Agent thông qua một plugin
|
|
---
|
|
|
|
# Công cụ Agent trong Plugin
|
|
|
|
Các plugin của Moltbot có thể đăng ký các **công cụ dành cho Agent** (dưới dạng hàm JSON-schema). Các công cụ này sẽ được cung cấp cho mô hình AI (LLM) sử dụng trong quá trình hội thoại. Bạn có thể thiết lập công cụ là **bắt buộc** (luôn sẵn sàng) hoặc **tùy chọn** (phải bật thủ công).
|
|
|
|
## Cách đăng ký công cụ cơ bản
|
|
|
|
```ts
|
|
import { Type } from "@sinclair/typebox";
|
|
|
|
export default function (api) {
|
|
api.registerTool({
|
|
name: "ten_cong_cu_cua_toi",
|
|
description: "Mô tả công cụ làm gì đó",
|
|
parameters: Type.Object({
|
|
input: Type.String(),
|
|
}),
|
|
async execute(_id, params) {
|
|
// Thực hiện logic tại đây
|
|
return { content: [{ type: "text", text: params.input }] };
|
|
},
|
|
});
|
|
}
|
|
```
|
|
|
|
## Công cụ tùy chọn (Opt-in)
|
|
|
|
Các công cụ tùy chọn sẽ **không bao giờ** tự động được bật. Người dùng phải thêm chúng vào danh sách cho phép (`allowlist`) của từng Agent.
|
|
|
|
```ts
|
|
api.registerTool(
|
|
{
|
|
name: "cong_cu_quy_trinh",
|
|
// ... các thông số khác
|
|
},
|
|
{ optional: true }, // Đánh dấu là công cụ tùy chọn
|
|
);
|
|
```
|
|
|
|
Để bật công cụ này, bạn cấu hình trong `moltbot.json`:
|
|
|
|
```json5
|
|
{
|
|
"agents": {
|
|
"list": [
|
|
{
|
|
"id": "main",
|
|
"tools": {
|
|
"allow": ["cong_cu_quy_trinh"] // Thêm tên công cụ vào đây
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Các quy tắc và mẹo
|
|
- Tên công cụ không được trùng với các công cụ cốt lõi của hệ thống.
|
|
- Nên đặt công cụ ở chế độ `optional: true` nếu công cụ đó có thể gây ra các tác động bên ngoài hoặc yêu cầu các khóa bảo mật riêng.
|
|
|
|
---
|
|
Tài liệu liên quan: [Hệ thống công cụ](../../tools/index.vi.md), [Viết Plugin](./writing-plugins.vi.md).
|