个人助手
copaw
nanobot
工具调用是 Claude Code 与外部世界交互的机制。通过工具调用
内置工具集
搜索工具 文件操作工具 命令执行工具
项目管理工具 集成工具
集成工具# 多层权限控制 权限配置文件
MCP 模型上下文协议集成,与外部服务交互
Plugins 插件工具,扩展 Claude 功能
Skills 技能工具,提供特定领域的专业知识
APIClient API 客户端,与外部 API 交互
扩展工具调用:
Plugins : 插件: 创建自定义插件
Plugins 工具用于加载和管理插件,扩展 Claude 的功能
Skills : 开发技能
MCP : 集成 MCP 服务器
Claude Code 支持两种主要的自定义工具开发方式:
插件工具和技能工具
plugins: plugin.json 是插件的核心配置文件
commands skills tools dependencies
技能文件采用 YAML 格式,包含元数据和技能定义
plugin-插件
# 打包插件
claude plugin package my-plugin
# 生成插件包
my-plugin-1.0.0.claude-plugin
# 启动调试模式
claude plugin debug my-plugin
# 查看日志
claude plugin logs my-plugin
Skill
技能定义文件 (SKILL.md)
Skills 的核心是一个简单的文件夹结构,包含一个必需的 SKILL.md 文件。
这个文件使用 YAML 前置元数据和 Markdown 指令来 定义 Skill 的功能和使用方式
skill-name/
├── SKILL.md # 必需
├── scripts/ # 可选:可执行代码
├── references/ # 可选:附加文档
└── assets/ # 可选:模板和资源
比较
Skills
:知识和工作流的封装机制,专注于AI代理能力的扩展和专业知识的组织
实现方式: 文件夹结构 + YAML + Markdown 协议规范和API
Claude Code生态系统
MCP
:通信协议标准,用于AI模型与外部工具、数据源和服务之间的标准化交互
插件:需要编程实现的系统集成
考虑因素
使用异步操作
实现重试机制
处理 API 限制
缓存 API 响应
Skill
1.一种通用的能力封装机制,旨在为AI助手提供可复用的专业技能
Skills 把“提示词”+“执行脚本”+“上下文优化”打包在一起的超级工具包
构建企业级的通用Agent系统时,Skills的真正价值开始显现
Commands提供了即时响应。它的设计哲学是"所见即所得"——输入一个指令,立即获得预期结果
SubAgent(子代理)则处理更复杂的编程任
开发者习惯的角度看 Commands的简洁性和SubAgent的专业性都符合这种偏好
相应的工具链和工作流程也相对稳定
使用模式是单一用户、单一会话——一个开发者在一个项目中持续工作,上下文相对连续且单一。
在这种模式下,能力复用的需求并不强烈-在个人开发场景中,缺乏大规模复用和协作的需求
2.场景转换带来的新挑战
从个人工具到企业级系统的跨越
在Agent研发场景中,Skills找到了自己的真正使命:解决模型泛化能力与用户具象意图之间的鸿沟
接口描述"——Skill能做什么、需要什么参数、会返回什么结果
3.**渐进式披露(按需加载)**是Skills的核心机制
Skills方案把AI看作"智能代理",赋予其在运行时根据情况选择合适工具的能力
4.如何使用
能力复用频率 能力复杂度 协作规模
多agent
单个 Agent 处理多类任务任务太多
OpenClaw 内实现多 Agent 的核心机制是:
Agent 是隔离的“脑”:拥有独立 workspace(记忆、技能等均在 workspace 中)、独立 sessions。
路由到哪个 Agent:由配置里的 bindings 决定(最具体规则优先)。
每个 Agent 用哪个模型:可在 agents.list[].model 单独配置
Openai
1. curl http://192.168.1.100:8000/v1/models
如果返回模型列表,则成功。如果返回错误但能连接 测试内网部署的 OpenAI 兼容 API 是否能够正常连通
2.
curl http://192.168.1.100:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxx" \
-d '{
"model": "your-model-name",
"messages": [{"role": "user", "content": "你好,介绍一下自己"}],
"temperature": 0.7
}'
NanoBot
NanoBot 如何使用最小骨架来运行 Agent——并使其可读、可修改和可控
使用的 liteLLM 是由BerriAI开发的开源工具,于2024年5月2日发布首个稳定版本。
该工具通过标准化OpenAI格式接口,支持对20多种大型语言模型(LLM)API的统一调用
OpenClaw 给你产品,NanoBot 给你骨架
"vllm" 这个 provider 配置项(因为它本质上是连接任何兼容 OpenAI API 的服务)
5.1 提供商配置#
nanobot 支持多种 LLM 提供商,包括
vllm(本地,任何 OpenAI 兼容服务器)
模型部署
硬件配置 推荐方案 理由
单卡 ≤ 24GB,仅供个人/小团队使用 Ollama 部署简单,量化模型显存占用低,启动快
单卡 ≥ 24GB,多人同时使用 vLLM 并发处理能力强,nanobot通过OpenAI接口对接最方便
vLLM(Virtual Large Language Model)
将vLLM集成到应用程序中。这可以通过OpenAI SDK或其他HTTP客户端库来实现。
向vLLM服务器发送请求,并接收模型生成的响应,从而完成与大型语言模型的交互
LiteLLM作为一个AI模型调用抽象层,其核心功能之一是为开发者提供统一的模型调用接口,同时透明地处理不同供应商的定价差异。
项目中的model_prices_and_context_window.json文件就是这个功能的关键实现部分,它包含了所有支持模型的价格和上下文窗口信息。
使用本地文件:
export LITELLM_LOCAL_MODEL_COST_MAP=True
此时 LiteLLM 会读取 litellm 目录下的 model_prices_and_context_window_backup.json 文件,不会访问网络。
一般位于lib/python3/site-packages/litellm/ 目录下的
LiteLLM 支持与主流的 密钥管理服务(Secrets Manager) 集成,允许你将凭据存储在企业级的密钥管理服务中,而不是 LiteLLM 的数据库中
参考
https://claudecode.tangshuang.net/tutorial/
https://www.jiajiewu.top/blog/authors/jiajiewu
https://github.com/HKUDS/nanobot
nanobot 安装教程 https://chuna2.787528.xyz/ghimi/p/19643992
https://github.com/BerriAI/litellm/blob/main/litellm/litellm_core_utils/get_model_cost_map.py
https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json