🧩 Heurist Mesh 是一个由模块化和专用AI代理组成的开放网络。每个代理都是一个专门处理数据、生成报告或参与对话的单元,同时作为一个智能群体共同解决复杂任务。基于去中心化的计算并由多种开源AI模型驱动,Mesh代理可以组合成强大的工作流,提供成本效益高且高度灵活的解决方案。一旦Mesh代理被添加到这个Github主分支中,它就会自动部署并通过REST API和MCP即时可用。
[!NOTE] 如需详细的API文档,包括同步和异步使用的示例,请参阅官方Heurist Mesh文档。
托管在Heurist上的Mesh代理可以通过两个接口访问:
要使用任何Mesh代理,您需要一个Heurist API密钥,可以在https://heurist.ai/credits获取。
模型上下文协议允许像Claude这样的AI助手直接与Heurist Mesh代理作为工具进行交互。
Heurist Mesh MCP门户 - 快速开始我们的MCP集成,无需设置!
对于完全控制的自托管,请查看我们的heurist-mesh-mcp-server。
cd mesh
uv sync
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
from mesh.mesh_agent import MeshAgent
from typing import Dict, Any, List
class MySpecialAgent(MeshAgent):
def __init__(self):
super().__init__()
self.metadata.update({
'name': '我的特殊代理',
'version': '1.0.0',
'author': '您的名字',
'author_address': '0x您的以太坊地址',
'description': '此代理可以……',
'external_apis': ['API 名称'],
'tags': ['类别1', '类别2'],
'image_url': 'https://example.com/image.png',
'examples': ['示例查询1', '示例查询2'],
})
def get_system_prompt(self) -> str:
"""返回代理的系统提示"""
return """
您是一个有用的助手,可以[描述代理的目的]。
[在这里包含对LLM的具体指令]
"""
def get_tool_schemas(self) -> List[Dict]:
"""定义您的代理暴露的工具"""
return [
{
"type": "function",
"function": {
"name": "my_tool_name",
"description": "该工具的功能描述",
"parameters": {
"type": "object",
"properties": {
"param1": {"type": "string", "description": "参数1的描述"},
"param2": {"type": "number", "description": "参数2的描述"},
},
"required": ["param1"]
}
}
}
]
async def _handle_tool_logic(self, tool_name: str, function_args: dict) -> Dict[str, Any]:
"""处理您的代理工具的执行逻辑"""
if tool_name == "my_tool_name":
# 实现您的工具逻辑
param1 = function_args.get("param1")
param2 = function_args.get("param2", 0) # 如果未提供,默认值
# 调用您的API或处理数据
result = await self._api_request(
url="https://api.example.com/endpoint",
method="GET",
headers={"Authorization": "Bearer your_api_key"},
params={"query": param1}
)
# 检查错误
if errors := self._handle_error(result):
return errors
# 返回处理过的数据
return {
"status": "success",
"data": {"result": result}
}
return {"error": f"不支持的工具:{tool_name}"}
测试您的代理:
mesh/tests/my_special_agent.py中创建一个基本测试:import asyncio
import yaml
from mesh.agents.my_special_agent import MySpecialAgent
async def test_agent():
agent = MySpecialAgent()
# 测试自然语言查询
response = await agent.call_agent({"query": "运行一个测试查询"})
print(yaml.dump(response))
# 测试直接工具调用
response = await agent.call_agent({
"tool": "my_tool_name",
"tool_arguments": {"param1": "测试值", "param2": 123}
})
print(yaml.dump(response))
if __name__ == "__main__":
asyncio.run(test_agent())
python mesh/tests/my_special_agent.py启动本地服务器:
uvicorn mesh.mesh_api:app --reload
mesh/query参数中的自然语言(例如,“告诉我关于以太坊”和“分析ETH”都应该被接受)每个代理的metadata字典至少应包含:
name: 代理的人类可读名称。version: 代理版本(例如,1.0.0)。author: 贡献者的姓名或用户名。author_address: 以太坊地址(或其他相关地址),用于潜在的收入分享。description: 您代理目的的简短清晰总结。external_apis: 您代理访问的任何外部服务(例如,['DefiLlama'])。tags: 关键词或类别,帮助用户发现您的代理。Mesh代理可以通过Coinbase X402 Bazaar公开,以启用按使用付费访问,并使用USDC支付。要启用您的代理以支持X402:
在您的代理元数据中添加x402_config:
self.metadata.update({
# ... 其他元数据字段 ...
"x402_config": {
"enabled": True,
"default_price_usd": "0.02", # 所有工具的默认价格(美元)
"tool_prices": { # 可选:特定工具的价格覆盖
"search_projects": "0.01",
"get_market_summary": "0.02",
},
},
})
X402资格标准:
x402_config.enabled设置为True才能在X402 Bazaar中被发现author_address必须是有效的以太坊地址(这是USDC支付发送的地方)tool_prices,则将使用default_price_usd示例: 查看aixbt_project_info_agent.py以了解完整的实现。
我们在本文件夹中包含了示例代理:
Allora价格预测代理(allora_price_prediction_agent.py)
DuckDuckGo搜索代理(duckduckgo_search_agent.py)
每个示例代理都有一个对应的测试脚本在mesh/tests/中,演示如何运行代理并生成示例输出文件(YAML格式)。
按照以下步骤在类似生产环境的本地开发环境中测试Mesh代理,确保在将其合并到主分支之前,您的代理按预期工作。
# 从仓库根目录
docker compose -f docker-compose.dev.yml up --build mesh-api
这将构建并在本地http://localhost:8000启动Mesh API服务。
# 在另一个终端
cd heurist-mesh-client
pip install -e .
# Windows
set HEURIST_API_KEY=your_api_key
# Linux/Mac
export HEURIST_API_KEY=your_api_key
或者在项目目录中使用.env文件:
# .env 文件
HEURIST_API_KEY=your_api_key
# 这将测试所有代理并将结果保存到test_results.json
# `--dev` 将使其针对本地服务器进行测试
python examples/test_agents.py test-agent --dev
# 测试特定代理和工具
python examples/test_agents.py test-agent "CoinGeckoTokenInfoAgent,get_token_info" --dev
--include-disabled 包括标记为禁用的代理
--no-trim 禁用长输出字符串的修剪
--json FILE 将测试结果保存到JSON文件(自动禁用存储结果的修剪)
测试输入存储在test_inputs.json,它将代理ID映射到工具名称及其测试输入。
愉快地编程与欢迎来到Mesh!
| 代理ID | 描述 | 可用工具 | 源代码 | 外部API |
|---|---|---|---|---|
| AIXBTProjectInfoAgent | 此代理可以使用aixbt API检索热门项目信息,包括基本面分析、社交活动和最新发展 | • search_projects<br>• get_market_summary | 源代码 | aixbt |
| AaveAgent | 此代理可以报告部署在以太坊、Polygon、Avalanche和Arbitrum上的Aave v3协议的状态,包括流动性、借款利率等详细信息 | • get_aave_reserves | 源代码 | Aave |
| AlloraPricePredictionAgent | 此代理可以使用Allora价格预测API预测ETH/BTC的价格及其置信区间 | • get_allora_prediction | 源代码 | Allora |
| ArbusAgent | 此代理使用Arbus AI提供专业级别的加密货币分析、情绪追踪和市场情报。获取AI驱动的市场洞察和结构化报告。 | • ask_ai_assistant<br>• generate_report | 源代码 | Arbus AI |
| ArkhamIntelligenceAgent | 此代理使用Arkham的API提供区块链情报,包括地址分析、实体识别、投资组合快照和跨18条以上链的代币持有者数据 | • get_address_intelligence<br>• get_contract_metadata<br>• get_portfolio_snapshot<br>• get_token_holders | 源代码 | Arkham Intelligence |
| BitquerySolanaTokenInfoAgent | 此代理使用Bitquery API提供Solana代币的全面分析。它可以分析代币指标(成交量、价格、流动性)、追踪持有者和买家、监控交易活动并识别趋势代币。代理支持特定代币分析和市场范围的趋势发现。 | • query_token_metrics<br>• query_token_holders<br>• query_token_buyers<br>• query_top_traders<br>• query_holder_status<br>• get_top_trending_tokens | 源代码 | Bitquery |
| CarvOnchainDataAgent | 此代理可以使用CARV API通过自然语言查询以太坊、Base、比特币或Solana的区块链指标。 | • query_onchain_data | 源代码 | CARV |
| CoinGeckoTokenInfoAgent | 此代理可以从CoinGecko获取代币信息、市场数据、热门硬币和分类数据。 | • get_token_info<br>• get_trending_coins<br>• get_token_price_multi<br>• get_categories_list<br>• get_category_data<br>• get_tokens_by_category<br>• get_trending_pools<br>• get_top_token_holders | 源代码 | Coingecko |
| CookieProjectInfoAgent | 此代理使用Cookie API提供有关加密项目的市场数据、社交媒体指标和心智份额增长指标的信息。它可以通过推特用户名或合约地址识别项目。 | • get_project_by_twitter_username<br>• get_project_by_contract_address | 源代码 | Cookie API |
| DeepResearchAgent | 高级研究代理,执行多层次的网络搜索,递归探索,跨来源分析内容,并生成包含关键见解的综合研究报告。 | • deep_research | 源代码 | Firecrawl, Exa |
| DexScreenerTokenInfoAgent | 此代理使用DexScreener API获取多个链上的实时DEX交易数据和代币信息。 | • search_pairs<br>• get_specific_pair_info<br>• get_token_pairs | 源代码 | DexScreener |
| DuckDuckGoSearchAgent | 此代理可以使用DuckDuckGo API获取和分析网络搜索结果,并提供智能摘要。 | • search_web | 源代码 | DuckDuckGo |
| ElfaTwitterIntelligenceAgent | 此代理使用Twitter数据和Elfa API分析代币、主题或Twitter账户。它突出显示智能影响者。 | • search_mentions<br>• search_account<br>• get_trending_tokens | 源代码 | Elfa, Apidance |
| EtherscanAgent | 此代理可以使用区块链浏览器和Firecrawl进行数据提取,分析多个链上的区块链交易、地址和ERC20代币。 | • get_transaction_details<br>• get_address_history<br>• get_erc20_token_transfers<br>• get_erc20_top_holders | 源代码 | Firecrawl |
| EvmTokenInfoAgent | 此代理使用Bitquery API分析多个链上的EVM代币的大额交易。它通过识别实际交易者及其交易详情来追踪鲸鱼移动。交易类型从交易者的角度显示(而非DEX角度)。 | • get_recent_large_trades | 源代码 | Bitquery |
| ExaSearchAgent | 此代理可以使用Exa的API搜索网络,并提供问题的直接答案。 | • exa_web_search<br>• exa_answer_question | 源代码 | Exa |
| ExaSearchDigestAgent | 使用Exa API的网络搜索代理,具有简洁的LLM摘要。 | • exa_web_search<br>• exa_scrape_url | 源代码 | Exa |
| FirecrawlSearchAgent | 高级搜索代理,使用Firecrawl执行智能查询生成和内容分析的研究。 | • firecrawl_web_search<br>• firecrawl_extract_web_data<br>• firecrawl_scrape_url | 源代码 | Firecrawl |
| FirecrawlSearchDigestAgent | 高级网络搜索代理,使用Firecrawl执行智能查询生成和内容分析的研究,然后使用小型快速LLM处理结果,生成简洁的相关摘要。 | • firecrawl_web_search<br> • firecrawl_extract_web_data<br> • firecrawl_scrape_url | 源代码 | Firecrawl |
| FundingRateAgent | 获取Binance USDⓈ-M资金费率及持仓量,总结持仓量趋势,并从资金费率间隔计算APR |