
Product
Reachability for Ruby Now in Beta
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.
@skynetxbt/core
Advanced tools
A powerful graph-based autonomous agent framework for creating complex workflows with web3 integrations.
The SkynetXBT Agent Framework is a no-code flow builder that enables you to create sophisticated autonomous agents through visual graph-based workflows. The framework supports parallel and sequential execution, conditional branching, and seamless integration with 100s of web3 tools.
Agents execute workflows as directed graphs where:
entry, end, terminate)interface FlowConfig {
name: string;
description: string;
plugins: string[];
triggers: string[];
isAutonomous?: boolean;
abilities?: string[];
examples?: string[];
}
interface IFlow {
flowConfig: FlowConfig;
execute(context: FlowContext): Promise<void | string | object>;
executeAutonomous?(config: AutonomousFlowConfig): Promise<void>;
}
import { IFlow, FlowConfig, FlowContext } from '@skynetxbt/core';
export class CustomFlow implements IFlow {
flowConfig: FlowConfig = {
name: "CustomFlow",
description: "A custom workflow for specific tasks",
plugins: ["web3-plugin"],
triggers: ["custom", "workflow", "task"]
};
async execute(context: FlowContext): Promise<void | string | object> {
// Your flow logic here
const { message, sessionId, userPublicKey } = context;
// Process the input
const result = await this.processData(message);
return {
success: true,
data: result,
timestamp: Date.now()
};
}
private async processData(input: any) {
// Implementation details
return input;
}
}
import { GraphConfig } from '@skynetxbt/core';
const graphConfig: GraphConfig = {
name: "sample-workflow",
description: "A sample workflow demonstrating graph execution",
flows: {
"entry": {
name: "entry",
description: "Entry point",
outNode: {
flows: ["step1", "step2"],
executionMode: "parallel",
mergeStrategy: "array"
}
},
"step1": {
name: "FetchDataFlow",
description: "Fetch external data",
inNode: {
flows: ["entry"]
},
outNode: {
flows: ["step3"],
executionMode: "sequential"
}
},
"step2": {
name: "ProcessDataFlow",
description: "Process user input",
inNode: {
flows: ["entry"]
},
outNode: {
flows: ["step3"],
executionMode: "sequential"
}
},
"step3": {
name: "MergeResultsFlow",
description: "Combine results from parallel steps",
inNode: {
flows: ["step1", "step2"],
mergeStrategy: "object"
},
outNode: {
flows: ["end"]
}
},
"end": {
name: "end",
description: "Workflow completion"
}
}
};
import { FlowAgent, LLMManager, FlowRegistry } from '@skynetxbt/core';
// Register your flows
const flowRegistry = FlowRegistry.getInstance();
flowRegistry.registerFlow(new CustomFlow(), "step1");
flowRegistry.registerFlow(new ProcessDataFlow(), "step2");
flowRegistry.registerFlow(new MergeResultsFlow(), "step3");
// Create LLM manager
const llmManager = new LLMManager({
provider: 'openai',
config: { model: 'gpt-4' }
});
// Create and execute flow agent
const agent = new FlowAgent(llmManager, graphConfig);
await agent.execute(
"session-123",
"user-public-key",
"entry", // starting step
{ message: "Hello, process this data" }
);
Flows can return a next property to control execution path:
async execute(context: FlowContext): Promise<any> {
const condition = await this.evaluateCondition(context.message);
return {
data: "processed",
next: condition ? 0 : 1 // Choose which output flow to execute
};
}
// Graph configuration for parallel execution
outNode: {
flows: ["flowA", "flowB", "flowC"],
executionMode: "parallel",
mergeStrategy: "object" // "concat", "object", or "array"
}
Create self-executing flows that run on schedules:
export class AutonomousMonitorFlow implements IFlow {
flowConfig: FlowConfig = {
name: "AutonomousMonitorFlow",
description: "Monitors blockchain events autonomously",
plugins: ["blockchain-plugin"],
triggers: ["monitor"],
isAutonomous: true,
autonomousConfig: {
schedule: {
type: "interval",
value: 60000 // Run every minute
},
maxRuns: 100
}
};
async execute(context: FlowContext) {
// Monitor blockchain events
const events = await this.checkBlockchainEvents();
if (events.length > 0) {
// Process events and take action
return this.processEvents(events);
}
return { status: "no_events", timestamp: Date.now() };
}
async executeAutonomous(config: AutonomousFlowConfig) {
// Autonomous execution logic
console.log('Running autonomous monitoring...');
}
}
The framework includes many pre-built flows:
Monitor flow execution with built-in events:
import { FlowEventManager } from '@skynetxbt/core';
// Listen to flow events
FlowEventManager.on('flowExecutionStart', (data) => {
console.log('Flow started:', data);
});
FlowEventManager.on('flowStepEnd', (data) => {
console.log('Step completed:', data);
});
FlowEventManager.on('flowExecutionEnd', (data) => {
console.log('Flow finished:', data);
});
The framework provides robust error handling:
class FlowAgent {
constructor(llmManager: LLMManager, graphConfig: GraphConfig)
async execute(
sessionId: string,
userPublicKey: string,
startStepName?: string,
initialPayload?: any
): Promise<void>
setGraphConfiguration(graph: GraphConfig): void
getGraphConfiguration(): GraphConfig | null
getNextSteps(currentStepName: string): string[]
}
class FlowRegistry {
static getInstance(): FlowRegistry
registerFlow(flow: IFlow, instanceId?: string): void
registerFlows(flows: IFlow[]): void
getFlow(name: string, instanceId?: string): IFlow | undefined
getAllFlows(): Map<string, IFlow>
async analyzeFlow(message: string): Promise<string | undefined>
}
To see the framework in action:
cd example/demo-agent-flow
bun install
bun run start
curl -X POST http://localhost:3010/kill \
-H "Content-Type: application/json" \
-d '{"shutdownKey": "hello"}'
FAQs
Skynet Agent Framework - Create and manage AI agents with flows and plugins
The npm package @skynetxbt/core receives a total of 201 weekly downloads. As such, @skynetxbt/core popularity was classified as not popular.
We found that @skynetxbt/core demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Reachability analysis for Ruby is now in beta, helping teams identify which vulnerabilities are truly exploitable in their applications.

Research
/Security News
Malicious npm packages use Adspect cloaking and fake CAPTCHAs to fingerprint visitors and redirect victims to crypto-themed scam sites.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.