Skip to content

AgentTools

[Deprecated] AgentTools是全局对象,不是原生类。用于注册工具并统一调用。

已被弃用,不建议使用。

AgentTools是全局对象,默认不以实例化方式使用。

注册工具对象。

register(tool: object): void
目前内置的mn.search工具的注册源代码
register({
name: 'mn.search',
info: {name:'mn.search', kind:'search', scopes:['topic','all','page'], description:'Search notes or pages via SearchManager'},
run: function(input){
input = input || {};
var app2 = null;
try { app2 = Application.sharedInstance(); } catch (e2) {}
var mgr2 = app2 && app2.searchManager ? app2.searchManager : null;
if (!mgr2) { throw new Error('search_manager_unavailable'); }
var q = normalizeString(input.query, '');
var scope = normalizeString(input.scope, 'topic').toLowerCase();
if (scope !== 'topic' && scope !== 'all' && scope !== 'page') { scope = 'topic'; }
var titleOnly = !!input.titleOnly;
var beginsWith = !!input.beginsWith;
var limit = (input.limit != null) ? input.limit : 50;
var noteOnly = (input.noteOnly != null) ? !!input.noteOnly : false;
var topicid = normalizeNullable(input.topicid);
if (scope === 'page') {
return mgr2.searchPage(q, beginsWith, limit);
}
if (input.useFts) {
return mgr2.searchFts3Text(q, titleOnly, topicid, limit, noteOnly);
}
return mgr2.searchText(q, titleOnly, topicid, beginsWith, limit);
}
});

按名称获取工具。

get(name: string): object | null

列出已注册工具。

list(): object[]

执行指定工具。

run(name: string, input: any): Promise<any>
  • register时缺少名称会被忽略,同名注册会覆盖。
  • run找不到工具时会抛错;工具对象没有run实现时常见返回null
  • 目前会内建工具mn.search,执行前可先list/get检查。
头文件 API 清单

正在加载…

协议:,来源: