agency
AgentFreeA fast and minimal framework for building agentic systems
Capabilities11 decomposed
actor-model-based agent instantiation with lifecycle hooks
Medium confidenceCreates Agent instances that implement the Actor model pattern, where each agent has a unique identifier (1-255 chars, non-reserved), processes messages asynchronously, and exposes lifecycle callback hooks (before_action, after_action, after_add, before_remove). Agents are initialized with identity validation and can be added to Spaces for communication without requiring pre-registration of message types or schemas.
Implements Actor model with explicit lifecycle hooks (before_action, after_action, after_add, before_remove) as first-class framework features, enabling introspection and side-effects at each stage of agent operation without requiring subclassing or middleware patterns
Lighter than frameworks like Pydantic agents or LangChain agents because it separates identity/lifecycle from action logic, allowing agents to represent non-LLM entities (APIs, humans, databases) without forcing LLM-specific abstractions
runtime-discoverable action exposure with access control policies
Medium confidenceAgents expose callable methods as discoverable 'actions' using the @action decorator, which adds metadata for runtime discovery and applies access control policies (ACCESS_PERMITTED or ACCESS_REQUESTED). Other agents can discover available actions at runtime and invoke them with automatic routing through the Space, with policies determining whether execution requires approval before proceeding.
Combines runtime action discovery with declarative access policies via @action decorator, enabling agents to expose capabilities that are both discoverable and access-controlled without requiring centralized registries or pre-shared schemas
More flexible than OpenAI function calling (which requires schema pre-definition) because actions are discovered at runtime; more minimal than LangChain tools because it doesn't require tool definitions or JSON schemas upfront
structured message format with sender-recipient-action-payload semantics
Medium confidenceDefines a structured message format where every message includes sender (originating agent), recipient (target agent), action (method to invoke), and payload (parameters). This structure enables type-safe routing, automatic action dispatch, and clear message semantics across both LocalSpace and AMQPSpace implementations, supporting both request-response and fire-and-forget patterns.
Defines a minimal but explicit message structure (sender-recipient-action-payload) that enables type-safe routing and automatic action dispatch without requiring message schema definitions or serialization frameworks
Simpler than Protocol Buffers or Avro because it uses JSON; more structured than raw message passing because it enforces sender/recipient/action semantics
inter-agent message routing through pluggable space implementations
Medium confidenceRoutes messages between agents through a pluggable Space abstraction that supports both local (in-process) and distributed (AMQP-based) communication. Messages follow a structured format with sender, recipient, action, and payload fields; LocalSpace routes messages synchronously within a single process, while AMQPSpace routes messages asynchronously across network boundaries using an AMQP broker (e.g., RabbitMQ).
Provides pluggable Space abstraction that decouples agent communication logic from transport layer, allowing LocalSpace (in-process) and AMQPSpace (distributed) implementations to be swapped without agent code changes, following the Strategy pattern for message routing
More minimal than message brokers like Celery or RabbitMQ directly because it abstracts the transport layer and provides agent-aware routing; more flexible than gRPC or REST because agents don't need to know each other's addresses or schemas upfront
synchronous request-response agent communication with blocking calls
Medium confidenceEnables agents to make synchronous requests to other agents and block until receiving a response, implementing a request-response pattern on top of the asynchronous message routing system. When an agent calls another agent's action synchronously, it blocks the calling thread until the recipient processes the action and returns a result, enabling sequential workflows and error propagation.
Implements synchronous request-response semantics on top of asynchronous message routing by using internal correlation IDs and blocking futures, allowing agents to use familiar blocking call patterns while leveraging the underlying async transport
Simpler than implementing request-response with callbacks or async/await because developers can use familiar blocking code; less flexible than pure async patterns but more intuitive for sequential workflows
agent mixin composition for shared behavior and methods
Medium confidenceAllows agents to inherit shared behavior and methods through mixin classes, enabling code reuse across agent types without requiring deep inheritance hierarchies. Mixins can provide common actions (like help methods, response formatting) that are automatically discovered and exposed through the @action decorator, allowing agents to compose capabilities from multiple sources.
Leverages Python's multiple inheritance and mixin pattern to compose agent capabilities, allowing @action-decorated methods from mixins to be automatically discovered and exposed without requiring explicit registration or configuration
More Pythonic than composition-based approaches (like wrapping agents) because it uses native language features; simpler than plugin systems because mixins are resolved at class definition time rather than runtime
openai function calling integration with schema-based action binding
Medium confidenceIntegrates with OpenAI's function calling API by automatically converting agent actions into OpenAI function schemas and binding function call responses back to agent actions. When an OpenAI model requests a function call, the framework routes the call to the appropriate agent action, executes it, and returns the result to the model in the expected format, enabling LLM-driven agent orchestration.
Automatically converts agent @action methods to OpenAI function schemas and routes function calls back to agents, creating a bidirectional binding between agent capabilities and LLM function calling without requiring manual schema definition or routing logic
More automatic than manually defining OpenAI function schemas because it introspects agent actions; more agent-centric than OpenAI's native function calling because it treats agents as first-class entities rather than just function containers
mqtt-based event publishing for agent state changes
Medium confidencePublishes agent state changes and events to MQTT topics, enabling external systems to subscribe to agent activity without direct coupling. When agents execute actions or change state, events are published to configurable MQTT topics (e.g., 'agency/agent/{agent_id}/action/{action_name}'), allowing monitoring systems, dashboards, or other agents to react to agent events in real-time.
Integrates MQTT event publishing as a first-class framework feature, automatically publishing agent actions and state changes to structured MQTT topics without requiring agents to implement custom logging or monitoring logic
Lighter than centralized logging systems (ELK, Datadog) because it uses MQTT's pub-sub model; more decoupled than direct webhooks because subscribers don't need to be known at agent initialization time
gradio web ui integration for agent interaction
Medium confidenceProvides a Gradio-based web interface for interacting with agents, enabling non-technical users to invoke agent actions through a browser UI. The framework automatically generates Gradio components for each agent action based on parameter types, handles form submission, routes requests to agents through the Space, and displays results in the UI without requiring custom web development.
Automatically generates Gradio web UIs from agent actions without manual component definition, introspecting action parameters to create appropriate form inputs and routing submissions back to agents through the Space
Faster to prototype than building custom web UIs with React/Vue; more agent-aware than generic Gradio apps because it understands agent actions and routing
agent identity validation and namespace management
Medium confidenceEnforces strict validation rules for agent identifiers to prevent naming conflicts and reserved name collisions. Agent IDs must be 1-255 characters, cannot start with 'amq.' (AMQP reserved prefix), and cannot be '*' (broadcast reserved). The framework validates IDs at agent creation time and maintains a namespace within each Space to ensure uniqueness and prevent routing ambiguities.
Enforces strict identity validation rules at agent creation time, preventing reserved name collisions and ensuring namespace integrity within Spaces through explicit constraint checking rather than relying on runtime error handling
More explicit than systems that silently allow ID collisions; more minimal than full identity management systems because it only validates constraints rather than managing identity lifecycle
agent discovery and capability introspection
Medium confidenceEnables runtime discovery of all agents in a Space and their available actions, including action metadata (name, help text, parameters). Agents can query a Space to list all connected agents, and for each agent, discover its available actions with full parameter information, enabling dynamic agent orchestration and UI generation without pre-shared schemas.
Provides runtime introspection of agent capabilities through a unified discovery API, enabling dynamic orchestration and UI generation without requiring pre-shared schemas or centralized registries
More dynamic than static service registries because it discovers capabilities at runtime; simpler than OpenAPI/GraphQL because it doesn't require formal schema definitions
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with agency, ranked by overlap. Discovered automatically through the match graph.
Twitter thread describing the system
</details>
MetaGPT
Multi-agent software company simulator — PM, architect, engineer roles collaborate on projects.
AgentScope
Multi-agent platform with distributed deployment.
AI Legion
Multi-agent TS platform, similar to AutoGPT
AutoGen
Multi-agent framework with diversity of agents
AutoGen
Microsoft's multi-agent framework — event-driven, typed messages, group chat, AutoGen Studio.
Best For
- ✓teams building multi-agent systems where agents represent heterogeneous components (LLMs, APIs, humans)
- ✓developers implementing actor-model patterns who want lightweight abstractions over raw message passing
- ✓builders prototyping agentic workflows that need lifecycle observability
- ✓multi-agent systems where agent capabilities change dynamically or are unknown at design time
- ✓teams implementing permission models where certain agents should only execute approved actions
- ✓builders creating agent marketplaces or plugin systems where actions are discovered at runtime
- ✓teams building observable multi-agent systems with message tracing
- ✓developers implementing agent middleware or message interceptors
Known Limitations
- ⚠Agent identifiers must be globally unique within a Space; no built-in UUID generation or collision detection
- ⚠Lifecycle callbacks are synchronous and block message processing; long-running hooks will delay subsequent messages
- ⚠No built-in persistence of agent state across restarts; requires external state management
- ⚠Access policies are binary (PERMITTED or REQUESTED); no role-based or attribute-based access control
- ⚠ACTION_REQUESTED requires external approval mechanism; framework provides no built-in approval workflow
- ⚠Action discovery is synchronous; large numbers of agents with many actions may cause latency spikes
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
Repository Details
Last commit: Apr 8, 2026
About
A fast and minimal framework for building agentic systems
Categories
Alternatives to agency
Are you the builder of agency?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →