Our minds are prone to cognitive biases—psychological traps that subtly influence our decisions. Recognizing these biases can help us make better choices and avoid common pitfalls. Here are 38 psychological traps you should be aware of, along with practical examples and strategies to counteract them.
1. Ostrich Effect
Ignoring negative information because it makes you anxious. Example: A person avoids checking their bank balance because they fear bad news. Solution: Face uncomfortable facts head-on; information empowers better decision-making.
2. Inability to Close Doors
Fear of missing out leads you to continue something despite losses. Example: A trader keeps holding onto a losing stock, fearing they might miss a rebound. Solution: Focus on one thing and accept that every choice has trade-offs.
3. Contrast Effect
Overvaluing something because it is compared to something worse. Example: A car salesman shows you an overpriced model first so that the next option looks like a bargain. Solution: Evaluate things independently, without relative comparisons.
4. Chauffeur Knowledge
Trusting someone who sounds smart but lacks true wisdom. Example: Following financial advice from a social media influencer who repeats expert opinions without understanding them. Solution: Ask deeper questions to reveal genuine understanding.
5. IKEA Effect
Overvaluing something just because you created it. Example: A startup founder overvalues their failing product because they built it. Solution: Seek external feedback to ensure objective evaluation.
6. Curse of Specificity
Giving too much weight to irrelevant details. Example: Choosing a job based on a single perk rather than overall benefits. Solution: Focus on the big picture rather than unnecessary specifics.
7. Spotlight Effect
Believing others notice you more than they actually do. Example: Feeling embarrassed about a small stain on your shirt, assuming everyone notices it. Solution: Realize that people are generally more focused on themselves.
8. Halo Effect
Allowing a good impression in one area to influence judgments in others. Example: Assuming a friendly coworker is also highly competent. Solution: Separate different aspects when evaluating a person or situation.
9. Reciprocity
Feeling obligated to return favors even when unnecessary. Example: Feeling pressured to buy something after receiving a free sample. Solution: Act out of genuine intent, not just obligation.
10. Self-Serving Bias
Attributing success to oneself but blaming failure on external factors. Example: A student credits themselves for good grades but blames a teacher for poor ones. Solution: Take responsibility for both success and failure.
11. Diderot Effect
One purchase leading to a spiral of unnecessary spending. Example: Buying an expensive suit, then feeling the need to purchase matching shoes and accessories. Solution: Be mindful of cascading consumption.
12. Anchoring Effect
Giving disproportionate weight to the first piece of information received. Example: Seeing a product originally priced at $500, then marked down to $300, making it seem like a great deal. Solution: Consider all options equally before deciding.
13. Negativity Bias
Focusing more on negatives than positives. Example: Remembering one negative review about a restaurant despite hundreds of positive ones. Solution: Consciously highlight and appreciate positive aspects.
14. Sunk Cost Fallacy
Continuing an endeavor due to past investments. Example: Staying in a bad relationship because of years already spent in it. Solution: Focus on future returns, not past losses.
15. Paradox of Choice
Struggling to choose because of too many options. Example: Spending an hour trying to decide what to order from an extensive menu. Solution: Simplify choices to avoid decision fatigue.
16. Framing Effect
Decisions influenced by how information is presented. Example: A medication labeled “90% success rate” sounds better than “10% failure rate,” even though both are the same. Solution: Reframe information objectively.
17. End of History Illusion
Believing who you are now is who you will always be. Example: Thinking your current career or hobbies will never change. Solution: Accept that personal growth is ongoing.
18. Pygmalion Effect
Higher expectations lead to better performance. Example: A teacher who believes in their students helps them perform better. Solution: Set ambitious but realistic goals.
19. Consistency Effect
Staying accountable due to external expectations. Example: Announcing a goal publicly to encourage follow-through. Solution: Find an accountability partner.
20. Planning Fallacy
Underestimating time and effort required for tasks. Example: Assuming you can complete a project in a week when it realistically takes a month. Solution: Plan thoroughly and set realistic timelines.
21. Confirmation Bias
Noticing information that supports pre-existing beliefs. Example: A person who believes a conspiracy theory only seeks information that supports it. Solution: Challenge your own assumptions actively.
22. Bandwagon Effect
Following the crowd without critical thinking. Example: Buying a trending stock without researching its fundamentals. Solution: Make decisions based on your own needs.
23. Dunning-Kruger Effect
Overestimating one’s own competence. Example: A beginner investor believing they can outperform the market. Solution: Consult experts and stay humble.
24. Loss Aversion
Fearing failure more than valuing success. Example: Not investing in stocks due to fear of losing money. Solution: Reframe losses as learning opportunities.
25. Decoy Effect
Choosing something because it looks better than a worse option. Example: Opting for a medium-sized popcorn because the large one seems overpriced. Solution: Evaluate options independently.
26. Availability Heuristic
Judging probability based on easily recalled events. Example: Avoiding flying after seeing news of a plane crash. Solution: Rely on data, not just personal experience.
27. Gambler’s Fallacy
Believing past events affect future outcomes. Example: Thinking a coin flip must land on heads after ten tails in a row. Solution: Recognize that independent events remain independent.
28. Hindsight Bias
Believing you “knew it all along.” Example: After a stock market crash, claiming you saw it coming, despite making no prior decisions to avoid losses. Solution: Acknowledge uncertainty and learn from outcomes.
29. Reactance Bias
Doing the opposite of what is advised due to a perceived threat to freedom. Example: Ignoring dietary advice because it feels restrictive. Solution: Evaluate guidance objectively and consider its benefits.
30. Action Bias
Acting hastily without enough information. Example: Making an impulsive investment decision during a market dip. Solution: Be patient and gather sufficient information before acting.
31. Survivorship Bias
Focusing only on successes while ignoring failures. Example: Assuming all entrepreneurs become successful without considering those who failed. Solution: Study both successes and failures for a balanced view.
32. Unity Principle
Trusting someone more just because they belong to your group. Example: Choosing a candidate in an election just because they share your background. Solution: Evaluate people based on merit, not group affiliation.
33. Zeigarnik Effect
Remembering incomplete tasks more than completed ones. Example: Feeling restless about an unfinished project but forgetting completed tasks. Solution: Organize and complete tasks systematically to reduce stress.
34. Bystander Effect
Failing to act because others are around. Example: Seeing someone in distress but assuming someone else will help. Solution: Take personal responsibility and act when needed.
35. Ambiguity Effect
Avoiding choices that seem unclear. Example: Ignoring investment options due to a lack of familiarity. Solution: Research and clarify uncertainties before deciding.
36. Curse of Knowledge
Assuming others know what you know. Example: A teacher explaining a concept too quickly, forgetting students lack prior knowledge. Solution: Communicate clearly and confirm understanding.
37. Illusion of Averages
Believing averages tell the whole story. Example: Choosing a job based on average salaries without considering individual differences. Solution: Look at the full range of data, not just the average.
38. Endowment Effect
Overvaluing something just because you own it. Example: Refusing to sell an old car at a fair price because of sentimental attachment. Solution: Consider an outsider’s perspective when assessing value.
Final Thoughts Psychological traps can cloud our judgment, but awareness is the first step toward overcoming them. By recognizing these biases, we can make more rational, balanced, and thoughtful decisions in all aspects of life.
Recently while doing some Xmas shopping i game across the board game Catan it fitted into an idea i have had for a while about a game along these lines.
I Also wanted to see if i could build a game with the help of AI without coding a single thing myself.
It might not be fully finished but it was a fun experiment playing with AI.
I found the default chatgbt model of GPT-4o pretty good for the initial setup but when the script got more complicated to 200 ish lines plus it started struggling in the terms of removing core features without being asked.
It did get quite frustrating and then i tried chatgbt o1 model and it has worked really well. It made the occasional error between iterations but it was helpfull.
AI Guard Rails
I found giving these instructions helped giving the AI some guard rails…
Version Incrementing: Each new full version of the code should have its version number incremented on the second line. For example, after # Version 1.13, the next full version you provide should be # Version 1.14, then # Version 1.15, and so forth.
Full Code with Each Update: Whenever you request changes, I should provide the complete updated script—not just a snippet—so you have a full, up-to-date version of the code at each iteration.
Preserve Existing Code Unless Necessary: Do not remove or rewrite large sections of code unless it’s required to implement the requested changes. Keep as much of the original logic and structure as possible, only adjusting or adding code where needed.
Implement Requested Features/Modifications Incrementally: Each time you requested changes—like adding a 4th AI player, explaining aspects of the game, improving the trading logic, or allowing the human player to accept/reject/counter AI-offered trades—I incorporated those changes step-by-step, ensuring stability and that previous features remained intact.
Clarification and Reasoning: Before implementing changes, I asked clarifying questions when needed to ensure I understood your requirements correctly. Where possible, I explained what was done and why, so you understood the reasoning behind each update.
No Removal Without Reason: Unless you explicitly allowed or it was necessary for the change, I avoided removing or altering code unrelated to the requested features to maintain code integrity and continuity.
End Result
Enter your name: asdas
Welcome to Catan!
--- Purpose of the Game ---
Earn 10 Victory Points (VP) by building settlements, roads, and cities.
--- How the Game Works ---
1. The board is composed of hexes, each producing a specific resource (brick, lumber, ore, grain, wool) or desert.
Each hex has a number (2-12). At the start of a turn, you roll two dice. The sum determines which hexes produce resources.
2. Settlements adjacent to a producing hex earn 1 resource; cities earn 2 of that resource. Desert hexes never produce.
3. If a 7 is rolled, no one collects resources and the robber would be activated (not fully implemented here).
4. Your goal is to reach 10 VP. Settlements grant 1 VP, cities grant an additional VP over a settlement, reaching 2 total.
5. On your turn, you can:
- Build: Use resources to construct a settlement, road, or upgrade a settlement to a city.
- Trade: Offer your resources and request others. AI players consider fairness, scarcity, and personal benefit. You can accept, reject, or counter trades offered to you.
- Pass: If you pass without having built or traded, you gain 1 random resource as a bonus.
6. The game features AI players with different personalities (generous, fair, greedy) who evaluate trades differently.
7. Once you or another player reaches 10 VP, the game ends immediately and that player wins.
8. After the last player in a round finishes their turn, press Enter to continue and start the next round.
Starting the game!
asdas's turn!
--- Board ---
[1] wool (3) [2] grain (11) [3] wool (10) [4] desert (2)
[5] lumber (7) [6] ore (3) [7] grain (5) [8] lumber (7)
[9] brick (12) [10] brick (8) [11] brick (7) [12] ore (8)
[13] wool (11) [14] desert (6) [15] ore (8) [16] grain (2)
[17] lumber (12) [18] desert (12)
--- Dice Roll Explanation ---
You rolled a 7. The robber would be activated (not yet implemented):
- No hexes produce resources this turn.
- The robber would move to a chosen hex, blocking it.
- Players with >7 cards would discard half of them.
+-------------+-------+--------+-----+-------+------+-------------+--------+-------+----------------+
| Player | Brick | Lumber | Ore | Grain | Wool | Settlements | Cities | Roads | Victory Points |
+-------------+-------+--------+-----+-------+------+-------------+--------+-------+----------------+
| asdas | 2 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| AI Player 1 | 2 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| AI Player 2 | 0 | 0 | 3 | 1 | 1 | 0 | 0 | 0 | 0 |
| AI Player 3 | 2 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
+-------------+-------+--------+-----+-------+------+-------------+--------+-------+----------------+
Actions: 1. Build 2. Pass 3. Trade
Choose an action:
....
Playing around with OpenAI Swarm and ChatGBT and this was the result (although as you can see i went off on a tangent not using Swarm) but a fun excercise.
See my other AI posts about putting the OpenAI key in as a variable 🙂
$ cat ai_agents.py
#!/usr/bin/python3.11
import openai
import os
os.system('clear')
OPENAI_API_KEY = os.getenv('OPENAI_API_KEY')
# Function to determine the most appropriate agent to respond
def select_agent(agents, user_input):
if "joke" in user_input.lower():
return "Joke Creator"
elif "fact" in user_input.lower() or "verify" in user_input.lower():
return "Fact Checker"
else:
return "Creative Thinker"
# Function for the agent to respond based on instructions
def agent_respond(agent, context):
try:
# Make the call to the OpenAI API with clear and explicit structure
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": agent["instructions"]},
*context
],
max_tokens=150
)
return response['choices'][0]['message']['content'].strip()
except Exception as e:
print(f"Error: {e}")
return None
# Function to create an agent
def create_agent(name, role, instructions):
return {"name": name, "role": role, "instructions": instructions}
# Create agents
agent_1 = create_agent("Fact Checker", "assistant", "You are a detailed fact-checker. Provide accurate and concise responses.")
agent_2 = create_agent("Creative Thinker", "assistant", "You are a creative agent that provides out-of-the-box thinking.")
agent_3 = create_agent("Joke Creator", "assistant", "You are a joke creator. Provide funny jokes when asked.")
# List of agents
agents = [agent_1, agent_2, agent_3]
# Initial explanation to the user
print("Welcome! We have three agents here to assist you:")
print("1. Fact Checker: This agent helps with verifying information, providing accurate answers, and fact-checking.")
print("2. Creative Thinker: This agent helps with brainstorming ideas, creative problem-solving, and thinking outside the box.")
print("3. Joke Creator: This agent helps you by creating jokes and providing humor.")
print("Feel free to ask any questions, and our most suitable agent will assist you.")
# Run an interactive conversation loop
while True:
# Ask user for input
user_input = input("\nWhat do you need help with today?\nYou: ")
# Break loop if user wants to quit
if user_input.lower() in ["quit", "exit"]:
print("Ending the conversation.")
break
# Determine the most appropriate agent based on user input
selected_agent_name = select_agent(agents, user_input)
selected_agent = next(agent for agent in agents if agent["name"] == selected_agent_name)
# Reset messages to contain only the most recent user input for new prompts
messages = [{"role": "user", "content": user_input}]
# Run the selected agent to process the current context
response = agent_respond(selected_agent, messages)
if response:
messages.append({"role": "assistant", "content": f"{selected_agent['name']} response: {response}"})
print(f"{selected_agent['name']} response: {response}")
else:
print(f"No response from {selected_agent['name']}.")
result
Welcome! We have three agents here to assist you:
1. Fact Checker: This agent helps with verifying information, providing accurate answers, and fact-checking.
2. Creative Thinker: This agent helps with brainstorming ideas, creative problem-solving, and thinking outside the box.
3. Joke Creator: This agent helps you by creating jokes and providing humor.
Feel free to ask any questions, and our most suitable agent will assist you.
What do you need help with today?
You: tell me a joke
Joke Creator response: Why did the scarecrow win an award? Because he was outstanding in his field!
What do you need help with today?
You: tell me a fact
Fact Checker response: Fact: The Earth is the only planet in our solar system known to support life.
What do you need help with today?
You: what is the meaning of life?
Creative Thinker response: The meaning of life is a deeply personal and subjective question that can have many different answers depending on individual beliefs, experiences, and perspectives. Some people find meaning in pursuing their passions, building connections with others, contributing to society, seeking personal growth, exploring spirituality, or simply in enjoying the present moment. Ultimately, the meaning of life is something that each person must decide for themselves based on what brings them fulfillment and purpose.
What do you need help with today?
You:
Available in Github at https://github.com/herepete/Fidelity/blob/main/chat_with_openai.py
A standalone script to allow you at the command line to chat with OpenAI
[ec2-user@ip-172-31-33-224 Fidelity]$ cat chat_with_openai.py
#!/usr/bin/python3
import openai
import os
# Your OpenAI API key
openai.api_key = os.getenv("OPENAI_API_KEY")
def chat_with_ai():
messages = [
{"role": "system", "content": "You are a helpful assistant."}
]
print("Start chatting with the AI! Type 'exit' to end the conversation.")
while True:
# Get user input
user_input = input("You: ")
# Exit the chat loop if the user types 'exit'
if user_input.lower() == 'exit':
print("Ending the conversation. Goodbye!")
break
# Add the user's message to the conversation history
messages.append({"role": "user", "content": user_input})
# Get the AI's response
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages,
max_tokens=150 # Set the maximum number of tokens for each response
)
# Extract and print the AI's response
ai_response = response['choices'][0]['message']['content']
print(f"AI: {ai_response}")
# Add the AI's response to the conversation history
messages.append({"role": "assistant", "content": ai_response})
chat_with_ai()
Sample Run
]# ./chat_with_openai.py
Start chatting with the AI! Type 'exit' to end the conversation.
You: Tell me a Joke
AI: Sure, here's a joke for you:
Why couldn't the bicycle stand up by itself?
Because it was two-tired!
You: nice one, tell me an intresting fact?
AI: Here's an interesting fact for you:
Honey never spoils! Archaeologists have found pots of honey in ancient Egyptian tombs that are over 3000 years old and still perfectly edible. Honey's high sugar content and low moisture levels create an environment that prevents the growth of bacteria and yeasts, making it one of the only foods that never spoils.
You:
To check what LLM models you have and other stuff on Ollama
$ ollama list
NAME ID SIZE MODIFIED
llama3.1:latest 42182419e950 4.7 GB 38 minutes ago
gemma2:2b 8ccf136fdd52 1.6 GB 2 hours ago
$ ollama
Usage:
ollama [flags]
ollama [command]
Available Commands:
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
pull Pull a model from a registry
push Push a model to a registry
list List models
ps List running models
cp Copy a model
rm Remove a model
help Help about any command
Flags:
-h, --help help for ollama
-v, --version Show version information
Use "ollama [command] --help" for more information about a command.
Passing Input files – Bash
$ cat /home/ollama_files/helloworld_testfile i have 5 oranges and 2 apples
if i eat 4 oranges and 1 apple
how much is left?
$ cat /home/ollama_files/helloworld_testfile | ollama run gemma2:2b "prompt"
Here's how to figure out the remaining fruit:
Oranges Left: You started with 5 oranges, and you ate 4, so you have
5 - 4 = 1 orange left.
Apples Left: You started with 2 apples, and you ate 1, leaving you
with 2 - 1 = 1 apple.
Answer: You have 1 orange and 1 apple left. 🍊🍎
Passing Input files – Python
# cat ./llm_test.py
#!/usr/bin/python3.9
import ollama
notes = "helloworld_testfile"
with open(notes,'r') as file:
content= file.read()
my_prompt = f"give me the answer {content}"
response = ollama.generate(model="gemma2:2b", prompt=my_prompt)
actual_response = response["response"]
print(actual_response)
# ./llm_test.py
Here's how to solve that:
Oranges: You started with 5, and you ate 4, so you have 5 - 4 = 1 orange left.
Apples: You started with 2, and you ate 1, so you have 2 - 1 = 1 apple left.
Answer: You have 1 orange and 1 apple left.
Quick Chat
$ ollama run gemma2:2b
>>> tell me a joke
Why don't scientists trust atoms?
Because they make up everything! 😄
Let me know if you want to hear another one! 😊
>>> Send a message (/? for help)
In our modern world, where convenience often takes precedence over health, many of us find ourselves succumbing to the allure of junk food. Dr. Chris Van Tulleken, a renowned medical doctor and television presenter, has extensively studied the reasons behind our cravings for unhealthy foods and offers practical solutions to curb this tendency. Understanding the science behind our cravings and implementing effective strategies can help us make healthier choices and improve our overall well-being.
The Science Behind Our Cravings
Dr. Van Tulleken explains that our cravings for junk food are rooted in our biology and the food industry’s manipulation of our natural instincts. Here are some key factors contributing to our cravings:
Evolutionary Biology: Our ancestors relied on high-calorie foods for survival. In the past, when food was scarce, consuming energy-dense foods like fats and sugars was crucial for survival. Today, these instincts persist, driving us towards calorie-rich junk food.
Food Engineering: The food industry employs sophisticated techniques to make junk food irresistible. These foods are engineered to hit the “bliss point,” a perfect combination of salt, sugar, and fat that triggers pleasure centers in our brains, making us crave more.
Addictive Properties: Junk food can be as addictive as drugs. The combination of sugar and fat can lead to a release of dopamine, the brain’s pleasure chemical, creating a cycle of craving and consumption similar to addictive substances.
Psychological Triggers: Stress, boredom, and emotional distress can trigger cravings for comfort foods. Junk food often provides a temporary sense of relief, reinforcing the habit of turning to unhealthy snacks in times of need.
Strategies to Curb Cravings
Understanding the reasons behind our cravings is only half the battle. Dr. Van Tulleken offers practical strategies to help us break free from the grip of junk food:
Mindful Eating: Practicing mindfulness can help us become more aware of our eating habits and cravings. By paying attention to what we eat and how it makes us feel, we can make more conscious food choices.
Healthy Substitutes: Replacing junk food with healthier alternatives can satisfy our cravings without the negative health impacts. Fresh fruits, nuts, and whole grains can provide the same pleasure without the guilt.
Plan and Prepare: Planning meals and snacks ahead of time can help us avoid impulsive junk food consumption. Keeping healthy snacks readily available can reduce the temptation to reach for unhealthy options.
Understand Labels: Becoming familiar with food labels and ingredients can help us make informed choices. Avoiding products with added sugars, artificial flavors, and unhealthy fats can significantly improve our diet.
Hydration: Sometimes, our body confuses thirst with hunger. Staying well-hydrated can reduce unnecessary cravings and promote overall health.
Sleep and Exercise: Adequate sleep and regular physical activity can regulate hormones that control hunger and cravings. A well-rested and active body is less likely to crave junk food.
Seek Support: Making dietary changes can be challenging. Seeking support from friends, family, or a professional can provide the motivation and accountability needed to stay on track.
The Journey to Healthier Habits
Transitioning away from junk food is a journey that requires patience and persistence. Dr. Van Tulleken emphasizes the importance of understanding our cravings, making gradual changes, and celebrating small victories along the way. By implementing these strategies, we can take control of our eating habits and move towards a healthier, more balanced lifestyle.
Ultimately, breaking free from the grip of junk food is not just about willpower; it’s about understanding the science behind our cravings and making informed, mindful choices. With the guidance of experts like Dr. Chris Van Tulleken, we can empower ourselves to overcome these challenges and lead healthier, happier lives.