1.0.23 • Published 6 months ago
@wangenius/taskie v1.0.23
Taskie - 智能任务执行框架
特性
- 支持任务的创建、执行、暂停、恢复、取消等操作
- 支持任务的依赖关系管理
- 支持任务的并发执行
- 支持任务执行状态的实时监控
- 支持任务执行的重试机制
- 支持任务执行的超时控制
- 支持任务的事件监听和状态追踪
- 支持任务的序列化和反序列化
- 支持智能任务规划和自动重规划
- 支持上下文感知和思维链追踪
- 支持自定义模型和工具集成
- 支持异步生成器模式的交互式执行
安装
npm install taskie
快速开始
智能代理模式
import { Agent, ChatModel } from "taskie";
// 创建语言模型实例
const model = new ChatModel({
model: "gpt-4o",
api_key: "your-api-key",
api_url: "https://api.openai.com/v1/",
});
// 创建Agent实例
const agent = new Agent({
model,
});
agent.tools([myTool1, myTool2]);
// 执行任务
const result = await agent.run("请帮我完成数据分析任务");
const result = agent.chat("最近有什么体育新闻");
// 使用生成器模式获取执行过程
for await (const step of result) {
console.log(step);
}
工具创建
见 src / tools 目录;
任务流执行
基本用法
import { Task } from "taskie";
// 创建任务
const task = new Task({ name: "示例任务" });
// 注册任务(可选,用于状态管理)
task.register();
// 创建步骤
const step1 = task.step("步骤1").exe(async () => {
return "Hello";
});
const step2 = task
.step("步骤2")
.after(step1) // 设置依赖关系
.exe(async (deps) => {
const step1Result = deps[step1.getId()];
return `${step1Result} World`;
});
// 执行任务
const results = await task.run();
console.log(results.get(step2.getId())); // 输出: Hello World
高级特性
重试机制
const step = task
.step("网络请求")
.retry({
maxAttempts: 3,
initialDelay: 1000,
backoffFactor: 2,
maxDelay: 5000,
})
.exe(async () => {
// 执行可能失败的操作
});
超时控制
const step = task
.step("耗时操作")
.timeout(5000) // 5秒超时
.exe(async () => {
// 执行耗时操作
});
API 文档
Agent 类
构造函数
new Agent(params?: {
model?: ChatModel;
tools?: ToolFunctionHandler[];
config?: Partial<AgentConfig>;
})
主要方法
run(input: string): Promise<any>
- 执行任务chat(input: string): AsyncGenerator<string>
- 交互式执行任务model(model: ChatModel): this
- 设置语言模型tools(tools: ToolFunctionHandler[]): this
- 设置工具集
Context 类
主要方法
reset(): void
- 重置上下文setPlan(plan: TaskPlan): void
- 设置执行计划updateTaskStatus(result: ActionResult, stepId: string): void
- 更新任务状态recordChain(step: string, result: any, observation: string): void
- 记录思维链generate_context_info(): string
- 生成上下文信息
配置选项
interface AgentConfig {
maxIterations: number; // 最大迭代次数
temperature: number; // 模型温度参数
}
interface TaskConfig {
name: string; // 任务名称
timeout?: number; // 任务超时时间
retryConfig?: {
// 重试配置
maxAttempts: number;
initialDelay: number;
backoffFactor: number;
maxDelay: number;
};
}
事件系统
task.on((event) => {
switch (event.type) {
case "step:start":
console.log(`步骤 ${event.stepId} 开始执行`);
break;
case "step:complete":
console.log(`步骤 ${event.stepId} 执行完成`);
break;
case "step:fail":
console.log(`步骤 ${event.stepId} 执行失败:`, event.error);
break;
case "plan:replan":
console.log(`任务重新规划,原因:`, event.reason);
break;
}
});
许可证
MIT