Reads the official filings that every U.S.-listed company is legally required to publish: annual reports, quarterly reports, major-event disclosures, and more. Gives the agent the same primary-source material that regulators and professional analysts work from.
Looks up the company's CIK from its ticker, downloads filings from SEC EDGAR, parses the key sections, and returns a structured summary. Covers domestic forms (10-K, 10-Q, 8-K, DEF 14A), foreign-issuer forms (20-F, 6-K), ownership filings (13G, 13D), and registrations (S-1, F-1, 424B).
When a user asks:
Pull Microsoft's most recent 10-K filing.
the agent calls the tool:
sec_filings(ticker="MSFT", filingType="10-K")and gets back: the filing text with risk factors, MD&A, and financial statements extracted.
Wire this tool into a SwarmAI crew. Use the YAML DSL for declarative workflows, or the Java builder API when you want full programmatic control.
YAML DSL
# regulatory-research.yaml
name: regulatory-research-crew
process: SEQUENTIAL
agents:
- id: compliance
role: Compliance Researcher
goal: Source regulatory filings directly from SEC EDGAR
tools:
- sec_filings
tasks:
- id: regulatory-research-task
agent: compliance
description: Fetch Microsoft's most recent 10-K and extract the Risk Factors section.Java
import ai.intelliswarm.swarmai.agent.Agent;
import ai.intelliswarm.swarmai.task.Task;
import ai.intelliswarm.swarmai.swarm.Swarm;
import ai.intelliswarm.swarmai.swarm.SwarmOutput;
import ai.intelliswarm.swarmai.process.ProcessType;
import ai.intelliswarm.swarmai.tool.common.SECFilingsTool;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
@Autowired ChatClient chatClient;
@Autowired SECFilingsTool sECFilingsTool;
Agent compliance = Agent.builder()
.role("Compliance Researcher")
.goal("Source regulatory filings directly from SEC EDGAR")
.chatClient(chatClient)
.tool(sECFilingsTool)
.build();
Task complianceTask = Task.builder()
.description("Fetch Microsoft's most recent 10-K and extract the Risk Factors section.")
.agent(compliance)
.build();
SwarmOutput result = Swarm.builder()
.agent(compliance)
.task(complianceTask)
.process(ProcessType.SEQUENTIAL)
.build()
.kickoff();Real scenarios where agents put this tool to work.
Implementation lives at swarmai-tools/src/main/java/ai/intelliswarm/swarmai/tool/common/SECFilingsTool.java in the swarm-ai repository.