Phoenix — Chemistry Reasoning Agent (FutureHouse Platform)
Phoenix is the chemistry-specialized FutureHouse agent (job name MOLECULES). It is the successor to ChemCrow: an LLM agent equipped with cheminformatics tools (RDKit, retrosynthesis planners, property predictors, reaction databases) that reasons about molecules with grounded operations rather than free-form hallucination.
Use this skill when the user asks chemistry- or drug-design-flavored questions:
- Plan a synthesis route to a target molecule
- Propose new molecules satisfying constraints (Lipinski, target activity, etc.)
- Predict properties (logP, solubility, toxicity, etc.) of a SMILES
- Convert / validate / explain SMILES, InChI, IUPAC names
- Suggest reagents, solvents, conditions for a transformation
For pure literature questions about chemistry, use Crow instead. For chemistry reasoning model (open-weights), use the sibling ether0-chemistry-rewards skill.
Prerequisites
pip install edison-clientEDISON_API_KEYfrom https://platform.edisonscientific.com/profile
Minimal usage
import os
from edison_client import EdisonClient, JobNames
client = EdisonClient(api_key=os.environ["EDISON_API_KEY"])
resp = client.run_tasks_until_done({
"name": JobNames.MOLECULES,
"query": (
"Propose a 4-step synthesis of imatinib from commercially available "
"starting materials. Include reagents, conditions, and a brief "
"rationale for each step."
),
})
print(resp.answer)
Recipes
Retrosynthesis plan
resp = client.run_tasks_until_done({
"name": JobNames.MOLECULES,
"query": "Plan a retrosynthesis for SMILES Cc1ccc(NC(=O)c2ccc(CN3CCN(C)CC3)cc2)cc1Nc1nccc(-c2cccnc2)n1",
})
Lead optimization brainstorm
resp = client.run_tasks_until_done({
"name": JobNames.MOLECULES,
"query": (
"Starting from aspirin (CC(=O)Oc1ccccc1C(=O)O), propose 5 analogs that "
"preserve COX inhibition but reduce gastric side effects. Briefly "
"justify each modification."
),
})
Property check before ordering compounds
resp = client.run_tasks_until_done({
"name": JobNames.MOLECULES,
"query": (
"For each of these candidate kinase inhibitors, compute logP, MW, "
"TPSA, HBD/HBA, rotatable bonds, and rule-of-5 compliance. Flag any "
"that fail Lipinski:\n"
"1. CC(C)c1nc(...)\n"
"2. ..."
),
})
Reaction feasibility / condition lookup
resp = client.run_tasks_until_done({
"name": JobNames.MOLECULES,
"query": (
"I want to do a Suzuki coupling between 4-bromopyridine and "
"phenylboronic acid. What ligand, base, solvent, and temperature "
"would you recommend, and what side products should I watch for?"
),
})
Demo-friendly examples (good first calls)
- "What is the IUPAC name of
CN1C=NC2=C1C(=O)N(C)C(=O)N2C?" → caffeine - "Suggest 3 isosteres of a tert-butyl group that would maintain steric bulk but reduce metabolic liability."
- "Predict the logP of ibuprofen from its SMILES and explain the contributing groups."
Cost / latency
- ~30 s – 4 min depending on whether retrosynthesis tools are invoked
- Credits: typically between Crow and Falcon
Failure modes / caveats
- Phoenix's predictions are model-grounded but not infallible — for safety-critical chemistry (toxicology, regulatory) treat outputs as a hypothesis to verify, not a final answer.
- Very long SMILES with stereochemistry should be sanity-checked with RDKit locally.
- Patent-protected synthesis routes may be missing from the underlying tools' databases.