fabricatio-agent
AI agent framework that integrates thinking, memory, judgment, task dispatching, and team collaboration into a single composable Agent class. The agent digests requests, decomposes them into tasks, and executes them through a cooperative multi-role pipeline.
Installation
pip install fabricatio[agent]
Or with full dependencies:
pip install fabricatio[full]
The package exposes a CLI entry point (falcon) when installed with the cli extra:
pip install fabricatio-agent[cli]
falcon code "write a fibonacci function in python"
Key Components
Agent (fabricatio_agent.capabilities.agent)
The central class composing these capabilities through multiple inheritance:
| Capability | Trait | Role |
|---|---|---|
| Checkpoint | Checkpoint |
Save/restore execution state |
| Capable | Capable |
Assess whether the agent can handle a request |
| CooperativeDigest | CooperativeDigest |
Decompose requests into task lists with team-aware dispatch |
| Remember | Remember |
Recall relevant memories to enrich context |
| Censor | Censor |
Rule-based content filtering |
| EvidentlyJudge | EvidentlyJudge |
Evidence-aware judgment and evaluation |
| DispatchTask | DispatchTask |
Dispatch tasks to team members |
| DiffEdit | DiffEdit |
Difference-based editing operations |
| Questioning | Questioning |
Interactive question-asking |
| Thinking | Thinking |
Sequential chain-of-thought reasoning |
| Handle | Handle |
Tool execution and handling |
Agent.fulfill(request, sequential_thinking=False, check_capable=False, memory=False, top_k=100, boost_recent=True, **kwargs)
The main entry point. Orchestrates capability checking → memory recall → sequential thinking → request digestion into a task list → task execution. Returns None if the agent is not capable, otherwise returns the task execution results.
from fabricatio_agent.capabilities.agent import Agent
class MyAgent(Agent):
pass
agent = MyAgent()
result = await agent.fulfill(
"Refactor the authentication module to use JWT",
sequential_thinking=True,
memory=True,
)
Configuration
All options below are read through the fabricatio configuration chain (see the
Configuration Guide). Set them under the
[ext.agent] table in fabricatio.toml, equivalently under
[tool.fabricatio.ext.agent] in pyproject.toml, or via
FABRICATIO_EXT__AGENT__<FIELD_UPPER> environment variables.
[ext.agent]
memory = false
sequential_thinking = false
check_capable = false
fulfill_prompt_template = "built-in/fulfill_prompt"
| Option | Type | Default | Description |
|---|---|---|---|
memory |
bool |
False |
Whether to use memory. |
sequential_thinking |
bool |
False |
Whether to think sequentially. |
check_capable |
bool |
False |
Whether to check if the agent is capable of performing the task. |
fulfill_prompt_template |
str |
"built-in/fulfill_prompt" |
The prompt template to use for fulfill. |
Access at runtime: from fabricatio_agent.config import agent_config.
Actions (fabricatio_agent.actions.code)
Reusable Action subclasses that combine the Agent capability mixin:
WriteCode— Generates code snippets from a prompt (with directory tree context), infers the coding language, and writes files to disk.Planning— Breaks complex tasks into subtasks via cooperative digestion, optionally preceded by sequential thinking.CleanUp— Removes unwanted files/directories using tool-based handling.ReviewCode— Saves a checkpoint of the current state for later review.MakeSpecification— Produces a specification document for a task.
CLI (fabricatio_agent.cli)
A Typer application (falcon) that assembles a multi-role team and dispatches tasks:
Roles — each implements Role + Cooperate and subscribes to event patterns:
| Role | Handles | Workflow |
|---|---|---|
Developer |
Coding, CleanUp, Plot, Synthesize |
WriteCode, CleanUp, chart/synthesis generation |
ProjectLeader |
Orchestrate |
Planning (decomposes into subtasks) |
TestEngineer |
Test |
WriteCode (generates test cases) |
DocumentationWriter |
Documentation |
WriteCode (generates documentation) |
TaskType enum: Coding, Orchestrate, CleanUp, Plot, Synthesize, Test, Documentation.
falcon code "write a fibonacci function in python"
This command spins up a Team with all four roles and delegates a coding task through the orchestrator. Complex tasks are automatically decomposed into subtasks.
Dependencies
fabricatio-core— Core interfaces and utilitiesfabricatio-digest— Request digestion and task planningfabricatio-memory— Memory management and recallfabricatio-improve— Content improvementfabricatio-rule— Rule-based content processingfabricatio-judge— Judgment and evaluationfabricatio-capabilities— Base capability patternsfabricatio-diff— Difference editing operationsfabricatio-thinking— Sequential thinkingfabricatio-question— Interactive questioningfabricatio-tool— Tool handling and executionfabricatio-team— Team cooperation mechanismsfabricatio-capable— Capability assessmentfabricatio-checkpoint— Execution checkpointing
License
MIT — see LICENSE
Metadata
Release files for fabricatio-agent 0.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 2.4 MB
Release files / fabricatio_agent-0.3.3-cp314-cp314-win_amd64.whl
| Download URL | fabricatio_agent-0.3.3-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 124.6 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bb71e4332994600b139e9f1b027f9d79ba0b92551d110cdb4fbb84874c85c053
|
|
BLAKE2b-256 checksum How to use checksums |
e49adb6d6f30f1c7260f88e8773f795425fd605089ee5f0773013b4b3e8237cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp314-cp314-manylinux_2_34_x86_64.whl
| Download URL | fabricatio_agent-0.3.3-cp314-cp314-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 235.8 kB |
| Tags | CPython 3.14 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
45a37f277565acc7830293cdad182ead6cea947f43b30ce2d77df019fcb3ed37
|
|
BLAKE2b-256 checksum How to use checksums |
2561690a60b056d09e31a4de91b401a6a49084a7502ac0500943e644158c9138
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp314-cp314-manylinux_2_34_aarch64.whl
| Download URL | fabricatio_agent-0.3.3-cp314-cp314-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 218.8 kB |
| Tags | CPython 3.14 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
d9a37b1c952355c3bdcf0bbb22039ce9af20e41ad3aed6bf29661129d690bf8d
|
|
BLAKE2b-256 checksum How to use checksums |
17497113f8460eddf5b11ee37edafdd6784cc1e904988806f3e6efcdebe39cd3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | fabricatio_agent-0.3.3-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 201.7 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ea5389314183cdb8e4454e1966afe5d81acfa23ae7f6156627e7e291c296c943
|
|
BLAKE2b-256 checksum How to use checksums |
b840284a6ec29f3fa8e5cfce6312dc1f12532c4cb3e07f5d82940ebbbe1d4a35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp313-cp313-win_amd64.whl
| Download URL | fabricatio_agent-0.3.3-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 126.2 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
46e07c22d9d27301240360738adc4264adfe6afe798a4ae59d15312b6c176ef0
|
|
BLAKE2b-256 checksum How to use checksums |
a9685eef79f275246d585294c33d937da614be39373cd0dcfffa5153f3cede46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp313-cp313-manylinux_2_34_x86_64.whl
| Download URL | fabricatio_agent-0.3.3-cp313-cp313-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 237.1 kB |
| Tags | CPython 3.13 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
3eaefabd50bc1c63bea7a23c07c4c216059648559257f9e667864373f500d291
|
|
BLAKE2b-256 checksum How to use checksums |
f519cb806234b5a0a71216fa21d1c4b3f4afa7f71f96360660ecbf787ed2c1b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp313-cp313-manylinux_2_34_aarch64.whl
| Download URL | fabricatio_agent-0.3.3-cp313-cp313-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 220.1 kB |
| Tags | CPython 3.13 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
63a558afe1711732089453f29baa37d10e7e7f07fa4a6a3c610244b5b5352900
|
|
BLAKE2b-256 checksum How to use checksums |
d6b0b184d653ecf6c167f4f7043963822458549ae9a01e49ebe4f0c8de3e6544
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | fabricatio_agent-0.3.3-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 202.5 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
51fc13c891e10d21acf2b633fbc1a19749038a6f0d9aab716266a63518f860cd
|
|
BLAKE2b-256 checksum How to use checksums |
1f93e63ce70233ac21eb2ddebd59379c1e756015ff194bad3235ff752a4907b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp312-cp312-win_amd64.whl
| Download URL | fabricatio_agent-0.3.3-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 126.2 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5a07276ea6e4290ad9ffdd3ee9b0d5ffa27c74e87a0e56b7ca3f8e1371313bec
|
|
BLAKE2b-256 checksum How to use checksums |
a59c090dbada70ac01cc0be3c7896ca57cce5b4968d6f085d27bcc15c863df48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | fabricatio_agent-0.3.3-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 237.1 kB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
728485ffcf2358242bed90a353ff90df0a2117e1ae5bfcaac37db127b8826aa1
|
|
BLAKE2b-256 checksum How to use checksums |
89dca35ec4a335ba1f6affd1115817c52d053bca00fdce247c9d6c8f7e6b96b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp312-cp312-manylinux_2_34_aarch64.whl
| Download URL | fabricatio_agent-0.3.3-cp312-cp312-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 220.2 kB |
| Tags | CPython 3.12 Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
32a34087e7dab0f1f74364915f01e6eab9fd4a82104a80d45bd00a1d09feaecd
|
|
BLAKE2b-256 checksum How to use checksums |
968ebd500c488618c373906a8823bb4d657d26589dff02a67d02e10d70dc92b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fabricatio_agent-0.3.3-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | fabricatio_agent-0.3.3-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 202.5 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d79e6362c6872bf1878d17395aab100d113484f371bb8cc988936987bdb55de2
|
|
BLAKE2b-256 checksum How to use checksums |
d36c96b803c72413a51d5598ad18e651fe512a847b335fce52fa87ff6dd9e17f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|