Skip to content
Back to skills

Agent Tools And Providers

ASecurity

Configure providers and safely operate leader-worker dispatch, text tool calls, repository tools, and literature search.

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
ai-agentsshellapibackendsecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill agent-tools-and-providers --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agent Tools And Providers?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Agent Tools And Providers
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-agent-tools-and-providers/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-agent-tools-and-providers)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: agent-tools-and-providers
description: "Configure providers and safely operate leader-worker dispatch, text tool calls, repository tools, and literature search."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Agent tools and providers

Use this skill when a research project needs to configure the LLM endpoint or
when a worker must inspect files, search code, query literature, or hand an
experiment launch to monitoring. This skill describes the observable
dispatcher and tool-registry contracts; it does not run an experiment, install
source skills, or choose an execution backend.

## Quick routing

1. Confirm the provider, model, endpoint override, and credential *environment
   variable names*. Never put a secret value in a config file, prompt, report,
   or tool result.
2. Use `AgentDispatcher` for leader/worker calls and `ToolRegistry` for the
   worker's allow-listed tools. A worker has no direct filesystem, shell, or
   network access; it must emit the text protocol described in
   `references/text-tool-protocol.md`.
3. Select a worker by responsibility: `idea` for literature, `code` for
   implementation and launch, and `writing` for reports. Keep the tool set
   minimal and do not grant tools by copying another worker's list.
4. Treat the registry's returned JSON, especially `launch_experiment`'s `pid`
   and `log_file`, as authoritative. Do not replace them with numbers or paths
   guessed from model prose.
5. Before any write or command, use workspace-relative paths and the exact
   tool schemas in `references/tool-catalog.md`. Route long-running lifecycle
   and backend transport questions to the corresponding lifecycle/backend
   skills.

## Provider choices

`AgentDispatcher` supports `anthropic`, `openai`, `claude_cli`, and `codex_cli`.
The domestic aliases `deepseek`, `dashscope`, `qwen`, `moonshot`, `kimi`,
`zhipu`, and `glm` select an OpenAI-compatible endpoint while retaining the
original alias as `provider_label`. Presets, exact constructor behavior,
credential precedence, and model mapping are in
`references/provider-config.md`.

Prefer `anthropic` or `openai` for API calls and `claude_cli` when a pure text
CLI oracle is desired. `codex_cli` is suitable for leader/free-text work, but
is unsafe for authoritative worker handoff: its CLI runs its own built-in
agentic tools and cannot be forced into the registry protocol. The dispatcher
logs a warning whenever a codex worker receives tools; use another provider
for workers that write files or launch experiments.

## Dispatch contract

- `dispatch_leader(task, context)` keeps leader history within a cycle and
  parses a JSON decision. Leader history must be reset between cycles by the
  caller; the leader is not a worker tool loop.
- `dispatch_worker(agent_type, task, tool_registry)` starts a fresh worker
  conversation, appends the rendered schemas, executes parsed calls in order,
  and repeats until a response has no calls or the worker's hard `max_turns`
  limit is reached.
- Tool results are returned to the model in a new user message. A non-dict
  `args` value is converted into a structured error and is never expanded as
  keyword arguments. Unknown tools also return a structured error.
- For a code worker, a successful `launch_experiment` result is surfaced as
  `experiment_launched`, `pid`, and (when supplied) `log_file`. This result is
  the handoff consumed by monitoring.

## Safe operating rules

- A tool call is real only when it is a top-level `<tool_call>` block. Calls
  inside a triple-backtick fenced block are illustrative and are suppressed.
- Normalize paths before touching the backend. Absolute paths, empty paths,
  `..` components, and symlink escapes are rejected. Writes additionally
  protect the basenames `state.json`, `MEMORY_LOG.md`, `PROJECT_BRIEF.md`, and
  `.lock`; protected files may still be read when otherwise valid.
- `run_shell` and `launch_experiment` parse with `shlex.split` and invoke the
  backend without a shell. Empty commands, malformed quoting, and a blocked
  executable (`rm`, `sudo`, `su`, `mkfs`, `dd`, `shutdown`, `reboot`,
  `poweroff`, or `halt`) fail before execution. Do not treat this as a complete
  privilege sandbox: explicitly invoking a shell interpreter remains a
  separate capability and should be avoided.
- Repository searches are read-only, skip VCS/cache directories, skip
  symlinks and oversized/binary files, and return bounded results. Literature
  calls have network side effects and must be made only when the user permits
  them; failure is reported as JSON rather than retried blindly.

## Verification

Run the bundled `scripts/validate_provider_config.py` with representative
provider/model/override combinations. It performs no network request, does
not read credential values, and prints only normalized non-secret metadata.
For parser/security review, use synthetic fenced-call, traversal, and
semicolon-payload cases and verify that no file is created and no backend call
is made before accepting a worker handoff.

## Further reference

- `references/provider-config.md`: constructor fields, aliases, SDK/CLI paths,
  precedence, and failure behavior.
- `references/tool-catalog.md`: worker allow-lists, exact schemas, result
  shapes, bounds, protection, and literature behavior.
- `references/text-tool-protocol.md`: parsing, multi-turn result handoff,
  fenced-call suppression, and authoritative PID handling.
- `references/troubleshooting.md`: predictable configuration, parser, path,
  shell, network, and CLI failure responses.

Do not use this skill to launch training or to poll a PID. For those tasks route
to experiment lifecycle and execution/monitoring skills, respectively. For
source-skill installation or export route to skills-and-installation.

Files in this skill

  • SKILL.md5.7 KB
  • references/provider-config.md6.7 KB
  • references/text-tool-protocol.md5.2 KB
  • references/tool-catalog.md7.8 KB
  • references/troubleshooting.md6.3 KB
  • scripts/validate_provider_config.py3.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.