1. 项目概述一个能帮你打理数字资产的AI管家如果你在Web3领域折腾过一阵子尤其是玩过那些带有复杂规则的可编程代币那你一定深有体会管理它们太费劲了。每天得盯着钱包地址手动检查一堆代币的状态、合规性、转移限制还得处理各种链上事件。这感觉就像在管理一个满是精密仪器的仓库每个仪器都有自己的说明书和警报系统而你只有一双眼睛和两只手。今天要聊的这个项目redfred125/dual-ai-portfolio-agent就是为了解决这个痛点而生的。它本质上是一个自主运行的AI智能体专门用来帮你管理在Dual协议上的可编程代币资产组合。简单说它就是你数字资产仓库的“AI管家”。这个管家不是简单的通知机器人它能理解你用自然语言下的指令比如“给我看看我的资产组合”、“如果任何代币的合规状态变了就通知我”、“把代币X转到钱包Y”然后自动去执行对应的链上操作或配置监控规则。它的核心价值在于将AI的认知与推理能力与区块链上可编程资产的确定性逻辑相结合。Dual协议上的代币不是简单的“余额”它们内嵌了业务逻辑比如只有KYC通过的地址才能接收、只能在特定时间段内转账、或者需要满足某些链下条件。手动管理这些规则几乎是不可能的任务。而这个AI Agent通过Dual Python SDK与链交互并利用Claude AI作为大脑把复杂的链上操作和规则配置变成了你和AI之间的一场对话。这大大降低了可编程资产的管理门槛让开发者、项目方甚至高级用户都能以更直观、高效的方式与自己的链上资产互动。2. 核心架构与设计思路拆解要理解这个AI Agent是如何工作的我们需要把它拆开来看。它的设计非常清晰遵循了“用户-智能体-区块链”的三层架构核心目标是在不牺牲安全性和控制权的前提下提供极致的易用性和自动化能力。2.1 整体架构解析项目文档里那个ASCII架构图已经点明了核心。我们把它翻译成更易懂的组件图景交互层这是你与AI管家对话的界面。它提供了三种模式交互式命令行最直接的方式运行python agent.py就开始聊天。HTTP API通过server.py启动一个服务允许其他应用比如Telegram Bot、Discord机器人或你自己的前端通过API与Agent交互实现集成。后台监控模式运行monitor.py让Agent在后台7x24小时运行主动监听链上事件并执行预设规则实现完全自动化。智能体核心层这是项目的大脑位于agent.py。它负责协调所有工作对话管理维持与用户的对话上下文理解意图。工具调用分发根据Claude AI的分析结果决定调用哪个底层工具函数。状态管理维护当前钱包、代币列表等会话状态。AI引擎与业务逻辑层这是智能体的“专业技能”模块。Claude引擎项目的“认知核心”。它并不直接存储知识而是作为一个强大的推理引擎。我们通过“工具调用”的方式将Dual SDK的能力“教”给Claude。当你说“展示我的组合”时Claude会理解这个意图并决定调用get_portfolio_overview这个工具函数。规则引擎这是项目的一大亮点位于rule_engine.py。它负责将你用自然语言描述的规则如“当代币A被转移到黑名单地址时冻结它”编译成Dual平台可以理解的、具体的Webhook配置和监控逻辑。这背后通常涉及意图识别、参数提取和模板填充。分析引擎位于analytics.py。它不止于展示余额还能分析资产组合的构成变化、识别持有模式、计算统计指标并通过Claude生成易于理解的洞察报告比如“过去一周你的合规代币占比上升了15%”。区块链交互层这是智能体的“手和脚”由dual_tools.py和Dual Python SDK构成。这一层将所有高级指令翻译成具体的、安全的区块链API调用。它严格封装了所有对链的操作确保每笔交易都经过必要的安全检查如余额校验、合规性验证。基础设施层即Dual协议的测试网或主网API。这是所有操作的最终执行场所。这种分层架构的好处是解耦和可扩展。如果你想更换AI模型比如用GPT-4o只需修改Claude引擎的适配层如果想支持新的区块链协议可以替换或扩展dual_tools.py中的SDK客户端。2.2 为什么选择Claude Dual SDK这个技术栈这是一个经过深思熟虑的选择背后有很强的逻辑Dual SDK的必要性直接与区块链节点交互是复杂且危险的需要处理交易构造、签名、gas估算、错误处理等大量底层细节。Dual SDK是官方维护的库它封装了所有与Dual协议交互的复杂性提供了钱包管理、代币对象操作、模板查询、Webhook设置等高级API。使用SDK能极大降低开发难度并确保操作符合协议规范避免了因自行实现逻辑错误而导致的资产风险。Claude AI的适用性在众多大语言模型中Claude在长上下文理解、复杂指令遵循和安全性方面表现突出。管理资产需要Agent严谨、可靠不能“胡言乱语”或执行危险操作。Claude在理解用户模糊意图、进行多轮澄清对话、并最终准确调用工具方面通常能提供更稳定和可信的表现。此外项目作为Dual生态的演示使用其官方AI Chatbot参考实现所采用的Claude也保证了技术栈的一致性和最佳实践的可复用性。注意技术栈的选择也带来了依赖和成本。你需要同时拥有Dual API Key和Anthropic API Key。这意味着你的AI管家运行会产生两部分费用Dual链上操作可能涉及的gas费测试网通常免费和调用Claude API的费用。在设计和规划自动化规则频率时需要权衡实时性与成本。3. 从零开始环境搭建与初始化实操理论讲完了我们动手把它跑起来。假设你是一个有一定Python经验的开发者以下是详细的步骤和避坑指南。3.1 前期准备获取三把“钥匙”在写第一行代码之前你需要准备好三个关键的访问凭证这就像为你家的智能管家配齐门禁卡、工具箱钥匙和大脑芯片。Python环境确保你的系统安装了Python 3.10或更高版本。这是运行现代AI和区块链SDK的基线要求。python --version # 确认版本Dual测试网账户与API Key访问 Dual测试网控制台 申请访问权限。通常需要填写一个简单的表单说明你的使用意图。申请通过后登录控制台。在控制台的设置或API部分你应该能创建一个新的API Key。务必妥善保存这个Key它代表了对你测试网钱包的编程访问权限。重要提示测试网是用于开发和实验的资产没有真实价值。绝对不要将主网私钥或助记词用于此类测试项目。Anthropic API Key前往 Anthropic官网 注册账户。在控制台中创建一个API Key。新用户通常有一定额度的免费试用。这个Key将用于支付Claude模型推理的费用。注意查看其定价高频调用可能会产生成本。3.2 项目部署与配置详解拿到“钥匙”后我们开始部署管家程序。# 1. 克隆项目仓库到本地 git clone https://github.com/dual-builders/dual-ai-portfolio-agent.git cd dual-ai-portfolio-agent # 2. 创建独立的Python虚拟环境强烈建议避免包冲突 python -m venv venv # 3. 激活虚拟环境 # 在 macOS/Linux 上 source venv/bin/activate # 在 Windows 上 # venv\Scripts\activate # 4. 安装项目依赖 pip install -r requirements.txtrequirements.txt文件定义了项目运行所需的所有Python库核心包括dual-sdk-python、anthropic库以及一些工具库如python-dotenv。安装过程应该很顺利。接下来是关键的配置环节# 5. 复制环境变量示例文件 cp .env.example .env # 6. 用文本编辑器打开 .env 文件填入你的密钥你的.env文件最终应该看起来像这样DUAL_API_KEYsk_test_你的Dual测试网API密钥 DUAL_API_BASEhttps://console-testnet.dual.network ANTHROPIC_API_KEYsk-ant-你的Anthropic_API密钥实操心得.env文件包含你的敏感密钥。务必将它添加到.gitignore文件中确保不会意外提交到公开的代码仓库。这是安全开发的基本习惯。3.3 首次运行与功能验证配置完成后我们可以进行“开机测试”。# 启动交互式聊天模式 python agent.py如果一切正常你应该会看到类似以下的启动信息然后进入一个等待你输入提示符的对话循环Initializing Dual AI Portfolio Agent... Syncing portfolio from wallet: 0xYourWalletAddress... Found 5 token objects. Agent ready. How can I help you manage your portfolio today? 恭喜你的AI资产管家已经上线了现在你可以尝试一些基础指令来验证核心功能是否正常基础查询输入show me my portfolio或what tokens do I have?。Agent应该通过Claude调用工具获取你的代币列表并以清晰的自然语言格式返回包括代币符号、名称、余额、合规状态等。详情询问针对某个具体的代币ID从上一个命令的返回中获取输入tell me more about token [TOKEN_ID]。这应该触发对代币详细属性的查询包括其绑定的模板、转移限制等内嵌逻辑。简单操作在测试网上你可以尝试一个安全的操作比如get the recent activity for my wallet。这会查询最近的交易或事件。首次运行常见问题排查问题现象可能原因解决方案ModuleNotFoundError虚拟环境未激活或依赖未安装成功确认命令行提示符前有(venv)重新运行pip install -r requirements.txtInvalid API Key错误.env文件中的API Key填写错误或未生效检查.env文件格式无多余空格确认密钥正确并重启终端或重新激活venvConnectionError或超时网络问题或DUAL_API_BASE地址错误检查网络连接确认DUAL_API_BASE指向正确的测试网端点Agent启动后无响应Claude API调用失败或初始化超时检查ANTHROPIC_API_KEY是否正确是否有足够的API额度。查看命令行是否有更详细的错误堆栈信息。4. 核心功能深度剖析与实战演练管家跑起来了现在我们来深入它的几项核心技能看看在实战中如何运用。4.1 资产组合全景洞察不止于余额查询当你问“我的资产组合怎么样”时背后发生了一系列精密的操作。意图识别与工具调用Claude将你的自然语言请求解析为明确的意图get_portfolio_overview。它知道这需要调用dual_tools.py中对应的工具函数。数据获取工具函数通过Dual SDK的client.objects.list()方法查询与你钱包关联的所有代币对象。返回的是原始的结构化数据。AI分析与呈现原始数据一堆JSON被送回给Claude。Claude的职责不是简单地罗列数据而是进行分析和总结。它会分类归纳将代币按类型如实用型、权益型、合规型或状态分类。计算统计自动计算总价值如果代币有价格信息、各类别占比、识别出余额最大或最近有活动的代币。自然语言生成用一段连贯的文字描述上述洞察例如“您目前持有12种不同的可编程代币总计数额约15,000个。其中70%是‘企业会员积分’类别的合规代币它们要求接收方通过KYC验证。值得注意的是‘ProjectAlpha Governance Token’在过去一周内没有发生任何转移处于静默状态。”可交互性好的AI Agent还会在回答中埋下“钩子”。它可能会说“如果您想了解‘ProjectAlpha Governance Token’为何静默我可以检查它的转移规则。” 这引导了对话的深入。实操技巧你可以通过更具体的问题获得更深度的分析例如“Show me the composition of my portfolio by token type.”(按类型分析构成)“Which tokens have transfer restrictions active right now?”(找出当前有转移限制的代币)“Compare my portfolio today with what it was 7 days ago.”(需要分析引擎支持历史数据对比)4.2 智能规则引擎用英语编程你的资产策略这是本项目最强大的功能之一。传统上为代币设置自动化规则需要你手动编写代码监听链上事件、解析日志、并调用合约函数。现在你可以用说话的方式来完成。规则设置实战假设你发行了一种用于会议门票的NFT代币并希望实现“如果有人试图将门票转移到非白名单地址则自动取消该门票将其标记为无效”。用自然语言描述规则你对Agent说“Set up a rule: if anyone tries to transfer a token from my ‘Conference Ticket’ collection to an address that is not in the whitelist, then revoke that token and notify me via email.”规则引擎的编译过程发生在rule_engine.py中意图解析引擎识别出关键词transfer,not in whitelist,revoke,notify。参数提取识别出目标代币集合是Conference Ticket动作是revoke和notify。逻辑映射将“非白名单转移”映射为Dual协议上可监听的事件类型如TransferAttemptViolatedRule。Webhook配置生成引擎在后台使用Dual SDK的client.webhooks.create()方法创建一个新的Webhook。这个Webhook会订阅特定代币模板的转移事件并指向一个由monitor.py管理的回调端点。本地规则簿更新引擎同时在本地数据库或文件中记录这条规则以便当Webhook被触发时知道该执行什么后续动作调用revoke_token工具并发送邮件。规则验证你可以问Agent“What active rules do I have?”它会列出所有已编译和部署的规则以及其对应的Webhook ID和状态。注意事项自然语言规则编译并非100%无歧义。对于极其复杂的、带有嵌套条件或多步骤动作的规则Agent可能会要求你澄清。例如它可能会反问“您说的‘revoke’具体是指调用代币模板中的‘burn’函数还是将其状态标记为‘inactive’” 这时你需要根据你的业务逻辑给出精确的指令。初期建议从简单的单条件规则开始测试。4.3 安全增强的转移助手在区块链上转移资产尤其是可编程资产风险很高。一个输错的地址就意味着永久丢失。AI转移助手的核心价值是增加安全层和便利性。一次安全的转移对话实录用户: Transfer 100 units of MyProject Utility Token to 0x742d35Cc6634C0532925a3b844Bc9e90H1e23f45. AI管家: 我找到了“MyProject Utility Token”。确认一下您是要转移100个该代币到地址 0x742d...3f45 吗这个地址目前不在我的联系人记录中。另外该代币有合规性要求我需要先检查目标地址是否已通过KYC验证。请回复“确认”以继续或者提供该地址的备注名以便我记录。 用户: 确认。那是合作伙伴公司的钱包名字可以存为“PartnerCorp Wallet”。 AI管家: 已保存备注。正在检查目标地址的KYC状态... 检查通过。正在模拟转移以估算Gas费用... 预计Gas成本约为0.001 ETH。是否执行转移(是/否) 用户: 是。 AI管家: 正在执行转移... 交易已发送哈希为0xabc123...。正在等待确认... (约15秒后) 交易已确认转移完成。需要我将此次交易记录到您的活动日志吗背后的安全机制地址验证与备注Agent会检查目标地址格式并鼓励你为其添加备注避免未来重复输入长地址。合规性预检在发送交易前调用SDK检查目标地址是否满足该代币的所有链上合规规则如KYC、AML等。这避免了交易在链上被拒绝而浪费Gas。模拟与Gas估算在正式签名前先在本地模拟交易预估Gas消耗让你心中有数。二次确认在执行前明确要求最终确认。交易跟踪与反馈提供交易哈希并可以可选地等待确认然后给出明确的结果反馈。这个流程将一次高风险操作变成了一个带有多次检查、确认和反馈的引导式对话极大地提升了安全性和用户体验。5. 深入开发定制你的AI管家开源项目的魅力在于你可以按需定制。假设你想为这个管家增加一个新技能自动在代币价格达到某个阈值时发出Discord通知。5.1 扩展新工具集成价格预言机首先我们需要在dual_tools.py中增加一个新的工具函数让Claude能够获取代币价格。# 在 dual_tools.py 中添加 import requests # 需要先 pip install requests def get_token_price(token_symbol: str, vs_currency: str usd) - dict: Fetches the current price of a token from a price oracle (e.g., CoinGecko). This is an example extension. Args: token_symbol: The symbol of the token (e.g., ETH, DUAL). vs_currency: The currency to compare against (e.g., usd, eur). Returns: A dictionary containing price information. # 示例使用CoinGecko API需注册获取免费API Key并考虑速率限制 cg_api_key os.getenv(COINGECKO_API_KEY, ) url fhttps://api.coingecko.com/api/v3/simple/price params { ids: token_symbol.lower(), # CoinGecko使用id这里简化处理实际需要映射 vs_currencies: vs_currency, api_key: cg_api_key } try: response requests.get(url, paramsparams, timeout10) response.raise_for_status() data response.json() # 这里需要根据实际API响应调整数据结构 price data.get(token_symbol, {}).get(vs_currency) if price: return {success: True, price: price, currency: vs_currency} else: return {success: False, error: Price data not found for symbol.} except requests.exceptions.RequestException as e: return {success: False, error: fFailed to fetch price: {e}} # 然后需要将这个工具函数注册到Claude能看到的工具列表中。 # 通常在agent.py初始化Claude client时会有一个tools参数列表将新函数添加进去。 # 例如tools [list_tokens, get_token_details, transfer_tokens, get_token_price]5.2 创建价格预警规则接下来我们需要增强rule_engine.py使其能理解基于价格的规则。扩展规则语法规则引擎需要能解析像“alert me on discord if the price of DUAL token goes above $2.50”这样的句子。这需要更复杂的NLP解析可能涉及实体识别DUAL是代币符号$2.50是阈值和货币单位和条件判断goes above。实现监控循环在monitor.py中除了监听Dual的Webhook事件还需要创建一个定时任务例如每5分钟循环检查你关注的代币价格。这可以通过调用我们新加的get_token_price工具来实现。触发动作当价格条件满足时触发动作。这需要一个新的动作执行器例如调用Discord的Webhook API发送消息到指定频道。开发心得在扩展功能时务必遵循项目的模块化设计。将新功能如价格获取封装成独立的工具函数在规则引擎中通过配置化的方式添加对新条件/动作的支持而不是把逻辑硬编码到主循环中。这样能保持代码的清晰和可维护性。5.3 部署与运行模式选择根据你的使用场景可以选择不同的运行模式个人使用/开发测试直接运行python agent.py在本地命令行使用最为方便。集成到其他应用运行python server.py启动HTTP API服务。例如你可以构建一个简单的Telegram机器人将用户消息转发给本地的Agent API再将回复传回Telegram。7x24小时自动化监控在生产环境你需要以后台服务/守护进程的方式运行monitor.py。这涉及到更专业的部署使用进程管理工具如systemd(Linux)、pm2(Node.js生态但可管理Python脚本) 或supervisord确保进程崩溃后能自动重启。日志记录配置完善的日志系统如Python的logging模块输出到文件方便故障排查。密钥管理在生产环境中不应使用.env文件。应使用密钥管理服务如AWS Secrets Manager、HashiCorp Vault或至少是环境变量注入。6. 常见问题、故障排查与进阶思考在实际使用和开发过程中你肯定会遇到各种问题。以下是一些典型场景及解决思路。6.1 常见问题速查表问题可能原因排查步骤与解决方案Agent对指令“答非所问”或拒绝执行1. Claude未能正确理解意图。2. 工具函数描述不够清晰。3. 缺少必要的上下文。1.简化并明确指令使用更直接、简单的英文句子。2.检查工具定义在dual_tools.py中确保每个工具函数的description和参数描述清晰准确这是Claude理解工具用途的主要依据。3.提供上下文在对话中提及具体的代币ID或名称而不是模糊的“那个代币”。规则未触发1. Webhook配置失败。2. 事件未被正确捕获。3. 规则条件逻辑有误。1.检查规则状态询问Agent“list my active webhooks/rules”。2.查看监控日志运行monitor.py时开启详细日志看是否收到事件推送。3.测试Webhook在Dual测试网控制台手动模拟一个事件看你的服务端点是否能收到。交易失败被拒绝或Revert1. Gas不足。2. 违反代币编程规则如合规检查失败。3. 接收方地址错误。1.查看错误信息Dual SDK或链返回的错误信息通常很具体如“Insufficient balance”、“Rule violation”。2.使用模拟功能在发起正式交易前Agent应已进行模拟。如果模拟失败会提前报错。3.检查代币状态确认代币未被冻结、暂停或处于不可转移状态。API调用速率限制频繁调用Claude API或Dual API达到限额。1.优化提示词让Claude的思考更高效减少不必要的推理步骤。2.实现缓存对于不常变的数据如代币元数据可以在本地缓存一段时间。3.错峰执行对于后台监控任务适当降低检查频率。“No module named ‘dual_sdk’”Python环境问题Dual SDK未安装。1. 确认虚拟环境已激活(venv)。2. 重新安装依赖pip install -r requirements.txt。3. 尝试手动安装pip install dual-sdk-python。6.2 安全与风险考量赋予AI管理资产的权限安全是重中之重。权限最小化Dual API Key是最大的风险点。确保你创建的Key只拥有必要的最小权限。在Dual控制台中仔细查看创建API Key时的权限选项不要授予不必要的写权限如admin。操作确认对于关键性操作尤其是转账、更改规则、冻结资产Agent必须设计强制性的二次确认流程就像我们之前提到的转账助手那样。审计日志所有通过Agent执行的操作无论是查询还是写入都必须记录不可篡改的日志。包括用户指令、AI决策依据、调用的工具、交易哈希和结果。这既是安全审计的需要也是问题排查的依据。私钥隔离Agent永远不应该接触你的钱包私钥或助记词。所有交易签名都应由Dual SDK通过安全的钱包提供商如集成MetaMask、或使用安全的云端签名服务来完成。本项目架构中签名环节由Dual SDK处理它依赖于你初始化时提供的安全凭证这符合最佳实践。6.3 未来可能的演进方向这个项目作为一个起点展示了巨大的可能性。你可以在此基础上思考更多多链支持目前它绑定在Dual协议上。未来可以抽象出一套“区块链适配层”让同一个AI Agent能管理你在Ethereum、Solana、Avalanche等多条链上的资产成为一个真正的跨链资产管家。策略自动化超越基于事件的反应式规则实现基于预测的主动策略。例如结合市场数据AI可以建议“根据历史模式现在可能是将10%的A代币兑换为B代币的时机”并在你批准后自动执行DeFi交换操作。可解释性与报告让AI不仅执行操作还能生成更复杂的财务报告、税务计算预览或资产表现分析用自然语言解释投资组合的变化原因。去中心化AI代理网络将Agent本身部署为一个去中心化的服务用户可以通过质押或支付费用来使用一个由社区维护的、更强大且抗审查的资产管理AI服务。这个项目的真正启示在于它模糊了“用户界面”和“业务逻辑”的界限。在未来与复杂系统交互的最自然方式可能不再是点击按钮和填写表单而是直接与一个理解系统底层逻辑的智能体进行对话。dual-ai-portfolio-agent正是迈向那个未来的一次扎实的实践。