@clawhub-liutao0401-afk-55af1703f6
Interact directly with Claude via Anthropic Messages API using your own API key to send and receive natural language tasks and responses.
# anthropic-chat — Anthropic Messages API 调用
## 功能
直接通过 Anthropic Messages API 与 Claude 对话。
## 环境变量
- `ANTHROPIC_API_KEY` — Anthropic API key(必填)
## 调用方式
- `sessions_spawn` + `runtime=acp`,在 `task` 里写自然语言描述任务
- Skill 会自动使用 Messages API 发送请求并返回结果
## 认证
直接使用用户已有的 API key,不需要额外认证。
## 示例任务
- "让 anthropic-chat 用 Claude Opus 4 解释量子纠缠"
- "调用 anthropic-chat,用 Sonnet 4 写一首关于月亮的诗"
FILE:anthropic-chat.js
#!/usr/bin/env node
// anthropic-chat: Direct Anthropic Messages API caller
const http = require('http');
const https = require('https');
const { URL } = require('url');
const API_KEY = process.env.ANTHROPIC_API_KEY || process.env.ANTHROPOPIC_API_KEY;
const MODEL = process.env.ANTHROPIC_MODEL || 'claude-sonnet-4-20250514';
const MAX_TOKENS = 4096;
if (!API_KEY) {
console.error('Error: ANTHROPIC_API_KEY environment variable is not set.');
console.error('Please set it in your environment or .env file.');
process.exit(1);
}
const body = JSON.stringify({
model: MODEL,
max_tokens: MAX_TOKENS,
messages: [{ role: 'user', content: TASK || 'Hello, Claude.' }]
});
const url = new URL('https://api.anthropic.com/v1/messages');
const options = {
hostname: url.hostname,
port: 443,
path: url.pathname,
method: 'POST',
headers: {
'x-api-key': API_KEY,
'anthropic-version': '2023-06-01',
'content-type': 'application/json',
'content-length': Buffer.byteLength(body)
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
try {
const parsed = JSON.parse(data);
if (parsed.error) {
console.error('API Error:', parsed.error);
process.exit(1);
}
console.log(JSON.stringify(parsed, null, 2));
} catch (e) {
console.error('Failed to parse response:', data);
process.exit(1);
}
});
});
req.on('error', (e) => {
console.error('Request failed:', e.message);
process.exit(1);
});
req.write(body);
req.end();