npm.io
1.0.35 • Published 10h agoCLI

tolingclaw

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 install
2. 配置 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

Keywords