最简单的对话
和其他所有的 Agent 框架一样,你可以利用 openmcp-sdk 完成一个和大模型最简单的文本交互。这只需要几行代码就能轻松完成。
创建 agent
openmcp-sdk 通过如下语句可以快速创建一个 agent 实例:
typescript
import { OmAgent } from 'openmcp-sdk/service/sdk';
const agent = new OmAgent();它是我们后续一切工作的基础。
设置大模型
通过 setDefaultLLM 可以设置默认的大模型。此处以 deepseek 为例:
typescript
agent.setDefaultLLM({
baseURL: 'https://api.deepseek.com',
apiToken: 'sk-xxxxxxxxxxxxxxxx',
model: 'deepseek-chat',
});TIP
为了防止 api key 在代码中,从而泄漏,我们建议通过环境变量来输入:
在您的 bashrc 或者 zshrc 文件中添加如下内容:
bash
export OPENMCP_API_TOKEN=sk-xxxxxxxxxxxxxxxx然后修改上述代码:
typescript
agent.setDefaultLLM({
baseURL: 'https://api.deepseek.com',
apiToken: process.env['OPENMCP_API_TOKEN'],
model: 'deepseek-chat',
});其他的大模型接入参数请参考各个大模型厂家自己的文档说明。
发送对话
通过 ainvoke 方法,我们可以直接把文本发送给大模型完成一次交互和对话:
typescript
const result = await agent.ainvoke({ messages: '你好,我是 LSTM-Kirigaya,我的另一个名字是锦恢' });
console.log(result)运行上面的代码,你会得到如下的回复:
你好,LSTM-Kirigaya(锦恢)!很高兴认识你~
你的名字结合了技术(LSTM,长短期记忆网络)和动漫元素(Kirigaya可能让人联想到《刀剑神域》的桐谷和人/桐人),而“锦恢”这个中文名又很有诗意,听起来像是一位对AI和二次元都充满热情的伙伴呢!
有什么想聊的吗?无论是技术、ACG,还是名字背后的故事,我都乐意倾听~ ✨显示调用价格
你还可以通过如下的代码设置大模型的调用费用,这样子,openmcp-sdk 在 agent loop 执行结束后就会输出当前一次调用的 token 价格。
typescript
agent.setDefaultLLM({
baseURL: 'https://api.deepseek.com',
apiToken: process.env['OPENMCP_API_TOKEN'],
model: 'deepseek-chat',
pricing: {
inputPerMilleHitCache: 0.2,
inputPerMille: 2,
outputPerMille: 3,
unit: 'rmb'
}
});执行代码,获得类似于下面的输出:
2025/6/20 - 20:47:31 | 🚀 [crawl4ai-mcp] 1.9.1 connected, type STDIO
2025/6/20 - 20:47:35 | 🤖 Agent wants to use these tools get_web_markdown
2025/6/20 - 20:47:39 | ✅ get_web_markdown success
2025/6/20 - 20:47:46 | 🤖 Agent wants to use tools(3) get_web_markdown, get_web_markdown, get_web_markdown
2025/6/20 - 20:47:48 | ✅ get_web_markdown success
2025/6/20 - 20:47:54 | ✅ get_web_markdown success
2025/6/20 - 20:47:57 | ✅ get_web_markdown success
└─ ⬇️145434 ⬆️1554 🎯96.1% 💰0.0439 rmb