Skip to content

Move scheduled-agent recipes to Ornn skills (workflow YAML + missing LLM tools) #598

@eanzhao

Description

@eanzhao

Context

PR #590 / feature/lark-bot removes the in-tree agent_builder.create_agent template=<name> recipe path. The two existing templates (daily, social_media) are gone:

  • daily is migrated to the Ornn-hosted chrono-ai-daily skill — the LLM finds it via ornn_search_skills, loads it via use_skill, and runs it inline using existing tools (nyxid_proxy).
  • social_media is deleted with no replacement in this repo. The recipe (workflow YAML with human_approval + twitter_publish + cron schedule) used to live as AgentBuilderTemplates.TryBuildSocialMediaSpec and was wired through AgentBuilderTool.CreateSocialMediaAgentAsync.

Goal

Make scheduled-agent recipes (workflow YAML, schedule, delivery binding, API key minting, preflight) curate-able on Ornn rather than in this repo. The vision: an Ornn skill author writes a SKILL.md with the workflow YAML and the orchestration steps; the LLM in the bot loads the skill and executes the steps using primitive aevatar tools.

What's missing on the LLM tool surface

Today's LLM-callable tools cover most primitives:

  • nyxid_api_keys — mint with allowed_service_ids
  • agent_delivery_targets — bind outbound delivery
  • channel_registrations — manage Lark inbound
  • workflow_create_def / update_def / read_def / list_defs — global workflow definitions
  • nyxid_proxy — generic HTTP fallback

But scope-scoped workflow upsert is not exposed as an LLM tool. `CreateSocialMediaAgentAsync` calls `IScopeWorkflowCommandPort.UpsertAsync(ScopeWorkflowUpsertRequest)` directly — there's no equivalent tool the LLM can use to install a workflow into a scope.

Proposed work

  1. Expose `IScopeWorkflowCommandPort` (and read-side: list/get) as LLM-callable tools — e.g., `scope_workflows_upsert`, `scope_workflows_list`, `scope_workflows_get`. The tools should accept the same primitive shape (workflow_id, workflow YAML, scope_id, etc.) that the existing application service consumes.
  2. Expose the WorkflowAgentGAgent lifecycle (initialize + trigger) as LLM-callable tools, or fold them into existing `agent_builder` lifecycle tools (`create_agent` becomes scope_id+workflow_actor_id-driven instead of template-driven).
  3. Re-introduce a `social-media` Ornn skill that uses the new tools to install + bind + run the equivalent workflow. The skill markdown owns the YAML and the ordering of primitive calls.

Acceptance

  • An Ornn skill author can install a scheduled workflow agent end-to-end without touching this repo.
  • `agent_builder.create_agent` is either fully template-agnostic or removed.
  • The `social-media` skill on Ornn produces the same runtime behavior as the deleted in-tree recipe.

Cross-references

  • Removed-in-this-PR: `AgentBuilderTemplates.TryBuildSocialMediaSpec`, `AgentBuilderTool.CreateSocialMediaAgentAsync`, `/social-media` slash command, `open_social_media_form` action, related card-flow + tests, and the in-tree `TwitterPublishModule` if orphaned after the deletion.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions