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…