本文へ移動
cccskills
無料GitHub で公開

bellifemine-2007-jade-fipa

Design a bounded FIPA-style conversation and map it cautiously to JADE behavior APIs. NOT for treating a JADE API example as protocol delivery or application authorization proof.

インストール方法を見る

含まれるファイル(19)

  • SKILL.md8.2 KB
  • _book_identity.json219 B
  • _raw_response.md90.9 KB
  • CHANGELOG.md267 B
  • diagrams/01_cfp-lifecycle.md1.5 KB
  • diagrams/01_sequenceDiagram_fipa_protocol_interaction_patt.md1.5 KB
  • diagrams/02_implementation-boundary.md443 B
  • diagrams/02_stateDiagram-v2_agent_behavior_state_machine_c.md1.4 KB
  • diagrams/03_flowchart_decision_tree-_which_jade_coor.md2.4 KB
  • diagrams/INDEX.md488 B
  • references/behavior-composition-and-correlation.md1.9 KB
  • references/conversation-contract-and-jade-mapping.md2.4 KB
  • references/coordination-without-bottlenecks.md3.3 KB
  • references/failure-resilient-distributed-coordination.md2.0 KB
  • references/hierarchical-task-decomposition-patterns.md1.7 KB
  • references/INDEX.md718 B
  • references/semantic-grounding-for-skill-composition.md1.1 KB
  • references/source-access-and-implementation-boundary.md1.8 KB
  • references/split-container-architecture-for-heterogeneous-environments.md1012 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Developing bounded FIPA-style conversations with JADE

Source boundary

Bellifemine, Caire, and Greenwood’s Developing Multi-Agent Systems with JADE (Wiley, 2007; DOI 10.1002/9780470058411) is the topic source. The accessible Wiley record establishes bibliographic identity; the book body was not accessed for this draft. Current implementation guidance is from official JADE 4.6.0 API documentation and the official Programmer’s and LEAP User Guides, accessed 2026-09-24. Treat every deployment timeout, retry, score, persistence choice, and external effect as an application policy, not as a property supplied by FIPA or JADE.

Choose a conversation before choosing a class

flowchart TD
  A[Describe the intended result and evidence] --> B{Many candidates offer a bounded task?}
  B -->|yes| C[CFP: freeze eligibility, reply-by, proposal schema, selection rule]
  B -->|no| D{One known party is asked to act?}
  D -->|yes| E[REQUEST: define refusal, completion evidence, and deadline]
  D -->|no| F{Ongoing observations wanted?}
  F -->|yes| G[SUBSCRIBE: define update scope, cancellation, and stale-data handling]
  F -->|no| H[Use an application-defined exchange and document its semantics]
  C --> I[Bind conversation ID, ontology/content language, and correlation]
  E --> I
  G --> I

A performative classifies a message in a conversation. It does not authenticate a sender, prove a proposition, transfer a capability, or make an external action happen. Admit identity, validate content, and authorize effects independently.

A worked local policy: selecting a document converter

The following is an application policy, not a FIPA or JADE default. A requester sends a CFP with immutable conversationId, input digest, allowed output format, reply-by time, and evaluation fields. It records every PROPOSE and REFUSE received before the reply-by time, selects at most one proposal with a declared local comparator, sends ACCEPT-PROPOSAL to that proposal and REJECT-PROPOSAL to the other recorded proposals. The selected party later emits either INFORM containing an output reference or FAILURE containing an attempted-stage record. The requester checks the output independently before using it.

sequenceDiagram
  participant R as requester
  participant A as candidateA
  participant B as candidateB
  R->>A: CFP request digest reply-by and proposal schema
  R->>B: CFP request digest reply-by and proposal schema
  A-->>R: proposal with declared terms
  B-->>R: refusal with reason
  R->>A: accept proposal
  Note over R,B: B refused, so it receives no rejection
  A-->>R: later report or reported failure
  R->>R: independently validate output and record disposition

A Java-like sketch preserves the source bundle’s separation between proposal collection, local evaluation, and completion. It is deliberately not a copy-paste release contract; verify constructors, callbacks, and templates against the selected JADE release.

// Illustrative Java-like behavior sketch; local policy owns time and ranking.
void onCfpClosed(List<ACLMessage> replies, String conversationId) {
  List<ACLMessage> proposals = replies.stream()
      .filter(m -> m.getPerformative() == ACLMessage.PROPOSE)
      .filter(m -> conversationId.equals(m.getConversationId()))
      .toList();
  Optional<ACLMessage> chosen = chooseUnderLocalPolicy(proposals);
  for (ACLMessage p : proposals) send(replyTo(p, p == chosen.orElse(null)
      ? ACLMessage.ACCEPT_PROPOSAL : ACLMessage.REJECT_PROPOSAL));
  if (chosen.isEmpty()) recordNoSelection(conversationId, replies);
}

Content and behavior boundaries

Use an ontology/content-language agreement when independently built parties must share a meaning for fields such as inputDigest, format, or declaredTerms. A matching JSON field name or a successful Java decode is only syntactic interoperability. Version each schema, reject messages outside the agreed version, and retain the original bytes/digest so the application can explain what it accepted.

JADE behavior composition remains useful as a local implementation technique: a short setup behavior may register a service description; a conversation behavior may wait for matching messages; a final behavior may record a disposition. Do not infer that a Directory Facilitator result proves suitability, availability, authorization, or delivery. It is discovery input.

Within one agent, JADE schedules ready behaviours cooperatively and non-preemptively: action() returns to yield, and a waiting behaviour calls block() then returns. Persist the phase and correlation data in fields or a DataStore; a Java call stack is not preserved across scheduler turns. Use SequentialBehaviour for ordered local steps, ParallelBehaviour with WHEN_ALL or WHEN_ANY only for completion semantics, and FSMBehaviour when refusal, no-selection, report, and validation need explicit transitions. None turns remote work into CPU-parallel work.

For a dynamic candidate list, DFService.search, register, modify, and deregister are convenient but block the caller until completion or exception. Keep that work out of a latency-sensitive behaviour, or use the asynchronous DF request/subscription path (AchieveREInitiator or SubscriptionInitiator) with a documented update policy. A MessageTemplate selects queued ACL messages by header predicates; include conversation-id, protocol, performative, and a reply-with/in-reply-to pair as appropriate, then validate sender role and content separately.

Failure dispositions

ObservationConversation dispositionWhat remains unproved
REFUSE before selectionCandidate declined this requestCause, future availability, and truth of a supplied reason
no response by the declared reply-byReply missing for this local windowNetwork state or remote execution state
FAILURE after acceptanceCandidate reports an unsuccessful attemptThe report’s accuracy and any external rollback
INFORM with output referenceCandidate reports completionOutput integrity, fitness, and any downstream effect

Do not label an absent response “Byzantine,” choose arbitrary global thresholds, promise persistent delivery, or automatically blacklist/retry. Those are separate threat-model and operations decisions.

Quality gates

  • The chosen protocol has a written message grammar, correlation identifier, and local terminal condition.
  • CFP policy freezes who may be considered, reply-by interpretation, proposal fields, and selection comparator before proposals are evaluated.
  • Request, refusal, missing-response, reported failure, and reported completion have distinct recorded dispositions.
  • Content validation and independently authorized external effects occur outside performative handling.
  • Any JADE API use is checked against a named release’s official documentation.
  • Time, retries, caches, queueing, and discovery behavior are measured local policies with explicit assumptions.

Read next

Bundle navigation

diagrams index.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Expert in 2000s-era music visualization (Milkdrop, AVS, Geiss) and modern WebGL implementations. Specializes in Butterchurn integration, Web Audio API AnalyserNode FFT data, GLSL shaders for audio-reactive visuals, and psychedelic generative art. Activate on "Milkdrop", "music visualization", "WebGL visualizer", "Butterchurn", "audio reactive", "FFT visualization", "spectrum analyzer". NOT for simple bar charts/waveforms (use basic canvas), video editing, or non-audio visuals.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/port-daddy22026年10月8日 更新

Expert legal research agent for finding and scraping expungement data state by state. Knows authoritative sources, URL patterns, Firecrawl configuration, and 2026 legal landscape.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/port-daddy22026年10月8日 更新

Expert in 3D computer vision labeling tools, workflows, and AI-assisted annotation for LiDAR, point clouds, and sensor fusion. Covers SAM4D/Point-SAM, human-in-the-loop architectures, and vertical-specific training strategies. Activate on '3D labeling', 'point cloud annotation', 'LiDAR labeling', 'SAM 3D', 'SAM4D', 'sensor fusion annotation', '3D bounding box', 'semantic segmentation point cloud'. NOT for 2D image labeling (use clip-aware-embeddings), general ML training (use ml-engineer), video annotation without 3D (use computer-vision-pipeline), or VLM prompt engineering (use prompt-engineer).

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/port-daddy22026年10月8日 更新

Apply crisis decision-making research to agent routing, uncertainty triage, and coordination failure analysis in time-pressured systems. Use when diagnosing handoff failures, analytical paralysis, or expert judgment under incomplete information. NOT for routine coding, simple CRUD design, or static single-agent tasks with complete information.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/port-daddy22026年10月8日 更新

Use for insight, reframing, contradiction, impasse, and anomaly-driven problem solving when execution effort no longer helps. NOT for routine optimization, error correction, or well-specified tasks with known solution paths.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/port-daddy22026年10月8日 更新

Apply cognitive task analysis to expert work that depends on perceptual cues, branching judgment, and recurring monitoring loops. Use when decomposing expert capability into agent structure, simulation design, or validation interviews. NOT for ordinary step-by-step SOP capture or simple pipelines with no tacit cue layer.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/port-daddy22026年10月8日 更新

curiositech のスキルをすべて見る

このスキルの問題を報告する