Mentals AI adalah alat yang dirancang untuk membuat dan mengoperasikan agen yang menampilkan loops , memory , dan berbagai tools , semua melalui file markdown langsung dengan ekstensi .Gen. Pikirkan file agen sebagai file yang dapat dieksekusi. Anda sepenuhnya fokus pada logika agen, menghilangkan kebutuhan untuk menulis kode perancah di Python atau bahasa lainnya. Pada dasarnya, ini mendefinisikan kembali kerangka dasar untuk aplikasi AI di masa depan?
Catatan
Game rantai kata dalam loop sendiri yang dikendalikan oleh llm: 
NLOP - Operasi Bahasa Alami
Atau kasus penggunaan yang lebih kompleks:
| Interaksi multi-agen apa pun | ? Agen Generator Invaders Ruang | ? Agen generator platformer 2D |
|---|---|---|
![]() | ![]() | ![]() |
Atau membantu dengan konten:
Semua contoh di atas terletak di folder Agen.
Catatan
Dukungan LLAMA3 tersedia untuk penyedia menggunakan API OpenAI yang kompatibel.
Mulailah dengan mengamankan kunci API OpenAI melalui pembuatan akun Openai. Jika Anda sudah memiliki kunci API, lewati langkah ini.
Prasyarat
Sebelum membangun proyek, pastikan dependensi berikut diinstal:
Bergantung pada sistem operasi Anda, Anda dapat menginstal ini menggunakan perintah berikut:
Linux
sudo apt-get update
sudo apt-get install libcurl4-openssl-dev libfmt-dev libpoppler-devMacOS
brew update
brew install curl fmt popplerWindows
Untuk Windows, disarankan untuk menggunakan VCPKG atau manajer paket serupa:
vcpkg install curl fmt popplerInstalasi PGVector
Catatan
Di cabang main Anda dapat melewatkan langkah ini
Klon Repositori
git clone https://github.com/turing-machines/mentals-ai
cd mentals-aiKonfigurasi
Tempatkan tombol API Anda di file config.toml :
[llm]
# OpenAI
api_key = " "
endpoint = " https://api.openai.com/v1 "
model = " gpt-4o "Membangun proyek
makeBerlari
./build/mentals agents/loop.gen -dMental AI membedakan dirinya dari kerangka kerja lain dalam tiga cara penting:
Agent Executor ? beroperasi melalui loop rekursif. LLM menentukan langkah selanjutnya: Memilih instruksi (prompt) dan mengelola data berdasarkan loop sebelumnya. Proses pengambilan keputusan rekursif ini merupakan bagian integral dari sistem kami, diuraikan dalam mentals_system.promptMarkdown , menghilangkan kebutuhan untuk bahasa pemrograman tradisional. Namun, Python dapat diintegrasikan langsung ke dalam skrip Markdown agen jika perlu.Tree of Thoughts , ReAct , Self-Discovery , Auto-CoT , dan lainnya. Seseorang juga dapat menghubungkan kerangka kerja ini menjadi sekuens yang lebih kompleks, bahkan menciptakan jaringan berbagai kerangka kerja penalaran. File agen adalah deskripsi tekstual dari instruksi agen dengan ekstensi .gen .
Instruksi adalah komponen dasar dari agen dalam mental. Agen dapat terdiri dari satu atau lebih instruksi, yang dapat merujuk satu sama lain.

Instruksi dapat ditulis dalam bentuk gratis, tetapi mereka selalu memiliki nama yang dimulai dengan simbol # . ## use: Petunjuk digunakan untuk menentukan referensi ke instruksi lain. Beberapa referensi terdaftar dipisahkan oleh koma.
Di bawah ini adalah contoh dengan dua instruksi root dan meme_explain dengan referensi:
# root
## use: meme_explain
1. Create 3 memes about AGI;
2. Then do meme explain with meme per call;
3. Output memes and their explanations in a list.
# meme_explain
Explain the gist of the meme in 20 words in medieval style.
Return explanation.
Dalam contoh ini, instruksi root memanggil instruksi meme_explain . Respons dari meme_explain kemudian dikembalikan ke instruksi dari mana itu disebut, yaitu root.
Instruksi dapat mengambil parameter input , yang secara otomatis dihasilkan berdasarkan konteks ketika instruksi dipanggil. Untuk menentukan data input secara lebih tepat, Anda dapat menggunakan prompt bentuk bebas di ## input: arahan, seperti objek JSON atau null .
Menggunakan dokumen untuk input:
# some_instruction
## input: design document only
Menggunakan objek JSON sebagai input:
# duckduckgo
## input: { search_query: search query, search_limit: search limit }
Write a Python script to search in DuckDuckGo.
Simulate request headers correctly e.g. user-agent as Mozilla and Linux.
Catatan
Panggilan instruksi diimplementasikan secara independen dari fungsi atau panggilan alat di OpenAi, memungkinkan pengoperasian agen dengan model seperti LLAMA3. Implementasi panggilan instruksi transparan dan termasuk dalam file mentals_system.promppt.
Alat adalah semacam instruksi. Mental memiliki satu set alat asli untuk menangani output pesan, input pengguna, penanganan file, penerjemah Python, perintah bash, dan memori jangka pendek.
Tanyakan contoh pengguna:
# root
## use: user_input
Ask user name.
Then output: `Welcome, user_name!`
Contoh Penanganan File:
# root
## use: write_file, read_file
Write 'Hello world' to a file.
Then read and output file content.
Daftar lengkap alat asli tercantum dalam file native_tools.toml .
Setiap instruksi memiliki memori kerjanya sendiri - konteks. Saat keluar dari instruksi dan masuk kembali, konteksnya disimpan secara default. Untuk menghapus konteks saat keluar dari instruksi, Anda dapat menggunakan ## keep_context: false Directive:
# meme_explain
## keep_context: false
Explain the gist of the meme in 20 words in medieval style.
Return explanation.
Secara default, ukuran konteks instruksi tidak terbatas. Untuk membatasi konteksnya, ada arahan ## max_context: number yang menentukan bahwa hanya number pesan terbaru yang harus disimpan. Pesan yang lebih lama akan didorong keluar dari konteks. Fitur ini berguna ketika Anda ingin menyimpan data terbaru dalam konteks sehingga data yang lebih lama tidak mempengaruhi rantai penalaran.
# python_code_generation
## input: development tasks in a list
## use: write_file
## max_context: 5
Do all development tasks in a loop: task by task.
Save the Python code you implement in the main.py file.
Memori jangka pendek memungkinkan penyimpanan hasil perantara dari aktivitas agen, yang kemudian dapat digunakan untuk penalaran lebih lanjut. Isi memori ini dapat diakses di semua konteks instruksi.
Alat memory digunakan untuk menyimpan data. Saat data disimpan, kata kunci dan deskripsi konten dihasilkan. Dalam contoh di bawah ini, instruksi meme_recall mengetahui meme karena sebelumnya disimpan dalam memori.
# root
## use: memory, meme_recall
Come up with and memorize a meme.
Call meme recall.
# meme_recall
## input: nothing
What the meme was about?
Aliran kontrol, yang mencakup kondisi, panggilan instruksi, dan loop (seperti ReAct , Auto-CoT , dll.), Diekspresikan sepenuhnya dalam bahasa alami. Metode ini memungkinkan pembuatan semantic conditions yang mengarahkan percabangan aliran data. Misalnya, Anda dapat meminta agen untuk secara mandiri memainkan permainan rantai kata dalam satu loop atau membangun kondisi keluar yang ambigu: exit the loop if you are satisfied with the result . Di sini, model bahasa dan konteksnya menentukan apakah akan melanjutkan atau berhenti. Semua ini dicapai tanpa perlu mendefinisikan logika aliran di Python atau bahasa pemrograman lainnya.
## use: execute_bash_command, software_development, quality_assurance
...
You run in a loop of "Thought", "Action", "Observation".
At the end of the loop return with the final answer.
Use "Thought" to describe your thoughts about the task
you have been asked. Use "Action" to run one of the actions
available to you. Output action as: "Action: action name to call".
"Observation" will be the result of running those actions.
Your available actions:
- `execute_bash_command` for util purposes e.g. make directory, install packages, etc.;
- `software_development` for software development and bug fixing purposes;
- `quality_assurance` for QA testing purposes.
...
Gagasan di balik TOT adalah untuk menghasilkan banyak ide untuk menyelesaikan masalah dan kemudian mengevaluasi nilainya. Gagasan berharga disimpan dan dikembangkan, ide -ide lain dibuang.
Mari kita ambil contoh dari 24 game. 24 teka -teki adalah teka -teki aritmatika di mana tujuannya adalah untuk menemukan cara untuk memanipulasi empat bilangan bulat sehingga hasil akhirnya adalah 24. Pertama, kami mendefinisikan instruksi yang menciptakan dan memanipulasi struktur data pohon. Model ini tahu apa pohon itu dan dapat mewakilinya dalam format apa pun, dari teks biasa ke XML/JSON atau format khusus apa pun.
Dalam contoh ini, kami akan menggunakan format teks biasa:
# tree
## input: e.g. "add to node `A` child nodes `B` and `C`", "remove node `D` with all branches", etc.
## use: memory
## keep_context: false
Build/update tree structure in formatted text.
Update the tree structure within the specified action;
Memorize final tree structure.
Selanjutnya kita perlu menginisialisasi pohon dengan data awal, mari kita mulai dengan instruksi root:
# root
## use: tree
Input: 4 5 8 2
Generate 8 possible next steps.
Store all steps in the tree as nodes e.g.
Node value 1: "2 + 8 = 10 (left: 8 10 14)"
Node value 2: "8 / 2 = 4 (left: 4 8 14)"
etc.
Memanggil instruksi root akan menyarankan 8 langkah selanjutnya yang mungkin untuk menghitung dengan 2 angka pertama dan menyimpan langkah -langkah ini sebagai node pohon. Pekerjaan lebih lanjut oleh agen menghasilkan pembangunan pohon yang nyaman bagi model untuk memahami dan menyimpulkan jawaban akhir.
4 5 8 2
├── 4 + 5 = 9 (left: 9, 8, 2)
│ └── discard
├── 4 + 8 = 12 (left: 12, 5, 2)
│ └── discard
├── 4 + 2 = 6 (left: 6, 5, 8)
│ └── discard
├── 5 + 8 = 13 (left: 13, 4, 2)
│ └── discard
├── 5 + 2 = 7 (left: 7, 4, 8)
│ └── (7 - 4) * 8 = 24
├── 8 + 2 = 10 (left: 10, 4, 5)
│ └── discard
├── 4 * 5 = 20 (left: 20, 8, 2)
│ └── (20 - 8) * 2 = 24
└── 4 * 8 = 32 (left: 32, 5, 2)
└── discard
Based on the evaluations, we have found two successful paths to reach 24:
1. From the node "5 + 2 = 7 (left: 7, 4, 8)", we have the equation: (7 - 4) * 8 = 24.
2. From the node "4 * 5 = 20 (left: 20, 8, 2)", we have the equation: (20 - 8) * 2 = 24.
Thus, the final equations using all given numbers from the input are:
1. (5 + 2 - 4) * 8 = 24
2. (4 * 5 - 8) * 2 = 24
Contoh lengkap terkandung dalam agen/tree_struktur.gen
Konsep ini berasal dari studi tentang fungsi eksekutif psikoanalisis, mengeksplorasi eksekutif pusat, Alan Baddeley, 1996. Dia menggambarkan sistem yang mengatur proses kognitif dan memori kerja, memfasilitasi pengambilan dari memori jangka panjang. LLM berfungsi sebagai System 1 , memproses permintaan dan mengeksekusi instruksi tanpa motivasi yang melekat atau penetapan tujuan. Jadi, lalu apa itu System 2 ? Menggambar dari wawasan historis, sekarang dipertimbangkan kembali melalui lensa ilmiah:
Fungsi eksekutif pusat, atau eksekutif, sangat penting untuk pemrosesan yang terkontrol dalam memori kerja. Ini mengelola tugas termasuk mengarahkan perhatian, mempertahankan tujuan tugas, pengambilan keputusan, dan pengambilan memori.
Ini memicu kemungkinan yang menarik: membangun agen yang lebih canggih dengan mengintegrasikan System 1 dan System 2 . LLM, sebagai System 1 , bekerja bersama -sama dengan System 2 , yang mengatur dan mengendalikan LLM. Kemitraan ini membentuk hubungan ganda yang mendasar untuk mental AI.