DeepSeek Harness — 内置模型工具(Tool)分类整理
分析对象:
packages/**/src下所有经defineTool(...)/ctx.tools.register(defineTool(...))注册、或运行时注入的模型侧工具。 排除:测试 fixture、浏览器端 UI 占位工具、zod schema 字段名(误报)。 所有工具均由独立「消费方」插件注册,底层能力提供方(Provider)可在不改工具契约的前提下替换。
一、总览(按能力族分组的工具数)
分析对象:
packages/**/src下所有经defineTool(...)/ctx.tools.register(defineTool(...))注册、或运行时注入的模型侧工具。 排除:测试 fixture、浏览器端 UI 占位工具、zod schema 字段名(误报)。 所有工具均由独立「消费方」插件注册,底层能力提供方(Provider)可在不改工具契约的前提下替换。
一、总览(按能力族分组的工具数)
Cline 能做什么?
Cline 是你的 AI 助手,可以:
入门步骤
开始任务
提供上下文
主要功能
文件编辑
终端命令
代码分析
可用工具
要了解最新的实现细节,你可以在 Cline 代码库 中查看完整源代码。
Cline 可以使用以下工具完成各种任务:
文件操作
write_to_file: 创建或覆写文件read_file: 读取文件内容replace_in_file: 对文件进行定向编辑search_files: 使用正则表达式搜索文件list_files: 列出目录内容终端操作 execute_command: 运行 CLI 命令 list_code_d
服务器通过MCP提供了为语言模型添加上下文的基本构建块。这些原语支持客户端、服务器和语言模型之间的丰富交互:
每个原语可以在以下控制层次结构中概括:
| 原语 | 控制方 | 描述 | 示例 |
|---|---|---|---|
| 提示 | 用户控制 | 由用户选择调用的交互式模板 | 斜杠命令、菜单选项 |
| 资源 | 应用程序控制 | 由客户端附加和管理的上下文数据 | 文件内容、Git历史 |
| 工具 | 模型控制 | 向LLM公开以执行操作的函数 | API POST请求、文件写入 |
提示词
模型上下文协议(MCP)提供了一种标准化方式,使服务器能够向客户端公开提示词模板。提示词允许服务器提供结构化消息和与语言模型交互的指令。客户端可以发现可用的提示词,获取其内容,并提供参数来自定义它们。
用户交互模型
提示词设计为用户控制的,这意味着它们从服务器暴露给客户端,目的是让用户能够明确选择使用它们。
通常,提示词会通过用户界面中的用户发起命令触发,这允许用户自然地发现和调用可用的提示词。
例如,作为斜杠命令:

然而,实现者可以自由地通过任何适合其需求的界面模式来公开提示词——协议本身不强制要求任何特定的用户交互模型。
能力
支持提示词的服务器必须在初始化期间声明prompts能力:
协议修订版本:2025-03-26
Model Context Protocol(MCP)是一个开放协议,它使 LLM 应用程序与外部数据源和工具之间能够无缝集成。无论您是构建 AI 驱动的 IDE、增强聊天界面,还是创建自定义 AI 工作流,MCP 都提供了一种标准化的方式来连接 LLM 与它们所需的上下文。
本规范基于 schema.ts 中的 TypeScript 模式,定义了权威的协议要求。
有关实现指南和示例,请访问 modelcontextprotocol.io。
概述
MCP 为应用程序提供了标准化的方式来:
该协议使用 JSON-RPC 2.0 消息在以下组件之间建立通信:
MCP 部分受到 Language Server Protocol 的启发,后者标准化了如何在整个开发工具生态系统中添加对编程语言的支持。类似地,MCP 标准化了如何将额外的上下文和工具集成到 AI 应用程序的生态系统中。
关键细节
基础协议
功能
服务器向客户端提供以下任何功能:
OpenAI Function Calling (OpenAI 函数调用)
import os
import openai
import json
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # read local .env file
openai.api_key = os.environ['OPENAI_API_KEY']
# Example dummy function hard coded to return the same weather
# In production, this could be your backend API or an external API
def get_current_weather(location, unit="fahrenheit"):
"""Get the current weather in a given location"""
weather_info = {
"location": location,
"temperature": "72",
"unit": unit,
"forecast": ["sunny", "windy"],
}
return json.dumps(weather_info)
# define a function
functions = [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
},
"required": ["location"],
},
}
]
messages = [
{
"role": "user",
"content": "What's the weather like in Boston?"
}
]
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages,
functions=functions
)
print(response)
{
"id": "chatcmpl-9CK2or9rtxzcsVgbfwWmIvqi36wF0",
"object": "chat.completion",
"created": 1712724014,
"model": "gpt-3.5-turbo-0125",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"function_call": {
"name": "get_current_weather",
"arguments": "{\"location\":\"Boston\",\"unit\":\"celsius\"}"
}
},
"logprobs": null,
"finish_reason": "function_call"
}
],
"usage": {
"prompt_tokens": 82,
"completion_tokens": 20,
"total_tokens": 102
},
"system_fingerprint": "fp_b28b39ffa8"
}
LangChain for LLM Application Development
LangChain 是用于构建 LLM 应用程序的开源框架
LangChain: Models, Prompts and Output Parsers
安装依赖包
pip install python-dotenv
pip install openai
ChatCompletion import os import openai from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) # read local .env file openai.api_key = os.environ['OPENAI_API_KEY'] def get_completion(prompt, model="gpt-3.5-turbo"): messages = [{"role": "user", "content": prompt}] response = openai.ChatCompletion.
链允许我们将多个组件组合在一起以创建一个单一的、连续的应用程序。我们可以通过将多个链组合在一起,或者通过将链与其他组件组合来构建更复杂的链。
LLMChain 是一个简单的链,它接受一个提示模板,用用户输入格式化它并返回来自 LLM 的响应。
语言模型(text-davinci-003) from langchain.chains import LLMChain from langchain.llms import OpenAI from langchain.prompts import PromptTemplate llm = OpenAI(temperature=0.9) prompt = PromptTemplate(input_variables=["product"], template="What is a good name for a company that makes {product}?
ChatGPT Wrapper is an open-source unofficial Power CLI, Python API and Flask API that lets you interact programmatically with ChatGPT.
安装
必要条件
brew install moreutils
sudo apt install moreutils
创建虚拟环境
mkdir chatgpt-wrapper && cd chatgpt-wrapper
python -m venv env
source ./env/bin/activate
使用 GitHub 安装最新版本
pip install --upgrade pip
pip install git+https://github.com/mmabrouk/chatgpt-wrapper
在 Playwright 中安装浏览器,默认为 firefox。
playwright install
ChatGPT 安装
以安装模式启动程序。 这将打开一个浏览器窗口。 在浏览器窗口中登录 ChatGPT,然后停止该程序。
test.json
{ "stuff": { "that": [1,2,3], "isin": true, "json": "end"}}
jq
在命令行运行
jq . <<< '{ "stuff": { "that": [1,2,3], "isin": true, "json": "end"}}'
jq . test.json
在vim的命令模式下运行
%!jq .
python json.tool
在命令行运行
python -m json.tool <<< '{ "stuff": { "that": [1,2,3], "isin": true, "json": "end"}}'
python -m json.tool test.json
在vim的命令模式下运行
%!python -m json.tool
在线格式化 Format JSON JSON Formatter JSON Formatter, Validator, Vi
架构图

安装
Remote
Local
连接远程主机



关闭远程连接
Remote Explorer
管理您的远程连接

在远程主机上打开终端
选择菜单:Terminal > New Terminal

在远程主机调试
在Extensions窗口中选择要在远程主机上安装的调试器,按F5。

FAQ "Visual Studio Code is unable to watch for file changes in this large workspace" (error
编辑
Command+/Option+Shift+f选择
Option+Shift,按住鼠标左键拖动Option,按住鼠标左键拖动转到
Ctrl+gCommand+p导航
Ctrl+-Shift+Ctrl+-视图
Option+z窗口
Command+bCtrl+Tab场景
当有一堆图片文件使用键盘进行快速浏览
Command+Shift+e 打开资源管理器。Space(filesExplorer.openFilePreserveFocus) 打开文件保留焦点。参考资料
准备
硬件


软件
PINOUT

搭建 MicroPython 开发环境
安装工具
esptoolpip3 install esptool
esptool.py read_mac 命令,确认连接成功。$ esptool.py read_mac
esptool.py v3.0
Found 2 serial ports
Serial port /dev/cu.usbserial-0001
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: f4:cf:a2:ec:0a:86
Uploading stub...
Running stub...
Stub running...
MAC: f4:cf:a2:ec:0a:86
Hard resetting via RTS pin...
$ ls /dev/cu*
/dev/cu.Bluetooth-Incoming-Port /dev/cu.usbserial-0001
烧录固件 下载 ESP8266固件 wget https://micropython.
快捷键
Command+I 显示选中的文件的“显示简介”窗口
Command+W 关闭当前应用的窗口
Command+Q 退出当前应用程序(和command+tab配合可快速批量关闭应用程序)
Command+Delete 移到废纸篓
Command+Shift+Delete 清倒废纸蒌,需要确认。
Command+Option+Shift+Delete 清倒废纸蒌,不需要确认。
Command+C 复制
Command+Option+C 复制文件或者文件夹的路径
Command+V 粘贴
Command+Option+V 移动(剪切)
Command+Option+D 显示或隐藏 Dock
Command+Control+F 当前窗口全屏
Command+H 当前窗口隐藏
Command+M 当前窗口最小化
Command+Option+Power 休眠
Control+Shift+Power 关闭屏幕
Control+F2 将焦点移到菜单栏
按住 Option ,单击 屏幕右上角。 打开|关闭勿扰模式
F11 隐藏|打开 所有打开的窗口(回到桌面)
Fn+F3 Command-Mission Control (F3) 显示桌面
Fn+F4 Launchpad
Command+Shift+5 随意截取或者录制窗口的图像和视频
Command+Shift+3 将屏幕捕捉到文件
Command+Shift+4 将所选屏幕内容捕捉到文件,或按空格键仅捕捉一个窗口
Command-Shift-Control-3 将屏幕内容捕捉到剪贴板
Command-Shift-Control-4 将所选屏幕内容捕捉到剪贴板,或按空格键仅捕捉一个窗口