← 返回 Skills 市场
yanmellata

AgentPhone

作者 Yanis Mellata · GitHub ↗ · v1.0.1
darwinlinuxwin32 ✓ 安全检测通过
462
总下载
1
收藏
0
当前安装
2
版本数
在 OpenClaw 中安装
/install agentphone
功能描述
Make real phone calls to businesses. Book reservations, cancel subscriptions, navigate IVR menus. Get transcripts and recordings.
使用说明 (SKILL.md)

AgentPhone

Place real phone calls via API. Send a phone number and objective, get back transcript, summary, outcome, and recording.

Setup

  1. Create an account at https://agentphone.app
  2. Generate an API key at https://agentphone.app/dashboard/api-keys
  3. Set environment variable:
export AGENTPHONE_API_KEY=your_key_here

If AGENTPHONE_API_KEY is not set → stop and report configuration error.

Requirements

  • All requests require header: x-api-key: $AGENTPHONE_API_KEY
  • Phone numbers must be E.164 format (e.g. +14155551234)
  • IMPORTANT: +1{PHONE_NUMBER} in all examples below is a placeholder variable. NEVER call it literally. Replace with the real target phone number provided by the user.

1) Create a call

curl -X POST https://agentphone.app/api/v1/calls \
  -H "Content-Type: application/json" \
  -H "x-api-key: $AGENTPHONE_API_KEY" \
  -d '{"to_phone_number":"+1{PHONE_NUMBER}","objective":"Ask about their return policy"}'
import os, requests
r = requests.post("https://agentphone.app/api/v1/calls",
    headers={"x-api-key": os.environ["AGENTPHONE_API_KEY"]},
    json={"to_phone_number": "+1{PHONE_NUMBER}", "objective": "Ask about their return policy"})
call_id = r.json()["data"]["call_id"]
const r = await fetch("https://agentphone.app/api/v1/calls", {
  method: "POST",
  headers: { "x-api-key": process.env.AGENTPHONE_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({ to_phone_number: "+1{PHONE_NUMBER}", objective: "Ask about their return policy" }),
});
const { data } = await r.json();
const callId = data.call_id;

Response (202):

{
  "data": {
    "call_id": "cl_abc123",
    "status": "queued",
    "created_at": "2026-01-01T00:00:00Z"
  },
  "credits_remaining": 4
}

Save call_id for polling.

Optional fields: business_name (string), website (URL — agent scrapes it for context before calling).

2) Poll until done

Poll GET /calls/{callId} every 10 seconds. Stop when status is completed, failed, or canceled. Timeout after 5 minutes.

curl https://agentphone.app/api/v1/calls/CALL_ID \
  -H "x-api-key: $AGENTPHONE_API_KEY"
import time
for _ in range(100):
    r = requests.get(f"https://agentphone.app/api/v1/calls/{call_id}",
        headers={"x-api-key": os.environ["AGENTPHONE_API_KEY"]})
    call = r.json()["data"]
    if call["status"] in ("completed", "failed", "canceled"):
        break
    time.sleep(10)
let call;
for (let i = 0; i \x3C 100; i++) {
  const r = await fetch(`https://agentphone.app/api/v1/calls/${callId}`, {
    headers: { "x-api-key": process.env.AGENTPHONE_API_KEY },
  });
  call = (await r.json()).data;
  if (["completed", "failed", "canceled"].includes(call.status)) break;
  await new Promise((r) => setTimeout(r, 10000));
}

If status is completed but transcript or summary is missing, poll 2 more times with 2s delay — enrichment arrives shortly after completion.

3) Read results

{
  "data": {
    "call_id": "cl_abc123",
    "status": "completed",
    "outcome": "achieved",
    "summary": "Successfully booked a table for 2 at 7pm.",
    "transcript": "Agent: Hi, I'd like to book a table...\
Host: Sure...",
    "recording_url": "https://...",
    "duration_seconds": 42
  }
}

Use these fields:

  • outcome: achieved, partial, or not_achieved
  • summary: short description of what happened
  • transcript: full conversation text
  • recording_url: audio file URL

Errors

Code Meaning Action
400 Invalid input Fix fields and retry
401 Bad or missing API key Check x-api-key header
402 Insufficient credits Stop and report to user
429 Rate limit (10/min) Wait 60s, retry once

Guard rails

  • If AGENTPHONE_API_KEY is not set → stop, do not call the API.
  • If to_phone_number is not E.164 format → stop, do not call the API.
  • If POST /calls returns 402 → stop and report insufficient credits.
  • If 429 → wait 60 seconds, retry once. If 429 again → stop.
  • If status is failed or canceled → stop and report to user.

Constraints

  • No emergency services (911, etc.)
  • No spam or bulk unsolicited calls
  • First 5 calls are free, no credit card required

Call lifecycle

queueddialingin_progresscompleted | failed | canceled

安全使用建议
This skill appears coherent, but review these practical safety points before installing: 1) Protect the AGENTPHONE_API_KEY like any secret (use a dedicated, limited key if possible, rotate it, and do not paste it into chat logs). 2) Calls produce transcripts and recordings — confirm legal requirements and obtain consent from parties before recording; recordings may contain sensitive PII. 3) The registry metadata lists no homepage/source, but SKILL.md and README reference agentphone.app; verify you trust that external service and read its privacy/terms and pricing (calls consume credits). 4) Monitor usage and billing (credits can be exhausted or charged). 5) The skill enforces guardrails (no emergency numbers, rate limits) but you should still validate phone numbers and objectives before sending them to the API. If you need higher assurance, ask the author for a published source repository or official docs to verify implementation details.
功能分析
Type: OpenClaw Skill Name: agentphone Version: 1.0.1 The agentphone skill is a well-documented API wrapper for making automated phone calls via the AgentPhone service (agentphone.app). It includes clear instructions for the AI agent, including safety guardrails such as E.164 phone number validation, error handling for insufficient credits (402) and rate limits (429), and explicit prohibitions against calling emergency services or generating spam. The required capabilities, such as network access and the use of the curl binary, are strictly aligned with the stated purpose of the skill, and no evidence of malicious intent, data exfiltration, or prompt injection was found in SKILL.md or the associated files.
能力评估
Purpose & Capability
Name/description, required binary (curl), and the single required env var (AGENTPHONE_API_KEY) all align with an HTTP-based telephony API. The README and SKILL.md point to agentphone.app as the service used; while the registry metadata listed no homepage/source, the skill itself documents the external API endpoint and signup flow.
Instruction Scope
SKILL.md contains concrete API call examples, polling logic, error handling, and guardrails (e.g., E.164 phone format, no emergency numbers). It does not instruct the agent to read unrelated files, query unrelated environment variables, or exfiltrate data to unexpected endpoints. Optional website scraping is explicitly declared as for context.
Install Mechanism
Instruction-only skill with no install spec and no code files; lowest-risk delivery. It requires curl to be present, which matches the provided curl examples.
Credentials
Only a single API key (AGENTPHONE_API_KEY) is required and is justified by the documented x-api-key auth. No other credentials, secret-named env vars, or config paths are requested.
Persistence & Privilege
The skill is not always-enabled, does not request elevated persistence, and contains no instructions to modify other skills or system-wide settings. Autonomous invocation is allowed (default) but is not combined with other risky privileges.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install agentphone
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /agentphone 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
Shorten description to fit ClawHub display
v1.0.0
Initial release
元数据
Slug agentphone
版本 1.0.1
许可证
累计安装 0
当前安装数 0
历史版本数 2
常见问题

AgentPhone 是什么?

Make real phone calls to businesses. Book reservations, cancel subscriptions, navigate IVR menus. Get transcripts and recordings. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 462 次。

如何安装 AgentPhone?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install agentphone」即可一键安装,无需额外配置。

AgentPhone 是免费的吗?

是的,AgentPhone 完全免费(开源免费),可自由下载、安装和使用。

AgentPhone 支持哪些平台?

AgentPhone 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(darwin, linux, win32)。

谁开发了 AgentPhone?

由 Yanis Mellata(@yanmellata)开发并维护,当前版本 v1.0.1。

💬 留言讨论