uAgents
用 Python 构建并接入 Fetch.ai 网络的自治智能体。
- Star 数
- ★ 1.6k
- 最近更新
- 13 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 50/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- Python 开发者需要一个每两秒执行一次的本地定时任务,并希望以
Context写入结构化运行日志。 - 不适合
- 需要完全离线、不接入 Fetch.ai 区块链的团队
- 只使用 Python 3.9 或更早版本的项目
- 不愿自行保管本地私钥文件的部署方
这个 Agent 能做什么,适合哪些场景?
uAgents 是 Fetch.ai 开发的 Python 自治智能体库,面向按计划执行任务或响应事件的程序。开发者通过 Agent、Context 和装饰器定义智能体及其执行逻辑,例如 @alice.on_interval(period=2.0)。智能体启动时会注册到部署在 Fetch.ai 区块链上的 Almanac 智能合约,并加入 uAgents 网络。框架说明其消息和钱包受密码学保护,以保护身份与资产。最小应用以本地 Python 脚本运行,示例通过日志输出智能体名称;仓库还包含 python/uagents-core,用于构建可与 Fetch.ai 生态和智能体市场交互的软件核心定义与功能。
应用代码先用 Agent(name="alice") 创建智能体;可传入 seed,例如 seed=os.getenv("ALICE_SEED_PHRASE"),以获得固定地址。未提供 seed 时,私钥会随名称本地保存到 private_keys.json;完全不提供名称时,每次运行都会生成新地址。开发者用 @alice.on_interval(period=2.0) 注册异步任务,例如 async def say_hello(ctx: Context),并通过 ctx.logger.info(...) 记录输出。调用 alice.run() 后,智能体执行已注册的计划任务或事件动作,并在启动时注册至 Almanac。
- Python 开发者需要一个每两秒执行一次的本地定时任务,并希望以
Context写入结构化运行日志。 - 需要为固定身份部署智能体的团队,可将恢复短语通过
ALICE_SEED_PHRASE环境变量传给Agent。 - 希望让 Python 智能体在启动时加入 uAgents 网络并登记到 Fetch.ai Almanac 的应用开发者。
- 需要将智能体身份和钱包与密码学保护结合的 Fetch.ai 生态集成项目。
- 正在构建可与 Fetch.ai 生态及智能体市场交互的软件,并需要
uagents-core的核心定义与功能的开发者。
如何安装或部署这个 Agent?
运行环境为 Python 3.10 至 3.13。在终端安装:pip install uagents。安装完成后,可按示例创建本地 agent.py 并通过 python agent.py 运行。
如何使用这个 Agent?
创建 agent.py:from uagents import Agent, Context,然后定义 alice = Agent(name="alice", seed="alice recovery phrase")。使用 @alice.on_interval(period=2.0) 装饰异步函数,并在主入口调用 alice.run();执行 python agent.py。如需固定地址,提供 seed;示例也支持从 ALICE_SEED_PHRASE 环境变量读取。
这个 Agent 有哪些优点和局限?
- 以
Agent、Context和装饰器提供直接的 Python 编程接口,最小示例即可注册周期性异步任务。 - 启动自动登记 Almanac,并接入 uAgents 网络,适合需要 Fetch.ai 网络发现与连接边界的应用。
- 仓库明确说明消息和钱包采用密码学保护,同时提供可固定地址的 seed 机制。
uagents-core单独包含面向 Fetch.ai 生态和智能体市场集成的核心定义与功能。
- 核心网络接入依赖 Fetch.ai 区块链上的 Almanac,因此不是与特定生态无关的运行模型。
- README 仅明确支持 Python 3.10 至 3.13;其他 Python 版本没有支持证据。
- 未提供 seed 时私钥会本地写入
private_keys.json,部署方需要负责该文件的保存与保护。 - 仓库未在所给材料中说明托管部署、价格、交易费用或模型供应商配置。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| uAgents 当前 | 50 · 缺口较多 | 代码库 / SDK免费 | ★ 1.6k | 13 天前 | Python | — |
| Sprix SAGE Router | 68 · 存在缺口 | 命令行工具免费 | ★ 3.6k | 2 个月前 | Python | — |
| Hello-Agents 智能体教程 | 53 · 缺口较多 | 网页应用免费 + 模型费 | ★ 86k | 25 天前 | Python | OpenAI API |
| LangGraph Multi-Agent Swarm | 46 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 1.6k | 11 天前 | Python | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 说明启动时会向链上 Almanac 注册,并可能向 Agentverse 发送遥测;示例提供邮箱、代理和网络配置,但没有展示最小权限策略或外部操作前的确认,因此最小权限、数据流透明度和外部效应均只给 1,用户确认与回滚为 0。README 提到私钥本地保存或通过环境变量提供,但未展示加密、权限保护或轮换措施,敏感数据处理给 1。导入 aiohttp、requests、cosmpy 等依赖,但材料没有依赖安全审查证据,给 1。README 和安全政策提供了项目及漏洞报告的来源信息,来源归属给 2;发布者身份仍按题设视为未知。
README、部署示例和源码片段共同体现 Python 异步 Agent、事件处理和定时任务,基本自洽,给 2。README 写明 Python 3.10–3.13,CI 配置相应版本矩阵;但依赖可用性没有进一步证据,给 1。源码中的间隔任务会记录 OS、运行时及一般异常,失败消息给 2。
文档和示例涵盖入门、通信、多 Agent、部署及测试网配置,受众与场景给 2。支持的操作和边界有部分说明,但安全边界、权限范围和运行限制没有清楚列出,能力边界给 1。装饰器明确提供间隔和事件触发,触发精度给 2。README 给出 Python 版本,CI 还列出 Linux、macOS、Windows 环境矩阵,环境适配给 2。
README 将安装、快速开始、文档、示例、核心库和贡献入口分区,信息架构给 2;安装命令与 Python 版本要求明确,安装说明给 2。uAgents、Agent、Context 等命名在示例中保持一致,命名稳定性给 2。README 及测试样例提供快速开始、多个 Agent 和本地通信示例,但 FAQ 不明显,示例与 FAQ 给 2。免责声明提到意外行为和数据丢失,但未具体列出已知限制,给 1。LICENSE 文件和 README 均明确 Apache-2.0,许可证给 3。材料没有版本变更记录,版本与变更日志给 1。安全政策给出漏洞报告渠道与修复流程,维护责任给 2;题设中的发布者身份未验证,不额外加分或扣分。
示例输出日志、注册和消息通信等常见使用结果,输出可用性给 2。框架通过装饰器、消息、定时任务和网络注册支持 Agent 开发,呈现出实际增值,但材料不足以证明覆盖范围或效果,边际价值给 2。安装入口和示例较直接;链上注册、遥测及钱包配置带来额外操作与注意事项,成本收益给 2。
README 的功能描述有示例、源码片段及 CI 配置作部分支撑,但安全与加密声明在所给材料中缺少实现细节,主张可追溯性给 1。README、源码、部署示例、安全政策和 CI 在 Agent 能力、运行方式及维护入口上形成部分交叉印证,给 2。材料区分了部分说明与示例,但没有系统标注哪些安全或性能陈述是已验证事实、哪些是概括性主张,事实与推断区分给 1。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 启动时可能进行链上注册,启用 Agentverse 时还可能发送遥测;部署前应核实外部通信、遥测开关及钱包密钥的存储保护方式。
- 本评估仅依据题目所给静态材料;未执行代码,也未独立验证安全、依赖或运行行为。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
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]在 GitHub 查看 ↗ -
发布说明摘录
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.1在 GitHub 查看 ↗ -
发布说明摘录
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 …在 GitHub 查看 ↗
常见问题
必须使用恢复短语吗?
seed 可设置固定地址;不传入时,私钥会随智能体名称本地保存到 private_keys.json。若连名称也不传入,每次运行会生成新地址。它需要访问网络吗?
能否直接在本地运行?
agent.py,通过 python agent.py 运行。是否包含模型供应商或 ChatGPT、Claude 集成?
运行失败或造成损失时有什么保证?
谢谢反馈,我们会据此改进页面。