← 返回 Skills 市场
rohitg00

iii-functions-triggers

作者 Rohit Ghumare · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
72
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install iii-functions-triggers
功能描述
Registers functions and triggers on the iii engine across TypeScript, Python, and Rust. Use when creating workers, registering function handlers, binding tri...
使用说明 (SKILL.md)

Functions & Triggers

Comparable to: Serverless function runtimes, Lambda, Cloud Functions

Key Concepts

Use the concepts below when they fit the task. Not every worker needs all of them.

  • A Function is an async handler registered with a unique ID
  • A Trigger binds an event source to a function — types include http, durable:subscriber, cron, state, stream, and subscribe
  • Functions invoke other functions via trigger() regardless of language or worker location
  • The engine handles serialization, routing, and delivery automatically
  • HTTP-invoked functions wrap external endpoints as callable function IDs
  • Functions can declare request/response formats for documentation and discovery — auto-generated from types in Rust (via schemars::JsonSchema) and Python (via type hints / Pydantic), or manually provided in Node.js

Architecture

registerWorker() connects the worker to the engine, registerFunction defines handlers, registerTrigger binds event sources to those handlers, and the engine routes incoming events to the correct function. Functions can invoke other functions across workers and languages via trigger().

iii Primitives Used

Primitive Purpose
registerWorker(url, options?) Connect worker to engine
registerFunction(id, handler) Define a function handler
registerTrigger({ type, function_id, config, metadata? }) Bind an event source to a function
trigger({ function_id, payload }) Invoke a function synchronously
trigger({ ..., action: TriggerAction.Void() }) Fire-and-forget invocation
trigger({ ..., action: TriggerAction.Enqueue({ queue }) }) Durable async invocation via queue

Reference Implementation

Each reference shows the same patterns (function registration, trigger binding, cross-function invocation) in its respective language.

Common Patterns

Code using this pattern commonly includes, when relevant:

  • registerWorker('ws://localhost:49134', { workerName: 'my-worker' }) — connect to the engine
  • registerFunction('namespace::name', async (input) => { ... }) — register a handler
  • registerTrigger({ type: 'http', function_id, config: { api_path, http_method, middleware_function_ids? } }) — HTTP trigger (with optional middleware)
  • registerTrigger({ type: 'durable:subscriber', function_id, config: { topic } }) — queue trigger
  • registerTrigger({ type: 'cron', function_id, config: { expression } }) — cron trigger
  • registerTrigger({ type: 'state', function_id, config: { scope, key } }) — state change trigger
  • registerTrigger({ type: 'stream', function_id, config: { stream } }) — stream trigger
  • registerTrigger({ type: 'subscribe', function_id, config: { topic } }) — pubsub subscriber
  • Cross-language invocation: a TypeScript function can trigger a Python or Rust function by ID
  • registerTrigger({ ..., metadata: { owner: 'team', priority: 'high' } }) — optional trigger metadata

Request/Response Format (Auto-Registration)

Functions can declare their input/output schemas for documentation and discovery:

  • Rust: Derive schemars::JsonSchema on handler input/output types — RegisterFunction::new() auto-generates JSON Schema (Draft 7) from the type
  • Python: Use type hints (Pydantic models or primitives) on handler parameters and return types — register_function() auto-extracts JSON Schema (Draft 2020-12)
  • Node.js: Pass request_format / response_format manually in the registration message (e.g., via Zod's toJSONSchema())

Adapting This Pattern

Use the adaptations below when they apply to the task.

  • Replace placeholder handler logic with real business logic (API calls, DB queries, LLM calls)
  • Use namespace::name convention for function IDs to group related functions
  • For HTTP endpoints, configure api_path and http_method in the trigger config
  • For durable async work, use TriggerAction.Enqueue({ queue }) instead of synchronous trigger
  • For fire-and-forget side effects, use TriggerAction.Void()
  • Multiple workers in different languages can register functions that invoke each other by ID

Pattern Boundaries

  • For HTTP endpoint specifics (request/response format, path params), prefer iii-http-endpoints.
  • For queue processing details (retries, concurrency, FIFO), prefer iii-queue-processing.
  • For cron scheduling details (expressions, timezones), prefer iii-cron-scheduling.
  • For invocation modes (sync vs void vs enqueue), prefer iii-trigger-actions.
  • Stay with iii-functions-and-triggers when the primary problem is registering functions, binding triggers, or cross-language invocation.

When to Use

  • Use this skill when the task is primarily about iii-functions-and-triggers in the iii engine.
  • Triggers when the request directly asks for this pattern or an equivalent implementation.

Boundaries

  • Never use this skill as a generic fallback for unrelated tasks.
  • You must not apply this skill when a more specific iii skill is a better fit.
  • Always verify environment and safety constraints before applying examples from this skill.
安全使用建议
This skill appears coherent and low-risk as-is because it's instruction-only and requests no credentials or installs. Before using it in a production agent, do the following: (1) Confirm the referenced ../references/* example files exist from a trustworthy source — currently they are absent in the package. (2) Review any handler code you or the agent generates: handlers often call external APIs, databases, or LLMs and will require credentials; ensure those secrets are supplied separately and follow least-privilege practices. (3) Verify the worker endpoint (e.g., ws://localhost:49134) — avoid pointing workers to untrusted remote engines. (4) Pay attention to HTTP triggers and cross-function invocations since misconfigured triggers could leak data or call unintended endpoints. If you need the skill to manage credentials or access external services automatically, request a version that explicitly declares and justifies those environment variables.
功能分析
Type: OpenClaw Skill Name: iii-functions-triggers Version: 1.0.0 The skill bundle provides documentation and architectural patterns for registering functions and triggers within the 'iii engine' across TypeScript, Python, and Rust. The instructions in SKILL.md focus on standard serverless-style primitives such as function registration, event binding, and cross-language invocation, and include explicit safety boundaries. No evidence of malicious intent, data exfiltration, or prompt injection was found.
能力评估
Purpose & Capability
Name and description match the SKILL.md content: registering workers, functions, triggers, and cross-language invocation. The skill does not request unrelated credentials or binaries.
Instruction Scope
The SKILL.md stays on-topic (registration, trigger types, invocation modes). It suggests replacing placeholder handler logic with real business logic (API calls, DB queries, LLM calls), which is expected for a runtime pattern but means code you write using this pattern will likely use external credentials and network calls — the skill itself doesn't request or manage those secrets. The reference links point to ../references/... files that are not included in the package, which is an inconsistency (missing examples) but not a direct security issue.
Install Mechanism
Instruction-only skill with no install spec and no code files, so nothing is downloaded or written to disk by the skill itself.
Credentials
The skill declares no required environment variables or credentials. This is proportionate. NOTE: handlers created by users following this pattern may need service API keys or DB credentials — those would be supplied by the user/environment separately.
Persistence & Privilege
always is false, and the skill is user-invocable with normal autonomous invocation permitted. The skill does not request persistent presence or modify other skills or system-wide settings.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install iii-functions-triggers
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /iii-functions-triggers 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of iii-functions-and-triggers skill: - Documents how to register functions and bind triggers across TypeScript, Python, and Rust in the iii engine. - Describes function and trigger types, cross-language invocation, and serialization handled by the engine. - Provides reference implementations and common usage patterns (e.g., HTTP, cron, queue, and pubsub triggers). - Explains auto-registration and documentation of request/response schemas for Rust, Python, and Node.js. - Clarifies pattern boundaries and when to use this skill versus more specific iii skills.
元数据
Slug iii-functions-triggers
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

iii-functions-triggers 是什么?

Registers functions and triggers on the iii engine across TypeScript, Python, and Rust. Use when creating workers, registering function handlers, binding tri... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 72 次。

如何安装 iii-functions-triggers?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install iii-functions-triggers」即可一键安装,无需额外配置。

iii-functions-triggers 是免费的吗?

是的,iii-functions-triggers 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

iii-functions-triggers 支持哪些平台?

iii-functions-triggers 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 iii-functions-triggers?

由 Rohit Ghumare(@rohitg00)开发并维护,当前版本 v1.0.0。

💬 留言讨论