releasesagentprofile3 min read

AgentProfile 0.2.1 — identity as code, with limits

A PROFILE.md that carries its own schema version and hard cost caps — now on PyPI, because identity you can't install is identity you won't use.

An agent’s identity is usually scattered: model choice in one config, tools in another, spend limits in a spreadsheet. AgentProfile’s bet is that an agent is a single file — PROFILE.md with YAML frontmatter and a Markdown body that is the system prompt, following the SKILL.md convention. 0.2.1 puts that file on PyPI: pip install agentprofile, Python 3.11–3.13.

But the release that made it worth installing was 0.2.0, which gave the file two things profiles usually don’t have:

A schema version that travels with the file

version is now the definition version — author-bumped, ge=1. The moment your runtime parses a profile, it can know whether it understands the file, instead of discovering incompatibility by misbehaving. Schema evolution becomes a property of the artifact, not a footnote in a changelog.

Limits that are first-class, not advice

Three fields that most agent configs treat as suggestions — max_llm_calls, cost_limit_usd, timeout_seconds — are schema-enforced requirements. A runtime that loads a profile can cap spend and runtime per agent, and every agent definition carries the caps with it. “Identity as code” without limits is a resume; with limits, it’s a contract.

What the file looks like

---
version: 1
name: research-assistant
description: Web research agent that summarizes findings with citations
model: gpt-4o-mini
tools:
  - web_search
max_llm_calls: 50
cost_limit_usd: 1.0
timeout_seconds: 120
---

You are a research assistant. Always cite sources with URLs.

Companion files travel beside it (provider.json, output-schema.json) — the identity, its provider bindings, and its output contract as a versionable unit.

Why it matters: every runtime in the Open Assistants stack can load the same profile — and each of them gets to enforce the same limits, because the file said so. Identity isn’t a convention anymore; it’s a validated artifact with an opinion about how much it’s allowed to cost.