FactoryMind AgentOS
FactoryMind AgentOS is a Python library for building reusable, reliable, self-improving agents with a typed runtime contract.
Current status: v1.3.0 (stable).
Install
pip install agent-os==1.3.0
For local repo usage:
pip install -e .
Stable Core API
AgentOSAgentOS.load(...)AgentOS.create_agent(...)AgentOS.sessionsAgentOS.memoryAgentOS.learningAgentOS.flameAgentOS.toolsAgentOS.capabilitiesAgentOS.monitor- Core models:
AgentDefinition,Session,SessionEvent,AgentOutput,MemoryItem,LearningRun,ToolManifest,ToolCallResult,ModelCapability,UsageRecord,CostRecord,AgentStatus,PoolItem,ReflectionBatchRun
Breaking change in v1.2.0: candidate-era learning APIs are removed from stable surface. FLAME temporary-memory reflection is the authoritative learning path.
v1.3.0 adds dual output modes per agent:
output_mode="text"(default)output_mode="json_schema"withoutput_schemaand typedAgentOutput.content_json
Agent Capability Tiers
basic_agent: short-term session context only, no long-term memory retrieval, no learningself_learning_agent: short-term + long-term memory (agent-owned memory only) + learning
Example:
from agent_os import AgentTier
app.create_agent(
agent_id="project-selector",
goal="Select best project",
model="gpt-4.1-mini",
agent_tier=AgentTier.BASIC_AGENT,
)
Library Quickstart
from pathlib import Path
from agent_os import AgentOS
root = Path(".agent-os")
app = AgentOS.load(root=root, runtime_mode="local")
app.create_agent(
agent_id="proposal-agent",
goal="Draft project proposals",
model="gpt-4.1-mini",
tenant_id="default",
output_mode="text",
)
session = app.sessions.init("proposal-agent", "Draft a proposal for Project Orion")
output = app.sessions.run(session.session_id)
print(output.type.value, output.content)
app.sessions.feedback(session.session_id, "Make it concise and include delivery timeline.")
app.sessions.accept(session.session_id, note="Accepted")
Learning and Tools
# learning.run remains as a compatibility alias and dispatches to FLAME trigger.
run = app.learning.run(agent_id="proposal-agent", window_size=20)
runs = app.flame.list_runs("proposal-agent")
pool = app.flame.list_pool("proposal-agent")
from agent_os import ToolManifest, ToolScope
tool = app.tools.register(
ToolManifest(
name="project_lookup",
scope=ToolScope.READ,
input_schema={"type": "object", "properties": {"q": {"type": "string"}}, "required": ["q"]},
output_schema={"type": "object"},
)
)
app.tools.bind("proposal-agent", tool.tool_id)
result, audit = app.tools.call("proposal-agent", session.session_id, tool.tool_id, {"q": "orion"})
Canonical Examples
examples/proposal_agent_app.pyexamples/project_selection_agent_app.pyexamples/keyword_extraction_agent_app.py
v1 Docs
docs/stable-sdk-contract.mddocs/migration-v1-memory-only.mddocs/migration-v1.2.0-flame-cutover.mddocs/migration-v1.3.0-structured-output.md
Metadata
Release files for factorymind-agent-os 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| factorymind_agent_os-1.3.0.tar.gz | 180.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| factorymind_agent_os-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 266.2 kB
Release files / factorymind_agent_os-1.3.0.tar.gz
| Download URL | factorymind_agent_os-1.3.0.tar.gz |
|---|---|
| Size | 180.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c5bb74031c7af351e92c76da98e9a57520f6f4279f625d18f10e138046473285
|
|
BLAKE2b-256 checksum How to use checksums |
86abd3b7d6effaa31fba86d48e5a2a8bcabd7daf8c4b56ee24e3d5ba4ccebd68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / factorymind_agent_os-1.3.0-py3-none-any.whl
| Download URL | factorymind_agent_os-1.3.0-py3-none-any.whl |
|---|---|
| Size | 85.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8beb75ced8785b9918ac36b2ae774e88d54491a60ff2645b18e4b558b60f50c8
|
|
BLAKE2b-256 checksum How to use checksums |
4b28652f1d6c0170065cdcf8eeb21ccda85397b6643c315a5030f586adde5a81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|