From 4fcc2147b768e3349c2cea79011bc0fda345bcfd Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Wed, 21 May 2025 15:05:00 +0200 Subject: [PATCH 01/30] Book 2 Draft --- ABSTRACT.md | 18 +----------------- BLUEPRINT.md | 48 +++++++++++++----------------------------------- 2 files changed, 14 insertions(+), 52 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 75f3a39c..650dbe7a 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,19 +1,3 @@ # 🤍 The Book Abstract -**It's time for a paradigm shift! The future of software is written in plain English, French, or Latin.** - -During the computer revolution, we have seen [multiple generations of computer languages](https://github.com/webgptorg/promptbook/discussions/180), from the physical rewiring of the vacuum tubes through low-level machine code to the high-level languages like Python or JavaScript. And now, we're on the edge of the **next revolution**! - - - -It's a revolution of writing software in **plain human language** that is understandable and executable by both humans and machines – and it's going to change everything! - -The incredible growth in power of microprocessors and the Moore's Law have been the driving force behind the ever-more powerful languages, and it's been an amazing journey! Similarly, the large language models (like GPT or Claude) are the next big thing in language technology, and they're set to transform the way we interact with computers. - -This shift will happen whether we're ready or not. Our mission is to make it excellent, not just good. - -**Join us in this journey!** +!!!! diff --git a/BLUEPRINT.md b/BLUEPRINT.md index 5edf4273..32bb5c56 100644 --- a/BLUEPRINT.md +++ b/BLUEPRINT.md @@ -1,47 +1,28 @@ # 📘 Book Language Blueprint -_A concise, Markdown-based DSL for crafting AI workflows and automations._ - - - ## Introduction +Book is a prompt with commitments !!!! + + ## Example ```book -# 🌟 My First Book - -- BOOK VERSION 1.0.0 -- URL https://promptbook.studio/hello.book -- INPUT PARAMETER {topic} -- OUTPUT PARAMETER {article} +Write an article about {topic} -# Write an Article - -- PERSONA Jane, marketing specialist with prior experience in tech and AI writing -- KNOWLEDGE https://wikipedia.org/ -- KNOWLEDGE ./journalist-ethics.pdf -- EXPECT MIN 1 Sentence -- EXPECT MAX 5 Pages +PERSONA Jane, marketing specialist with prior experience in tech and AI writing +KNOWLEDGE https://wikipedia.org/ +KNOWLEDGE ./journalist-ethics.pdf +EXPECT 1 Sentence - 5 Pages +RESULT {article} +``` -> Write an article about {topic} +!!!! -→ {article} -``` + ## **3. How:** Knowledge, Instruments and Actions From e024474f01c4f2191361db34e6536bb435aee988 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Sat, 24 May 2025 11:12:12 +0200 Subject: [PATCH 02/30] Working on Book 2.0 11:11 --- ABSTRACT.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ABSTRACT.md b/ABSTRACT.md index 650dbe7a..96e1862f 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,3 +1,7 @@ # 🤍 The Book Abstract !!!! + + + +Youtube video From 5689c1dac1c7f04b2fecf37e8a9920250ddc7db5 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Fri, 20 Jun 2025 19:24:45 +0200 Subject: [PATCH 03/30] =?UTF-8?q?=F0=9F=93=98=20Book=20Language=20Blueprin?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BLUEPRINT.md | 183 +++++++++++++------------------------ books/diagram/books.drawio | 30 ++++++ books/diagram/books.png | Bin 0 -> 71392 bytes books/diagram/books.svg | 1 + 4 files changed, 93 insertions(+), 121 deletions(-) create mode 100644 books/diagram/books.drawio create mode 100644 books/diagram/books.png create mode 100644 books/diagram/books.svg diff --git a/BLUEPRINT.md b/BLUEPRINT.md index 32bb5c56..da052cc8 100644 --- a/BLUEPRINT.md +++ b/BLUEPRINT.md @@ -1,14 +1,10 @@ # 📘 Book Language Blueprint -## Introduction +Book is a simple format do define AI apps and agents. It is the source code the soul of AI apps and agents.. It's purpose is to avoid ambiguous UIs with multiple fields and low-level ways like programming in langchain. -Book is a prompt with commitments !!!! +Book is defined in file with .book extension - - -## Example +## Examples ```book Write an article about {topic} @@ -20,159 +16,104 @@ EXPECT 1 Sentence - 5 Pages RESULT {article} ``` -!!!! - - -## 🏋️‍♂️ Workforce +### `PERSONA` -The workforce is an abstraction above LLM models, tokens, temperature, top-k, top-p, and other model parameters. You can describe what you desire in human language like `Jane, creative writer with a sense of sharp humor` instead of `gpt-4-2024-13-31, temperature 1.2, top-k 40, STOP token ".\n",...`. +defines basic contour of -### Persona +> PERSONA @Joe Average man with -A persona is the basic unit of the workforce. It is defined by its description; for example, `Jane, creative writer with a sense of sharp humor`. +also the PERSONA is -This persona description is used to select the best model and parameters for the job. If the persona has conflicting requirements, Promptbook will try to find the best compromise or even combine multiple models to achieve the best result. +Describes -> For example, `Josh, lawyer with perfect language and logic capabilities and a strong sense of privacy` is not possible to achieve with one model. Big models like `GPT-4` or `Claude-3.5` are great for language and logic, but they send data to the cloud. On the other hand, `LLAMA-3` is great for privacy but not as strong in language and logic. Therefore, Promptbook will create an ad-hoc meta-model using `LLAMA-3` to strip all data, `GPT-4` for language and logic, and then back to `LLAMA-3` to reintroduce sensitive data. +### `RULE` or `RULES` -Each persona can have access to different knowledge, instruments, and actions. +defines -### Team +### `STYLE` -A team groups personas together. A team can also group other teams to form a complex responsibility hierarchy. Each team can have access to different knowledge, instruments, and actions. +### `SAMPLE` -### Role +### `KNOWLEDGE` -A role is an ad-hoc modification of a persona. A role can be defined for a specific task; for example, `Jane (email writer)`. Roles have access to the same knowledge, instruments, and actions as their parent persona. +### `EXPECT` -## 💡 Knowledge +### `FORMAT` -Knowledge is external information that is used in task jobs. Knowledge can be: +### `JOKER` -- `Explicit` as a text directly in the workflow, team, or persona -- `File` which is referenced from the workflow, team, or persona - We support various file types like `pdf`, `docx`, `txt`, `md`, `odt`, `doc`, `rtf`, and it's possible to easily add support for other file types. The file is parsed and stored in the knowledge base -- `Website` which is referenced from the workflow, team, or persona - The website is scraped and stored in the knowledge base +### `MODEL` -### Knowledge piece +### `ACTION` -A knowledge piece is the smallest unit of knowledge that makes sense on its own. Every type of knowledge—explicit text, file, or website—is parsed/scraped and divided into knowledge pieces. These pieces are indexed, put into the knowledge base, and can be used in task jobs via techniques like retrieval-augmented generation. +## Names -## 🛠 Instruments +each commitment is -Instruments are external information that cannot be pre-scraped and need to be fetched at the moment of the task job. For example: +`PERSONA` -- Current **Time and date** -- User's **Location** -- **Searching** the internet -- Computing some **mathematical expression** -- **Weather** in some location -- **Stock price** of some company -- Availability of some **Domain name** -- Calling a **GET** endpoint of an API +Variable names -This is an abstraction above function calling and API calling in models. +## Types -## ☎ Actions +## Miscellaneous aspects of Book language -Actions are similar to instruments but can change the state of the world. For example: +### Named vs Anonymous commitments -- **Sending email** -- **Creating a file** -- **Ending a workflow** -- Calling a **POST** endpoint of an API +### Single line vs multiline - +### Bookish vs Non-bookish definitions diff --git a/books/diagram/books.drawio b/books/diagram/books.drawio new file mode 100644 index 00000000..0d4b8def --- /dev/null +++ b/books/diagram/books.drawio @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/books/diagram/books.png b/books/diagram/books.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3502a53e5aa9007cd066ad8c9871301fe5a70f GIT binary patch literal 71392 zcmeFZ1z1(v+BOUppdu-V^rBIakW@lgbW0;4-Q6IeE@c7IN{4ipq#$4*ASvCTfOH55 zNdIFJJI{OeIq&SuxD>SI?uMpkPXf!|$S?oTfxU zLH&q+4&3>cvMvk$pxWOR6GF*rC7D4%(XMq6QFE|#F*3CRA{nIvK0#+F6-e86Q4%uyZs#EMQ@3Wv--a zXKd(j_(Vs~Lf6V1dd4n7!*U1I3jJdjHZavSw$rr)7goBKN6pIX8XGblwQXu}_`aL< zO;sTweb+lm!X^gF@H=p23)er^c3h{WiuG~37Xc+?IJo9I9P z?k}@pXJ~aal>bR}N2~6nYXPM5K(JK|?Ho+Ow1WN$TU$Bknpy$*K9F^L2iIfiw|6$R z1VRg55pp&$bud)4(bb3EcLu@*?wL4PT7WB7@bkE&sHug8u(gFXv{wuajdUF?K<|YP zD|P}+8XimH;Vm28U&nVa4Q>5@Wcfguqt*ZW{fBhSAB2SGXl{O885%augGsZu(Y5+j znmBD8AsG}hu-3O{GPQCrw6oH+V1jldlMyRB8;8M7eI_m=BO@j~R&MZ1kBf^*Uys|6 zi-(Pi(@>uSRC-ha_+@;!CWp<~fHrw*2+>Z`)%rFg;YAzf|r3MD6(EkNr6s_Mf|C1jLld{y-r?%JZmw z@ay1#k*=jF(1+}YdX-bx5)#m(A>XwI-LnQIWvs2hpWi>EVG{;VEWs1dG9=wVT3PfD zMHs5g&RCBg2mw^+_z%NjAw6Avb7MPeM=JxS-;{T-)3pLM9m+LS*FpE3bnQ%aLI15B zEe-8V^$+`LWo>5(cHlvazbj>^Ywy6MYY*P|i-Niq2ZG=LX=JFg|7DFf*7l|jrq+K| zpP{9-ndzUaf_5&XESPjHOpTA~(9^XygrwxK`v>ZQ>0kz-$*|D1u?J6}F4@=_+8f$A z9hUp!qRZ%-18d0wdglQCfbOxeNCUHJXdnUogqkooz7N*zNSBBnipcN9`0(D}kmP@( z*nqtai47|Y*nZFtHde0xhUhpS=_+V4xquA*SzJzp>OeLAqDgMDNLbl80*U&MlbB-- zbEI$n8`5&3Xbv{W9~BMrUkC%R;J^_6UZsE=e?y=A(K6m-V`bw2ZT{Xk-u#=!k>%hn zXy+GO{GV?dSvlDM$JX&g#R1RbpRt?rB6k(#WFd?27jk`K7EgSwW3_gZMG}hTPORdI zNF0mAfm?bIW*WNKfWXAiO8>y)*0;8Cb+!W$KM2%VbgdvKT>LKh-$ALra;*Lbwv>hQ z&$jf?X#O$IJTawzJJ38arT?TUm6DZHl@@`EiTr08)02qdUzD2AH*_$yV%B&23wwE@ z?EafMwUf93qyzs?=iB}j%8vCYs6ENU>i);(VL?&@BwZnW2a@<~qTv4kd;s8z=z$gl zfBzd=(7@CQy!AV*;UA7hPh<+@|Np~t`^O@q2Z24m69XVme=CI#ZvPFL`BPyw;HdqI z4zU495yGK!hmA`^1S |e+x{>deqDR%?L8 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 WxyZsSd%&Iu{HUR{l%685hWrN%7J^9t literal 0 HcmV?d00001 diff --git a/books/diagram/books.svg b/books/diagram/books.svg new file mode 100644 index 00000000..b46b7035 --- /dev/null +++ b/books/diagram/books.svg @@ -0,0 +1 @@ +
Vertical Container
Vertical Container

Make post on LinkedIn based on @Input.

PERSONA @Jane, an experienced copywriter and HR expert

KNOWLEDGE cetin.cz

KNOWLEDGE linkedin.com/company/cetin/


Make post on LinkedIn based on @Input....
Vertical Container
Vertical Container

Make post on LinkedIn based on @Input.

PERSONA @Jane, an experienced copywriter and HR expert

KNOWLEDGE cetin.cz

KNOWLEDGE linkedin.com/company/cetin/


Make post on LinkedIn based on @Input....
Vertical Container
Vertical Container

Make post on LinkedIn based on @Input.

PERSONA @Jane, an experienced copywriter and HR expert

KNOWLEDGE cetin.cz

KNOWLEDGE linkedin.com/company/cetin/


Make post on LinkedIn based on @Input....
\ No newline at end of file From 10e648d28d3a942f14719eed4af6ad106a9cea28 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Sat, 21 Jun 2025 11:11:46 +0200 Subject: [PATCH 04/30] 11:11 From a7ff37d57bb8a745296dea926949f9cf8e72d325 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Sun, 29 Jun 2025 15:53:50 +0200 Subject: [PATCH 05/30] Update BLUEPRINT.md --- BLUEPRINT.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/BLUEPRINT.md b/BLUEPRINT.md index da052cc8..63620401 100644 --- a/BLUEPRINT.md +++ b/BLUEPRINT.md @@ -86,20 +86,38 @@ defines ### `STYLE` +xxx + ### `SAMPLE` +xxx + ### `KNOWLEDGE` +xxx + ### `EXPECT` +xxx + ### `FORMAT` +xxx + ### `JOKER` +xxx + ### `MODEL` +xxx + ### `ACTION` +xxx + +### `META` + ## Names each commitment is From 4bda222798ef5aca01128c202aaba7b450ed84a8 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Sat, 19 Jul 2025 15:59:58 +0200 Subject: [PATCH 06/30] Working on Book 2.0 abstract --- ABSTRACT.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 96e1862f..6e09e7bc 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,7 +1,60 @@ -# 🤍 The Book Abstract +# 🤍 The Book -!!!! +Great context and prompt can make or break you AI app. In last few years we have came from simple one-shot prompts. When you want to add conplexity you have finetunned the model or add better orchestration. But with really large large language models the context seems to be a king. +The Book is the language to describe and define your AI app. Its like a shem for a Golem, book is the shem and model is the golem. +```book -Youtube video +``` + +# Who, what and how? + +To write a good prompt and the book you will be answering 3 main questions + +- **Who** is working on the task, is it a team or an individual? What is the role of the person in the team? What is the background of the person? What is the motivation of the person to work on this task? + You rather want `Paul, an typescript developer who prefers SOLID code` not `gemini-2` +- **What** +- **How** + +each commitment (described bellow) is connected with one of theese 3 questions. + +## Commitments + +Commitment is one piece of book, you can imagine it as one paragraph of book. + +Each commitment starts in a new line with commitment name, its usually in UPPERCASE and follows a contents of that commitment. Contents of the commithemt is defined in natural language. + +Commitments are chained one after another, in general commitments which are written later are more important and redefines things defined earlier. + +Each commitment falls into one or more of cathegory who, what or how + +Here are some basic commintemts: + +- `PERSONA` tells **who** is working on the task +- `KNOWLEDGE` +- `ACTION` **what** actions can be done +- `RULE` describes +- `STYLE` describes how + +## Dynamic parameters + +When the prompt nees to be usefull it should have some fixed static part and some variabible dynamic part + +## Imports + +## Layering + +## Book defined in book + +## + +Book vs: + +- Why just dont pick the right model +- Orchestration frameworks - Langchain, Google Agent ..., Semantic Kernel,... +- Finetunning +- Temperature, top_t, top_k,... etc. +- System message +- MCP server +- function calling From 9acf2ba0e80531cfc835f983d66a31c36be71ee9 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Mon, 21 Jul 2025 19:19:02 +0200 Subject: [PATCH 07/30] Working on Book 2.0 abstract --- ABSTRACT.md | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 6e09e7bc..0597c828 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -6,6 +6,16 @@ The Book is the language to describe and define your AI app. Its like a shem for ```book +Franz Kafka + + +PERSONA Franz Kafka, a writer who is interested in the human condition and the absurdity of life, speaks German and Czech and English +STYLE {kafka.com/the-castle} +STYLE {kafka.com/the-trial.pdf} +STYLE {kafka.com/metamorphosis.docx} +KNOWLEDGE Franz Kafka has a deep understanding of existentialism, surrealism, and the human psyche +GOAL Write a short story that explores the themes of alienation, bureaucracy, and the absurd +ACTION {mcp ``` # Who, what and how? @@ -32,14 +42,19 @@ Each commitment falls into one or more of cathegory who, what or how Here are some basic commintemts: - `PERSONA` tells **who** is working on the task -- `KNOWLEDGE` -- `ACTION` **what** actions can be done -- `RULE` describes -- `STYLE` describes how +- `KNOWLEDGE` describes **what** knowledge the person has +- `GOAL` describes **what** is the goal of the task +- `ACTION` describes **what** actions can be done +- `RULE` describes **what** rules should be followed +- `STYLE` describes **how** the output should be presented + +## Variables and references -## Dynamic parameters +When the prompt should be to be useful it should have some fixed static part and some variable dynamic part -When the prompt nees to be usefull it should have some fixed static part and some variabible dynamic part +```book + +``` ## Imports From a7853130207dceaa66f944f1014888e956a9a4af Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Tue, 19 Aug 2025 16:26:18 +0200 Subject: [PATCH 08/30] Update books --- books/diagram/books.drawio | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/books/diagram/books.drawio b/books/diagram/books.drawio index 0d4b8def..5fdfce58 100644 --- a/books/diagram/books.drawio +++ b/books/diagram/books.drawio @@ -1,27 +1,27 @@ - + - + - + - + - + - + - + From c315d6bf6c86abe940142e764114653b37778e32 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Tue, 19 Aug 2025 16:31:57 +0200 Subject: [PATCH 09/30] Move things to blueprint --- ABSTRACT.md | 75 +------------------------------------------- BLUEPRINT.md | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 88 insertions(+), 75 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 0597c828..7e324a69 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,75 +1,2 @@ -# 🤍 The Book +# 🤍 The Book -Great context and prompt can make or break you AI app. In last few years we have came from simple one-shot prompts. When you want to add conplexity you have finetunned the model or add better orchestration. But with really large large language models the context seems to be a king. - -The Book is the language to describe and define your AI app. Its like a shem for a Golem, book is the shem and model is the golem. - -```book - -Franz Kafka - - -PERSONA Franz Kafka, a writer who is interested in the human condition and the absurdity of life, speaks German and Czech and English -STYLE {kafka.com/the-castle} -STYLE {kafka.com/the-trial.pdf} -STYLE {kafka.com/metamorphosis.docx} -KNOWLEDGE Franz Kafka has a deep understanding of existentialism, surrealism, and the human psyche -GOAL Write a short story that explores the themes of alienation, bureaucracy, and the absurd -ACTION {mcp -``` - -# Who, what and how? - -To write a good prompt and the book you will be answering 3 main questions - -- **Who** is working on the task, is it a team or an individual? What is the role of the person in the team? What is the background of the person? What is the motivation of the person to work on this task? - You rather want `Paul, an typescript developer who prefers SOLID code` not `gemini-2` -- **What** -- **How** - -each commitment (described bellow) is connected with one of theese 3 questions. - -## Commitments - -Commitment is one piece of book, you can imagine it as one paragraph of book. - -Each commitment starts in a new line with commitment name, its usually in UPPERCASE and follows a contents of that commitment. Contents of the commithemt is defined in natural language. - -Commitments are chained one after another, in general commitments which are written later are more important and redefines things defined earlier. - -Each commitment falls into one or more of cathegory who, what or how - -Here are some basic commintemts: - -- `PERSONA` tells **who** is working on the task -- `KNOWLEDGE` describes **what** knowledge the person has -- `GOAL` describes **what** is the goal of the task -- `ACTION` describes **what** actions can be done -- `RULE` describes **what** rules should be followed -- `STYLE` describes **how** the output should be presented - -## Variables and references - -When the prompt should be to be useful it should have some fixed static part and some variable dynamic part - -```book - -``` - -## Imports - -## Layering - -## Book defined in book - -## - -Book vs: - -- Why just dont pick the right model -- Orchestration frameworks - Langchain, Google Agent ..., Semantic Kernel,... -- Finetunning -- Temperature, top_t, top_k,... etc. -- System message -- MCP server -- function calling diff --git a/BLUEPRINT.md b/BLUEPRINT.md index 63620401..3b3a2043 100644 --- a/BLUEPRINT.md +++ b/BLUEPRINT.md @@ -1,8 +1,14 @@ # 📘 Book Language Blueprint +
+⚠ This file is a work in progress and may be incomplete or inaccurate. +
+ +--- + Book is a simple format do define AI apps and agents. It is the source code the soul of AI apps and agents.. It's purpose is to avoid ambiguous UIs with multiple fields and low-level ways like programming in langchain. -Book is defined in file with .book extension +Book is defined in file with `.book` extension ## Examples @@ -135,3 +141,83 @@ Variable names ### Single line vs multiline ### Bookish vs Non-bookish definitions + + + +--- + +# **\_\_\_\_** + +Great context and prompt can make or break you AI app. In last few years we have came from simple one-shot prompts. When you want to add conplexity you have finetunned the model or add better orchestration. But with really large large language models the context seems to be a king. + +The Book is the language to describe and define your AI app. Its like a shem for a Golem, book is the shem and model is the golem. + +```book + +Franz Kafka + + +PERSONA Franz Kafka, a writer who is interested in the human condition and the absurdity of life, speaks German and Czech and English +STYLE {kafka.com/the-castle} +STYLE {kafka.com/the-trial.pdf} +STYLE {kafka.com/metamorphosis.docx} +KNOWLEDGE Franz Kafka has a deep understanding of existentialism, surrealism, and the human psyche +GOAL Write a short story that explores the themes of alienation, bureaucracy, and the absurd +ACTION {mcp +``` + +# Who, what and how? + +To write a good prompt and the book you will be answering 3 main questions + +- **Who** is working on the task, is it a team or an individual? What is the role of the person in the team? What is the background of the person? What is the motivation of the person to work on this task? + You rather want `Paul, an typescript developer who prefers SOLID code` not `gemini-2` +- **What** +- **How** + +each commitment (described bellow) is connected with one of theese 3 questions. + +## Commitments + +Commitment is one piece of book, you can imagine it as one paragraph of book. + +Each commitment starts in a new line with commitment name, its usually in UPPERCASE and follows a contents of that commitment. Contents of the commithemt is defined in natural language. + +Commitments are chained one after another, in general commitments which are written later are more important and redefines things defined earlier. + +Each commitment falls into one or more of cathegory who, what or how + +Here are some basic commintemts: + +- `PERSONA` tells **who** is working on the task +- `KNOWLEDGE` describes **what** knowledge the person has +- `GOAL` describes **what** is the goal of the task +- `ACTION` describes **what** actions can be done +- `RULE` describes **what** rules should be followed +- `STYLE` describes **how** the output should be presented + +## Variables and references + +When the prompt should be to be useful it should have some fixed static part and some variable dynamic part + +```book + +``` + +## Imports + +## Layering + +## Book defined in book + +## + +Book vs: + +- Why just dont pick the right model +- Orchestration frameworks - Langchain, Google Agent ..., Semantic Kernel,... +- Finetunning +- Temperature, top_t, top_k,... etc. +- System message +- MCP server +- function calling From 82fad1b291888ea7a7ab10599b18c0bab58349f6 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Tue, 19 Aug 2025 16:42:40 +0200 Subject: [PATCH 10/30] Writing 1,2,3,4 abstract --- ABSTRACT.md | 12 +++++++- README.md | 86 ++--------------------------------------------------- 2 files changed, 13 insertions(+), 85 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 7e324a69..47c02aac 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,2 +1,12 @@ -# 🤍 The Book +# 📖 The Book Whitepaper +## 1. From models to AI personas defined in the Book + + + + +## 2. Aspects of great AI persona + +## 3. Usage vectors of your AI personas + +## 4. Acquisition vectors of your AI personas diff --git a/README.md b/README.md index dc29d5d3..d5a24dd0 100644 --- a/README.md +++ b/README.md @@ -146,95 +146,13 @@ Join our growing community of developers and users: 📸 Instagram @promptbook.studio Visual updates, UI showcases, and design inspiration - + - - - -## 📘 Book Language Blueprint - -_A concise, Markdown-based DSL for crafting AI workflows and automations._ - - - -### Introduction - -Book is a Markdown-based language that simplifies the creation of AI applications, workflows, and automations. With human-readable commands, you can define inputs, outputs, personas, knowledge sources, and actions—without needing model-specific details. - -### Example - -```book -# 🌟 My First Book - -- BOOK VERSION 1.0.0 -- URL https://promptbook.studio/hello.book -- INPUT PARAMETER {topic} -- OUTPUT PARAMETER {article} - -# Write an Article - -- PERSONA Jane, marketing specialist with prior experience in tech and AI writing -- KNOWLEDGE https://wikipedia.org/ -- KNOWLEDGE ./journalist-ethics.pdf -- EXPECT MIN 1 Sentence -- EXPECT MAX 5 Pages - -> Write an article about {topic} - -→ {article} -``` - -Each part of the book defines one of three circles: - -### **1. What:** Workflows, Tasks and Parameters - -What work needs to be done. Each book defines a [workflow _(scenario or pipeline)_](https://github.com/webgptorg/promptbook/discussions/88), which is one or more tasks. Each workflow has a fixed input and output. For example, you have a book that generates an article from a topic. Once it generates an article about AI, once about marketing, once about cooking. The workflow (= your AI program) is the same, only the input and output change. - -**Related commands:** - -- [PARAMETER](https://github.com/webgptorg/promptbook/blob/main/documents/commands/PARAMETER.md) - -### **2. Who:** Personas - -Who does the work. Each task is performed by a persona. A persona is a description of your virtual employee. It is a higher abstraction than the model, tokens, temperature, top-k, top-p and other model parameters. - -You can describe what you want in human language like `Jane, creative writer with a sense of sharp humour` instead of `gpt-4-2024-13-31, temperature 1.2, top-k 40, STOP token ".\n",...`. - -Personas can have access to different knowledge, tools and actions. They can also consult their work with other personas or user, if allowed. - -**Related commands:** - -- [PERSONA](https://github.com/webgptorg/promptbook/blob/main/documents/commands/PERSONA.md) - - - -### **3. How:** Knowledge, Instruments and Actions - -The resources used by the personas are used to do the work. - -**Related commands:** - -- [KNOWLEDGE](https://github.com/webgptorg/promptbook/blob/main/documents/commands/KNOWLEDGE.md) of documents, websites, and other resources -- [INSTRUMENT](https://github.com/webgptorg/promptbook/blob/main/documents/commands/INSTRUMENT.md) for real-time data like time, location, weather, stock prices, searching the internet, calculations, etc. -- [ACTION](https://github.com/webgptorg/promptbook/blob/main/documents/commands/ACTION.md) for actions like sending emails, creating files, ending a workflow, etc. - -### General Principles - -Book language is based on markdown. It is subset of markdown. It is designed to be easy to read and write. It is designed to be understandable by both humans and machines and without specific knowledge of the language. - -The file has a `.book` extension and uses UTF-8 encoding without BOM. - -Books have two variants: flat — just a prompt without structure, and full — with tasks, commands, and prompts. - -As it is source code, it can leverage all the features of version control systems like git and does not suffer from the problems of binary formats, proprietary formats, or no-code solutions. - -But unlike programming languages, it is designed to be understandable by non-programmers and non-technical people. - - + From 34a405cb1c4a87cab2f609ac435a8e9385358c87 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Tue, 19 Aug 2025 17:26:33 +0200 Subject: [PATCH 11/30] Writing 1,2,3,4 abstract --- ABSTRACT.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/ABSTRACT.md b/ABSTRACT.md index 47c02aac..fab2b47c 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -2,11 +2,62 @@ ## 1. From models to AI personas defined in the Book +AI large-language models are getting each generation more and more powerful, but for most business applications the raw power of the model like context window or billions of parameters isn't the think which can make or break your AI application. The key is the context and prompt which is used to guide the model to produce the desired output. +```mermaid +``` + +In other word, models are like gods who can make anything but for your business you need specific persona with clear goals, objectives and context. + +You need to **narrow the model** to your specific use case and domain. ## 2. Aspects of great AI persona +We have created language called **Book** which allows you just that - create truly your AI persona, It provides a guide to **define your AI personas**. + +This language is based on system message / prompting which are decorated by commitments. + +### `Persona` commitment + +Persona defines the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication. + +> **Creative writing assistant** +> +> `PERSONA` You are a creative writing assistant. You help users to write stories, poems, and other creative texts. You are imaginative, inspiring, and supportive. Always encourage creativity and originality. + +### `Knowledge` commitment + +> + +### `Rule` commitment + +> + +[Read more about the language](./BLUEPRINT.md) + ## 3. Usage vectors of your AI personas +## Chat apps + +Like custommer support + +## Agents + +## Coding + +Book persona can even write books itself + +## Expertize + +Clasification, Summarization + ## 4. Acquisition vectors of your AI personas + +## From scratch + +## Your AI twin + +## AI persona workpool + +gallery From 306256b4476b4499e7e4386c089e5029dd9da102 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Fri, 22 Aug 2025 14:03:25 +0200 Subject: [PATCH 12/30] Update ABSTRACT.md --- ABSTRACT.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ABSTRACT.md b/ABSTRACT.md index fab2b47c..5a2887f3 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,5 +1,13 @@ # 📖 The Book Whitepaper + + +The world is changing, and in 5 years most of you won't do the work or job what you are doing now. When an agent can do your work for $5.74, it is economically unviable to not use the AI agent. Nowadays, when you want to define the AI agent, the biggest challenge isn't about the raw capabilities. Large language models like GPT-5 or Cloud4 are extremely capable. But for most business applications, an AI agent you want to narrow it down, constrain it, set the proper context, rules, knowledge, and so on. There are a lot of tools which can do exactly this. In one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Lungchain or Semantic Kernel which can give you deep control. From the book, take the best from both worlds. You are defining your AI agentic behavior by simple books which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. For all of you who are not programmers and want to create your AI agent which is on the level of the professional AI agent made in some heavy programming platform, or programmers who want to make their job easy and separate the agentic behavior and the application behavior, the prompt book and the book language is for you. + + + + + ## 1. From models to AI personas defined in the Book AI large-language models are getting each generation more and more powerful, but for most business applications the raw power of the model like context window or billions of parameters isn't the think which can make or break your AI application. The key is the context and prompt which is used to guide the model to produce the desired output. From 256a3e99bad1c82d0cb737b2f3343dca804cfcd3 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Sat, 23 Aug 2025 18:14:13 +0200 Subject: [PATCH 13/30] =?UTF-8?q?Writing=20=F0=9F=93=96=20The=20Book=20Whi?= =?UTF-8?q?tepaper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ABSTRACT.md | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 5a2887f3..bdd995e4 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,26 +1,18 @@ # 📖 The Book Whitepaper +The world is changing, and in 5 years most of you won't do the work or job what you are doing now. When an agent can do your work for $5.74, it is economically unviable to not use the AI agent. +For most business applications nowadays the biggest challenge isn't about the raw capabilities of AI models. Large language models like GPT-5 or Claude-4.1 are extremely capable. -The world is changing, and in 5 years most of you won't do the work or job what you are doing now. When an agent can do your work for $5.74, it is economically unviable to not use the AI agent. Nowadays, when you want to define the AI agent, the biggest challenge isn't about the raw capabilities. Large language models like GPT-5 or Cloud4 are extremely capable. But for most business applications, an AI agent you want to narrow it down, constrain it, set the proper context, rules, knowledge, and so on. There are a lot of tools which can do exactly this. In one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Lungchain or Semantic Kernel which can give you deep control. From the book, take the best from both worlds. You are defining your AI agentic behavior by simple books which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. For all of you who are not programmers and want to create your AI agent which is on the level of the professional AI agent made in some heavy programming platform, or programmers who want to make their job easy and separate the agentic behavior and the application behavior, the prompt book and the book language is for you. +The main challenge is to narrow it down, constrain it, set the proper **context, rules, knowledge, and personality**. There are a lot of tools which can do exactly this. In one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Langchain or Semantic Kernel which can give you deep control. +Promptbook, takes the best from both worlds. You are defining your AI behavior by simple **books** which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. +> **Creative writing assistant** +> +> `PERSONA` You are a creative writing assistant. You help users to write stories, poems, and other creative texts. You are imaginative, inspiring, and supportive. Always encourage creativity and originality. - - -## 1. From models to AI personas defined in the Book - -AI large-language models are getting each generation more and more powerful, but for most business applications the raw power of the model like context window or billions of parameters isn't the think which can make or break your AI application. The key is the context and prompt which is used to guide the model to produce the desired output. - -```mermaid - -``` - -In other word, models are like gods who can make anything but for your business you need specific persona with clear goals, objectives and context. - -You need to **narrow the model** to your specific use case and domain. - -## 2. Aspects of great AI persona +## Aspects of great AI agent We have created language called **Book** which allows you just that - create truly your AI persona, It provides a guide to **define your AI personas**. @@ -44,7 +36,7 @@ Persona defines the character of your AI persona, its role, and how it should in [Read more about the language](./BLUEPRINT.md) -## 3. Usage vectors of your AI personas +## How to create your AI agent in book ## Chat apps @@ -60,7 +52,7 @@ Book persona can even write books itself Clasification, Summarization -## 4. Acquisition vectors of your AI personas +## Where to use your AI agent in book ## From scratch From c4f985cc714cf11bba5668b98bd0fbb8ace4a75f Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Wed, 27 Aug 2025 15:53:49 +0200 Subject: [PATCH 14/30] Update ABSTRACT.md --- ABSTRACT.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index bdd995e4..8b715b3e 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -14,9 +14,9 @@ Promptbook, takes the best from both worlds. You are defining your AI behavior b ## Aspects of great AI agent -We have created language called **Book** which allows you just that - create truly your AI persona, It provides a guide to **define your AI personas**. +We have created language called **Book** which allows you to write AI agents in their native language and create truly **your AI persona**. Book provides a guide to **define all the traits and commitments**. -This language is based on system message / prompting which are decorated by commitments. +You can look at it as prompting (or writing a system message) but decorated by **commitments**. ### `Persona` commitment From 71aea78a0f0bdee02a9d182e71ddcd78ed545713 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Wed, 27 Aug 2025 15:59:08 +0200 Subject: [PATCH 15/30] Revise sections and headings in ABSTRACT.md Updated sections and headings in ABSTRACT.md for clarity and organization. --- ABSTRACT.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 8b715b3e..0104aba7 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -12,6 +12,8 @@ Promptbook, takes the best from both worlds. You are defining your AI behavior b > > `PERSONA` You are a creative writing assistant. You help users to write stories, poems, and other creative texts. You are imaginative, inspiring, and supportive. Always encourage creativity and originality. + + ## Aspects of great AI agent We have created language called **Book** which allows you to write AI agents in their native language and create truly **your AI persona**. Book provides a guide to **define all the traits and commitments**. @@ -28,15 +30,17 @@ Persona defines the character of your AI persona, its role, and how it should in ### `Knowledge` commitment -> +Links + ### `Rule` commitment -> + + [Read more about the language](./BLUEPRINT.md) -## How to create your AI agent in book +## Where to use your AI agent in book ## Chat apps @@ -52,7 +56,7 @@ Book persona can even write books itself Clasification, Summarization -## Where to use your AI agent in book +## How to create your AI agent in book ## From scratch From f6c813725c2a2691d90250d8752e6b54bde95cc8 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Fri, 29 Aug 2025 03:59:52 +0200 Subject: [PATCH 16/30] =?UTF-8?q?Writing=20=F0=9F=93=96=20The=20Book=20Whi?= =?UTF-8?q?tepaper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ABSTRACT.md | 130 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 110 insertions(+), 20 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 0104aba7..09c7f2c1 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -8,9 +8,16 @@ The main challenge is to narrow it down, constrain it, set the proper **context, Promptbook, takes the best from both worlds. You are defining your AI behavior by simple **books** which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. -> **Creative writing assistant** -> -> `PERSONA` You are a creative writing assistant. You help users to write stories, poems, and other creative texts. You are imaginative, inspiring, and supportive. Always encourage creativity and originality. +Creative writing assistant Book @@ -24,44 +31,127 @@ You can look at it as prompting (or writing a system message) but decorated by * Persona defines the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication. -> **Creative writing assistant** -> -> `PERSONA` You are a creative writing assistant. You help users to write stories, poems, and other creative texts. You are imaginative, inspiring, and supportive. Always encourage creativity and originality. +Creative writing assistant Book ### `Knowledge` commitment -Links +Knowledge commitment allows you to provide specific information, facts, or context that the AI should be aware of when responding. +This can include domain-specific knowledge, company policies, or any other relevant information. -### `Rule` commitment +Promptbook engine will automatically enforce this knowledge during interactions. When the knowledge is short enough it will be included in the prompt. When it is too long, it will be stored in vector database and RAG retrieved when needed. But you don't need to care about it. +Creative writing assistant Book +### `Rule` commitment +Rule will enforce specific behaviors or constraints on the AI's responses. This can include ethical guidelines, communication styles, or any other rules you want the AI to follow. + +Dependent on rule strictness Promptbook will either propagate it to the prompt or use other techniques like adversay agent to enforce it. + +Creative writing assistant Book + +### `Action` commitment + +Action commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events or interacting with your internal systems. + +Creative writing assistant Book [Read more about the language](./BLUEPRINT.md) ## Where to use your AI agent in book -## Chat apps +Books can be useful in various applications and scenarios. Here are some examples: + +### Chat apps + +Create your own chat shopping assistant and place it in your eshop. +You will be able to answer customer questions, help them find products, and provide personalized recommendations. Everything is tightly controlled by the book you have written. + +### Reply Agent + +Create your own AI agent which will look at your emails and reply to them. It can even create drafts for you to review before sending. + +### Coding Agent + +Do you love Vibecoding but the AI code is not always inlined with your coding style and architecture, rules, security etc,? Create your own coding agent to help enforce your specific coding standards and practices. + +This can be integrated to almost any vibecoding platform like GitHub Copilot, Amazon CodeWhisperer, Cursor, Cline, Kilocode, Roocode,... + +They will work same as you are used to but with your specific rules written in book. + +### Internal Expertize + +Do you have app written in TypeScript, Python, C#, Java, or any other language and you are integrating the AI. + +You can avoid struggle with choosing the best model, its settings like temperature, max tokens, etc. by writing a book agent and using it as your AI expertize. + +Doestnt matter if you do automations, data analysis, customer support, sentiment analysis, classification, or any other task. Your AI agent will be tailored to your specific needs and requirements. + +Even works in no-code platforms -Like custommer support +## How to create your AI agent in book -## Agents +Now you want to use it. There are several ways how to write your first book: -## Coding +### From scratch with help from Paul -Book persona can even write books itself +We have written ai asistant in book who can help you with writing your first book. -## Expertize + -Clasification, Summarization +### Your AI twin -## How to create your AI agent in book +Copy your own behavior, personality, and knowledge into book and create your AI twin. It can help you with your work, personal life, or any other task. -## From scratch + -## Your AI twin +### AI persona workpool -## AI persona workpool +Or you can pick from our library of pre-written books for various roles and tasks. You can find books for customer support, coding, marketing, sales, HR, legal, and many other roles. -gallery + From dd9dc0b9c50ccd1d0c7da2a49aa6a35e7733adbc Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Thu, 4 Sep 2025 18:32:42 +0200 Subject: [PATCH 17/30] Update abstract --- ABSTRACT.md | 83 +++++++++++++++++++++++++++++------------------------ 1 file changed, 46 insertions(+), 37 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 09c7f2c1..2e51d7b9 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -10,16 +10,17 @@ Promptbook, takes the best from both worlds. You are defining your AI behavior b Creative writing assistant Book + > Creative writing assistant + > + > PERSONA You are a creative writing assistant. You help users to write stories, poems, and other creative texts. You are imaginative, inspiring, and supportive. Always encourage creativity and originality. + > + &width=800&height=450&nonce=1 " /> - +
## Aspects of great AI agent @@ -33,12 +34,13 @@ Persona defines the character of your AI persona, its role, and how it should in Creative writing assistant Book + > Rose Lovegood + > + > PERSONA You are a creative writing assistant. You help users to write stories, poems, and other creative texts. You are imaginative, inspiring, and supportive. Always encourage creativity and originality. + > + &width=800&height=450&nonce=1 " /> @@ -52,15 +54,16 @@ Promptbook engine will automatically enforce this knowledge during interactions. Creative writing assistant Book + > Jane Helper + > + > PERSONA You are a HR buddy. You assist employees with HR-related questions and tasks. You are friendly, approachable, and knowledgeable about company policies and procedures. + > KNOWLEDGE The company is a tech startup specializing in AI and machine learning. It was founded in 2020 and has 50 employees. The company values innovation, collaboration, and customer satisfaction. + > KNOWLEDGE https://example.com/company-policies.pdf + > KNOWLEDGE ./internal-documents/employee-handbook.docx + > + &width=800&height=450&nonce=1 " /> @@ -72,16 +75,17 @@ Dependent on rule strictness Promptbook will either propagate it to the prompt o Creative writing assistant Book + > Paul Smith et Associés + > + > PERSONA You are a company lawyer. + > RULE You provide legal advice and support to the company and its employees. You are knowledgeable, professional, and detail-oriented. Always ensure compliance with laws and regulations. + > RULE Never provide legal advice that is outside your area of expertise. KNOWLEDGE https://example.com/company-policies.pdf KNOWLEDGE ./internal-documents/employee-handbook.docx - * + > + &width=800&height=450&nonce=1 " /> @@ -91,18 +95,21 @@ Action commitment allows you to define specific actions that the AI can take dur Creative writing assistant Book + > Peter Poster + > + > PERSONA You are a social media manager. You help users to create and manage their social media presence. You are creative, strategic, and data-driven. Always stay up-to-date with the latest trends and best practices. + > ACTION You can post on company Facebook page /supercompany + > + &width=800&height=450&nonce=1 " /> [Read more about the language](./BLUEPRINT.md) +
+ ## Where to use your AI agent in book Books can be useful in various applications and scenarios. Here are some examples: @@ -134,6 +141,8 @@ Doestnt matter if you do automations, data analysis, customer support, sentiment Even works in no-code platforms +
+ ## How to create your AI agent in book Now you want to use it. There are several ways how to write your first book: From 4d85a3e8622a84585a358ede9b63defa0a096b2e Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Thu, 4 Sep 2025 22:31:35 +0200 Subject: [PATCH 18/30] Update abstract - update images --- ABSTRACT.md | 97 +++++++++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 43 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 2e51d7b9..0bd5581b 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -10,13 +10,16 @@ Promptbook, takes the best from both worlds. You are defining your AI behavior b Creative writing assistant Book @@ -34,13 +37,16 @@ Persona defines the character of your AI persona, its role, and how it should in Creative writing assistant Book @@ -54,16 +60,19 @@ Promptbook engine will automatically enforce this knowledge during interactions. Creative writing assistant Book @@ -75,17 +84,19 @@ Dependent on rule strictness Promptbook will either propagate it to the prompt o Creative writing assistant Book @@ -95,14 +106,14 @@ Action commitment allows you to define specific actions that the AI can take dur Creative writing assistant Book From 7ee69d69802cd2dbf2869a128167c8fb31d56d3d Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Thu, 4 Sep 2025 23:10:43 +0200 Subject: [PATCH 19/30] Update abstract - update images --- ABSTRACT.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ABSTRACT.md b/ABSTRACT.md index 0bd5581b..fbfb73fe 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -8,6 +8,11 @@ The main challenge is to narrow it down, constrain it, set the proper **context, Promptbook, takes the best from both worlds. You are defining your AI behavior by simple **books** which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. +Creative writing assistant Book + Creative writing assistant Book Date: Thu, 4 Sep 2025 23:12:14 +0200 Subject: [PATCH 21/30] Update abstract - update images --- ABSTRACT.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 8af774e6..9fe8e425 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -10,8 +10,8 @@ Promptbook, takes the best from both worlds. You are defining your AI behavior b Creative writing assistant Book From 7f920a758e53e585c09d343f688fa72e6cee6db2 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Thu, 4 Sep 2025 23:21:56 +0200 Subject: [PATCH 22/30] Update abstract - update images --- ABSTRACT.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 9fe8e425..ffee7d96 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -10,9 +10,9 @@ Promptbook, takes the best from both worlds. You are defining your AI behavior b Creative writing assistant Book +```book +Creative writing assistant + +PERSONA You are a creative writing assistant. +You help users to write stories, poems, and other creative texts. +You are imaginative, inspiring, and supportive. +Always encourage creativity and originality. +``` +
## Aspects of great AI agent From 372be73f46a33010cce9cdbc54e18a29b0b48e36 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Thu, 4 Sep 2025 23:22:52 +0200 Subject: [PATCH 23/30] Update abstract - update images --- ABSTRACT.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index ffee7d96..48f076c7 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -11,8 +11,15 @@ Promptbook, takes the best from both worlds. You are defining your AI behavior b Creative writing assistant Book Date: Fri, 5 Sep 2025 10:57:34 +0200 Subject: [PATCH 24/30] Update abstract - update images --- ABSTRACT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 48f076c7..f4ac215f 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -33,7 +33,7 @@ Promptbook, takes the best from both worlds. You are defining your AI behavior b | You are imaginative, inspiring, and supportive. | Always encourage creativity and originality. | - &width=800&height=450&nonce=2 + &width=800&height=450&nonce=3 " /> From c30fb942b10708377170f038739e092c8755edda Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Fri, 5 Sep 2025 11:03:25 +0200 Subject: [PATCH 25/30] Update abstract - update images --- ABSTRACT.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index f4ac215f..876a1773 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -10,7 +10,7 @@ Promptbook, takes the best from both worlds. You are defining your AI behavior b Creative writing assistant Book From 0a90e27dec5b3bde37900942350629707ba5c684 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Fri, 5 Sep 2025 11:04:34 +0200 Subject: [PATCH 26/30] Test --- ABSTRACT.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ABSTRACT.md b/ABSTRACT.md index 876a1773..9ee21ba0 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -8,6 +8,11 @@ The main challenge is to narrow it down, constrain it, set the proper **context, Promptbook, takes the best from both worlds. You are defining your AI behavior by simple **books** which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. +Creative writing assistant Book + Creative writing assistant Book --- ABSTRACT.md | 130 ++++------- README.md | 122 ++++++++++- scripts/import-markdown/embedBooks.test.ts | 240 +++++++++++++++++++++ scripts/import-markdown/embedBooks.ts | 51 +++++ scripts/import-markdown/placeImports.ts | 2 + 5 files changed, 443 insertions(+), 102 deletions(-) create mode 100644 scripts/import-markdown/embedBooks.test.ts create mode 100644 scripts/import-markdown/embedBooks.ts diff --git a/ABSTRACT.md b/ABSTRACT.md index 9ee21ba0..4f4954fe 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -8,40 +8,6 @@ The main challenge is to narrow it down, constrain it, set the proper **context, Promptbook, takes the best from both worlds. You are defining your AI behavior by simple **books** which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. -Creative writing assistant Book - -Creative writing assistant Book - -Creative writing assistant Book - ```book Creative writing assistant @@ -63,20 +29,14 @@ You can look at it as prompting (or writing a system message) but decorated by * Persona defines the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication. -Creative writing assistant Book +```book +Rose Lovegood + +PERSONA You are a creative writing assistant. +You help users to write stories, poems, and other creative texts. +You are imaginative, inspiring, and supportive. +Always encourage creativity and originality. +``` ### `Knowledge` commitment @@ -86,23 +46,17 @@ This can include domain-specific knowledge, company policies, or any other relev Promptbook engine will automatically enforce this knowledge during interactions. When the knowledge is short enough it will be included in the prompt. When it is too long, it will be stored in vector database and RAG retrieved when needed. But you don't need to care about it. -Creative writing assistant Book +```book +Jane Helper + +PERSONA You are a HR buddy. +You assist employees with HR-related questions and tasks. +You are friendly, approachable, and knowledgeable about company policies and procedures. +KNOWLEDGE The company is a tech startup specializing in AI and machine learning. +It was founded in 2020 and has 50 employees. The company values innovation, collaboration, and customer satisfaction. +KNOWLEDGE https://example.com/company-policies.pdf +KNOWLEDGE ./internal-documents/employee-handbook.docx +``` ### `Rule` commitment @@ -110,40 +64,28 @@ Rule will enforce specific behaviors or constraints on the AI's responses. This Dependent on rule strictness Promptbook will either propagate it to the prompt or use other techniques like adversay agent to enforce it. -Creative writing assistant Book +```book +Paul Smith et Associés + +PERSONA You are a company lawyer. +RULE You provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. +Always ensure compliance with laws and regulations. +RULE Never provide legal advice that is outside your area of expertise. +KNOWLEDGE https://example.com/company-policies.pdf +KNOWLEDGE ./internal-documents/employee-handbook.docx +``` ### `Action` commitment Action commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events or interacting with your internal systems. -Creative writing assistant Book +```book +Peter Poster + +PERSONA You are a social media manager. You help users to create and manage their social media presence. You are creative, strategic, and data-driven. Always stay up-to-date with the latest trends and best practices. +ACTION You can post on company Facebook page /supercompany +``` [Read more about the language](./BLUEPRINT.md) diff --git a/README.md b/README.md index d5a24dd0..694c52de 100644 --- a/README.md +++ b/README.md @@ -26,21 +26,127 @@ TODO: [🥗][🧠] Maybe do table of contents in both `book` and `promptbook` -## 🤍 The Book Abstract +## 📖 The Book Whitepaper -**It's time for a paradigm shift! The future of software is written in plain English, French, or Latin.** +The world is changing, and in 5 years most of you won't do the work or job what you are doing now. When an agent can do your work for $5.74, it is economically unviable to not use the AI agent. -During the computer revolution, we have seen [multiple generations of computer languages](https://github.com/webgptorg/promptbook/discussions/180), from the physical rewiring of the vacuum tubes through low-level machine code to the high-level languages like Python or JavaScript. And now, we're on the edge of the **next revolution**! +For most business applications nowadays the biggest challenge isn't about the raw capabilities of AI models. Large language models like GPT-5 or Claude-4.1 are extremely capable. +The main challenge is to narrow it down, constrain it, set the proper **context, rules, knowledge, and personality**. There are a lot of tools which can do exactly this. In one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Langchain or Semantic Kernel which can give you deep control. +Promptbook, takes the best from both worlds. You are defining your AI behavior by simple **books** which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. -It's a revolution of writing software in **plain human language** that is understandable and executable by both humans and machines – and it's going to change everything! +Creative writing assistant Book -The incredible growth in power of microprocessors and the Moore's Law have been the driving force behind the ever-more powerful languages, and it's been an amazing journey! Similarly, the large language models (like GPT or Claude) are the next big thing in language technology, and they're set to transform the way we interact with computers. +
-This shift will happen whether we're ready or not. Our mission is to make it excellent, not just good. +### Aspects of great AI agent -**Join us in this journey!** +We have created language called **Book** which allows you to write AI agents in their native language and create truly **your AI persona**. Book provides a guide to **define all the traits and commitments**. + +You can look at it as prompting (or writing a system message) but decorated by **commitments**. + +#### `Persona` commitment + +Persona defines the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication. + +Rose Lovegood Book + +#### `Knowledge` commitment + +Knowledge commitment allows you to provide specific information, facts, or context that the AI should be aware of when responding. + +This can include domain-specific knowledge, company policies, or any other relevant information. + +Promptbook engine will automatically enforce this knowledge during interactions. When the knowledge is short enough it will be included in the prompt. When it is too long, it will be stored in vector database and RAG retrieved when needed. But you don't need to care about it. + +Jane Helper Book + +#### `Rule` commitment + +Rule will enforce specific behaviors or constraints on the AI's responses. This can include ethical guidelines, communication styles, or any other rules you want the AI to follow. + +Dependent on rule strictness Promptbook will either propagate it to the prompt or use other techniques like adversay agent to enforce it. + +Paul Smith et Associés Book + +#### `Action` commitment + +Action commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events or interacting with your internal systems. + +Peter Poster Book + +[Read more about the language](./BLUEPRINT.md) + +
+ +### Where to use your AI agent in book + +Books can be useful in various applications and scenarios. Here are some examples: + +#### Chat apps + +Create your own chat shopping assistant and place it in your eshop. +You will be able to answer customer questions, help them find products, and provide personalized recommendations. Everything is tightly controlled by the book you have written. + +#### Reply Agent + +Create your own AI agent which will look at your emails and reply to them. It can even create drafts for you to review before sending. + +#### Coding Agent + +Do you love Vibecoding but the AI code is not always inlined with your coding style and architecture, rules, security etc,? Create your own coding agent to help enforce your specific coding standards and practices. + +This can be integrated to almost any vibecoding platform like GitHub Copilot, Amazon CodeWhisperer, Cursor, Cline, Kilocode, Roocode,... + +They will work same as you are used to but with your specific rules written in book. + +#### Internal Expertize + +Do you have app written in TypeScript, Python, C#, Java, or any other language and you are integrating the AI. + +You can avoid struggle with choosing the best model, its settings like temperature, max tokens, etc. by writing a book agent and using it as your AI expertize. + +Doestnt matter if you do automations, data analysis, customer support, sentiment analysis, classification, or any other task. Your AI agent will be tailored to your specific needs and requirements. + +Even works in no-code platforms + +
+ +### How to create your AI agent in book + +Now you want to use it. There are several ways how to write your first book: + +#### From scratch with help from Paul + +We have written ai asistant in book who can help you with writing your first book. + + + +#### Your AI twin + +Copy your own behavior, personality, and knowledge into book and create your AI twin. It can help you with your work, personal life, or any other task. + + + +#### AI persona workpool + +Or you can pick from our library of pre-written books for various roles and tasks. You can find books for customer support, coding, marketing, sales, HR, legal, and many other roles. @@ -146,7 +252,7 @@ Join our growing community of developers and users: 📸 Instagram @promptbook.studio Visual updates, UI showcases, and design inspiration - + diff --git a/scripts/import-markdown/embedBooks.test.ts b/scripts/import-markdown/embedBooks.test.ts new file mode 100644 index 00000000..d8287045 --- /dev/null +++ b/scripts/import-markdown/embedBooks.test.ts @@ -0,0 +1,240 @@ +import { describe, expect, it } from '@jest/globals'; +import { spaceTrim } from 'spacetrim'; +import { embedBooks } from './embedBooks'; + +describe('embedBooks function', () => { + it('should leave content without book blocks unchanged', () => { + const content = spaceTrim(` + # Regular Markdown + + This is just regular markdown content. + + \`\`\`javascript + console.log('This is a code block, not a book'); + \`\`\` + `); + + expect(embedBooks(content)).toBe(content); + }); + + it('should transform a simple book block to img tag', () => { + const content = spaceTrim(` + # Documentation + + \`\`\`book + Creative writing assistant + + PERSONA You are a creative writing assistant. + You help users to write stories, poems, and other creative texts. + You are imaginative, inspiring, and supportive. + Always encourage creativity and originality. + \`\`\` + `); + + const result = embedBooks(content); + + // Check that the book block is replaced with an img tag + expect(result).toContain(' { + const content = spaceTrim(` + \`\`\`book + + PERSONA You are helpful. + \`\`\` + `); + + const result = embedBooks(content); + + expect(result).toContain(' { + const content = spaceTrim(` + # First Book + + \`\`\`book + Writer Assistant + + PERSONA You help with writing. + \`\`\` + + # Second Book + + \`\`\`book + Code Helper + + PERSONA You help with coding. + \`\`\` + `); + + const result = embedBooks(content); + + // Should contain two img tags + const imgMatches = result.match(/ { + const content = spaceTrim(` + # Before Book + + Some content before. + + \`\`\`book + Test Book + + PERSONA Test persona. + \`\`\` + + # After Book + + Some content after. + `); + + const result = embedBooks(content); + + expect(result).toContain('# Before Book'); + expect(result).toContain('Some content before.'); + expect(result).toContain('# After Book'); + expect(result).toContain('Some content after.'); + expect(result).toContain(' { + const content = spaceTrim(` + \`\`\`book + + + Spaced Title + + + PERSONA With extra spaces. + + + \`\`\` + `); + + const result = embedBooks(content); + + expect(result).toContain(' { + const content = spaceTrim(` + \`\`\`book + Book One + PERSONA First book. + \`\`\` + + \`\`\`book + Book Two + PERSONA Second book. + \`\`\` + `); + + // Run the function multiple times to check nonce variation + const result1 = embedBooks(content); + const result2 = embedBooks(content); + + // Extract nonce values from both results + const nonceRegex = /&nonce=(\d+)/g; + const nonces1 = [...result1.matchAll(nonceRegex)].map((match) => match[1]); + const nonces2 = [...result2.matchAll(nonceRegex)].map((match) => match[1]); + + // Should have 2 nonces in each result + expect(nonces1).toHaveLength(2); + expect(nonces2).toHaveLength(2); + + // Nonces should be different between runs (with high probability) + // Note: This test might occasionally fail due to random nature, but very unlikely + expect(nonces1[0] !== nonces2[0] || nonces1[1] !== nonces2[1]).toBe(true); + }); + + it('should handle complex book content with special characters', () => { + const content = spaceTrim(` + \`\`\`book + Complex & Special "Characters" + + PERSONA You handle special chars: & < > " ' % + = ? + INSTRUCTION Use {variables} and [brackets]. + MODEL gpt-4 + \`\`\` + `); + + const result = embedBooks(content); + + expect(result).toContain(' + }); + + it('should match the expected output format from the task description', () => { + const content = spaceTrim(` + \`\`\`book + Creative writing assistant + + PERSONA You are a creative writing assistant. + You help users to write stories, poems, and other creative texts. + You are imaginative, inspiring, and supportive. + Always encourage creativity and originality. + \`\`\` + `); + + const result = embedBooks(content); + + // Should match the general structure from the task description + expect(result).toMatch( + //, + ); + + // The URL should contain the properly formatted book content + const urlMatch = result.match(/src="([^"]+)"/); + expect(urlMatch).toBeTruthy(); + + if (urlMatch && urlMatch[1]) { + const url = decodeURIComponent(urlMatch[1]); + expect(url).toContain('Creative writing assistant'); + expect(url).toContain('PERSONA You are a creative writing assistant'); + expect(url).toContain('You help users to write stories'); + } + }); +}); diff --git a/scripts/import-markdown/embedBooks.ts b/scripts/import-markdown/embedBooks.ts new file mode 100644 index 00000000..dd598325 --- /dev/null +++ b/scripts/import-markdown/embedBooks.ts @@ -0,0 +1,51 @@ +/** + * Embeds book content as HTML img tags with preview URLs + * + * Transforms book blocks from: + * ```book + * Title + * + * Content here + * ``` + * + * To: + * Title Book + * + * @param content The markdown content that may contain book blocks + * @returns The content with book blocks replaced by img tags + */ +export function embedBooks(content: string): string { + // Regular expression to match ```book blocks + const bookRegex = /```book\s*\n([\s\S]*?)\n```/g; + + return content.replace(bookRegex, (match, bookContent) => { + // Clean up the book content and extract title + const lines = bookContent.trim().split('\n'); + const title = lines[0]?.trim() || 'Untitled'; + + // Prepare the book content for URL encoding + // Add pipe separators for line breaks as shown in the example + const formattedContent = lines + .map((line: string) => line.trim()) + .filter((line: string) => line.length > 0) + .join('\n | ') + .replace(/\n \| $/, ''); // Remove trailing empty pipe + + const bookParam = ` + | + | ${formattedContent} + | + `; + + // Generate a simple nonce (could be more sophisticated) + const nonce = Math.floor(Math.random() * 1000); + + // Create the img tag + return `${title} Book`; + }); +} diff --git a/scripts/import-markdown/placeImports.ts b/scripts/import-markdown/placeImports.ts index 7c87be3d..fc7951bf 100644 --- a/scripts/import-markdown/placeImports.ts +++ b/scripts/import-markdown/placeImports.ts @@ -1,5 +1,6 @@ import { spaceTrim } from 'spacetrim'; import { GENERATOR_WARNING, IMPORT_REGEX } from '../config'; +import { embedBooks } from './embedBooks'; import { increaseHeadings } from './increaseHeadings'; import { removeComments } from './removeComments'; @@ -33,6 +34,7 @@ export async function placeImports( importedContent = removeComments(importedContent); importedContent = increaseHeadings(importedContent); + importedContent = embedBooks(importedContent); const placedContent = spaceTrim( (block) => ` From 5917e81d6cf63c7d98fb9a6edd0caf9507aeed16 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Fri, 5 Sep 2025 12:44:27 +0200 Subject: [PATCH 28/30] Enhance `embedBooks` --- README.md | 54 ++++++++++++++++++++++++--- scripts/import-markdown/embedBooks.ts | 29 +++++++------- 2 files changed, 65 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 694c52de..8c725aff 100644 --- a/README.md +++ b/README.md @@ -36,9 +36,17 @@ The main challenge is to narrow it down, constrain it, set the proper **context, Promptbook, takes the best from both worlds. You are defining your AI behavior by simple **books** which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. + Creative writing assistant Book
@@ -53,9 +61,17 @@ You can look at it as prompting (or writing a system message) but decorated by * Persona defines the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication. + Rose Lovegood Book #### `Knowledge` commitment @@ -66,9 +82,20 @@ This can include domain-specific knowledge, company policies, or any other relev Promptbook engine will automatically enforce this knowledge during interactions. When the knowledge is short enough it will be included in the prompt. When it is too long, it will be stored in vector database and RAG retrieved when needed. But you don't need to care about it. + Jane Helper Book #### `Rule` commitment @@ -77,18 +104,35 @@ Rule will enforce specific behaviors or constraints on the AI's responses. This Dependent on rule strictness Promptbook will either propagate it to the prompt or use other techniques like adversay agent to enforce it. + Paul Smith et Associés Book #### `Action` commitment Action commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events or interacting with your internal systems. + Peter Poster Book [Read more about the language](./BLUEPRINT.md) diff --git a/scripts/import-markdown/embedBooks.ts b/scripts/import-markdown/embedBooks.ts index dd598325..9b5e6f92 100644 --- a/scripts/import-markdown/embedBooks.ts +++ b/scripts/import-markdown/embedBooks.ts @@ -1,3 +1,5 @@ +import { spaceTrim } from 'spacetrim'; + /** * Embeds book content as HTML img tags with preview URLs * @@ -31,21 +33,22 @@ export function embedBooks(content: string): string { .join('\n | ') .replace(/\n \| $/, ''); // Remove trailing empty pipe - const bookParam = ` - | - | ${formattedContent} - | - `; - // Generate a simple nonce (could be more sophisticated) - const nonce = Math.floor(Math.random() * 1000); + const nonce = 0; // Math.floor(Math.random() * 1000); // Create the img tag - return `${title} Book`; + return spaceTrim( + (block) => ` + + + ${title} Book`, + ); }); } From f339134d3ff1cd37b9c2352985d11581d463c925 Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Fri, 5 Sep 2025 12:48:49 +0200 Subject: [PATCH 29/30] Proofread the ABSTRACT --- ABSTRACT.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 4f4954fe..2ae94de3 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,12 +1,12 @@ # 📖 The Book Whitepaper -The world is changing, and in 5 years most of you won't do the work or job what you are doing now. When an agent can do your work for $5.74, it is economically unviable to not use the AI agent. +The world is changing, and in 5 years, most of you won't do the work or job that you are doing now. When an agent can do your work for $5.74, it is economically unsound to not use the AI agent. -For most business applications nowadays the biggest challenge isn't about the raw capabilities of AI models. Large language models like GPT-5 or Claude-4.1 are extremely capable. +For most business applications nowadays, the biggest challenge isn't about the raw capabilities of AI models. Large language models like GPT-5 or Claude-4.1 are extremely capable. -The main challenge is to narrow it down, constrain it, set the proper **context, rules, knowledge, and personality**. There are a lot of tools which can do exactly this. In one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Langchain or Semantic Kernel which can give you deep control. +The main challenge is to narrow it down, constrain it, set the proper **context, rules, knowledge, and personality**. There are a lot of tools which can do exactly this. On one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Langchain or Semantic Kernel, which can give you deep control. -Promptbook, takes the best from both worlds. You are defining your AI behavior by simple **books** which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. +Promptbook takes the best from both worlds. You are defining your AI behavior by simple **books**, which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. ```book Creative writing assistant @@ -21,13 +21,13 @@ Always encourage creativity and originality. ## Aspects of great AI agent -We have created language called **Book** which allows you to write AI agents in their native language and create truly **your AI persona**. Book provides a guide to **define all the traits and commitments**. +We have created a language called **Book**, which allows you to write AI agents in their native language and create your own AI persona. Book provides a guide to define all the traits and commitments. -You can look at it as prompting (or writing a system message) but decorated by **commitments**. +You can look at it as prompting (or writing a system message), but decorated by **commitments**. ### `Persona` commitment -Persona defines the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication. +Personas define the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication. ```book Rose Lovegood @@ -40,11 +40,11 @@ Always encourage creativity and originality. ### `Knowledge` commitment -Knowledge commitment allows you to provide specific information, facts, or context that the AI should be aware of when responding. +Knowledge Commitment allows you to provide specific information, facts, or context that the AI should be aware of when responding. This can include domain-specific knowledge, company policies, or any other relevant information. -Promptbook engine will automatically enforce this knowledge during interactions. When the knowledge is short enough it will be included in the prompt. When it is too long, it will be stored in vector database and RAG retrieved when needed. But you don't need to care about it. +Promptbook Engine will automatically enforce this knowledge during interactions. When the knowledge is short enough, it will be included in the prompt. When it is too long, it will be stored in vector databases and RAG retrieved when needed. But you don't need to care about it. ```book Jane Helper @@ -60,9 +60,9 @@ KNOWLEDGE ./internal-documents/employee-handbook.docx ### `Rule` commitment -Rule will enforce specific behaviors or constraints on the AI's responses. This can include ethical guidelines, communication styles, or any other rules you want the AI to follow. +Rules will enforce specific behaviors or constraints on the AI's responses. This can include ethical guidelines, communication styles, or any other rules you want the AI to follow. -Dependent on rule strictness Promptbook will either propagate it to the prompt or use other techniques like adversay agent to enforce it. +Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it. ```book Paul Smith et Associés @@ -78,7 +78,7 @@ KNOWLEDGE ./internal-documents/employee-handbook.docx ### `Action` commitment -Action commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events or interacting with your internal systems. +Action Commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events, or interacting with your internal systems. ```book Peter Poster @@ -95,32 +95,32 @@ ACTION You can post on company Facebook page /supercompany Books can be useful in various applications and scenarios. Here are some examples: -### Chat apps +### Chat apps: -Create your own chat shopping assistant and place it in your eshop. +Create your own chat shopping assistant and place it in your eShop. You will be able to answer customer questions, help them find products, and provide personalized recommendations. Everything is tightly controlled by the book you have written. -### Reply Agent +### Reply Agent: -Create your own AI agent which will look at your emails and reply to them. It can even create drafts for you to review before sending. +Create your own AI agent, which will look at your emails and reply to them. It can even create drafts for you to review before sending. -### Coding Agent +### Coding Agent: -Do you love Vibecoding but the AI code is not always inlined with your coding style and architecture, rules, security etc,? Create your own coding agent to help enforce your specific coding standards and practices. +Do you love Vibecoding, but the AI code is not always aligned with your coding style and architecture, rules, security, etc.? Create your own coding agent to help enforce your specific coding standards and practices. -This can be integrated to almost any vibecoding platform like GitHub Copilot, Amazon CodeWhisperer, Cursor, Cline, Kilocode, Roocode,... +This can be integrated to almost any Vibecoding platform, like GitHub Copilot, Amazon CodeWhisperer, Cursor, Cline, Kilocode, Roocode,... -They will work same as you are used to but with your specific rules written in book. +They will work the same as you are used to, but with your specific rules written in book. -### Internal Expertize +### Internal Expertise -Do you have app written in TypeScript, Python, C#, Java, or any other language and you are integrating the AI. +Do you have an app written in TypeScript, Python, C#, Java, or any other language, and you are integrating the AI. -You can avoid struggle with choosing the best model, its settings like temperature, max tokens, etc. by writing a book agent and using it as your AI expertize. +You can avoid struggle with choosing the best model, its settings like temperature, max tokens, etc., by writing a book agent and using it as your AI expertise. -Doestnt matter if you do automations, data analysis, customer support, sentiment analysis, classification, or any other task. Your AI agent will be tailored to your specific needs and requirements. +Doesn't matter if you do automations, data analysis, customer support, sentiment analysis, classification, or any other task. Your AI agent will be tailored to your specific needs and requirements. -Even works in no-code platforms +Even works in no-code platforms!
From aa039208ad9d53e285cd5159c531b7ef74810f5b Mon Sep 17 00:00:00 2001 From: Pavol Hejny Date: Thu, 16 Oct 2025 17:43:42 +0200 Subject: [PATCH 30/30] Uodate abstract --- ABSTRACT.md | 65 ++++++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/ABSTRACT.md b/ABSTRACT.md index 2ae94de3..958af8eb 100644 --- a/ABSTRACT.md +++ b/ABSTRACT.md @@ -1,7 +1,5 @@ # 📖 The Book Whitepaper -The world is changing, and in 5 years, most of you won't do the work or job that you are doing now. When an agent can do your work for $5.74, it is economically unsound to not use the AI agent. - For most business applications nowadays, the biggest challenge isn't about the raw capabilities of AI models. Large language models like GPT-5 or Claude-4.1 are extremely capable. The main challenge is to narrow it down, constrain it, set the proper **context, rules, knowledge, and personality**. There are a lot of tools which can do exactly this. On one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Langchain or Semantic Kernel, which can give you deep control. @@ -9,12 +7,11 @@ The main challenge is to narrow it down, constrain it, set the proper **context, Promptbook takes the best from both worlds. You are defining your AI behavior by simple **books**, which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable. ```book -Creative writing assistant +Paul Smith & Associés -PERSONA You are a creative writing assistant. -You help users to write stories, poems, and other creative texts. -You are imaginative, inspiring, and supportive. -Always encourage creativity and originality. +PERSONA You are a company lawyer. +Your job is to provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. ```
@@ -30,12 +27,11 @@ You can look at it as prompting (or writing a system message), but decorated by Personas define the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication. ```book -Rose Lovegood +Paul Smith & Associés -PERSONA You are a creative writing assistant. -You help users to write stories, poems, and other creative texts. -You are imaginative, inspiring, and supportive. -Always encourage creativity and originality. +PERSONA You are a company lawyer. +Your job is to provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. ``` ### `Knowledge` commitment @@ -47,15 +43,14 @@ This can include domain-specific knowledge, company policies, or any other relev Promptbook Engine will automatically enforce this knowledge during interactions. When the knowledge is short enough, it will be included in the prompt. When it is too long, it will be stored in vector databases and RAG retrieved when needed. But you don't need to care about it. ```book -Jane Helper - -PERSONA You are a HR buddy. -You assist employees with HR-related questions and tasks. -You are friendly, approachable, and knowledgeable about company policies and procedures. -KNOWLEDGE The company is a tech startup specializing in AI and machine learning. -It was founded in 2020 and has 50 employees. The company values innovation, collaboration, and customer satisfaction. -KNOWLEDGE https://example.com/company-policies.pdf -KNOWLEDGE ./internal-documents/employee-handbook.docx +Paul Smith & Associés + +PERSONA You are a company lawyer. +Your job is to provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. + +KNOWLEDGE https://company.com/company-policies.pdf +KNOWLEDGE https://company.com/internal-documents/employee-handbook.docx ``` ### `Rule` commitment @@ -65,15 +60,17 @@ Rules will enforce specific behaviors or constraints on the AI's responses. This Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it. ```book -Paul Smith et Associés +Paul Smith & Associés PERSONA You are a company lawyer. -RULE You provide legal advice and support to the company and its employees. +Your job is to provide legal advice and support to the company and its employees. You are knowledgeable, professional, and detail-oriented. -Always ensure compliance with laws and regulations. -RULE Never provide legal advice that is outside your area of expertise. -KNOWLEDGE https://example.com/company-policies.pdf -KNOWLEDGE ./internal-documents/employee-handbook.docx + +RULE Always ensure compliance with laws and regulations. +RULE Never provide legal advice outside your area of expertise. +RULE Never provide legal advice about criminal law. +KNOWLEDGE https://company.com/company-policies.pdf +KNOWLEDGE https://company.com/internal-documents/employee-handbook.docx ``` ### `Action` commitment @@ -81,10 +78,18 @@ KNOWLEDGE ./internal-documents/employee-handbook.docx Action Commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events, or interacting with your internal systems. ```book -Peter Poster +Paul Smith & Associés + +PERSONA You are a company lawyer. +Your job is to provide legal advice and support to the company and its employees. +You are knowledgeable, professional, and detail-oriented. -PERSONA You are a social media manager. You help users to create and manage their social media presence. You are creative, strategic, and data-driven. Always stay up-to-date with the latest trends and best practices. -ACTION You can post on company Facebook page /supercompany +RULE Always ensure compliance with laws and regulations. +RULE Never provide legal advice outside your area of expertise. +RULE Never provide legal advice about criminal law. +KNOWLEDGE https://company.com/company-policies.pdf +KNOWLEDGE https://company.com/internal-documents/employee-handbook.docx +ACTION When a user asks about an issue that could be treated as a crime, notify legal@company.com. ``` [Read more about the language](./BLUEPRINT.md)