uAgents
用 Python 构建并接入 Fetch.ai 网络的自治智能体。
- Star 数
- ★ 1.6k
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 45/100 · 缺口较多
30 秒速览
- 可在哪里用
- 平台专用
- 开始前需要
- 典型场景
- Python 开发者需要一个每两秒执行一次的本地定时任务,并希望以
Context写入结构化运行日志。 - 主要局限
- 核心网络接入依赖 Fetch.ai 区块链上的 Almanac,因此不是与特定生态无关的运行模型。
这个 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 当前 | 45 · 缺口较多 | ★ 1.6k | 今天 | Python | — |
| Sprix SAGE Router | 69 · 存在缺口 | ★ 3.8k | 26 天前 | Python | — |
| Hello-Agents 智能体教程 | 54 · 缺口较多 | ★ 81k | 1 天前 | Python | OpenAI API |
| LangChain 生成式 AI 实战 | 52 · 缺口较多 | ★ 1.4k | 1 个月前 | Jupyter Notebook | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 提到密钥存储于本地 private_keys.json,但未说明权限最小化或用户确认机制;数据流透明度仅提及消息和钱包加密,未详细说明数据流向;敏感数据处理仅提及加密,未说明密钥管理细节;依赖安全有 CI 测试和 Ruff,但未提供依赖漏洞扫描证据;外部影响方面,代理自动注册到 Almanac 合约,但未说明用户确认或撤销机制;回滚机制未提及;来源归属有明确的 Fetch.ai 归属和 Apache 许可证。扣分原因:缺乏用户确认、数据流透明度不足、依赖安全证据不足、外部影响缺乏用户控制。
证据显示:README 和示例代码一致,CI 配置覆盖多 Python 版本和操作系统,表明一定的一致性;依赖可用性有 CI 测试,但未提供依赖锁定或镜像信息;失败消息方面,示例中有日志输出,但未提供错误处理文档。扣分原因:依赖可用性证据不足,失败消息处理未详细说明。
证据显示:README 明确目标用户为开发者,提供多种场景示例(如多代理、本地网络交互);能力边界通过装饰器(on_interval, on_message)清晰定义;触发精度通过示例展示定时和消息触发;环境适配支持 Python 3.10-3.13 和多种操作系统。扣分原因:能力边界文档化不足,未详细说明限制。
证据显示:README 结构清晰,包含快速开始、文档链接、示例和贡献指南;安装说明明确(pip install uagents);命名稳定性方面,有版本徽章但未提供变更日志;示例和 FAQ 有示例代码和文档链接,但 FAQ 未单独提供;已知限制未明确列出;许可证为 Apache-2.0,完整文本存在;版本和变更日志未提供;维护责任有贡献指南和问题跟踪。扣分原因:缺少变更日志和已知限制说明。
证据显示:输出可用性方面,示例代码可直接运行,文档链接丰富;边际价值方面,提供独特功能(如自动注册 Almanac);成本效益方面,开源免费,但未提供性能或资源消耗数据。扣分原因:缺乏性能数据,边际价值评估基于功能而非实证。
证据显示:README 中的声明(如安全、连接)有部分支持(如加密、注册),但未提供详细技术文档;跨来源验证方面,有官方文档链接,但未提供独立验证;事实与推断分离方面,README 区分了功能描述和免责声明,但未明确标注推断。扣分原因:声明缺乏详细证据,跨来源验证不足。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 代理自动注册到 Almanac 合约,可能产生外部影响,用户需了解并控制。
- 私钥存储于本地 private_keys.json,需确保文件权限安全。
- 依赖安全未提供漏洞扫描证据,建议使用前检查依赖。
常见问题
必须使用恢复短语吗?
seed 可设置固定地址;不传入时,私钥会随智能体名称本地保存到 private_keys.json。若连名称也不传入,每次运行会生成新地址。它需要访问网络吗?
能否直接在本地运行?
agent.py,通过 python agent.py 运行。