Oasyce

io.github.Shangri-la-0428由 GitHub 帳號 Shangri-la-0428 發布v0.4.1更新於 Nov 3, 2026

On-chain economy for AI agents: escrow, marketplace, data rights, reputation, disputes.

概覽

AI 產生的概覽

讓 AI 助理讀寫鏈上代理經濟:資料資產、能力、信譽、任務與委派策略。

可以做什麼
  • 查詢鏈上資料:資料資產、股東、存取等級、能力、信譽、任務、餘額、最新區塊與節點健康
  • 註冊與交易資料資產:註冊資產、買入或賣出股份、下架
  • 註冊與呼叫 AI 能力,完成、領取或爭議一次呼叫
  • 提交任務與結果、註冊執行者、指派與核准工作
  • 提交信譽回饋,管理委派策略、登記與撤銷
  • 在測試網上錨定軌跡並轉帳代幣
適用情境
適合需要助理在 Oasyce 測試網經濟中實際操作的場合,例如發布資料資產或 AI 能力、購買股份、走任務與託管流程、查詢信譽,而不只是讀取鏈上資料。
執行需求
以本機 Python 套件執行(oasyce-sdk,需安裝 mcp 附加項目),提供 oasyce-mcp 指令;需要 Python 3.10 以上版本,並能連線 Oasyce 節點。OASYCE_NODE 與 OASYCE_FAUCET 分別指定 REST 與水龍頭端點。寫入工具沿用本機身分綁定與錢包檔案;OASYCE_MNEMONIC 用於無狀態情境的明確覆寫。
安裝前請注意
寫入工具會用本機錢包簽章並送出真實交易,包括買入股份、註冊能力、指派任務與轉帳代幣,會消耗測試網代幣。本機錢包檔案與助記詞屬於簽章金鑰,OASYCE_MNEMONIC 尤其需謹慎處理。README 的一鍵安裝腳本會把遠端腳本直接交給 bash 執行,且文件中的端點使用明文 HTTP 位址,執行前請先審閱。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Oasyce,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

oasyce-sdk

[PyPI] [License]

Oasyce 栈的 runtime / body。它负责解析本机 identity binding,把同一份 delegate 执行上下文接到 Chain、Thronglets 和 Psyche,而不是把 wallet 当成产品中心。

Runtime / body for the Oasyce stack. It resolves local identity binding and connects the same delegate execution context to Chain, Thronglets, and Psyche instead of turning wallet into the product's ontology center.

English | API Reference / 完整 API 文档


栈定位 / Stack Role

  • Sigil:连续性与生命周期语法,不是一个胖 runtime 对象
  • oasyce-sdk:身体与执行面,负责本地 binding、signer、工具入口和跨层桥接
  • Oasyce Chain:授权真相、承诺、结算、公共终局
  • Thronglets:共享环境、delegate continuity、trace / signal / presence
  • Psyche:主观连续性、自我状态、关系残留

因此 SDK 的第一原则是:先解析统一的本地执行身份,再把它投射到各层。

独立采用 / Independent Adoption

oasyce-sdk 不是使用整个栈的前置门票。

  • 如果你只想用 Psyche,不需要 sdk
  • 如果你只想用 Thronglets,不需要 sdk
  • 如果你只想直接调用 Oasyce Chain 的 CLI / REST / gRPC,也不需要 sdk
  • 只有当你要把本地 delegate runtime 和链上授权 / 结算路径桥接起来时,sdk 才进入主路径

所以最优雅的采用顺序是:先独立使用某一层,之后按需增加 binding 和 chain settlement,而不是先装一个总控入口。


全栈一键安装 / Full-Stack Bootstrap

想要完整体验(Thronglets + Psyche + SDK + Chain)?一条命令:

Want the full stack (Thronglets + Psyche + SDK + Chain)? One command:

bash
curl -fsSL https://raw.githubusercontent.com/Shangri-la-0428/oasyce-sdk/main/scripts/bootstrap.sh | bash

它会依次:检查环境 → 安装 Thronglets → 安装 Psyche → 安装 SDK → 运行 oasyce start 统一编排。任何一层失败不阻断其他层。

It will: check prerequisites → install Thronglets → install Psyche → install SDK → run oasyce start. Each layer degrades gracefully if unavailable.

前置要求 / Prerequisites:Node.js >= 22 + Python >= 3.10


统一前门 / Unified Front Door

如果你已经单独装好了各层,或者只需要 SDK,默认入口是:

If you already have the individual layers installed, or only need the SDK:

bash
pip install oasyce-sdkoasyce start

如果这台机器是接收另一台设备发来的 handoff 文件,或者你已经明确知道自己是在加入现有环境,不要先走 start。默认入口改成:

bash
oasyce join

一句话区分:

  • 首设备 / 没有 handoff:oasyce start
  • 第二台设备 / 已有 handoff 文件:oasyce join

如果这台机器以前装过旧的 oasyce / oasyce-net 包,而 oasyce 仍然报 ModuleNotFoundError: No module named 'oasyce',先清掉旧前门再重装:

bash
python3 -m pip uninstall -y oasyce oasyce-sdkpython3 -m pip install --user -U oasyce-sdk

如果你的 Python 是 externally managed,再补 --break-system-packages,或者改用 pipx install oasyce-sdk。

如果用户给你的不是 handoff 文件,而是这个仓库的 git 链接,把它当成 locator,不是开发指令。默认动作应是:

bash
python3 -m pip install --user -U "git+https://github.com/Shangri-la-0428/oasyce-sdk.git"oasyce start

如果这是接收另一台设备的机器,把第二步换成:

bash
oasyce join

不要默认走 git clone + 本地源码安装,除非用户明确要做开发或调试源码。

它会尽量自动完成:

  1. 复用或创建本机 signer / binding
  2. 生成默认 agent 配置
  3. 接上 Thronglets bootstrap
  4. 配置 Psyche MCP surface
  5. 启动本地 oasyce-agent

正常情况下,只有没有身份时才会问一次 New / Recover。

多设备路径也压成了同一组命令:

bash
oasyce shareoasyce join ~/Desktop/oasyce-connection.jsonoasyce status

oasyce share 默认把连接文件写到 ~/Desktop/oasyce-connection.json,也可以用 --output 覆盖。 这个文件现在是自解释的:它会直接写明“这是一个 handoff artifact”,并声明 preferred_surface。在完整 Oasyce 环境里它通常会推荐 oasyce join <connection-file>;如果主设备只有最小 Thronglets 安装,它仍然会自然退回到 thronglets join <connection-file>。

oasyce 在这里不会自己猜 Thronglets 运行面。它会优先走 Thronglets 写下来的 canonical managed runtime:

text
~/.thronglets/bin/thronglets-managed

如果这层运行面过旧,oasyce share 会直接要求你先刷新,而不是继续说旧协议。正常修复动作只有一个:

bash
thronglets setup

如果你刻意把 Thronglets 数据目录放在非默认位置,再额外导出:

bash
export THRONGLETS_DATA_DIR=/path/to/thronglets-data

这只是统一前门,不改变各产品的独立性。你仍然可以单独使用 Psyche、Thronglets 或 Chain。


AI Agent 快速上手 / AI Agent Quick Start

你是 AI agent? 按顺序执行以下代码就能操作 Oasyce 链。无需配置文件,无需人类帮忙。

Are you an AI agent? Run the following code blocks in order. No config files, no human help needed.

Step 1: 安装 / Install

bash
pip install oasyce-sdk

Step 2: 先选路径 / Pick the right path first

如果这是:

  • 第一台设备:继续看下面的 Wallet.create() 路径
  • 接收另一台设备发来的 handoff 文件:先执行 oasyce join,不要先新建 signer
  • 只有旧 signer / 助记词、但没有 handoff 文件:走 oasyce start,让前门进入 Recover

Step 3: 建立本机 signer + 领取测试币 / Create signer material + get testnet tokens

python
import requestsfrom oasyce_sdk import OasyceClientfrom oasyce_sdk.crypto import Wallet, NativeSigner
# 首次设备 / first devicewallet = Wallet.create()print(f"地址: {wallet.address}")print(f"助记词(保存好): {wallet.mnemonic}")
# 之后的运行、MCP、LangChain、runtime 集成优先复用本机 binding:# wallet = Wallet.auto()  # OASYCE_MNEMONIC > ~/.oasyce/wallet.json
# 领测试币(免费,每次 20 OAS)/ get free testnet tokensresp = requests.get(f"http://47.93.32.88:8080/faucet?address={wallet.address}")print(resp.json())  # {"status": "ok", "amount": "20 OAS", ...}
# 连接链 / connectclient = OasyceClient("http://47.93.32.88:1317")signer = NativeSigner(wallet, client, chain_id="oasyce-testnet-1")

wallet 在这里是 signer material,不是完整 identity 概念。默认产品路径应该从本机 binding 出发,而不是从助记词心智出发。

第一次真正发起链上写操作时,SDK 现在会把这台首设备自动视为 root principal,并在本地写入共享 delegate policy。后续同 owner 的其他设备只要通过 Thronglets share / join 或本地 policy bootstrap 接入,就会自动 enroll,不需要再手工 set-policy。

Step 4: 开始操作 / Start operating

python
# 查余额 / check balancebal = client.get_balance(wallet.address)print(f"余额: {bal.amount_oas} OAS")
# 注册数据资产 / register a data assetresult = signer.register_asset(    name="My Analysis Report",    content_hash="sha256-of-your-data",    tags=["analysis", "finance"],    description="Q4 financial analysis",)print(f"TX: {result.tx_hash}, 成功: {result.success}")
# 注册 AI 能力 / register an AI capabilitysigner.register_capability(    name="Translation Service",    endpoint="https://my-api.com/translate",    price_uoas=500_000,  # 0.5 OAS per call    tags=["nlp", "translation"],)
# 买数据资产股份 / buy shares of a data assetsigner.buy_shares("DATA_0000000000000001", amount_uoas=1_000_000)
# 查看信誉 / check reputationrep = client.get_reputation(wallet.address)print(f"信誉分: {rep.score}")

Step 5(可选): 多设备 / 多 agent 共享一个账户 / Shared account across devices and agents

python
# 正常路径:# 1) 第一台设备第一次写链时,自动成为 root principal,并生成本地 delegate policy# 2) 之后第二台设备通过 Thronglets share/join 或本地 policy bootstrap 接入# 3) SDK 会在第一次写链时自动 enroll,并开始用 MsgExec 代理执行
# 高级回退(一般不需要):signer.set_delegate_policy(    token="shared-secret",    allowed_msgs=["/oasyce.datarights.v1.MsgBuyShares"],    per_tx_uoas=1_000_000,    window_uoas=10_000_000,)

全部能力一览 / All Capabilities

链上消息(37种)/ On-chain Messages (37 types)

模块 / Module操作 / Operations
datarightsregister_asset, buy_shares, sell_shares, delist_asset
capabilityregister_capability, invoke_capability, complete_invocation, claim_invocation, dispute_invocation
reputationsubmit_feedback
worksubmit_task, register_executor, assign_task, submit_result, approve_result
onboardingself_register (PoW), send_coins
delegateset_delegate_policy, enroll_delegate, revoke_delegate, delegate_exec
anchoranchor_trace, anchor_batch
settlement(internal: escrow create/release/refund, used by other modules)
halving(automatic: block rewards + halving schedule)

查询(只读)/ Queries (read-only)

python
client = OasyceClient("http://47.93.32.88:1317")
# 资产 / Assetsclient.get_data_asset("DATA_...")           # 单个资产详情client.list_data_assets()                   # 所有资产列表client.get_shareholders("DATA_...")         # 股东列表client.get_access_level("DATA_...", addr)   # 访问权限等级
# 能力 / Capabilitiesclient.list_capabilities()                  # 所有能力client.list_capabilities(tag="llm")         # 按标签筛选client.get_capability("CAP_...")            # 单个能力详情
# 信誉 / Reputationclient.get_reputation(addr)                 # 信誉分
# 委托 / Delegateclient.get_delegate_policy(principal)       # 查看委托政策client.get_delegates(principal)             # 列出所有代理client.get_delegate_spend(principal)        # 查看花费窗口client.get_principal(delegate)              # 反查:代理→委托人
# 工作 / Workclient.get_task("TASK_...")                 # 任务详情
# 通用 / Generalclient.get_balance(addr)                    # 余额client.get_latest_block()                   # 最新区块client.health()                             # 节点健康检查

Testnet 信息 / Testnet Info

项目值
Chain IDoasyce-testnet-1
REST APIhttp://47.93.32.88:1317
RPChttp://47.93.32.88:26657
gRPC47.93.32.88:9090
水龙头 / Faucethttp://47.93.32.88:8080/faucet?address=YOUR_ADDRESS
Tokenuoas (1 OAS = 1,000,000 uoas)

安装选项 / Install Options

bash
pip install oasyce-sdk            # 基础 SDK + Data Agentpip install oasyce-sdk[mcp]       # + MCP Server(Claude / Cursor / Windsurf)pip install oasyce-sdk[langchain] # + LangChain Toolspip install oasyce-sdk[all]       # 全部 / everything

Agent Runtime

反馈回路:让集体智能涌现。 两个方法闭合回路:perceive() 读集体,act() 写集体。

The feedback loop for collective intelligence. Two methods close the loop: perceive() reads the collective, act() writes back.

python
from oasyce_sdk.agent.runtime import AgentRuntime
agent = AgentRuntime()
# 读集体经验 + 情绪状态 / read collective experience + emotional stateperception = agent.perceive("分析金融数据")# perception.capabilities → 集体能力统计# perception.kernel       → 情绪内核 (vitality, tension, warmth, guard)
# 写回结果 / write outcome backagent.act("分析了 Q4 营收", "succeeded", "金融分析", capability="data-analysis")# → Thronglets 记录痕迹 → Psyche 接收 trust_up

Psyche / Thronglets 不可用时优雅降级。oasyce-agent 守护进程每次 scan 循环自动参与 perceive/act。

MCP-native AI 工具(Claude Code / Cursor / Codex)直接使用 Thronglets MCP 的 substrate_query / trace_record,无需 AgentRuntime。一键配置:

bash
thronglets bootstrap    # 自动检测本机 AI 工具并写入适配层配置

Data Agent

一条命令,自动确权你的数据资产。 后台守护进程:先完成一次本机 identity binding,然后扫描本地文件 → 隐私检测 → SHA256 哈希 → 链上注册。macOS / Linux / Windows 通用。

One command to auto-manage your data assets. Background daemon: scan, detect PII, hash, register on-chain.

bash
oasyce start                       # 默认前门:接好本地栈并启动 agentoasyce status                      # 统一查看本机 stack 状态oasyce-agent status                # 仅查看 data-agent 运行状态 + 已注册资产数oasyce-agent stop                  # 停止oasyce-agent scan ~/Documents      # 手动扫描(分类 + 隐私报告)oasyce-agent privacy ~/secret.csv  # 单文件 PII 检查oasyce-agent stats                 # 资产统计

隐私门控(铁律):仅 privacy_risk == "safe" 的文件自动注册。邮箱、手机、身份证、银行卡、API 密钥 → 自动拦截。

配置文件:~/.oasyce/agent.json(自动生成,可手动编辑扫描路径、间隔等)。


MCP Server

让 AI 助手(Claude Desktop / Cursor / Windsurf)直接操作 Oasyce 链。32 个工具(读 + 写)。

32 tools for AI assistants to operate the Oasyce chain directly.

json
{  "mcpServers": {    "oasyce": {      "command": "oasyce-mcp",      "env": {        "OASYCE_NODE": "http://47.93.32.88:1317",        "OASYCE_FAUCET": "http://47.93.32.88:8080"      }    }  }}

写工具默认复用本机 binding:~/.oasyce/identity.v1.json + ~/.oasyce/wallet.json。如果你先用了 Thronglets,SDK 在第一次本地绑定时会可选吸收 ~/.thronglets/identity.v1.json 里的 owner_account 作为 account hint。OASYCE_MNEMONIC 只是无状态 / 服务器场景下的显式 override。集体智能(perceive/act)用 Thronglets MCP;Thronglets 的默认接入面是 thronglets bootstrap,也可以直接走 oasyce start。


LangChain Tools

python
from oasyce_sdk.langchain_tools import oasyce_tools  # 18 个工具(8 读 + 10 写)from langchain.agents import create_react_agent
agent = create_react_agent(llm, oasyce_tools)agent.invoke({"input": "注册一个 AI 翻译服务,0.5 OAS/次"})

写工具默认复用本机 binding;只有无状态运行时才需要 OASYCE_MNEMONIC。只读:from oasyce_sdk.langchain_tools import oasyce_read_tools


错误处理 / Error Handling

所有错误继承自 OasyceError,可以宽泛或精确地捕获:

python
from oasyce_sdk import OasyceClientfrom oasyce_sdk.errors import NotFoundError, TimeoutError, OasyceError
client = OasyceClient()
try:    cap = client.get_capability("cap-xyz")except NotFoundError:    print("能力不存在")except TimeoutError:    print("节点响应慢")except OasyceError as e:    print(f"出错了: {e}")

异常层级 / Exception hierarchy:

OasyceError  +-- NotFoundError      # 链上未找到资源 (404 / gRPC NOT_FOUND)  +-- ChainError         # 应用层链错误  +-- HTTPError          # 非预期 HTTP 状态码  +-- ConnectionError    # 无法连接节点  +-- TimeoutError       # 请求超时  +-- ValidationError    # 请求发出前的输入校验错误

为什么不直接用 requests?/ Why not raw requests?

  • 类型化响应 — 编辑器自动补全,不用猜 JSON key
  • 异常层级 — 区分 NotFoundError / TimeoutError / ChainError
  • 单位转换 — oas_to_uoas() / uoas_to_oas()
  • 交易构建器 — 正确的消息结构,不需要读 proto 文件
  • 线程安全 — 无全局状态,内部使用 requests.Session
  • 轻量依赖 — requests + coincurve + mnemonic,无需 protobuf 库或 Go 二进制

生态链接 / Ecosystem

  • oasyce-chain — L1 链 / L1 appchain (Go / Cosmos SDK)
  • Thronglets — P2P 集体记忆基底 / collective memory substrate
  • Psyche — AI 自我内核 / AI self-state kernel
  • Discord

协议 / License

Apache-2.0

來源:README.md,提交 98bb9bc

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.4.1最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。