uAgents
Build Python autonomous agents that join the Fetch.ai agent network.
- Source repo
- fetchai/uAgents
- Stars
- ★ 1.6k
- Last updated
- 13d ago
- License
- Apache-2.0
- Primary language
- Python
- FA score
- 50/100 · Major gaps
At a glance
- How it runs
- Works with
- Platform-specific
- Cost
- Free, no paid service needed
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- A Python developer needs a local task that runs every two seconds and records its result through the
Contextlogger. - Not a fit if
- Teams that need fully offline operation without the Fetch.ai blockchain
- Projects pinned to Python 3.9 or older
- Deployers unwilling to safeguard local private key files
- Source review
- 50/100 · Major gaps 2 safety controls not found
What does this agent do, and when should you use it?
uAgents is a Fetch.ai Python library for autonomous programs that run scheduled work or react to events. Developers define agents and execution logic with Agent, Context, and decorators such as @alice.on_interval(period=2.0). At startup, each agent registers with Almanac, a smart contract deployed on the Fetch.ai blockchain, and joins the uAgents network. The project states that agent messages and wallets are cryptographically secured to protect identities and assets. A minimal application runs as a local Python script and can emit log output, while python/uagents-core provides core definitions and functionality for software integrating with the Fetch.ai ecosystem and agent marketplace.
Application code creates an agent with Agent(name="alice"); it may supply a seed, including seed=os.getenv("ALICE_SEED_PHRASE"), to establish a fixed address. Without a seed, the private key is stored locally alongside the agent name in private_keys.json; without a name, a new address is generated on every run. Developers register asynchronous work with @alice.on_interval(period=2.0), for example async def say_hello(ctx: Context), and emit output through ctx.logger.info(...). Calling alice.run() runs the registered scheduled or event-driven actions and registers the agent with Almanac at startup.
- A Python developer needs a local task that runs every two seconds and records its result through the
Contextlogger. - A team deploying an agent with a stable identity wants to pass a recovery phrase to
Agentthrough theALICE_SEED_PHRASEenvironment variable. - An application developer wants a Python agent to join the uAgents network and register with Fetch.ai Almanac when it starts.
- A Fetch.ai ecosystem project needs agent identities and wallets described as cryptographically protected.
- A developer building software that interacts with the Fetch.ai ecosystem and agent marketplace needs the core definitions and functionality in
uagents-core.
How do you install or deploy this agent?
Use Python 3.10 through 3.13. Install from a shell with pip install uagents. After installation, save the example application as a local agent.py file and run it with python agent.py. The example imports Agent and Context from uagents, then starts the defined agent by calling alice.run() in its main entry point.
How do you use this agent?
Create agent.py with from uagents import Agent, Context, then define alice = Agent(name="alice", seed="alice recovery phrase"). Decorate an async function with @alice.on_interval(period=2.0) and call alice.run() in the main entry point; run it with python agent.py. Supply a seed for a fixed address; the example also supports reading it from ALICE_SEED_PHRASE.
What are this agent's strengths and limitations?
- It exposes a direct Python interface built around
Agent,Context, and decorators; the minimal example registers a periodic async task. - Startup registration with Almanac connects agents to the uAgents network, which suits applications needing the documented Fetch.ai network boundary.
- The repository documents cryptographic protection for messages and wallets, plus seed-based stable addresses.
uagents-corespecifically supplies core definitions and functionality for Fetch.ai ecosystem and agent-marketplace integration.
- Network participation depends on Almanac on the Fetch.ai blockchain, so the operating model is tied to that ecosystem.
- The supplied material explicitly supports only Python 3.10 through 3.13; it provides no support evidence for other versions.
- When no seed is supplied, private keys are written locally to
private_keys.json, so deployers must protect and retain that file. - The supplied material does not document hosted deployment, pricing, transaction costs, or model-provider configuration.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| uAgents This agent | 50 · Major gaps | Library / SDKFree | ★ 1.6k | 13d ago | Python | — |
| Sprix SAGE Router | 68 · Some gaps | CLIFree | ★ 3.6k | 2mo ago | Python | — |
| Hello-Agents | 53 · Major gaps | Web appFree + model costs | ★ 86k | 25d ago | Python | OpenAI API |
| LangGraph Multi-Agent Swarm | 46 · Major gaps | Library / SDKFree + model costs | ★ 1.6k | 11d ago | Python | OpenAI API |
How does FollowAgents rate this agent?
Why each dimension lost points
The README says startup registers agents on the on-chain Almanac and that Agentverse agents may send telemetry. The deployment example exposes mailbox, proxy, and network settings, but the packet does not show least-privilege controls or confirmation before external operations, so least privilege, data-flow transparency, and external effects score 1; user confirmation and rollback score 0. The README says private keys are stored locally or supplied through an environment variable, but no encryption, filesystem protection, or rotation measures are shown, so sensitive-data handling scores 1. The source imports dependencies including aiohttp, requests, and cosmpy, but the packet provides no dependency security review, so that criterion scores 1. The README and security policy provide project attribution and a vulnerability reporting path, earning 2 for source attribution; publisher identity remains unknown as stipulated.
The README, deployment example, and source excerpt consistently describe Python agents with asynchronous event handlers and interval tasks, earning 2 for self-consistency. The README specifies Python 3.10–3.13 and CI configures a matching version matrix, but the packet provides little evidence about dependency availability, so that criterion scores 1. The interval task source logs OS, runtime, and general exceptions, earning 2 for failure messages.
Documentation and examples cover onboarding, communication, multiple agents, deployment, and test-network configuration, earning 2 for audience and scenarios. Supported operations are partly described, but security boundaries, permission scope, and runtime limits are not clearly stated, so capability boundaries score 1. Decorators expose interval and event triggers, earning 2 for trigger precision. The README names supported Python versions and CI lists Linux, macOS, and Windows environments, earning 2 for environment fit.
The README separates installation, quickstart, documentation, examples, core library, and contribution links, earning 2 for information architecture. It gives an install command and Python version range, earning 2 for install notes. Names such as uAgents, Agent, and Context are used consistently across the examples, earning 2 for naming stability. The README and test examples include a quickstart, multiple agents, and local communication, though no clear FAQ is shown, earning 2 for examples and FAQ. The disclaimer mentions unexpected behavior and data loss but does not give a concrete known-limitations list, so that criterion scores 1. The LICENSE file and README clearly identify Apache-2.0, earning 3 for license. The packet contains no version history or changelog, so versioning and changelog score 1. The security policy gives a vulnerability reporting channel and remediation process, earning 2 for maintenance responsibility; the unverified publisher identity neither adds nor subtracts points.
Examples show practical outputs such as logs, registration, and message exchange, earning 2 for output usability. Decorators, messaging, scheduled tasks, and network registration offer tangible agent-development capabilities, but the packet does not establish their breadth or measured impact, so marginal value scores 2. Installation and examples are direct to follow; blockchain registration, telemetry, and wallet setup add operational considerations, so cost-benefit scores 2.
README claims receive partial support from examples, source excerpts, and CI configuration, but the supplied material lacks implementation detail for security and cryptography claims, so claim traceability scores 1. The README, source, deployment example, security policy, and CI partially corroborate agent capabilities, operation, and maintenance paths, earning 2 for cross-source corroboration. Some documentation is demonstrative, but the packet does not systematically distinguish verified facts from broad claims about security or performance, so fact-inference separation scores 1.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- Startup may perform on-chain registration, and Agentverse use may send telemetry; verify external communications, telemetry controls, and wallet-key storage protections before deployment.
- This assessment uses only the supplied static source material; code was not executed and security, dependencies, and runtime behavior were not independently verified.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
What's Changed * fix(uagents): retention policy cutoff and cache removal by @jrriehl in https://github.com/fetchai/uAgents/pull/961 * feat(core): add agent telemetry types and primitives by @lrahmani in https://github.com/fetchai/uAgents/pull/957 * chore(core): bump version from 0.4.11 to 0.4.12 by @lrahmani in https://github.com/fetchai/uAgents/pull/963 Full Changelog: https://github.com/fetchai/uAgents/compare/[email protected]View on GitHub ↗ -
Release notes excerpt
What's Changed * feat(experimental): add health protocol by @Alejandro-Morales in https://github.com/fetchai/uAgents/pull/959 * chore(uagents): bump version from 0.26.0 to 0.26.1 by @jrriehl in https://github.com/fetchai/uAgents/pull/960 Full Changelog: https://github.com/fetchai/uAgents/compare/v0.26.0...v0.26.1View on GitHub ↗ -
Release notes excerpt
What's Changed * feat(core): add events models and dispatcher by @jrriehl in https://github.com/fetchai/uAgents/pull/918 * feat(experimental): Add AgentInfo tool for Agent general information and capabilities by @Alejandro-Morales in https://github.com/fetchai/uAgents/pull/944 * chore(core): bump version from 0.4.9 to 0.4.10 by @jrriehl in https://github.com/fetchai/uAgents/pull/948 * fix(core): asyncio TimeoutError for python 3.10 by @jrriehl in https://github.com/fetchai/uAgents/pull/952 …View on GitHub ↗
FAQ
Is a recovery phrase required?
seed establishes a fixed address. Without it, the private key is stored locally in private_keys.json alongside the agent name; omitting the name produces a new address each run.Does it need network access?
Can it run locally?
agent.py and runs it with python agent.py.Does it include OpenAI, ChatGPT, Claude, or another model-provider integration?
What guarantees are provided for failures or losses?
Thanks — we use this to improve the page.