Licence
MIT
Version
1.0.35
Deps
13
Size
5.2 MB
Vulns
2
Weekly
0
TolingClaw
跨境电商轻量智能体框架
架构
tolingclaw/
├── src/
│ ├── main.js # 入口,CLI 交互
│ ├── agent.js # 核心智能体(LLM + 工具循环)
│ ├── llm-client.js # 大模型调用封装
│ ├── tool-registry.js # 工具注册表
│ ├── skill.js # 技能基类
│ ├── config.js # 配置管理
│ └── tools/ # 自定义工具(用户扩展)
├── skills-examples/ # 技能目录(用户写技能放这里)
│ ├── inventory-query.js # 库存查询
│ └── product-description.js # 产品描述生成
├── config/
│ └── agent.json # 配置文件
├── logs/ # 日志
├── .env # 环境变量(API Key)
└── package.json
快速开始
1. 安装依赖
cd E:\tolingclaw
npm install2. 配置 API Key
# 复制并编辑 .env
cp .env.example .env编辑 .env,填入你的 DashScope API Key:
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxx
3. 运行
npm start进入交互模式:
toling> 查询 TC001 的库存
toling> 帮我生成一个沙发的产品标题
toling> /skills # 查看已加载的技能
toling> /tools # 查看可用工具
编写技能
技能是智能体的能力模块。每个技能继承 BaseSkill,注册自己的工具。
技能模板
// skills-examples/my-skill.js
import { BaseSkill } from '../src/skill.js';
export default class MySkill extends BaseSkill {
constructor() {
super();
this.name = '我的技能';
this.description = '技能描述';
}
async init(tools) {
// 注册工具
this.registerTool(
tools,
'my_tool_name',
'工具描述(给 LLM 看的)',
{
type: 'object',
properties: {
param1: { type: 'string', description: '参数说明' },
},
required: ['param1'],
},
async (args) => {
// 工具执行逻辑
return { result: 'xxx' };
}
);
}
async handle(input, context) {
// 可选:判断是否由这个技能处理
// 返回 null 让 LLM + 工具循环处理
return null;
}
}技能文件命名
- 放在
skills-examples/目录 - 文件名以
.js结尾 - 启动时自动加载
核心概念
智能体循环
用户输入 → 技能匹配 → LLM 调用 → 工具调用? → 执行工具 → 结果给 LLM → 最终回复
↑ ↓
└──────── 继续循环 ←─────────────
工具 (Tools)
工具是智能体可调用的函数。每个工具定义:
- name: 工具名
- description: 描述(给 LLM 理解何时使用)
- parameters: JSON Schema 参数定义
- execute: 执行函数
技能 (Skills)
技能是工具的集合 + 可选的处理逻辑。技能文件放在 skills-examples/ 目录,启动时自动加载。
配置
编辑 config/agent.json:
{
"llm": {
"model": "qwen-max", // 模型名
"apiKey": "sk-xxx", // API Key
"maxTokens": 2000, // 最大输出 token
"temperature": 0.7 // 创造性
},
"agent": {
"maxToolRounds": 5 // 最大工具调用轮次
}
}扩展方向
- 对接真实 API(库存、订单、产品)
- 支持更多 LLM 提供商
- 添加记忆/对话历史持久化
- Web UI / API 接口
- 技能市场/分享
License
MIT