<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/software-3-1---ai-functions-0rpp5htzb" -->

---
title: Software 3.1? - AI Functions | daily.dev
description: Andrej Karpathy's Software 1.0/2.0/3.0 framework is extended with a proposed 'Software 3.1' concept: AI Functions. Unlike Software 3.0 where LLMs generate...
canonical: https://daily.dev/posts/software-3-1---ai-functions-0rpp5htzb
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Software 3.1? - AI Functions | daily.dev
og:description: Andrej Karpathy's Software 1.0/2.0/3.0 framework is extended with a proposed 'Software 3.1' concept: AI Functions. Unlike Software 3.0 where LLMs generate...
og:url: https://daily.dev/posts/software-3-1---ai-functions-0rpp5htzb
og:image: https://api.daily.dev/og/posts/0RPP5HtZB.png
og:image:alt: Software 3.1? - AI Functions
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Software 3.1? - AI Functions

**[DEV](https://daily.dev/sources/devto)** · 16 min read · 1 upvotes · 1 comments

## Summary

Andrej Karpathy's Software 1.0/2.0/3.0 framework is extended with a proposed 'Software 3.1' concept: AI Functions. Unlike Software 3.0 where LLMs generate text/code for humans to integrate, AI Functions (via the `@ai_function` decorator from Strands Labs) generate and execute code at runtime inside your Python process, returning native objects like DataFrames or Pydantic models. The key innovation is post-conditions — Python assertions or even other AI functions — that validate output on every call and feed failures back to the LLM for automatic retries. The post covers structured output with Pydantic, local code execution with explicit import restrictions, multi-agent composition, async parallel workflows, and using test suites as post-conditions. Security tradeoffs of running LLM-generated code in-process are acknowledged, with sandboxing recommended for production use.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://dev.to/aws/software-31-ai-functions-5acn>

## Community discussion

Top comments from developers on daily.dev.

**@fabianletsch** · 0 upvotes

> This sounds like a great idea unless somebody uses it to replace things that should actually be done with code.
>
>
> Just imagine ifs and loops being non deterministic 😂

## Similar posts on daily.dev

- [AI Code](https://daily.dev/posts/ai-code-xms8pzhlw) · Hacker News · 0 upvotes · 0 comments
- [Grounding LLMs: How Function Calling Makes AI Actionable](https://daily.dev/posts/grounding-llms-how-function-calling-makes-ai-actionable-pusaizj7u) · PromptLayer Blog · 1 upvotes · 0 comments
- [Using AI\_Functions in Your Data Warehouse: Top Use Cases](https://daily.dev/posts/using-ai-functions-in-your-data-warehouse-top-use-cases-om2ogbtjk) · databricks · 1 upvotes · 0 comments
- [What Are AI Guardrails](https://daily.dev/posts/what-are-ai-guardrails-zluqspinf) · Last9 · 1 upvotes · 0 comments

---

Tags: [#ai](https://daily.dev/tags/ai), [#ai-agents](https://daily.dev/tags/ai-agents), [#llm](https://daily.dev/tags/llm), [#python](https://daily.dev/tags/python)

[View this post on daily.dev](https://daily.dev/posts/software-3-1---ai-functions-0rpp5htzb)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Software 3.1? - AI Functions","url":"https://daily.dev/posts/software-3-1---ai-functions-0rpp5htzb","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/software-3-1---ai-functions-0rpp5htzb"},"datePublished":"2026-02-26T14:55:39.001Z","dateModified":"2026-03-15T07:02:52.083Z","description":"Andrej Karpathy's Software 1.0/2.0/3.0 framework is extended with a proposed 'Software 3.1' concept: AI Functions. Unlike Software 3.0 where LLMs generate...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1619f6b72e04cb124fd020ab7edf0905?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1619f6b72e04cb124fd020ab7edf0905?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"DEV","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"DEV","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/devto","url":"https://daily.dev/sources/devto"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/software-3-1---ai-functions-0rpp5htzb","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"ai,ai-agents,llm,python","timeRequired":"PT16M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"DEV","item":"https://daily.dev/sources/devto"},{"@type":"ListItem","position":3,"name":"Software 3.1? - AI Functions"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/software-3-1---ai-functions-0rpp5htzb","comment":[{"@type":"Comment","text":"This sounds like a great idea unless somebody uses it to replace things that should actually be done with code.\nJust imagine ifs and loops being non deterministic 😂","datePublished":"2026-03-06T06:59:51.478Z","url":"https://daily.dev/posts/0RPP5HtZB#c-wxmDjp8bH","author":{"@type":"Person","name":"Fabian Letsch","url":"https://daily.dev/fabianletsch","image":"https://lh3.googleusercontent.com/a/ACg8ocKR6BVy_wn23EoOKq7-BlszlcXcLmASlnb7l-GtS-q1bePnkaJf=s96-c"}}]}
```

