bland-cli 0.2.8 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -4
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -126,9 +126,9 @@ nodes:
|
|
|
126
126
|
Greet the customer warmly. Ask how you can help them today.
|
|
127
127
|
edges:
|
|
128
128
|
- target: identify_issue
|
|
129
|
-
|
|
129
|
+
label: "Customer describes their problem"
|
|
130
130
|
- target: transfer_human
|
|
131
|
-
|
|
131
|
+
label: "Customer asks for a human"
|
|
132
132
|
|
|
133
133
|
identify_issue:
|
|
134
134
|
type: default
|
|
@@ -140,9 +140,9 @@ nodes:
|
|
|
140
140
|
description: "billing, technical, or general"
|
|
141
141
|
edges:
|
|
142
142
|
- target: billing_help
|
|
143
|
-
|
|
143
|
+
label: "Issue is about billing"
|
|
144
144
|
- target: tech_help
|
|
145
|
-
|
|
145
|
+
label: "Issue is technical"
|
|
146
146
|
|
|
147
147
|
billing_help:
|
|
148
148
|
type: default
|
|
@@ -438,6 +438,8 @@ Add to your Claude Code config:
|
|
|
438
438
|
|
|
439
439
|
| Tool | What it does |
|
|
440
440
|
|------|-------------|
|
|
441
|
+
| `bland_guide_list` | List all available guides (start here) |
|
|
442
|
+
| `bland_guide_get` | Read a specific guide by slug |
|
|
441
443
|
| `bland_call_send` | Make a phone call |
|
|
442
444
|
| `bland_call_list` | List recent calls |
|
|
443
445
|
| `bland_call_get` | Get call details and transcript |
|
|
@@ -455,6 +457,71 @@ Add to your Claude Code config:
|
|
|
455
457
|
| `bland_knowledge_list` | List knowledge bases |
|
|
456
458
|
| `bland_audio_generate` | Generate TTS audio |
|
|
457
459
|
|
|
460
|
+
## For LLMs
|
|
461
|
+
|
|
462
|
+
The CLI ships with a built-in guide system designed to give LLMs (Claude, Cursor, GPT, etc.) the context they need to build good pathways — not just call the API, but actually understand how phone conversations work.
|
|
463
|
+
|
|
464
|
+
### How it works
|
|
465
|
+
|
|
466
|
+
When an LLM connects via MCP, it receives:
|
|
467
|
+
|
|
468
|
+
1. **`instructions`** — a condensed overview of the Bland platform, pathway architecture, common mistakes, and recommended workflow. This loads automatically on connect.
|
|
469
|
+
2. **`bland_guide_list` / `bland_guide_get`** — tools to pull long-form guides on demand for deeper context.
|
|
470
|
+
|
|
471
|
+
The guides are also available to humans via the CLI:
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
bland guide # List all guides
|
|
475
|
+
bland guide phone-tone # Writing natural phone prompts
|
|
476
|
+
bland guide pathways # Node/edge architecture and execution model
|
|
477
|
+
bland guide tools # Webhook and custom tools on nodes
|
|
478
|
+
bland guide testing # Chat, simulate, node tests
|
|
479
|
+
bland guide variables # Extracting and using caller data
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
### What the guides cover
|
|
483
|
+
|
|
484
|
+
| Guide | What it teaches |
|
|
485
|
+
|-------|----------------|
|
|
486
|
+
| `phone-tone` | How to write prompts that sound like a real person on the phone — not a chatbot. Covers back-channeling, brevity, empathy, and topic transitions. |
|
|
487
|
+
| `pathways` | How the conversation graph works: nodes, edges, global nodes, variables, the global prompt, and the execution model. |
|
|
488
|
+
| `tools` | Attaching webhook and custom tools to nodes for real-time data (check availability, look up orders). Covers `speech`, `behavior`, and `response_data`. |
|
|
489
|
+
| `testing` | The full testing workflow: `pathway chat` for interactive testing, `simulate` for end-to-end AI personas, `node-test` for stress-testing individual nodes. |
|
|
490
|
+
| `variables` | Extracting structured data from natural conversation with `extract_variables`, using `{{curly_braces}}` in prompts, and `spelling_precision` for names/emails. |
|
|
491
|
+
|
|
492
|
+
### Why this matters
|
|
493
|
+
|
|
494
|
+
LLMs building pathways make predictable mistakes:
|
|
495
|
+
- Writing edge labels as boolean conditions (`if intent == "booking"`) instead of natural language (`Caller wants to book an appointment`)
|
|
496
|
+
- Making prompts too verbose and chat-like instead of concise and phone-natural
|
|
497
|
+
- Forgetting global nodes for edge cases callers will absolutely hit
|
|
498
|
+
- Not setting a global prompt for tone, so every node sounds different
|
|
499
|
+
- Building without testing — the guides teach `pathway chat --verbose` first, real calls second
|
|
500
|
+
|
|
501
|
+
The guide system fixes this by giving the LLM opinionated, Bland-specific knowledge before it starts writing. It's the difference between an LLM that can call the API and one that actually builds good phone agents.
|
|
502
|
+
|
|
503
|
+
### Default phone tone
|
|
504
|
+
|
|
505
|
+
When you scaffold a new pathway with `bland pathway init`, the global prompt comes pre-loaded with phone-tone instructions:
|
|
506
|
+
|
|
507
|
+
```yaml
|
|
508
|
+
global:
|
|
509
|
+
prompt: |
|
|
510
|
+
Sound natural and midwestern. Everything you say is spoken aloud on a phone call.
|
|
511
|
+
Play this game silently for every reply: what is the most accurate response,
|
|
512
|
+
then how can I reduce it to the fewest words without sounding rude?
|
|
513
|
+
Never recontextualize — no 'just to confirm', 'you said', 'got it'.
|
|
514
|
+
Use 'gotcha', 'yup', 'cool'.
|
|
515
|
+
Back-channel freely: 'mhmm', 'uh huh', 'right'.
|
|
516
|
+
Acknowledge emotions in stride.
|
|
517
|
+
Topic transitions are natural breaks — slightly more formal.
|
|
518
|
+
Within a topic, keep it tight.
|
|
519
|
+
After collecting one field, move immediately: 'And last?' not
|
|
520
|
+
'Could you also provide your last name?'
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
This sets the baseline voice for every node. LLMs using the MCP tools will also receive this guidance through the `phone-tone` guide.
|
|
524
|
+
|
|
458
525
|
## Local Webhook Development
|
|
459
526
|
|
|
460
527
|
Forward Bland webhooks to your local dev server without ngrok:
|
package/dist/index.js
CHANGED
|
@@ -26,7 +26,7 @@ const program = new Command();
|
|
|
26
26
|
program
|
|
27
27
|
.name("bland")
|
|
28
28
|
.description("The official Bland AI command-line interface")
|
|
29
|
-
.version("0.2.
|
|
29
|
+
.version("0.2.9");
|
|
30
30
|
// Register all command groups
|
|
31
31
|
registerAuthCommand(program);
|
|
32
32
|
registerCallCommand(program);
|